[Bf-blender-cvs] [efa55c157a3] temp-eevee-gpencil-rewrite: New property to define render engine for grease pencil

Antonio Vazquez noreply at git.blender.org
Tue Oct 5 14:13:41 CEST 2021


Commit: efa55c157a301ff3c4a682090a4fb1af1f5ad329
Author: Antonio Vazquez
Date:   Sun Sep 12 20:08:31 2021 +0200
Branches: temp-eevee-gpencil-rewrite
https://developer.blender.org/rBefa55c157a301ff3c4a682090a4fb1af1f5ad329

New property to define render engine for grease pencil

===================================================================

M	release/scripts/startup/bl_ui/properties_object.py
M	source/blender/draw/intern/DRW_render.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/makesdna/DNA_object_types.h
M	source/blender/makesrna/intern/rna_object.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py
index 81a641a20cf..812c18052b9 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -407,6 +407,9 @@ class OBJECT_PT_visibility(ObjectButtonsPanel, Panel):
             col = layout.column(heading="Grease Pencil")
             col.prop(ob, "use_grease_pencil_lights", toggle=False)
 
+            subcol = layout.column()
+            subcol.prop(ob, "use_grease_pencil_scene_engine", toggle=False)
+            subcol.active = context.scene.render.engine == 'BLENDER_EEVEE'
         layout.separator()
         col = layout.column(heading="Mask")
         col.prop(ob, "is_holdout")
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 8811a9febb9..7cbc74be7e7 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -696,6 +696,7 @@ bool DRW_object_is_in_edit_mode(const struct Object *ob);
 int DRW_object_visibility_in_active_context(const struct Object *ob);
 bool DRW_object_is_flat_normal(const struct Object *ob);
 bool DRW_object_use_hide_faces(const struct Object *ob);
+bool DRW_object_use_gpencil_engine(const struct Object *ob);
 
 bool DRW_object_is_visible_psys_in_active_context(const struct Object *object,
                                                   const struct ParticleSystem *psys);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 5ae0351cdd3..4f5c7fa054a 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -271,6 +271,17 @@ bool DRW_object_use_hide_faces(const struct Object *ob)
   return false;
 }
 
+bool DRW_object_use_gpencil_engine(const struct Object *ob)
+{
+  BLI_assert((ob->base_flag & BASE_VISIBLE_DEPSGRAPH) != 0);
+
+  if (ob->type == OB_GPENCIL) {
+    return (ob->dtx & OB_USE_GPENCIL_SCENE_ENGINE) == 0;
+  }
+
+  return false;
+}
+
 bool DRW_object_is_visible_psys_in_active_context(const Object *object, const ParticleSystem *psys)
 {
   const bool for_render = DRW_state_is_image_render();
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index 5a88ce7c9f5..76a9e0dcba9 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -601,6 +601,8 @@ enum {
   OB_DRAW_NO_SHADOW_CAST = 1 << 9,
   /* Enable lights for grease pencil. */
   OB_USE_GPENCIL_LIGHTS = 1 << 10,
+  /* Use Scene Render Engine for grease pencil. */
+  OB_USE_GPENCIL_SCENE_ENGINE = 1 << 11,
 };
 
 /* empty_drawtype: no flags */
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index 99865078cbe..80249922c15 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -3704,6 +3704,15 @@ static void rna_def_object(BlenderRNA *brna)
   RNA_def_property_ui_text(prop, "Use Lights", "Lights affect grease pencil object");
   RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_GPencil_update");
 
+  prop = RNA_def_property(srna, "use_grease_pencil_scene_engine", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_USE_GPENCIL_SCENE_ENGINE);
+  RNA_def_property_boolean_default(prop, false);
+  RNA_def_property_ui_text(
+      prop,
+      "Use Scene Render Engine",
+      "Use the scene render engine to render this object instead of the Grease Pencil engine");
+  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_GPencil_update");
+
   prop = RNA_def_property(srna, "show_transparent", PROP_BOOLEAN, PROP_NONE);
   RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWTRANSP);
   RNA_def_property_ui_text(



More information about the Bf-blender-cvs mailing list