mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-06-03 18:37:40 +00:00
Check if GL_OES_EGL_image_external is supported before trying to use it
This commit is contained in:
parent
7ec13a2ead
commit
dd9b9d4513
1 changed files with 12 additions and 4 deletions
|
@ -173,6 +173,7 @@ typedef struct GLES2_RenderData
|
||||||
|
|
||||||
bool debug_enabled;
|
bool debug_enabled;
|
||||||
|
|
||||||
|
bool GL_OES_EGL_image_external_supported;
|
||||||
bool GL_EXT_blend_minmax_supported;
|
bool GL_EXT_blend_minmax_supported;
|
||||||
|
|
||||||
#define SDL_PROC(ret, func, params) ret (APIENTRY *func) params;
|
#define SDL_PROC(ret, func, params) ret (APIENTRY *func) params;
|
||||||
|
@ -1623,9 +1624,12 @@ static bool GLES2_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
|
||||||
#endif
|
#endif
|
||||||
#ifdef GL_TEXTURE_EXTERNAL_OES
|
#ifdef GL_TEXTURE_EXTERNAL_OES
|
||||||
case SDL_PIXELFORMAT_EXTERNAL_OES:
|
case SDL_PIXELFORMAT_EXTERNAL_OES:
|
||||||
|
if (renderdata->GL_OES_EGL_image_external_supported) {
|
||||||
format = GL_NONE;
|
format = GL_NONE;
|
||||||
type = GL_NONE;
|
type = GL_NONE;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
SDL_FALLTHROUGH;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
return SDL_SetError("Texture format not supported");
|
return SDL_SetError("Texture format not supported");
|
||||||
|
@ -2249,7 +2253,11 @@ static bool GLES2_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
|
||||||
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_NV21);
|
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_NV21);
|
||||||
#endif
|
#endif
|
||||||
#ifdef GL_TEXTURE_EXTERNAL_OES
|
#ifdef GL_TEXTURE_EXTERNAL_OES
|
||||||
if (GLES2_CacheShader(data, GLES2_SHADER_FRAGMENT_TEXTURE_EXTERNAL_OES, GL_FRAGMENT_SHADER)) {
|
if (SDL_GL_ExtensionSupported("GL_OES_EGL_image_external")) {
|
||||||
|
data->GL_OES_EGL_image_external_supported = true;
|
||||||
|
if (!GLES2_CacheShader(data, GLES2_SHADER_FRAGMENT_TEXTURE_EXTERNAL_OES, GL_FRAGMENT_SHADER)) {
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_EXTERNAL_OES);
|
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_EXTERNAL_OES);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue