[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