Adam Strzelecki to SDL
When graphic card has no GL_ARB_texture_rectangle YUV textures mapped with SDL_RenderCopy are stretched 2x horizontally, so only left half of texture is visible. This is due: data->texw = (GLfloat) (texture->w) / texture_w; data->texh = (GLfloat) texture->h / texture_h; But afterwards texture_w /= 2 for YUV texture, but data->texw stays as it was before, while it should be multiplied 2x. This bug can be seen in any program setting env variables: GL_APPLE_ycbcr_422=0 GL_EXT_texture_rectangle=0 GL_ARB_texture_rectangle=0 --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404468
This commit is contained in:
parent
999d46db4a
commit
6989ef71d5
1 changed files with 4 additions and 1 deletions
|
@ -829,11 +829,14 @@ GL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
|||
|
||||
/* YUV formats use RGBA but are really two bytes per pixel */
|
||||
if (internalFormat == GL_RGBA && bytes_per_pixel(texture->format) < 4) {
|
||||
texture_w /= 2;
|
||||
if (data->type == GL_TEXTURE_2D) {
|
||||
data->texw *= 2.0f;
|
||||
}
|
||||
data->HACK_RYAN_FIXME = 2;
|
||||
} else {
|
||||
data->HACK_RYAN_FIXME = 1;
|
||||
}
|
||||
texture_w /= data->HACK_RYAN_FIXME;
|
||||
|
||||
data->format = format;
|
||||
data->formattype = type;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue