From 68d7460b553bf50902cbe817f4a436b46f97aee6 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 30 Dec 2011 18:18:42 -0500 Subject: [PATCH] Fixed bug 1315 - Greenish video when video size smaller than texture The incoming pixels are contiguous for the update rectangle. --- src/render/opengl/SDL_render_gl.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index 320044645..560d88b1a 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -569,15 +569,10 @@ GL_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, rect->h, data->format, data->formattype, pixels); if (data->yuv) { - const void *top; - renderdata->glPixelStorei(GL_UNPACK_ROW_LENGTH, (pitch / 2)); - /* Skip to the top of the next texture */ - top = (const void*)((const Uint8*)pixels + (texture->h-rect->y) * pitch - rect->x); - /* Skip to the correct offset into the next texture */ - pixels = (const void*)((const Uint8*)top + (rect->y / 2) * pitch + rect->x / 2); + pixels = (const void*)((const Uint8*)pixels + rect->h * pitch); if (texture->format == SDL_PIXELFORMAT_YV12) { renderdata->glBindTexture(data->type, data->vtexture); } else { @@ -587,11 +582,8 @@ GL_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, rect->w/2, rect->h/2, data->format, data->formattype, pixels); - /* Skip to the top of the next texture */ - top = (const void*)((const Uint8*)top + (texture->h * pitch)/4); - /* Skip to the correct offset into the next texture */ - pixels = (const void*)((const Uint8*)top + (rect->y / 2) * pitch + rect->x / 2); + pixels = (const void*)((const Uint8*)pixels + (rect->h * pitch)/4); if (texture->format == SDL_PIXELFORMAT_YV12) { renderdata->glBindTexture(data->type, data->utexture); } else {