Revert "Fix crash in opengl render caused..."
This reverts commit d64b1221c6
.
While this prevents the crash, offscreen renders still aren't working right.
This commit is contained in:
parent
d64b1221c6
commit
754fb6b907
|
@ -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];
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue