From 754fb6b9074a7785da8af2d6615c0e92900fb5fa Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 14 Sep 2015 13:13:44 +1000 Subject: Revert "Fix crash in opengl render caused..." This reverts commit d64b1221c67846bb954855a19c8dd093b83adc8e. While this prevents the crash, offscreen renders still aren't working right. --- source/blender/editors/render/render_opengl.c | 8 ++++---- source/blender/gpu/GPU_extensions.h | 2 -- source/blender/gpu/intern/gpu_extensions.c | 6 ------ 3 files changed, 4 insertions(+), 12 deletions(-) (limited to 'source') diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 1654382e7fc..c718dfa9229 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 3a668c3a4fb..f3927ba960b 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 e69c74bbef8..a6a34296ca2 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; -- cgit v1.2.3