[Bf-blender-cvs] [f05f99f] master: Fix crash when rendering to offscreen OpenGL, fix scons build

Antony Riakiotakis noreply at git.blender.org
Tue Feb 17 18:36:11 CET 2015


Commit: f05f99f9d46bacd5ea2f7e307dc985e7abd17179
Author: Antony Riakiotakis
Date:   Tue Feb 17 18:35:56 2015 +0100
Branches: master
https://developer.blender.org/rBf05f99f9d46bacd5ea2f7e307dc985e7abd17179

Fix crash when rendering to offscreen OpenGL, fix scons build

===================================================================

M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/gpu/SConscript

===================================================================

diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index b2aef64..00a67dc 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2666,7 +2666,7 @@ static void view3d_draw_objects(
         const bContext *C,
         Scene *scene, View3D *v3d, ARegion *ar,
         const char **grid_unit,
-        const bool do_bgpic, const bool draw_offscreen, bool do_compositing)
+        const bool do_bgpic, const bool draw_offscreen, GPUFX *fx)
 {
 	RegionView3D *rv3d = ar->regiondata;
 	Base *base;
@@ -2817,16 +2817,16 @@ static void view3d_draw_objects(
 	if (v3d->afterdraw_transp.first)     view3d_draw_transp(scene, ar, v3d);
 
 	/* always do that here to cleanup depth buffers if none needed */
-	if (do_compositing) {
+	if (fx) {
 		do_composite_xray = v3d->zbuf && (v3d->afterdraw_xray.first || v3d->afterdraw_xraytransp.first);
-		GPU_fx_compositor_setup_XRay_pass(rv3d->compositor, do_composite_xray);
+		GPU_fx_compositor_setup_XRay_pass(fx, do_composite_xray);
 	}
 
 	if (v3d->afterdraw_xray.first)       view3d_draw_xray(scene, ar, v3d, &xrayclear);
 	if (v3d->afterdraw_xraytransp.first) view3d_draw_xraytransp(scene, ar, v3d, xrayclear);
 
-	if (do_compositing && do_composite_xray) {
-		GPU_fx_compositor_XRay_resolve(rv3d->compositor);
+	if (fx && do_composite_xray) {
+		GPU_fx_compositor_XRay_resolve(fx);
 	}
 
 	if (!draw_offscreen) {
@@ -3133,7 +3133,7 @@ void ED_view3d_draw_offscreen(
 	}
 
 	/* main drawing call */
-	view3d_draw_objects(NULL, scene, v3d, ar, NULL, do_bgpic, true, do_compositing);
+	view3d_draw_objects(NULL, scene, v3d, ar, NULL, do_bgpic, true, fx);
 
 	/* post process */
 	if (do_compositing) {
@@ -3563,7 +3563,7 @@ static void view3d_main_area_draw_objects(const bContext *C, Scene *scene, View3
 	}
 
 	/* main drawing call */
-	view3d_draw_objects(C, scene, v3d, ar, grid_unit, true, false, do_compositing);
+	view3d_draw_objects(C, scene, v3d, ar, grid_unit, true, false, do_compositing ? rv3d->compositor : NULL);
 
 	/* post process */
 	if (do_compositing) {
diff --git a/source/blender/gpu/SConscript b/source/blender/gpu/SConscript
index 158cfb6..f52b39d 100644
--- a/source/blender/gpu/SConscript
+++ b/source/blender/gpu/SConscript
@@ -68,6 +68,7 @@ sources.extend((
     os.path.join(env['DATA_SOURCES'], "gpu_shader_fx_ssao_frag.glsl.c"),
     os.path.join(env['DATA_SOURCES'], "gpu_shader_fx_dof_frag.glsl.c"),
     os.path.join(env['DATA_SOURCES'], "gpu_shader_fx_dof_vert.glsl.c"),
+    os.path.join(env['DATA_SOURCES'], "gpu_shader_fx_depth_resolve.glsl.c"),
     os.path.join(env['DATA_SOURCES'], "gpu_shader_fx_lib.glsl.c"),
     os.path.join(env['DATA_SOURCES'], "gpu_shader_fx_vert.glsl.c"),
     os.path.join(env['DATA_SOURCES'], "gpu_shader_material.glsl.c"),




More information about the Bf-blender-cvs mailing list