[Bf-blender-cvs] [754fb6b] master: Revert "Fix crash in opengl render caused..."

Campbell Barton noreply at git.blender.org
Mon Sep 14 05:28:30 CEST 2015


Commit: 754fb6b9074a7785da8af2d6615c0e92900fb5fa
Author: Campbell Barton
Date:   Mon Sep 14 13:13:44 2015 +1000
Branches: master
https://developer.blender.org/rB754fb6b9074a7785da8af2d6615c0e92900fb5fa

Revert "Fix crash in opengl render caused..."

This reverts commit d64b1221c67846bb954855a19c8dd093b83adc8e.

While this prevents the crash, offscreen renders still aren't working right.

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

M	source/blender/editors/render/render_opengl.c
M	source/blender/gpu/GPU_extensions.h
M	source/blender/gpu/intern/gpu_extensions.c

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

diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index 1654382..c718dfa 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -324,7 +324,7 @@ static void screen_opengl_render_doit(OGLRender *oglrender, RenderResult *rr)
 			G.f &= ~G_RENDER_OGL;
 
 			gp_rect = MEM_mallocN(sizex * sizey * sizeof(unsigned char) * 4, "offscreen rect");
-			GPU_offscreen_read_pixels_wh(oglrender->ofs, sizex, sizey, GL_UNSIGNED_BYTE, gp_rect);
+			GPU_offscreen_read_pixels(oglrender->ofs, GL_UNSIGNED_BYTE, gp_rect);
 
 			BLI_assert(rectf != NULL);
 
@@ -380,7 +380,7 @@ static void screen_opengl_render_doit(OGLRender *oglrender, RenderResult *rr)
 			        scene, v3d, ar, sizex, sizey, NULL, winmat,
 			        draw_bgpic, draw_sky, is_persp,
 			        oglrender->ofs, oglrender->fx, &fx_settings, viewname);
-			GPU_offscreen_read_pixels_wh(oglrender->ofs, sizex, sizey, GL_UNSIGNED_BYTE, rect);
+			GPU_offscreen_read_pixels(oglrender->ofs, GL_UNSIGNED_BYTE, rect);
 		}
 		else {
 			/* simple accumulation, less hassle then FSAA FBO's */
@@ -396,7 +396,7 @@ static void screen_opengl_render_doit(OGLRender *oglrender, RenderResult *rr)
 			        scene, v3d, ar, sizex, sizey, NULL, winmat,
 			        draw_bgpic, draw_sky, is_persp,
 			        oglrender->ofs, oglrender->fx, &fx_settings, viewname);
-			GPU_offscreen_read_pixels_wh(oglrender->ofs, sizex, sizey, GL_UNSIGNED_BYTE, rect);
+			GPU_offscreen_read_pixels(oglrender->ofs, GL_UNSIGNED_BYTE, rect);
 
 			for (i = 0; i < sizex * sizey * 4; i++)
 				accum_buffer[i] = rect[i];
@@ -412,7 +412,7 @@ static void screen_opengl_render_doit(OGLRender *oglrender, RenderResult *rr)
 				        scene, v3d, ar, sizex, sizey, NULL, winmat_jitter,
 				        draw_bgpic, draw_sky, is_persp,
 				        oglrender->ofs, oglrender->fx, &fx_settings, viewname);
-				GPU_offscreen_read_pixels_wh(oglrender->ofs, sizex, sizey, GL_UNSIGNED_BYTE, rect);
+				GPU_offscreen_read_pixels(oglrender->ofs, GL_UNSIGNED_BYTE, rect);
 
 				for (i = 0; i < sizex * sizey * 4; i++)
 					accum_buffer[i] += rect[i];
diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h
index 3a668c3..f3927ba 100644
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@ -184,8 +184,6 @@ void GPU_offscreen_free(GPUOffScreen *ofs);
 void GPU_offscreen_bind(GPUOffScreen *ofs, bool save);
 void GPU_offscreen_unbind(GPUOffScreen *ofs, bool restore);
 void GPU_offscreen_read_pixels(GPUOffScreen *ofs, int type, void *pixels);
-void GPU_offscreen_read_pixels_wh(GPUOffScreen *ofs, int width, int height, int type, void *pixels);
-
 int GPU_offscreen_width(const GPUOffScreen *ofs);
 int GPU_offscreen_height(const GPUOffScreen *ofs);
 
diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index e69c74b..a6a3429 100644
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@ -1473,12 +1473,6 @@ void GPU_offscreen_read_pixels(GPUOffScreen *ofs, int type, void *pixels)
 	glReadPixels(0, 0, ofs->color->w, ofs->color->h, GL_RGBA, type, pixels);
 }
 
-//if non power of two textures are not supported, than ofs->w/h may not be same size as allocated *pixels
-void GPU_offscreen_read_pixels_wh(GPUOffScreen *ofs, int width, int height, int type, void *pixels)
-{
-	glReadPixels(0, 0, width, height, GL_RGBA, type, pixels);
-}
-
 int GPU_offscreen_width(const GPUOffScreen *ofs)
 {
 	return ofs->color->w;




More information about the Bf-blender-cvs mailing list