Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fixed bug 1315 - Greenish video when video size smaller than texture
The incoming pixels are contiguous for the update rectangle.
- Loading branch information
Showing
with
2 additions
and
10 deletions.
-
+2
−10
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 { |
|
|