Commit: 692704543baf7903cab8f256186ed2755f3fdd53
Author: Antonio Vazquez
Date:   Sat Feb 10 11:26:40 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB692704543baf7903cab8f256186ed2755f3fdd53

Check exist grease pencil objects before render

If the scene has not grease pencil objects, it's not required to call grease 
pencil rendr functions.

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

M       source/blender/draw/intern/draw_manager.c

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

diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index 9bb7c99537e..3f57709810e 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -3640,6 +3640,20 @@ void DRW_draw_render_loop_offscreen(
        GPU_offscreen_bind(ofs, false);
 }
 
+/* helper to check if exit object type to render */
+static bool DRW_render_check_object_type(struct Depsgraph *depsgraph, short 
obtype)
+{
+       DEG_OBJECT_ITER_FOR_RENDER_ENGINE(depsgraph, ob, 
DRW_iterator_mode_get())
+       {
+               if ((ob->type == obtype) && 
(DRW_check_object_visible_within_active_context(ob))) {
+                       return true;
+               }
+       }
+       DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END
+
+       return false;
+}
+
 void DRW_render_to_image(RenderEngine *re, struct Depsgraph *depsgraph)
 {
        Scene *scene = DEG_get_evaluated_scene(depsgraph);
@@ -3687,10 +3701,11 @@ void DRW_render_to_image(RenderEngine *re, struct 
Depsgraph *depsgraph)
                engine_type->draw_engine->render_to_image(data, re, depsgraph);
        }
 
-       /* TODO grease pencil */
-       /* enabled only in debug mode */
-       if (G.debug_value >= 663) {
-               if (draw_engine_gpencil_type.render_to_image) {
+       /* grease pencil 
+        * the grease pencil render result is merged in the previous render 
result.
+        */
+       if (draw_engine_gpencil_type.render_to_image) {
+               if (DRW_render_check_object_type(depsgraph, OB_GPENCIL)) {
                        ViewportEngineData *gpdata = 
DRW_viewport_engine_data_ensure(&draw_engine_gpencil_type);
                        draw_engine_gpencil_type.render_to_image(gpdata, re, 
depsgraph);
                }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to