diff -r c9be8299ba6b src/render/opengles2/SDL_render_gles2.c --- a/src/render/opengles2/SDL_render_gles2.c Tue Jun 24 01:38:21 2014 -0700 +++ b/src/render/opengles2/SDL_render_gles2.c Tue Jun 24 17:26:30 2014 -0300 @@ -622,6 +622,24 @@ GLES2_DriverContext *data = (GLES2_DriverContext *)renderer->driverdata; GLES2_TextureData *tdata = (GLES2_TextureData *)texture->driverdata; + if(texture->format == SDL_PIXELFORMAT_YV12) + { + return GLES2_UpdateTextureYUV(renderer, texture, + rect, + /* Y */ pixels, texture->w, + /* U */ pixels+(texture->w*texture->h)+(texture->w*texture->h/4), texture->w/2, + /* V */ pixels+(texture->w*texture->h), texture->w/2); + } + + if(texture->format == SDL_PIXELFORMAT_IYUV) + { + return GLES2_UpdateTextureYUV(renderer, texture, + rect, + /* Y */ pixels, texture->w, + /* U */ pixels+(texture->w*texture->h), texture->w/2, + /* V */ pixels+(texture->w*texture->h)+(texture->w*texture->h/4), texture->w/2); + } + GLES2_ActivateRenderer(renderer); /* Bail out if we're supposed to update an empty rectangle */ @@ -686,7 +704,7 @@ rect->h, tdata->pixel_format, tdata->pixel_type, - Vplane, Vpitch, 1); + Yplane, Ypitch, 1); return GL_CheckError("glTexSubImage2D()", renderer); }