From 3bbf955bdf38545270639302966b9824243beb2b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 18 Nov 2009 07:35:00 +0000 Subject: [PATCH] First pass (untested) at RenderWritePixels() --- src/video/SDL_glfuncs.h | 2 +- src/video/SDL_renderer_gl.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/video/SDL_glfuncs.h b/src/video/SDL_glfuncs.h index 1d385cc6f..c6ecce1e4 100644 --- a/src/video/SDL_glfuncs.h +++ b/src/video/SDL_glfuncs.h @@ -291,7 +291,7 @@ SDL_PROC_UNUSED(void, glRasterPos2d, (GLdouble x, GLdouble y)) SDL_PROC_UNUSED(void, glRasterPos2dv, (const GLdouble * v)) SDL_PROC_UNUSED(void, glRasterPos2f, (GLfloat x, GLfloat y)) SDL_PROC_UNUSED(void, glRasterPos2fv, (const GLfloat * v)) -SDL_PROC_UNUSED(void, glRasterPos2i, (GLint x, GLint y)) +SDL_PROC(void, glRasterPos2i, (GLint x, GLint y)) SDL_PROC_UNUSED(void, glRasterPos2iv, (const GLint * v)) SDL_PROC_UNUSED(void, glRasterPos2s, (GLshort x, GLshort y)) SDL_PROC_UNUSED(void, glRasterPos2sv, (const GLshort * v)) diff --git a/src/video/SDL_renderer_gl.c b/src/video/SDL_renderer_gl.c index 833683aac..8e419ce00 100644 --- a/src/video/SDL_renderer_gl.c +++ b/src/video/SDL_renderer_gl.c @@ -1273,9 +1273,9 @@ GL_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect, } else if (pixel_format == SDL_PIXELFORMAT_INDEX1MSB) { data->glPixelStorei(GL_PACK_LSB_FIRST, 0); } - //data->glPixelStorei(GL_PACK_ALIGNMENT, 1); - //data->glPixelStorei(GL_PACK_ROW_LENGTH, - // (pitch / bytes_per_pixel(pixel_format))); + 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); @@ -1325,8 +1325,8 @@ GL_RenderWritePixels(SDL_Renderer * renderer, const SDL_Rect * rect, data->glPixelStorei(GL_UNPACK_ROW_LENGTH, (pitch / bytes_per_pixel(pixel_format))); - data->glReadPixels(rect->x, rect->y+rect->h-1, rect->w, rect->h, - format, type, pixels); + data->glRasterPos2i(rect->x, rect->y); + data->glDrawPixels(rect->w, rect->h, format, type, pixels); return 0; }