[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45510] trunk/blender: mango request: option to draw background in front of all objects in the viewport.

Dalai Felinto dfelinto at gmail.com
Tue Apr 10 17:07:58 CEST 2012


Perhaps it should now be named 'Reference Image' instead of 'Background
Image'?

2012/4/10 Sergey Sharybin <sergey.vfx at gmail.com>

> Revision: 45510
>
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45510
> Author:   nazgul
> Date:     2012-04-10 14:59:06 +0000 (Tue, 10 Apr 2012)
> Log Message:
> -----------
> mango request: option to draw background in front of all objects in the
> viewport.
> Should be really handy for painting clean plates.
>
> Modified Paths:
> --------------
>    trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
>    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
>    trunk/blender/source/blender/makesdna/DNA_view3d_types.h
>    trunk/blender/source/blender/makesrna/intern/rna_space.c
>
> Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
> ===================================================================
> --- trunk/blender/release/scripts/startup/bl_ui/space_view3d.py 2012-04-10
> 14:58:21 UTC (rev 45509)
> +++ trunk/blender/release/scripts/startup/bl_ui/space_view3d.py 2012-04-10
> 14:59:06 UTC (rev 45510)
> @@ -2478,10 +2478,12 @@
>                     column.prop(bg.clip_user, "use_render_undistorted")
>
>                 if has_bg:
> -                    box.prop(bg, "opacity", slider=True)
> +                    col = box.column()
> +                    col.prop(bg, "show_on_foreground")
> +                    col.prop(bg, "opacity", slider=True)
>                     if bg.view_axis != 'CAMERA':
> -                        box.prop(bg, "size")
> -                        row = box.row(align=True)
> +                        col.prop(bg, "size")
> +                        row = col.row(align=True)
>                         row.prop(bg, "offset_x", text="X")
>                         row.prop(bg, "offset_y", text="Y")
>
>
> Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
> ===================================================================
> --- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
> 2012-04-10 14:58:21 UTC (rev 45509)
> +++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
> 2012-04-10 14:59:06 UTC (rev 45510)
> @@ -1515,7 +1515,7 @@
>
>  /* ************************************************************* */
>
> -static void draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d)
> +static void draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d, int
> foreground)
>  {
>        RegionView3D *rv3d = ar->regiondata;
>        BGpic *bgpic;
> @@ -1524,10 +1524,13 @@
>        ImBuf *ibuf = NULL, *freeibuf;
>        float vec[4], fac, asp, zoomx, zoomy;
>        float x1, y1, x2, y2, cx, cy;
> +       int fg_flag = foreground ? V3D_BGPIC_FOREGROUND : 0;
>
> -
>        for (bgpic = v3d->bgpicbase.first; bgpic; bgpic = bgpic->next) {
>
> +               if ((bgpic->flag & V3D_BGPIC_FOREGROUND) != fg_flag)
> +                       continue;
> +
>                if ((bgpic->view == 0) || /* zero for any */
>                    (bgpic->view & (1 << rv3d->view)) || /* check agaist
> flags */
>                    (rv3d->persp == RV3D_CAMOB && bgpic->view == (1 <<
> RV3D_VIEW_CAMERA)))
> @@ -1680,6 +1683,26 @@
>        }
>  }
>
> +static void draw_bgpics(Scene *scene, ARegion *ar, View3D *v3d, int
> foreground)
> +{
> +       RegionView3D *rv3d = ar->regiondata;
> +
> +       if ((v3d->flag & V3D_DISPBGPICS) == 0)
> +               return;
> +
> +       if (v3d->flag2 & V3D_RENDER_OVERRIDE)
> +               return;
> +
> +       if ((rv3d->view == RV3D_VIEW_USER) || (rv3d->persp != RV3D_ORTHO))
> {
> +               if (rv3d->persp == RV3D_CAMOB) {
> +                       draw_bgpic(scene, ar, v3d, foreground);
> +               }
> +       }
> +       else {
> +                       draw_bgpic(scene, ar, v3d, foreground);
> +       }
> +}
> +
>  /* ****************** View3d afterdraw *************** */
>
>  typedef struct View3DAfter {
> @@ -2750,13 +2773,16 @@
>
>        /* render result draw */
>        if (v3d->flag & V3D_DISPBGPICS)
> -               draw_bgpic(scene, ar, v3d);
> +               draw_bgpic(scene, ar, v3d, FALSE);
>        else
>                fdrawcheckerboard(0, 0, ar->winx, ar->winy);
>
>        type = rv3d->render_engine->type;
>        type->view_draw(rv3d->render_engine, C);
>
> +       if (v3d->flag & V3D_DISPBGPICS)
> +               draw_bgpic(scene, ar, v3d, TRUE);
> +
>        return 1;
>  }
>
> @@ -2837,9 +2863,6 @@
>                                                      star_stuff_term_func);
>                                }
>                        }
> -                       if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
> -                               if (v3d->flag & V3D_DISPBGPICS)
> draw_bgpic(scene, ar, v3d);
> -                       }
>                }
>        }
>        else {
> @@ -2851,13 +2874,11 @@
>                        glLoadMatrixf(rv3d->winmat);
>                        glMatrixMode(GL_MODELVIEW);
>                        glLoadMatrixf(rv3d->viewmat);
> -
> -                       if (v3d->flag & V3D_DISPBGPICS) {
> -                               draw_bgpic(scene, ar, v3d);
> -                       }
>                }
>        }
> -
> +
> +       draw_bgpics(scene, ar, v3d, FALSE);
> +
>        if (rv3d->rflag & RV3D_CLIPPING)
>                ED_view3d_clipping_set(rv3d);
>
> @@ -2915,6 +2936,8 @@
>                }
>        }
>
> +       draw_bgpics(scene, ar, v3d, TRUE);
> +
>  //     REEB_draw();
>
>        if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
>
> Modified: trunk/blender/source/blender/makesdna/DNA_view3d_types.h
> ===================================================================
> --- trunk/blender/source/blender/makesdna/DNA_view3d_types.h    2012-04-10
> 14:58:21 UTC (rev 45509)
> +++ trunk/blender/source/blender/makesdna/DNA_view3d_types.h    2012-04-10
> 14:59:06 UTC (rev 45510)
> @@ -314,6 +314,7 @@
>  #define V3D_BGPIC_EXPANDED             2
>  #define V3D_BGPIC_CAMERACLIP   4
>  #define V3D_BGPIC_DISABLED             8
> +#define V3D_BGPIC_FOREGROUND           16
>
>  /* BGPic->source */
>  /* may want to use 1 for select ?*/
>
> Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
> ===================================================================
> --- trunk/blender/source/blender/makesrna/intern/rna_space.c    2012-04-10
> 14:58:21 UTC (rev 45509)
> +++ trunk/blender/source/blender/makesrna/intern/rna_space.c    2012-04-10
> 14:59:06 UTC (rev 45510)
> @@ -1350,6 +1350,11 @@
>        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag",
> V3D_BGPIC_DISABLED);
>        RNA_def_property_ui_text(prop, "Show Background Image", "Show this
> image as background");
>        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
> +
> +       prop = RNA_def_property(srna, "show_on_foreground", PROP_BOOLEAN,
> PROP_NONE);
> +       RNA_def_property_boolean_sdna(prop, NULL, "flag",
> V3D_BGPIC_FOREGROUND);
> +       RNA_def_property_ui_text(prop, "Show On Foreground", "Show this
> image in fround of objects in viewport");
> +       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
>  }
>
>  static void rna_def_backgroundImages(BlenderRNA *brna, PropertyRNA *cprop)
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>


More information about the Bf-committers mailing list