mirror of
https://github.com/yawut/SDL.git
synced 2026-08-21 16:24:37 -05:00
Fixed GL_RenderReadPixels() - thanks Ryan!
This commit is contained in:
@@ -1257,6 +1257,7 @@ GL_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
|
||||
Uint32 pixel_format, void * pixels, int pitch)
|
||||
{
|
||||
GL_RenderData *data = (GL_RenderData *) renderer->driverdata;
|
||||
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
|
||||
GLint internalFormat;
|
||||
GLenum format, type;
|
||||
Uint8 *src, *dst, *tmp;
|
||||
@@ -1276,13 +1277,10 @@ GL_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
|
||||
data->glPixelStorei(GL_PACK_ALIGNMENT, 1);
|
||||
data->glPixelStorei(GL_PACK_ROW_LENGTH,
|
||||
(pitch / bytes_per_pixel(pixel_format)));
|
||||
data->glReadBuffer(GL_FRONT);
|
||||
|
||||
memset(pixels, 0xff, rect->h*pitch);
|
||||
data->glReadPixels(rect->x, rect->y+rect->h-1, rect->w, rect->h,
|
||||
data->glReadPixels(rect->x, (window->h-rect->y)-rect->h, rect->w, rect->h,
|
||||
format, type, pixels);
|
||||
|
||||
#if 0
|
||||
/* Flip the rows to be top-down */
|
||||
length = rect->w * bytes_per_pixel(pixel_format);
|
||||
src = (Uint8*)pixels + (rect->h-1)*pitch;
|
||||
@@ -1293,9 +1291,10 @@ memset(pixels, 0xff, rect->h*pitch);
|
||||
SDL_memcpy(tmp, dst, length);
|
||||
SDL_memcpy(dst, src, length);
|
||||
SDL_memcpy(src, tmp, length);
|
||||
dst += pitch;
|
||||
src -= pitch;
|
||||
}
|
||||
SDL_stack_free(tmp);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user