#include "Texture.h"\r
#include "Query.h"\r
#include "common/debug.h"\r
+#include "Common/SharedLibrary.hpp"\r
#include "Common/Version.h"\r
#include "Main/Register.hpp"\r
\r
+#define EGLAPI\r
+#include <EGL/egl.h>\r
+#include <EGL/eglext.h>\r
+\r
#define GL_API\r
#include <GLES/gl.h>\r
#define GL_GLEXT_PROTOTYPES\r
extern "C"\r
{\r
\r
+EGLint EGLAPIENTRY eglGetError(void)\r
+{\r
+ static auto eglGetError = (EGLint (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglGetError");\r
+ return eglGetError();\r
+}\r
+\r
+EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id)\r
+{\r
+ static auto eglGetDisplay = (EGLDisplay (EGLAPIENTRY*)(EGLNativeDisplayType display_id))getProcAddress(libEGL, "eglGetDisplay");\r
+ return eglGetDisplay(display_id);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)\r
+{\r
+ static auto eglInitialize = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLint *major, EGLint *minor))getProcAddress(libEGL, "eglInitialize");\r
+ return eglInitialize(dpy, major, minor);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy)\r
+{\r
+ static auto eglTerminate = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy))getProcAddress(libEGL, "eglTerminate");\r
+ return eglTerminate(dpy);\r
+}\r
+\r
+const char *EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name)\r
+{\r
+ static auto eglQueryString = (const char *(EGLAPIENTRY*)(EGLDisplay dpy, EGLint name))getProcAddress(libEGL, "eglQueryString");\r
+ return eglQueryString(dpy, name);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)\r
+{\r
+ static auto eglGetConfigs = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config))getProcAddress(libEGL, "eglGetConfigs");\r
+ return eglGetConfigs(dpy, configs, config_size, num_config);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)\r
+{\r
+ static auto eglChooseConfig = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config))getProcAddress(libEGL, "eglChooseConfig");\r
+ return eglChooseConfig(dpy, attrib_list, configs, config_size, num_config);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)\r
+{\r
+ static auto eglGetConfigAttrib = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value))getProcAddress(libEGL, "eglGetConfigAttrib");\r
+ return eglGetConfigAttrib(dpy, config, attribute, value);\r
+}\r
+\r
+EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType window, const EGLint *attrib_list)\r
+{\r
+ static auto eglCreateWindowSurface = (EGLSurface (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType window, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreateWindowSurface");\r
+ return eglCreateWindowSurface(dpy, config, window, attrib_list);\r
+}\r
+\r
+EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)\r
+{\r
+ static auto eglCreatePbufferSurface = (EGLSurface (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreatePbufferSurface");\r
+ return eglCreatePbufferSurface(dpy, config, attrib_list);\r
+}\r
+\r
+EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list)\r
+{\r
+ static auto eglCreatePixmapSurface = (EGLSurface (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreatePixmapSurface");\r
+ return eglCreatePixmapSurface(dpy, config, pixmap, attrib_list);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface)\r
+{\r
+ static auto eglDestroySurface = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface))getProcAddress(libEGL, "eglDestroySurface");\r
+ return eglDestroySurface(dpy, surface);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value)\r
+{\r
+ static auto eglQuerySurface = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value))getProcAddress(libEGL, "eglQuerySurface");\r
+ return eglQuerySurface(dpy, surface, attribute, value);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api)\r
+{\r
+ static auto eglBindAPI = (EGLBoolean (EGLAPIENTRY*)(EGLenum api))getProcAddress(libEGL, "eglBindAPI");\r
+ return eglBindAPI(api);\r
+}\r
+\r
+EGLenum EGLAPIENTRY eglQueryAPI(void)\r
+{\r
+ static auto eglQueryAPI = (EGLenum (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglQueryAPI");\r
+ return eglQueryAPI();\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglWaitClient(void)\r
+{\r
+ static auto eglWaitClient = (EGLBoolean (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglWaitClient");\r
+ return eglWaitClient();\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglReleaseThread(void)\r
+{\r
+ static auto eglReleaseThread = (EGLBoolean (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglReleaseThread");\r
+ return eglReleaseThread();\r
+}\r
+\r
+EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)\r
+{\r
+ static auto eglCreatePbufferFromClientBuffer = (EGLSurface (EGLAPIENTRY*)(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreatePbufferFromClientBuffer");\r
+ return eglCreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)\r
+{\r
+ static auto eglSurfaceAttrib = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value))getProcAddress(libEGL, "eglSurfaceAttrib");\r
+ return eglSurfaceAttrib(dpy, surface, attribute, value);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)\r
+{\r
+ static auto eglBindTexImage = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLint buffer))getProcAddress(libEGL, "eglBindTexImage");\r
+ return eglBindTexImage(dpy, surface, buffer);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)\r
+{\r
+ static auto eglReleaseTexImage = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLint buffer))getProcAddress(libEGL, "eglReleaseTexImage");\r
+ return eglReleaseTexImage(dpy, surface, buffer);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval)\r
+{\r
+ static auto eglSwapInterval = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLint interval))getProcAddress(libEGL, "eglSwapInterval");\r
+ return eglSwapInterval(dpy, interval);\r
+}\r
+\r
+EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)\r
+{\r
+ static auto eglCreateContext = (EGLContext (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreateContext");\r
+ return eglCreateContext(dpy, config, share_context, attrib_list);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx)\r
+{\r
+ static auto eglDestroyContext = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLContext ctx))getProcAddress(libEGL, "eglDestroyContext");\r
+ return eglDestroyContext(dpy, ctx);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)\r
+{\r
+ static auto eglMakeCurrent = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx))getProcAddress(libEGL, "eglMakeCurrent");\r
+ return eglMakeCurrent(dpy, draw, read, ctx);\r
+}\r
+\r
+EGLContext EGLAPIENTRY eglGetCurrentContext(void)\r
+{\r
+ static auto eglGetCurrentContext = (EGLContext (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglGetCurrentContext");\r
+ return eglGetCurrentContext();\r
+}\r
+\r
+EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw)\r
+{\r
+ static auto eglGetCurrentSurface = (EGLSurface (EGLAPIENTRY*)(EGLint readdraw))getProcAddress(libEGL, "eglGetCurrentSurface");\r
+ return eglGetCurrentSurface(readdraw);\r
+}\r
+\r
+EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void)\r
+{\r
+ static auto eglGetCurrentDisplay = (EGLDisplay (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglGetCurrentDisplay");\r
+ return eglGetCurrentDisplay();\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value)\r
+{\r
+ static auto eglQueryContext = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value))getProcAddress(libEGL, "eglQueryContext");\r
+ return eglQueryContext(dpy, ctx, attribute, value);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglWaitGL(void)\r
+{\r
+ static auto eglWaitGL = (EGLBoolean (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglWaitGL");\r
+ return eglWaitGL();\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine)\r
+{\r
+ static auto eglWaitNative = (EGLBoolean (EGLAPIENTRY*)(EGLint engine))getProcAddress(libEGL, "eglWaitNative");\r
+ return eglWaitNative(engine);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)\r
+{\r
+ static auto eglSwapBuffers = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface))getProcAddress(libEGL, "eglSwapBuffers");\r
+ return eglSwapBuffers(dpy, surface);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)\r
+{\r
+ static auto eglCopyBuffers = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target))getProcAddress(libEGL, "eglCopyBuffers");\r
+ return eglCopyBuffers(dpy, surface, target);\r
+}\r
+\r
+EGLImageKHR EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)\r
+{\r
+ static auto eglCreateImageKHR = (EGLImageKHR (EGLAPIENTRY*)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreateImageKHR");\r
+ return eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);\r
+}\r
+\r
+EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)\r
+{\r
+ static auto eglDestroyImageKHR = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLImageKHR image))getProcAddress(libEGL, "eglDestroyImageKHR");\r
+ return eglDestroyImageKHR(dpy, image);\r
+}\r
+\r
+__eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const char *procname)\r
+{\r
+ static auto eglGetProcAddress = (__eglMustCastToProperFunctionPointerType (EGLAPIENTRY*)(const char*))getProcAddress(libEGL, "eglGetProcAddress");\r
+ return eglGetProcAddress(procname);\r
+}\r
+\r
void GL_APIENTRY glActiveTexture(GLenum texture)\r
{\r
TRACE("(GLenum texture = 0x%X)", texture);\r
UNIMPLEMENTED();\r
}\r
\r
+void GL_APIENTRY glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer)\r
+{\r
+ UNIMPLEMENTED();\r
+}\r
+\r
void GL_APIENTRY glPointSizex(GLfixed size)\r
{\r
UNIMPLEMENTED();\r
{"glGetFramebufferAttachmentParameterivOES", (__eglMustCastToProperFunctionPointerType)glGetFramebufferAttachmentParameterivOES},\r
{"glGenerateMipmapOES", (__eglMustCastToProperFunctionPointerType)glGenerateMipmapOES},\r
{"glBlendEquationSeparateOES", (__eglMustCastToProperFunctionPointerType)glBlendEquationSeparateOES},\r
- {"glBlendFuncSeparateOES", (__eglMustCastToProperFunctionPointerType)glBlendFuncSeparateOES}\r
+ {"glBlendFuncSeparateOES", (__eglMustCastToProperFunctionPointerType)glBlendFuncSeparateOES},\r
+ {"glPointSizePointerOES", (__eglMustCastToProperFunctionPointerType)glPointSizePointerOES}\r
};\r
\r
for(int ext = 0; ext < sizeof(glExtensions) / sizeof(Extension); ext++)\r