diff --git a/gfx/common/gl_common.c b/gfx/common/gl_common.c index b9f07a5469..420576986e 100644 --- a/gfx/common/gl_common.c +++ b/gfx/common/gl_common.c @@ -51,6 +51,22 @@ void gl_ff_matrix(const math_matrix_4x4 *mat) #endif } +void size_format(GLint* internalFormat) +{ + switch (*internalFormat) + { + case GL_RGB: + *internalFormat = GL_RGB565; + break; + case GL_RGBA: +#ifdef HAVE_OPENGLES2 + *internalFormat = GL_RGBA8_OES; +#else + *internalFormat = GL_RGBA8; +#endif + break; + } +} /* This function should only be used without mipmaps and when data == NULL */ void gl_load_texture_image(GLenum target, @@ -67,36 +83,23 @@ void gl_load_texture_image(GLenum target, #ifdef HAVE_OPENGLES2 if (gl_check_capability(GL_CAPS_TEX_STORAGE_EXT)) { - switch (internalFormat) - { - case GL_RGB: - internalFormat = GL_RGB565; - break; - case GL_RGBA: - internalFormat = GL_RGBA8_OES; - break; - case GL_BGRA_EXT: - internalFormat = GL_BGRA8_EXT; - break; - } + size_format(&internalFormat); glTexStorage2DEXT(target, 1, internalFormat, width, height); } #else if (gl_check_capability(GL_CAPS_TEX_STORAGE)) { - switch (internalFormat) - { - case GL_RGB: - internalFormat = GL_RGB565; - break; - case GL_RGBA: - internalFormat = GL_RGBA8; - break; - } + size_format(&internalFormat); glTexStorage2D(target, 1, internalFormat, width, height); } #endif else #endif + { +#ifdef HAVE_OPENGLES + if (gl_check_capability(GL_CAPS_GLES3_SUPPORTED)) +#endif + size_format(&internalFormat); glTexImage2D(target, level, internalFormat, width, height, border, format, type, data); + } } diff --git a/gfx/drivers/gl_symlinks.h b/gfx/drivers/gl_symlinks.h index 6e43c96654..3b469b98dc 100644 --- a/gfx/drivers/gl_symlinks.h +++ b/gfx/drivers/gl_symlinks.h @@ -121,12 +121,7 @@ #ifndef GL_BGRA8_EXT #define GL_BGRA8_EXT 0x93A1 #endif -#ifdef IOS -/* Stupid Apple. */ #define RARCH_GL_INTERNAL_FORMAT32 GL_RGBA -#else -#define RARCH_GL_INTERNAL_FORMAT32 GL_BGRA_EXT -#endif #define RARCH_GL_INTERNAL_FORMAT16 GL_RGB #define RARCH_GL_TEXTURE_TYPE32 GL_BGRA_EXT #define RARCH_GL_TEXTURE_TYPE16 GL_RGB