# HG changeset patch # User Sam Lantinga # Date 1258529700 0 # Node ID 0f969d273f65436ffe2353f70327f015bfbba4ec # Parent de72b49bb6953aa935d022e3233d413f6b1cfa1d First pass (untested) at RenderWritePixels() diff -r de72b49bb695 -r 0f969d273f65 src/video/SDL_glfuncs.h --- a/src/video/SDL_glfuncs.h Wed Nov 18 07:34:05 2009 +0000 +++ b/src/video/SDL_glfuncs.h Wed Nov 18 07:35:00 2009 +0000 @@ -291,7 +291,7 @@ 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 -r de72b49bb695 -r 0f969d273f65 src/video/SDL_renderer_gl.c --- a/src/video/SDL_renderer_gl.c Wed Nov 18 07:34:05 2009 +0000 +++ b/src/video/SDL_renderer_gl.c Wed Nov 18 07:35:00 2009 +0000 @@ -1273,9 +1273,9 @@ } 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 @@ 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; }