[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54904] trunk/blender: Added RGBA|RGB channels toggle to sequencer preview

Xavier Thomas xavier.thomas.1980 at gmail.com
Wed Feb 27 16:07:23 CET 2013


The first advantage I think of is consistency and ease of use: In Blender
when you want to see an image you have to go to the image editor, whatever
the image type (texture, movie, render result, compositor viewer,
..) except for the sequencer preview which have its own area. Further you
can see the image or one scope and switch between them easily but you
cannot switch to viewing just the preview to viewing the preview and the
scopes without having to split and rearrange areas.

The second is the scopes: The image editor already have scopes which in my
opinion are superior both in performances and configurabilty. The only
feature the sequencer preview had, that the image viewer didn't at the
time, was the zebra overlay which is pretty basic to port. Now there is
the split-view and GL rendering. I did not investigate to see if this is
problematic to port.

Code wise it may not be so idyllic but it should at least permit to remove
some duplicated or old code (scopes, sampling). And for the future it
should simplify/unify the image viewing code. For example, if in the future
we decide to not make the OCIO options global anymore but instead have the
viewer options independent for each viewer; than having only one image view
area would simplify coding and reduce code duplication.

Xavier


2013/2/27 Sergey Sharybin <sergey.vfx at gmail.com>

> Never heard of such a target. It could be pretty challenging tho --
> supporting all that features sequencer preview has (like scopes and
> overlays), sharing image ID between sequencer and image editor could end up
> in a spagetti code and more threading latency because of communication.
>
> Not sure, what's the benefit of using image editor for sequencer preview?
>
>
> On Wed, Feb 27, 2013 at 7:25 PM, Xavier Thomas <
> xavier.thomas.1980 at gmail.com
> > wrote:
>
> > Hi,
> >
> > A few years ago (during the 2.5 rewrite), it was discussed that the
> > sequencer preview area could be removed in favor of the image editor just
> > like for the compositor viewer nodes. Is this still a target?
> >
> > I see a lot of advantages to this instead of the dedicated sequencer
> > preview area:
> > -More consistency between compositor and sequencer
> > -The ability to see the preview and the scopes at he same time without
> > having to modify the interface
> > -The ability to see all scopes with decent performances (sequencer scopes
> > are slow to update and to draw)
> > -Unify the color sampling code
> > ....
> >
> > Xavier
> >
> >
> > 2013/2/27 Sergey Sharybin <sergey.vfx at gmail.com>
> >
> > > Revision: 54904
> > >
> > >
> >
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54904
> > > Author:   nazgul
> > > Date:     2013-02-27 10:26:58 +0000 (Wed, 27 Feb 2013)
> > > Log Message:
> > > -----------
> > > Added RGBA|RGB channels toggle to sequencer preview
> > >
> > > Main purpose of this is to be more compatible with older
> > > versions of blender (before alpha cleanup) where sequencer
> > > used to display premultiplied image on an straight opengl
> > > viewport.
> > >
> > > Now sequencer preview would behave closer to image editor
> > > However adding Alpha and R|G|B displays is not so simple
> > > because sequencer is using 2D textures. Would be nice to
> > > implement this options as well, but this is not so much
> > > important IMO.
> > >
> > > This hall fix
> > > - #34453: VSE: Subtract function does not work properly
> > >
> > > TODO: Make RGBA display default for our startup.blend
> > >
> > > Modified Paths:
> > > --------------
> > >     trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
> > >
> trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
> > >
> > trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c
> > >     trunk/blender/source/blender/makesdna/DNA_space_types.h
> > >     trunk/blender/source/blender/makesrna/intern/rna_space.c
> > >
> > > Modified:
> trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
> > > ===================================================================
> > > --- trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
> > >  2013-02-27 10:19:31 UTC (rev 54903)
> > > +++ trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
> > >  2013-02-27 10:26:58 UTC (rev 54904)
> > > @@ -89,6 +89,7 @@
> > >                  layout.separator()
> > >                  layout.operator("sequencer.refresh_all")
> > >
> > > +            layout.prop(st, "preview_channels", expand=True, text="")
> > >              layout.prop(st, "display_channel", text="Channel")
> > >
> > >              ed = context.scene.sequence_editor
> > >
> > > Modified:
> > > trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
> > > ===================================================================
> > > ---
> trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
> > >       2013-02-27 10:19:31 UTC (rev 54903)
> > > +++
> trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
> > >       2013-02-27 10:26:58 UTC (rev 54904)
> > > @@ -1059,8 +1059,10 @@
> > >
> > >         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, ibuf->x, ibuf->y, 0,
> > > GL_RGBA, GL_UNSIGNED_BYTE, display_buffer);
> > >
> > > -       glEnable(GL_BLEND);
> > > -       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
> > > +       if (sseq->flag & SEQ_USE_ALPHA) {
> > > +               glEnable(GL_BLEND);
> > > +               glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
> > > +       }
> > >
> > >         glBegin(GL_QUADS);
> > >
> > > @@ -1093,7 +1095,8 @@
> > >         glEnd();
> > >         glBindTexture(GL_TEXTURE_2D, last_texid);
> > >         glDisable(GL_TEXTURE_2D);
> > > -       glDisable(GL_BLEND);
> > > +       if (sseq->flag & SEQ_USE_ALPHA)
> > > +               glDisable(GL_BLEND);
> > >         glDeleteTextures(1, &texid);
> > >
> > >         if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
> > >
> > > Modified:
> > > trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c
> > > ===================================================================
> > > ---
> > trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c
> > >      2013-02-27 10:19:31 UTC (rev 54903)
> > > +++
> > trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c
> > >      2013-02-27 10:26:58 UTC (rev 54904)
> > > @@ -120,7 +120,7 @@
> > >         sseq->chanshown = 0;
> > >         sseq->view = SEQ_VIEW_SEQUENCE;
> > >         sseq->mainb = SEQ_DRAW_IMG_IMBUF;
> > > -       sseq->flag = SEQ_SHOW_GPENCIL;
> > > +       sseq->flag = SEQ_SHOW_GPENCIL | SEQ_USE_ALPHA;
> > >
> > >         /* header */
> > >         ar = MEM_callocN(sizeof(ARegion), "header for sequencer");
> > >
> > > Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
> > > ===================================================================
> > > --- trunk/blender/source/blender/makesdna/DNA_space_types.h
> > 2013-02-27
> > > 10:19:31 UTC (rev 54903)
> > > +++ trunk/blender/source/blender/makesdna/DNA_space_types.h
> > 2013-02-27
> > > 10:26:58 UTC (rev 54904)
> > > @@ -497,6 +497,7 @@
> > >         SEQ_DRAW_SAFE_MARGINS       = (1 << 3),
> > >         SEQ_SHOW_GPENCIL            = (1 << 4),
> > >         SEQ_NO_DRAW_CFRANUM         = (1 << 5),
> > > +       SEQ_USE_ALPHA               = (1 << 6), /* use RGBA display
> mode
> > > for preview */
> > >  } eSpaceSeq_Flag;
> > >
> > >  /* sseq->view */
> > >
> > > Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
> > > ===================================================================
> > > --- trunk/blender/source/blender/makesrna/intern/rna_space.c
> >  2013-02-27
> > > 10:19:31 UTC (rev 54903)
> > > +++ trunk/blender/source/blender/makesrna/intern/rna_space.c
> >  2013-02-27
> > > 10:26:58 UTC (rev 54904)
> > > @@ -2248,6 +2248,13 @@
> > >                 {0, NULL, 0, NULL, NULL}
> > >         };
> > >
> > > +       static EnumPropertyItem preview_channels_items[] = {
> > > +               {SEQ_USE_ALPHA, "COLOR_ALPHA", ICON_IMAGE_RGB_ALPHA,
> > > "Color and Alpha",
> > > +                               "Draw image with RGB colors and alpha
> > > transparency"},
> > > +               {0, "COLOR", ICON_IMAGE_RGB, "Color", "Draw image with
> > RGB
> > > colors"},
> > > +               {0, NULL, 0, NULL, NULL}
> > > +       };
> > > +
> > >         srna = RNA_def_struct(brna, "SpaceSequenceEditor", "Space");
> > >         RNA_def_struct_sdna(srna, "SpaceSeq");
> > >         RNA_def_struct_ui_text(srna, "Space Sequence Editor", "Sequence
> > > editor space data");
> > > @@ -2265,7 +2272,7 @@
> > >         RNA_def_property_enum_items(prop, display_mode_items);
> > >         RNA_def_property_ui_text(prop, "Display Mode", "View mode to
> use
> > > for displaying sequencer output");
> > >         RNA_def_property_update(prop, NC_SPACE | ND_SPACE_SEQUENCER,
> > NULL);
> > > -
> > > +
> > >         /* flags */
> > >         prop = RNA_def_property(srna, "show_frame_indicator",
> > > PROP_BOOLEAN, PROP_NONE);
> > >         RNA_def_property_boolean_negative_sdna(prop, NULL, "flag",
> > > SEQ_NO_DRAW_CFRANUM);
> > > @@ -2310,7 +2317,13 @@
> > >                                  "The channel number shown in the image
> > > preview. 0 is the result of all strips combined");
> > >         RNA_def_property_range(prop, -5, MAXSEQ);
> > >         RNA_def_property_update(prop, NC_SPACE | ND_SPACE_SEQUENCER,
> > NULL);
> > > -
> > > +
> > > +       prop = RNA_def_property(srna, "preview_channels", PROP_ENUM,
> > > PROP_NONE);
> > > +       RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
> > > +       RNA_def_property_enum_items(prop, preview_channels_items);
> > > +       RNA_def_property_ui_text(prop, "Draw Channels", "Channels of
> the
> > > preview to draw");
> > > +       RNA_def_property_update(prop, NC_SPACE | ND_SPACE_SEQUENCER,
> > NULL);
> > > +
> > >         prop = RNA_def_property(srna, "draw_overexposed", PROP_INT,
> > > PROP_NONE);
> > >         RNA_def_property_int_sdna(prop, NULL, "zebra");
> > >         RNA_def_property_ui_text(prop, "Show Overexposed", "Show
> > > overexposed areas with zebra stripes");
> > >
> > > _______________________________________________
> > > Bf-blender-cvs mailing list
> > > Bf-blender-cvs at blender.org
> > > http://lists.blender.org/mailman/listinfo/bf-blender-cvs
> > >
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
> >
>
>
>
> --
> With best regards, Sergey Sharybin
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list