diff options
-rw-r--r-- | source/blender/editors/space_view3d/drawobject.c | 3 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 8 |
2 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 59802e9d5ac..c8581abd704 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5557,6 +5557,9 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) if (ob!=scene->obedit) { if (ob->restrictflag & OB_RESTRICT_VIEW) return; + if ((ob->restrictflag & OB_RESTRICT_RENDER) && + (v3d->flag2 & V3D_RENDER_OVERRIDE)) + return; } /* XXX particles are not safe for simultaneous threaded render */ diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index cfae9e7c4d5..c3d034eebd3 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1830,15 +1830,15 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d) for(shadow=shadows.first; shadow; shadow=shadow->next) { /* this needs to be done better .. */ float viewmat[4][4], winmat[4][4]; - int drawtype, lay, winsize, flag2; + int drawtype, lay, winsize, flag2=v3d->flag2; drawtype= v3d->drawtype; lay= v3d->lay; - flag2= v3d->flag2 & V3D_SOLID_TEX; v3d->drawtype = OB_SOLID; v3d->lay &= GPU_lamp_shadow_layer(shadow->lamp); v3d->flag2 &= ~V3D_SOLID_TEX; + v3d->flag2 |= V3D_RENDER_OVERRIDE; GPU_lamp_shadow_buffer_bind(shadow->lamp, viewmat, &winsize, winmat); @@ -1859,7 +1859,7 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d) v3d->drawtype= drawtype; v3d->lay= lay; - v3d->flag2 |= flag2; + v3d->flag2 = flag2; } BLI_freelistN(&shadows); @@ -1962,7 +1962,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, bwiny= ar->winy; ar->winx= winx; ar->winy= winy; - + /* set flags */ G.f |= G_RENDER_OGL; |