Amendment to previous commit: Add an option to scene strips to disable GPencil
authorJoshua Leung <aligorith@gmail.com>
Fri, 5 Dec 2014 03:39:49 +0000 (16:39 +1300)
committerJoshua Leung <aligorith@gmail.com>
Fri, 5 Dec 2014 03:39:49 +0000 (16:39 +1300)
On second thought, it is probably still worthwhile to be able to disable GPencil
drawing on strips. By default, GPencil strokes are still shown by default now,
but they can be turned off using this option if it turns out that they are
getting in the way (e.g. a director/animator make some planning notes in the shot
at an earlier stage which are hidden for normal display now, but are still there
popping up sproadically during the animatic).

release/scripts/startup/bl_ui/space_sequencer.py
source/blender/blenkernel/intern/sequencer.c
source/blender/makesdna/DNA_sequence_types.h
source/blender/makesrna/intern/rna_sequencer.c

index d84d7723e19f27ffdb78b965db9370a0c8f1568e..88267049b80d6fd82a11ba85957489e707a01ce8 100644 (file)
@@ -793,6 +793,8 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, Panel):
         layout.label(text="Camera Override")
         layout.template_ID(strip, "scene_camera")
 
+        layout.prop(strip, "use_grease_pencil", text="Show Grease Pencil")
+
         if scene:
             layout.prop(scene, "audio_volume", text="Audio Volume")
 
index 06eecc4b015a950b068c6a8e3557facba235df7b..ddc0d5874f85a5f4bb0801a53acb1adcd9612fbf 100644 (file)
@@ -2529,6 +2529,7 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq
        int do_seq;
        // bool have_seq = false;  /* UNUSED */
        bool have_comp = false;
+       bool use_gpencil = true;
        Scene *scene;
        int is_thread_main = BLI_thread_is_main();
 
@@ -2553,6 +2554,10 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq
                BKE_scene_camera_switch_update(scene);
                camera = scene->camera;
        }
+       
+       if (seq->flag & SEQ_SCENE_NO_GPENCIL) {
+               use_gpencil = false;
+       }
 
        if (have_comp == false && camera == NULL) {
                scene->r.cfra = oldcfra;
@@ -2586,7 +2591,7 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq
                ibuf = sequencer_view3d_cb(scene, camera, width, height, IB_rect,
                                           context->scene->r.seq_prev_type,
                                           (context->scene->r.seq_flag & R_SEQ_SOLID_TEX) != 0,
-                                          true, true, scene->r.alphamode, err_out);
+                                          use_gpencil, true, scene->r.alphamode, err_out);
                if (ibuf == NULL) {
                        fprintf(stderr, "seq_render_scene_strip failed to get opengl buffer: %s\n", err_out);
                }
index a7288b95a7a14867d86cea8e8683f091ac5ec1cc..20678bdae497407a5c656ef63e76221a0289304c 100644 (file)
@@ -363,6 +363,9 @@ enum {
        SEQ_AUDIO_PITCH_ANIMATED    = (1 << 25),
        SEQ_AUDIO_PAN_ANIMATED      = (1 << 26),
        SEQ_AUDIO_DRAW_WAVEFORM     = (1 << 27),
+       
+       /* don't include Grease Pencil in OpenGL previews of Scene strips */
+       SEQ_SCENE_NO_GPENCIL        = (1 << 28),
 
        SEQ_INVALID_EFFECT          = (1 << 31),
 };
index 00f0a6ff4873251e97c8c5e38ae72788b88e2370..dda0e8493d960754cb76c01c09e7b656fac180f3 100644 (file)
@@ -1846,6 +1846,11 @@ static void rna_def_scene(BlenderRNA *brna)
        RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_Camera_object_poll");
        RNA_def_property_ui_text(prop, "Camera Override", "Override the scenes active camera");
        RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+       
+       prop = RNA_def_property(srna, "use_grease_pencil", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SEQ_SCENE_NO_GPENCIL);
+       RNA_def_property_ui_text(prop, "Use Grease Pencil", "Show Grease Pencil strokes in OpenGL previews");
+       RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
 
        rna_def_filter_video(srna);
        rna_def_proxy(srna);