summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorEgor <egor.yusov@gmail.com>2019-02-16 21:52:05 +0000
committerEgor <egor.yusov@gmail.com>2019-02-16 21:52:05 +0000
commitb86ce3034093752225d73cba23c67ef063a02133 (patch)
tree41796831050fa164b2ee9b5ef2c2dc44e508981e /Graphics/GraphicsEngineOpenGL
parentFixed GLES3.0 context on Android (diff)
downloadDiligentCore-b86ce3034093752225d73cba23c67ef063a02133.tar.gz
DiligentCore-b86ce3034093752225d73cba23c67ef063a02133.zip
Updated GL functions loading on Android
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/GLStubsAndroid.h36
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/GLStubsAndroid.cpp56
2 files changed, 85 insertions, 7 deletions
diff --git a/Graphics/GraphicsEngineOpenGL/include/GLStubsAndroid.h b/Graphics/GraphicsEngineOpenGL/include/GLStubsAndroid.h
index d51434fb..fe48ae50 100644
--- a/Graphics/GraphicsEngineOpenGL/include/GLStubsAndroid.h
+++ b/Graphics/GraphicsEngineOpenGL/include/GLStubsAndroid.h
@@ -923,15 +923,8 @@ void UnsupportedGLFunctionStub( const T &Name )
LOG_ERROR_MESSAGE( Name, "() is not supported in this API!\n" );
}
-#define glDrawElementsInstancedBaseVertexBaseInstance(...) UnsupportedGLFunctionStub("glDrawElementsInstancedBaseVertexBaseInstance")
-#define glDrawElementsInstancedBaseVertex(...) UnsupportedGLFunctionStub("glDrawElementsInstancedBaseVertex")
-#define glDrawElementsInstancedBaseInstance(...) UnsupportedGLFunctionStub("glDrawElementsInstancedBaseInstance")
-#define glDrawArraysInstancedBaseInstance(...) UnsupportedGLFunctionStub("glDrawArraysInstancedBaseInstance")
-#define glDrawElementsBaseVertex(...) UnsupportedGLFunctionStub("glDrawElementsBaseVertex")
-#define glTextureView(...) UnsupportedGLFunctionStub("glTextureView")
#define glTexStorage1D(...) UnsupportedGLFunctionStub("glTexStorage1D")
#define glTexSubImage1D(...) UnsupportedGLFunctionStub("glTexSubImage1D")
-#define glTexStorage3DMultisample(...) UnsupportedGLFunctionStub("glTexStorage3DMultisample")
#ifndef GL_ES_VERSION_3_1
@@ -1049,4 +1042,33 @@ extern PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
typedef void (GL_APIENTRY* PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
extern PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
+#define LOAD_GL_TEX_STORAGE_3D_MULTISAMPLE
+typedef void (GL_APIENTRY* PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+extern PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
+
+#define LOAD_GL_TEXTURE_VIEW
+typedef void (GL_APIENTRY* PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+extern PFNGLTEXTUREVIEWPROC glTextureView;
+
+
+#define LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_VERTEX_BASE_INSTANCE
+typedef void (GL_APIENTRY* PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glDrawElementsInstancedBaseVertexBaseInstance;
+
+#define LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_VERTEX
+typedef void (GL_APIENTRY* PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
+extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
+
+#define LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_INSTANCE
+typedef void (GL_APIENTRY* PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
+extern PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glDrawElementsInstancedBaseInstance;
+
+#define LOAD_GL_DRAW_ARRAYS_INSTANCED_BASE_INSTANCE
+typedef void (GL_APIENTRY* PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+extern PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glDrawArraysInstancedBaseInstance;
+
+#define LOAD_GL_DRAW_ELEMENTS_BASE_VERTEX
+typedef void (GL_APIENTRY* PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+extern PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
+
void LoadGLFunctions();
diff --git a/Graphics/GraphicsEngineOpenGL/src/GLStubsAndroid.cpp b/Graphics/GraphicsEngineOpenGL/src/GLStubsAndroid.cpp
index 32d83727..a2d3f4ff 100644
--- a/Graphics/GraphicsEngineOpenGL/src/GLStubsAndroid.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/GLStubsAndroid.cpp
@@ -152,6 +152,34 @@
DECLARE_GL_FUNCTION( glGetTexLevelParameteriv, PFNGLGETTEXLEVELPARAMETERIVPROC, GLenum target, GLint level, GLenum pname, GLint *params )
#endif
+#ifdef LOAD_GL_TEX_STORAGE_3D_MULTISAMPLE
+ DECLARE_GL_FUNCTION( glTexStorage3DMultisample, PFNGLTEXSTORAGE3DMULTISAMPLEPROC, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
+#endif
+
+#ifdef LOAD_GL_TEXTURE_VIEW
+ DECLARE_GL_FUNCTION( glTextureView, PFNGLTEXTUREVIEWPROC, GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
+#endif
+
+#ifdef LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_VERTEX_BASE_INSTANCE
+ DECLARE_GL_FUNCTION( glDrawElementsInstancedBaseVertexBaseInstance, PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
+#endif
+
+#ifdef LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_VERTEX
+ DECLARE_GL_FUNCTION( glDrawElementsInstancedBaseVertex, PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)
+#endif
+
+#ifdef LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_INSTANCE
+ DECLARE_GL_FUNCTION( glDrawElementsInstancedBaseInstance, PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance)
+#endif
+
+#ifdef LOAD_GL_DRAW_ARRAYS_INSTANCED_BASE_INSTANCE
+ DECLARE_GL_FUNCTION( glDrawArraysInstancedBaseInstance, PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
+#endif
+
+#ifdef LOAD_GL_DRAW_ELEMENTS_BASE_VERTEX
+ DECLARE_GL_FUNCTION( glDrawElementsBaseVertex, PFNGLDRAWELEMENTSBASEVERTEXPROC, GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)
+#endif
+
void LoadGLFunctions()
{
@@ -280,4 +308,32 @@ Func = (FuncType)eglGetProcAddress( #Func );\
#ifdef LOAD_GET_TEX_LEVEL_PARAMETER_IV
LOAD_GL_FUNCTION(glGetTexLevelParameteriv, PFNGLGETTEXLEVELPARAMETERIVPROC)
#endif
+
+#ifdef LOAD_GL_TEX_STORAGE_3D_MULTISAMPLE
+ LOAD_GL_FUNCTION(glTexStorage3DMultisample, PFNGLTEXSTORAGE3DMULTISAMPLEPROC)
+#endif
+
+#ifdef LOAD_GL_TEXTURE_VIEW
+ LOAD_GL_FUNCTION( glTextureView, PFNGLTEXTUREVIEWPROC)
+#endif
+
+#ifdef LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_VERTEX_BASE_INSTANCE
+ LOAD_GL_FUNCTION( glDrawElementsInstancedBaseVertexBaseInstance, PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)
+#endif
+
+#ifdef LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_VERTEX
+ LOAD_GL_FUNCTION( glDrawElementsInstancedBaseVertex, PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)
+#endif
+
+#ifdef LOAD_GL_DRAW_ELEMENTS_INSTANCED_BASE_INSTANCE
+ LOAD_GL_FUNCTION( glDrawElementsInstancedBaseInstance, PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)
+#endif
+
+#ifdef LOAD_GL_DRAW_ARRAYS_INSTANCED_BASE_INSTANCE
+ LOAD_GL_FUNCTION( glDrawArraysInstancedBaseInstance, PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)
+#endif
+
+#ifdef LOAD_GL_DRAW_ELEMENTS_BASE_VERTEX
+ LOAD_GL_FUNCTION( glDrawElementsBaseVertex, PFNGLDRAWELEMENTSBASEVERTEXPROC)
+#endif
}