From 05da51d7a86898c2f32c75b205a8c36c1e17dd4d Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Fri, 27 Jan 2017 22:35:48 +0700 Subject: [PATCH] Add EGL section to GLFunctions. --- src/Graphics/OpenGLContext/GLFunctions.cpp | 71 +++++++++++++++++++++- src/Graphics/OpenGLContext/GLFunctions.h | 30 +++++++++ 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/src/Graphics/OpenGLContext/GLFunctions.cpp b/src/Graphics/OpenGLContext/GLFunctions.cpp index 2748cf8d..62a8b82c 100644 --- a/src/Graphics/OpenGLContext/GLFunctions.cpp +++ b/src/Graphics/OpenGLContext/GLFunctions.cpp @@ -1,9 +1,12 @@ #include "GLFunctions.h" #ifdef OS_WINDOWS + #define glGetProcAddress wglGetProcAddress #define GL_GET_PROC_ADR(proc_type, proc_name) proc_name = (proc_type) glGetProcAddress(#proc_name) + #elif defined(OS_LINUX) + #include typedef XID GLXContextID; typedef XID GLXPixmap; @@ -17,13 +20,50 @@ typedef struct __GLXFBConfigRec *GLXFBConfig; #include #define glGetProcAddress glXGetProcAddress #define GL_GET_PROC_ADR(proc_type, proc_name) proc_name = (proc_type) glGetProcAddress((const GLubyte*)#proc_name) + +#elif defined(EGL) + +#include +#include +#define glGetProcAddress eglGetProcAddress +#define GL_GET_PROC_ADR(proc_type, proc_name) proc_name = (proc_type) glGetProcAddress(#proc_name) + #endif +//GL Fucntions + #ifdef OS_WINDOWS PFNGLACTIVETEXTUREPROC glActiveTexture; PFNGLBLENDCOLORPROC glBlendColor; +#elif defined(EGL) +PFNGLBLENDFUNCPROC glBlendFunc; +PFNGLPIXELSTOREIPROC glPixelStorei; +PFNGLCLEARCOLORPROC glClearColor; +PFNGLCULLFACEPROC glCullFace; +PFNGLDEPTHFUNCPROC glDepthFunc; +PFNGLDEPTHMASKPROC glDepthMask; +PFNGLDISABLEPROC glDisable; +PFNGLENABLEPROC glEnable; +PFNGLPOLYGONOFFSETPROC glPolygonOffset; +PFNGLSCISSORPROC glScissor; +PFNGLVIEWPORTPROC glViewport; +PFNGLBINDTEXTUREPROC glBindTexture; +PFNGLTEXIMAGE2DPROC glTexImage2D; +PFNGLTEXPARAMETERIPROC glTexParameteri; +PFNGLGETINTEGERVPROC glGetIntegerv; +PFNGLGETSTRINGPROC glGetString; +PFNGLREADPIXELSPROC glReadPixels; +PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D; +PFNGLDRAWARRAYSPROC glDrawArrays; +PFNGLGETERRORPROC glGetError; +PFNGLDRAWELEMENTSPROC glDrawElements; +PFNGLLINEWIDTHPROC glLineWidth; +PFNGLCLEARPROC glClear; +PFNGLGETFLOATVPROC glGetFloatv; +PFNGLDELETETEXTURESPROC glDeleteTextures; +PFNGLGENTEXTURESPROC glGenTextures; +PFNGLTEXPARAMETERFPROC glTexParameterf; #endif -// GLSL functions PFNGLCREATESHADERPROC glCreateShader; PFNGLCOMPILESHADERPROC glCompileShader; PFNGLSHADERSOURCEPROC glShaderSource; @@ -117,7 +157,36 @@ void initGLFunctions() #ifdef OS_WINDOWS GL_GET_PROC_ADR(PFNGLACTIVETEXTUREPROC, glActiveTexture); GL_GET_PROC_ADR(PFNGLBLENDCOLORPROC, glBlendColor); +#elif defined(EGL) + GL_GET_PROC_ADR(PFNGLBLENDFUNCPROC, glBlendFunc); + GL_GET_PROC_ADR(PFNGLPIXELSTOREIPROC, glPixelStorei); + GL_GET_PROC_ADR(PFNGLCLEARCOLORPROC, glClearColor); + GL_GET_PROC_ADR(PFNGLCULLFACEPROC, glCullFace); + GL_GET_PROC_ADR(PFNGLDEPTHFUNCPROC, glDepthFunc); + GL_GET_PROC_ADR(PFNGLDEPTHMASKPROC, glDepthMask); + GL_GET_PROC_ADR(PFNGLDISABLEPROC, glDisable); + GL_GET_PROC_ADR(PFNGLENABLEPROC, glEnable); + GL_GET_PROC_ADR(PFNGLPOLYGONOFFSETPROC, glPolygonOffset); + GL_GET_PROC_ADR(PFNGLSCISSORPROC, glScissor); + GL_GET_PROC_ADR(PFNGLVIEWPORTPROC, glViewport); + GL_GET_PROC_ADR(PFNGLBINDTEXTUREPROC, glBindTexture); + GL_GET_PROC_ADR(PFNGLTEXIMAGE2DPROC, glTexImage2D); + GL_GET_PROC_ADR(PFNGLTEXPARAMETERIPROC, glTexParameteri); + GL_GET_PROC_ADR(PFNGLGETINTEGERVPROC, glGetIntegerv); + GL_GET_PROC_ADR(PFNGLGETSTRINGPROC, glGetString); + GL_GET_PROC_ADR(PFNGLREADPIXELSPROC, glReadPixels); + GL_GET_PROC_ADR(PFNGLTEXSUBIMAGE2DPROC, glTexSubImage2D); + GL_GET_PROC_ADR(PFNGLDRAWARRAYSPROC, glDrawArrays); + GL_GET_PROC_ADR(PFNGLGETERRORPROC, glGetError); + GL_GET_PROC_ADR(PFNGLDRAWELEMENTSPROC, glDrawElements); + GL_GET_PROC_ADR(PFNGLLINEWIDTHPROC, glLineWidth); + GL_GET_PROC_ADR(PFNGLCLEARPROC, glClear); + GL_GET_PROC_ADR(PFNGLGETFLOATVPROC, glGetFloatv); + GL_GET_PROC_ADR(PFNGLDELETETEXTURESPROC, glDeleteTextures); + GL_GET_PROC_ADR(PFNGLGENTEXTURESPROC, glGenTextures); + GL_GET_PROC_ADR(PFNGLTEXPARAMETERFPROC, glTexParameterf); #endif + GL_GET_PROC_ADR(PFNGLCREATESHADERPROC, glCreateShader); GL_GET_PROC_ADR(PFNGLCOMPILESHADERPROC, glCompileShader); GL_GET_PROC_ADR(PFNGLSHADERSOURCEPROC, glShaderSource); diff --git a/src/Graphics/OpenGLContext/GLFunctions.h b/src/Graphics/OpenGLContext/GLFunctions.h index 8ca318e0..0def3b31 100644 --- a/src/Graphics/OpenGLContext/GLFunctions.h +++ b/src/Graphics/OpenGLContext/GLFunctions.h @@ -11,6 +11,36 @@ #include #include +#ifdef EGL +extern PFNGLBLENDFUNCPROC glBlendFunc; +extern PFNGLPIXELSTOREIPROC glPixelStorei; +extern PFNGLCLEARCOLORPROC glClearColor; +extern PFNGLCULLFACEPROC glCullFace; +extern PFNGLDEPTHFUNCPROC glDepthFunc; +extern PFNGLDEPTHMASKPROC glDepthMask; +extern PFNGLDISABLEPROC glDisable; +extern PFNGLENABLEPROC glEnable; +extern PFNGLPOLYGONOFFSETPROC glPolygonOffset; +extern PFNGLSCISSORPROC glScissor; +extern PFNGLVIEWPORTPROC glViewport; +extern PFNGLBINDTEXTUREPROC glBindTexture; +extern PFNGLTEXIMAGE2DPROC glTexImage2D; +extern PFNGLTEXPARAMETERIPROC glTexParameteri; +extern PFNGLGETINTEGERVPROC glGetIntegerv; +extern PFNGLGETSTRINGPROC glGetString; +extern PFNGLREADPIXELSPROC glReadPixels; +extern PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D; +extern PFNGLDRAWARRAYSPROC glDrawArrays; +extern PFNGLGETERRORPROC glGetError; +extern PFNGLDRAWELEMENTSPROC glDrawElements; +extern PFNGLLINEWIDTHPROC glLineWidth; +extern PFNGLCLEARPROC glClear; +extern PFNGLGETFLOATVPROC glGetFloatv; +extern PFNGLDELETETEXTURESPROC glDeleteTextures; +extern PFNGLGENTEXTURESPROC glGenTextures; +extern PFNGLTEXPARAMETERFPROC glTexParameterf; +#endif + #ifdef OS_WINDOWS extern PFNGLACTIVETEXTUREPROC glActiveTexture; extern PFNGLBLENDCOLORPROC glBlendColor;