瀏覽代碼

opengles2: SDL_GL_BindTexture() should bind all YUV textures.

This matches what the non-GLES OpenGL renderer does.

Fixes #6070.
Ryan C. Gordon 2 年之前
父節點
當前提交
01c5554f0e
共有 1 個文件被更改,包括 17 次插入0 次删除
  1. 17 0
      src/render/opengles2/SDL_render_gles2.c

+ 17 - 0
src/render/opengles2/SDL_render_gles2.c

@@ -2024,6 +2024,23 @@ static int GLES2_BindTexture (SDL_Renderer * renderer, SDL_Texture *texture, flo
     GLES2_TextureData *texturedata = (GLES2_TextureData *)texture->driverdata;
     GLES2_ActivateRenderer(renderer);
 
+#if SDL_HAVE_YUV
+    if (texturedata->yuv) {
+        data->glActiveTexture(GL_TEXTURE2);
+        data->glBindTexture(texturedata->texture_type, texturedata->texture_v);
+
+        data->glActiveTexture(GL_TEXTURE1);
+        data->glBindTexture(texturedata->texture_type, texturedata->texture_u);
+
+        data->glActiveTexture(GL_TEXTURE0);
+    } else if (texturedata->nv12) {
+        data->glActiveTexture(GL_TEXTURE1);
+        data->glBindTexture(texturedata->texture_type, texturedata->texture_u);
+
+        data->glActiveTexture(GL_TEXTURE0);
+    }
+#endif
+
     data->glBindTexture(texturedata->texture_type, texturedata->texture);
     data->drawstate.texture = texture;