Add support for some GLES extensions

* GL_OES_depth24
* GL_OES_depth32
* GL_OES_depth_texture
* GL_OES_depth_texture_cube_map
* GL_OES_fbo_render_mipmap
* GL_OES_packed_depth_stencil
* GL_OES_texture_3D
* GL_OES_texture_npot
* GL_OES_vertex_half_float
This commit is contained in:
Janos Pantos
2017-07-18 09:50:51 -07:00
committed by Baldur Karlsson
parent 6ad59c94a3
commit 94efd7bf0c
3 changed files with 23 additions and 20 deletions
+11 -2
View File
@@ -729,6 +729,7 @@ void WrappedOpenGL::BuildGLESExtensions()
{
m_GLESExtensions.push_back("GL_ARM_rgba8");
m_GLESExtensions.push_back("GL_EXT_base_instance");
m_GLESExtensions.push_back("GL_EXT_blend_minmax");
m_GLESExtensions.push_back("GL_EXT_clip_cull_distance");
m_GLESExtensions.push_back("GL_EXT_color_buffer_float");
m_GLESExtensions.push_back("GL_EXT_color_buffer_half_float");
@@ -736,10 +737,9 @@ void WrappedOpenGL::BuildGLESExtensions()
m_GLESExtensions.push_back("GL_EXT_debug_label");
m_GLESExtensions.push_back("GL_EXT_debug_marker");
m_GLESExtensions.push_back("GL_EXT_disjoint_timer_query");
m_GLESExtensions.push_back("GL_EXT_blend_minmax");
m_GLESExtensions.push_back("GL_EXT_draw_buffers");
m_GLESExtensions.push_back("GL_EXT_draw_elements_base_vertex");
m_GLESExtensions.push_back("GL_EXT_draw_buffers_indexed");
m_GLESExtensions.push_back("GL_EXT_draw_elements_base_vertex");
m_GLESExtensions.push_back("GL_EXT_geometry_point_size");
m_GLESExtensions.push_back("GL_EXT_geometry_shader");
m_GLESExtensions.push_back("GL_EXT_gpu_shader5");
@@ -786,15 +786,22 @@ void WrappedOpenGL::BuildGLESExtensions()
m_GLESExtensions.push_back("GL_KHR_texture_compression_astc_sliced_3d");
m_GLESExtensions.push_back("GL_OES_compressed_ETC1_RGB8_texture");
m_GLESExtensions.push_back("GL_OES_copy_image");
m_GLESExtensions.push_back("GL_OES_depth24");
m_GLESExtensions.push_back("GL_OES_depth32");
m_GLESExtensions.push_back("GL_OES_depth_texture");
m_GLESExtensions.push_back("GL_OES_depth_texture_cube_map");
m_GLESExtensions.push_back("GL_OES_draw_elements_base_vertex");
m_GLESExtensions.push_back("GL_OES_fbo_render_mipmap");
m_GLESExtensions.push_back("GL_OES_geometry_shader");
m_GLESExtensions.push_back("GL_OES_gpu_shader5");
m_GLESExtensions.push_back("GL_OES_mapbuffer");
m_GLESExtensions.push_back("GL_OES_packed_depth_stencil");
m_GLESExtensions.push_back("GL_OES_primitive_bounding_box");
m_GLESExtensions.push_back("GL_OES_rgb8_rgba8");
m_GLESExtensions.push_back("GL_OES_sample_shading");
m_GLESExtensions.push_back("GL_OES_standard_derivatives");
m_GLESExtensions.push_back("GL_OES_tessellation_shader");
m_GLESExtensions.push_back("GL_OES_texture_3D");
m_GLESExtensions.push_back("GL_OES_texture_border_clamp");
m_GLESExtensions.push_back("GL_OES_texture_buffer");
m_GLESExtensions.push_back("GL_OES_texture_compression_astc");
@@ -802,9 +809,11 @@ void WrappedOpenGL::BuildGLESExtensions()
m_GLESExtensions.push_back("GL_OES_texture_float_linear");
m_GLESExtensions.push_back("GL_OES_texture_half_float");
m_GLESExtensions.push_back("GL_OES_texture_half_float_linear");
m_GLESExtensions.push_back("GL_OES_texture_npot");
m_GLESExtensions.push_back("GL_OES_texture_stencil8");
m_GLESExtensions.push_back("GL_OES_texture_storage_multisample_2d_array");
m_GLESExtensions.push_back("GL_OES_vertex_array_object");
m_GLESExtensions.push_back("GL_OES_vertex_half_float");
// we'll be sorting the implementation extension array, so make sure the
// sorts are identical so we can do the intersection easily
+6 -6
View File
@@ -113,24 +113,24 @@ struct GLHookSet
PFNGLTEXSTORAGE3DPROC glTexStorage3D;
PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample; // aliases glTexStorage3DMultisampleOES
PFNGLTEXIMAGE3DPROC glTexImage3D; // aliases glTexImage3DEXT
PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
PFNGLTEXIMAGE3DPROC glTexImage3D; // aliases glTexImage3DEXT, glTexImage3DOES
PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D; // aliases glTexSubImage3DOES
PFNGLTEXBUFFERPROC glTexBuffer; // aliases glTexBufferARB, glTexBufferEXT, glTexBufferOES
PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample;
PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D; // aliases glCompressedTexImage1DARB
PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D; // aliases glCompressedTexImage2DARB
PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D; // aliases glCompressedTexImage3DARB
PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D; // aliases glCompressedTexImage3DARB, glCompressedTexImage3DOES
PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D; // aliases glCompressedTexSubImage1DARB
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D; // aliases glCompressedTexSubImage2DARB
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D; // aliases glCompressedTexSubImage3DARB
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D; // aliases glCompressedTexSubImage3DARB, glCompressedTexSubImage3DOES
PFNGLTEXBUFFERRANGEPROC glTexBufferRange; // aliases glTexBufferRangeEXT, glTexBufferRangeOES
PFNGLTEXTUREVIEWPROC glTextureView;
PFNGLTEXPARAMETERIIVPROC glTexParameterIiv; // aliases glTexParameterIivEXT, glTexParameterIivOES
PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv; // aliases glTexParameterIuivEXT, glTexParameterIuivOES
PFNGLGENERATEMIPMAPPROC glGenerateMipmap; // aliases glGenerateMipmapEXT
PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData; // aliases glCopyImageSubDataEXT, glCopyImageSubDataOES
PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D; // aliases glCopyTexSubImage3DOES
PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ;
PFNGLGETINTERNALFORMATI64VPROC glGetInternalformati64v;
PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv; // aliases glGetBufferParameterivARB
@@ -298,7 +298,7 @@ struct GLHookSet
PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture; // aliases glFramebufferTextureARB, glFramebufferTextureOES, glFramebufferTextureEXT
PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D; // aliases glFramebufferTexture1DEXT
PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D; // aliases glFramebufferTexture2DEXT
PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D; // aliases glFramebufferTexture3DEXT
PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D; // aliases glFramebufferTexture3DEXT, glFramebufferTexture3DOES
PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer; // aliases glFramebufferRenderbufferEXT
PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer; // aliases glFramebufferTextureLayerARB, glFramebufferTextureLayerEXT
PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri;
+6 -12
View File
@@ -106,20 +106,25 @@
HookExtensionAlias(PFNGLDRAWRANGEELEMENTSPROC, glDrawRangeElements, glDrawRangeElementsEXT); \
HookExtension(PFNGLTEXIMAGE3DPROC, glTexImage3D); \
HookExtensionAlias(PFNGLTEXIMAGE3DPROC, glTexImage3D, glTexImage3DEXT); \
HookExtensionAlias(PFNGLTEXIMAGE3DPROC, glTexImage3D, glTexImage3DOES); \
HookExtension(PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D); \
HookExtensionAlias(PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D, glTexSubImage3DOES); \
HookExtension(PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D); \
HookExtensionAlias(PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D, glCopyTexSubImage3DOES); \
HookExtension(PFNGLACTIVETEXTUREPROC, glActiveTexture); \
HookExtensionAlias(PFNGLACTIVETEXTUREPROC, glActiveTexture, glActiveTextureARB); \
HookExtension(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage); \
HookExtensionAlias(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage, glSampleCoverageARB); \
HookExtension(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D); \
HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D, glCompressedTexImage3DARB); \
HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D, glCompressedTexImage3DOES); \
HookExtension(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D); \
HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D, glCompressedTexImage2DARB); \
HookExtension(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D); \
HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D, glCompressedTexImage1DARB); \
HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D); \
HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D, glCompressedTexSubImage3DARB); \
HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D, glCompressedTexSubImage3DOES); \
HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D); \
HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D, glCompressedTexSubImage2DARB); \
HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D); \
@@ -476,6 +481,7 @@
HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D, glFramebufferTexture2DEXT); \
HookExtension(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D); \
HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D, glFramebufferTexture3DEXT); \
HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D, glFramebufferTexture3DOES); \
HookExtension(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer); \
HookExtensionAlias(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer, glFramebufferRenderbufferEXT); \
HookExtension(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetFramebufferAttachmentParameteriv); \
@@ -3574,12 +3580,6 @@
HookWrapper6(void, gldrawelementsinstancedbasevertexoes, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex); \
HookWrapper5(void, glgetprogrambinaryoes, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLenum *, binaryFormat, void *, binary); \
HookWrapper4(void, glprogrambinaryoes, GLuint, program, GLenum, binaryFormat, const void *, binary, GLint, length); \
HookWrapper10(void, glteximage3does, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
HookWrapper11(void, gltexsubimage3does, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
HookWrapper9(void, glcopytexsubimage3does, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
HookWrapper9(void, glcompressedteximage3does, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, data); \
HookWrapper11(void, glcompressedtexsubimage3does, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, data); \
HookWrapper6(void, glframebuffertexture3does, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLint, zoffset); \
HookWrapper8(void, gltextureviewoes, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \
HookWrapper3(void, glviewportarrayvoes, GLuint, first, GLsizei, count, const GLfloat *, v); \
HookWrapper5(void, glviewportindexedfoes, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, w, GLfloat, h); \
@@ -5546,12 +5546,6 @@
HandleUnsupported(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC, gldrawelementsinstancedbasevertexoes); \
HandleUnsupported(PFNGLGETPROGRAMBINARYOESPROC, glgetprogrambinaryoes); \
HandleUnsupported(PFNGLPROGRAMBINARYOESPROC, glprogrambinaryoes); \
HandleUnsupported(PFNGLTEXIMAGE3DOESPROC, glteximage3does); \
HandleUnsupported(PFNGLTEXSUBIMAGE3DOESPROC, gltexsubimage3does); \
HandleUnsupported(PFNGLCOPYTEXSUBIMAGE3DOESPROC, glcopytexsubimage3does); \
HandleUnsupported(PFNGLCOMPRESSEDTEXIMAGE3DOESPROC, glcompressedteximage3does); \
HandleUnsupported(PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC, glcompressedtexsubimage3does); \
HandleUnsupported(PFNGLFRAMEBUFFERTEXTURE3DOESPROC, glframebuffertexture3does); \
HandleUnsupported(PFNGLTEXTUREVIEWOESPROC, gltextureviewoes); \
HandleUnsupported(PFNGLVIEWPORTARRAYVOESPROC, glviewportarrayvoes); \
HandleUnsupported(PFNGLVIEWPORTINDEXEDFOESPROC, glviewportindexedfoes); \