BIN = libCOREGL.so
-COREGL_MAJOR = 4
+COREGL_MAJOR = 3
COREGL_MINOR = 0
EGL_MAJOR = 1
+++ /dev/null
-// Defult use-case for exporting symbols
-#ifndef _COREGL_SYMBOL
-#define _COREGL_SYMBOL_NOT_DEFINED
-#define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) COREGL_API extern RET_TYPE FUNC_NAME PARAM_LIST;
-#endif
-#ifndef _COREGL_EXT_SYMBOL
-#define _COREGL_EXT_SYMBOL_NOT_DEFINED
-#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
-#endif
-#ifndef _COREGL_EXT_SYMBOL_ALIAS
-#define _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
-#define _COREGL_EXT_SYMBOL_ALIAS(FUNC_NAME, ALIAS_NAME)
-#endif
-#ifndef _COREGL_EXT_SYMBOL_FASTPATH_PASS
-#define _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
-#define _COREGL_EXT_SYMBOL_FASTPATH_PASS(FUNC_NAME)
-#endif
-#ifndef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK
-#define _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
-#define _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(FUNC_NAME)
-#endif
-
-// Standard EGL APIs
-
-_COREGL_SYMBOL(GL_FALSE, EGLint, eglGetError, (void))
-_COREGL_SYMBOL(GL_FALSE, EGLDisplay, eglGetDisplay, (EGLNativeDisplayType display_id))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglInitialize, (EGLDisplay dpy, EGLint* major, EGLint *minor))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglTerminate, (EGLDisplay dpy))
-_COREGL_SYMBOL(GL_FALSE, const char*, eglQueryString, (EGLDisplay dpy, EGLint name))
-
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglGetConfigs, (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglChooseConfig, (EGLDisplay dpy, const EGLint* attrib_list, EGLConfig* configs, EGLint config_size, EGLint* num_config))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglGetConfigAttrib, (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value))
-
-_COREGL_SYMBOL(GL_FALSE, EGLSurface, eglCreateWindowSurface, (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint* attrib_list))
-_COREGL_SYMBOL(GL_FALSE, EGLSurface, eglCreatePbufferSurface, (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list))
-_COREGL_SYMBOL(GL_FALSE, EGLSurface, eglCreatePixmapSurface, (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint* attrib_list))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglDestroySurface, (EGLDisplay dpy, EGLSurface surface))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglQuerySurface, (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value))
-
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglBindAPI, (EGLenum api))
-_COREGL_SYMBOL(GL_FALSE, EGLenum, eglQueryAPI, (void))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglWaitClient, (void))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglReleaseThread, (void))
-_COREGL_SYMBOL(GL_FALSE, EGLSurface, eglCreatePbufferFromClientBuffer, (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list))
-
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglSurfaceAttrib, (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglBindTexImage, (EGLDisplay dpy, EGLSurface surface, EGLint buffer))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglReleaseTexImage, (EGLDisplay dpy, EGLSurface surface, EGLint buffer))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglSwapInterval, (EGLDisplay dpy, EGLint interval))
-_COREGL_SYMBOL(GL_FALSE, EGLContext, eglCreateContext, (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint* attrib_list))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglDestroyContext, (EGLDisplay dpy, EGLContext ctx))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglMakeCurrent, (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx))
-_COREGL_SYMBOL(GL_FALSE, EGLContext, eglGetCurrentContext, (void))
-_COREGL_SYMBOL(GL_FALSE, EGLSurface, eglGetCurrentSurface, (EGLint readdraw))
-_COREGL_SYMBOL(GL_FALSE, EGLDisplay, eglGetCurrentDisplay, (void))
-
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglQueryContext, (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglWaitGL, (void))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglWaitNative, (EGLint engine))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglSwapBuffers, (EGLDisplay dpy, EGLSurface surface))
-_COREGL_SYMBOL(GL_FALSE, EGLBoolean, eglCopyBuffers, (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target))
-
-_COREGL_SYMBOL(GL_FALSE, _eng_fn, eglGetProcAddress, (const char* procname))
-
-
-// Extensions
-_COREGL_EXT_SYMBOL(GL_TRUE, EGLImageKHR, eglCreateImageKHR, (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list))
-_COREGL_EXT_SYMBOL_ALIAS(eglCreateImageKHR, eglCreateImage)
-_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglDestroyImageKHR, (EGLDisplay dpy, EGLImageKHR image))
-_COREGL_EXT_SYMBOL_ALIAS(eglDestroyImageKHR, eglDestroyImage)
-
-_COREGL_EXT_SYMBOL(GL_TRUE, void*, eglMapImageSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint device_type, EGLint access_option))
-_COREGL_EXT_SYMBOL_ALIAS(eglMapImageSEC, eglMapImage)
-_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglUnmapImageSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint device_type))
-_COREGL_EXT_SYMBOL_ALIAS(eglUnmapImageSEC, eglUnmapImage)
-_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglGetImageAttribSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint attribute, EGLint *value))
-_COREGL_EXT_SYMBOL_ALIAS(eglGetImageAttribSEC, eglGetImageAttrib)
-
-_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglLockSurfaceKHR, (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list))
-_COREGL_EXT_SYMBOL_ALIAS(eglLockSurfaceKHR, eglLockSurface)
-_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglUnlockSurfaceKHR, (EGLDisplay display, EGLSurface surface))
-_COREGL_EXT_SYMBOL_ALIAS(eglUnlockSurfaceKHR, eglUnlockSurface)
-
-// Verified extensions
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersRegionEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersRegionSEC)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersWithDamageEXT)
-
-// Blocked extensions
-//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK()
-
-#ifdef _COREGL_EXT_SYMBOL_NOT_DEFINED
-#undef _COREGL_EXT_SYMBOL_NOT_DEFINED
-#undef _COREGL_EXT_SYMBOL
-#endif
-
-#ifdef _COREGL_SYMBOL_NOT_DEFINED
-#undef _COREGL_SYMBOL_NOT_DEFINED
-#undef _COREGL_SYMBOL
-#endif
-
-#ifdef _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
-#undef _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
-#undef _COREGL_EXT_SYMBOL_ALIAS
-#endif
-
-#ifdef _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
-#undef _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
-#undef _COREGL_EXT_SYMBOL_FASTPATH_PASS
-#endif
-
-#ifdef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
-#undef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
-#undef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK
-#endif
-
static void
_sym_missing()
{
- COREGL_ERR("GL symbol missing!\n");
+ COREGL_ERR("GL symbol missing! Check client version!\n");
}
static int
if (!dst) dst = (__typeof__(dst))dlsym(libhandle, sym);
#define FALLBAK(dst) \
- if (!dst) { dst = (__typeof__(dst))_sym_missing; COREGL_WRN("symbol '"#dst"' missing!\n"); }
+ if (!dst) { dst = (__typeof__(dst))_sym_missing; }
#define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) \
FINDSYM(egl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME); \
if (IS_EXTENSION == GL_TRUE) { \
FINDSYM(egl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME"EXT"); \
- FINDSYM(egl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME"ARB"); \
- FINDSYM(egl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME"OES"); \
FINDSYM(egl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME"KHR"); \
} else { FALLBAK(_sym_##FUNC_NAME); }
#include "headers/sym_egl.h"
if ((!dst) && (getproc)) dst = (__typeof__(dst))getproc(sym); \
if (!dst) dst = (__typeof__(dst))dlsym(gl_lib_handle, sym);
#define FALLBAK(dst) \
- if (!dst) { dst = (__typeof__(dst))_sym_missing; COREGL_WRN("symbol '"#dst"' missing!\n"); }
+ if (!dst) { dst = (__typeof__(dst))_sym_missing; }
#define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) \
FINDSYM(gl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME); \
if (IS_EXTENSION == GL_TRUE) { \
FINDSYM(gl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME"EXT"); \
- FINDSYM(gl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME"ARB"); \
FINDSYM(gl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME"OES"); \
- FINDSYM(gl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME"KHR"); \
} else { FALLBAK(_sym_##FUNC_NAME); }
#include "headers/sym_gl.h"
#undef _COREGL_SYMBOL
// Extensions
_COREGL_EXT_SYMBOL(GL_TRUE, EGLImageKHR, eglCreateImageKHR, (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list))
-_COREGL_EXT_SYMBOL_ALIAS(eglCreateImageKHR, eglCreateImage)
_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglDestroyImageKHR, (EGLDisplay dpy, EGLImageKHR image))
-_COREGL_EXT_SYMBOL_ALIAS(eglDestroyImageKHR, eglDestroyImage)
_COREGL_EXT_SYMBOL(GL_TRUE, void*, eglMapImageSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint device_type, EGLint access_option))
-_COREGL_EXT_SYMBOL_ALIAS(eglMapImageSEC, eglMapImage)
_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglUnmapImageSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint device_type))
-_COREGL_EXT_SYMBOL_ALIAS(eglUnmapImageSEC, eglUnmapImage)
_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglGetImageAttribSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint attribute, EGLint *value))
-_COREGL_EXT_SYMBOL_ALIAS(eglGetImageAttribSEC, eglGetImageAttrib)
_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglLockSurfaceKHR, (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list))
-_COREGL_EXT_SYMBOL_ALIAS(eglLockSurfaceKHR, eglLockSurface)
_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglUnlockSurfaceKHR, (EGLDisplay display, EGLSurface surface))
-_COREGL_EXT_SYMBOL_ALIAS(eglUnlockSurfaceKHR, eglUnlockSurface)
-// Verified extensions
+/* Fastpath Verified extensions */
_COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersRegionEXT)
_COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersRegionSEC)
_COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersWithDamageEXT)
-// Blocked extensions
+/* Fastpath Blocked extensions */
//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK()
#ifdef _COREGL_EXT_SYMBOL_NOT_DEFINED
// OES_EGL_image
_COREGL_EXT_SYMBOL(GL_TRUE, void, glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image))
-_COREGL_EXT_SYMBOL_ALIAS(glEGLImageTargetTexture2DOES, glEGLImageTargetTexture2D)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image))
-_COREGL_EXT_SYMBOL_ALIAS(glEGLImageTargetRenderbufferStorageOES, glEGLImageTargetRenderbufferStorage)
// OES_get_program_binary
_COREGL_EXT_SYMBOL(GL_TRUE, void, glGetProgramBinaryOES, (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryFormat, void *binary))
-_COREGL_EXT_SYMBOL_ALIAS(glGetProgramBinaryOES, glGetProgramBinary)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramBinaryOES, (GLuint program, GLenum binaryFormat, const void *binary, GLint length))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramBinaryOES, glProgramBinary)
// EXT_separate_shader_objects
_COREGL_EXT_SYMBOL(GL_TRUE, void, glUseProgramStagesEXT, (GLuint pipeline, GLbitfield stages, GLuint program))
-_COREGL_EXT_SYMBOL_ALIAS(glUseProgramStagesEXT, glUseProgramStages)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glActiveShaderProgramEXT, (GLuint pipeline, GLuint program))
-_COREGL_EXT_SYMBOL_ALIAS(glActiveShaderProgramEXT, glActiveShaderProgram)
_COREGL_EXT_SYMBOL(GL_TRUE, GLuint, glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const char **strings))
-_COREGL_EXT_SYMBOL_ALIAS(glCreateShaderProgramvEXT, glCreateShaderProgramv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glBindProgramPipelineEXT, (GLuint pipeline))
-_COREGL_EXT_SYMBOL_ALIAS(glBindProgramPipelineEXT, glBindProgramPipeline)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines))
-_COREGL_EXT_SYMBOL_ALIAS(glDeleteProgramPipelinesEXT, glDeleteProgramPipelines)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines))
-_COREGL_EXT_SYMBOL_ALIAS(glGenProgramPipelinesEXT, glGenProgramPipelines)
_COREGL_EXT_SYMBOL(GL_TRUE, GLboolean, glIsProgramPipelineEXT, (GLuint pipeline))
-_COREGL_EXT_SYMBOL_ALIAS(glIsProgramPipelineEXT, glIsProgramPipeline)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramParameteriEXT, (GLuint program, GLenum pname, GLint value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramParameteriEXT, glProgramParameteri)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glGetProgramPipelineivEXT, (GLuint pipeline, GLenum pname, GLint *params))
-_COREGL_EXT_SYMBOL_ALIAS(glGetProgramPipelineivEXT, glGetProgramPipelineiv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform1iEXT, (GLuint program, GLint location, GLint x))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform1iEXT, glProgramUniform1i)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform2iEXT, (GLuint program, GLint location, GLint x, GLint y))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform2iEXT, glProgramUniform2i)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform3iEXT, (GLuint program, GLint location, GLint x, GLint y, GLint z))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform3iEXT, glProgramUniform3i)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform4iEXT, (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform4iEXT, glProgramUniform4i)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform1fEXT, (GLuint program, GLint location, GLfloat x))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform1fEXT, glProgramUniform1f)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform2fEXT, (GLuint program, GLint location, GLfloat x, GLfloat y))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform2fEXT, glProgramUniform2f)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform3fEXT, (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform3fEXT, glProgramUniform3f)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform4fEXT, (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform4fEXT, glProgramUniform4f)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform1ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform1ivEXT, glProgramUniform1iv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform2ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform2ivEXT, glProgramUniform2iv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform3ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform3ivEXT, glProgramUniform3iv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform4ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform4ivEXT, glProgramUniform4iv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform1fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform1fvEXT, glProgramUniform1fv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform2fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform2fvEXT, glProgramUniform2fv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform3fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform3fvEXT, glProgramUniform3fv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform4fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform4fvEXT, glProgramUniform4fv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniformMatrix2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniformMatrix2fvEXT, glProgramUniformMatrix2fv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniformMatrix3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniformMatrix3fvEXT, glProgramUniformMatrix3fv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniformMatrix4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
-_COREGL_EXT_SYMBOL_ALIAS(glProgramUniformMatrix4fvEXT, glProgramUniformMatrix4fv)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glValidateProgramPipelineEXT, (GLuint pipeline))
-_COREGL_EXT_SYMBOL_ALIAS(glValidateProgramPipelineEXT, glValidateProgramPipeline)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, char *infoLog))
-_COREGL_EXT_SYMBOL_ALIAS(glGetProgramPipelineInfoLogEXT, glGetProgramPipelineInfoLog)
// EXT_multisampled_render_to_texture
_COREGL_EXT_SYMBOL(GL_TRUE, void, glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
-_COREGL_EXT_SYMBOL_ALIAS(glRenderbufferStorageMultisampleEXT, glRenderbufferStorageMultisample)
_COREGL_EXT_SYMBOL(GL_TRUE, void, glFramebufferTexture2DMultisampleEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples))
-_COREGL_EXT_SYMBOL_ALIAS(glFramebufferTexture2DMultisampleEXT, glFramebufferTexture2DMultisample)
// EXT_discard_framebuffer
_COREGL_EXT_SYMBOL(GL_TRUE, void, glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum *attachments))
-_COREGL_EXT_SYMBOL_ALIAS(glDiscardFramebufferEXT, glDiscardFramebuffer)
// OES_texture_3d
-_COREGL_EXT_SYMBOL(GL_TRUE, void, glTexImage3DOES, (GLenum target, GLint level, GLenum GLinternalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels))
-_COREGL_EXT_SYMBOL_ALIAS(glTexImage3DOES, glTexImage3D)
-_COREGL_EXT_SYMBOL(GL_TRUE, void, glTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels))
-_COREGL_EXT_SYMBOL_ALIAS(glTexSubImage3DOES, glTexSubImage3D)
-_COREGL_EXT_SYMBOL(GL_TRUE, void, glCopyTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height))
-_COREGL_EXT_SYMBOL_ALIAS(glCopyTexSubImage3DOES, glCopyTexSubImage3D)
-_COREGL_EXT_SYMBOL(GL_TRUE, void, glCompressedTexImage3DOES, (GLenum target, GLint level, GLenum GLinternalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data))
-_COREGL_EXT_SYMBOL_ALIAS(glCompressedTexImage3DOES, glCompressedTexImage3D)
-_COREGL_EXT_SYMBOL(GL_TRUE, void, glCompressedTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data))
-_COREGL_EXT_SYMBOL_ALIAS(glCompressedTexSubImage3DOES, glCompressedTexSubImage3D)
+_COREGL_EXT_SYMBOL_ALIAS(glTexImage3DOES, glTexImage3D) // Replaced to ES 3.0 API
+_COREGL_EXT_SYMBOL_ALIAS(glTexSubImage3DOES, glTexSubImage3D) // Replaced to ES 3.0 API
+_COREGL_EXT_SYMBOL_ALIAS(glCopyTexSubImage3DOES, glCopyTexSubImage3D) // Replaced to ES 3.0 API
+_COREGL_EXT_SYMBOL_ALIAS(glCompressedTexImage3DOES, glCompressedTexImage3D) // Replaced to ES 3.0 API
+_COREGL_EXT_SYMBOL_ALIAS(glCompressedTexSubImage3DOES, glCompressedTexSubImage3D) // Replaced to ES 3.0 API
_COREGL_EXT_SYMBOL(GL_TRUE, void, glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset))
-_COREGL_EXT_SYMBOL_ALIAS(glFramebufferTexture3DOES, glFramebufferTexture3D)
-/* Verified extensions */
+/* Fastpath Verified extensions */
// AMD_performance_monitor
_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetPerfMonitorGroupsAMD)
_COREGL_EXT_SYMBOL_FASTPATH_PASS(glStartTilingQCOM)
_COREGL_EXT_SYMBOL_FASTPATH_PASS(glEndTilingQCOM)
-/* Blocked extensions */
+
+/* Fastpath Blocked extensions */
_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glMapBufferRange)
_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glUnmapBuffer)
_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetBufferPointerv)
goto finish; \
}
-#define _COREGL_EXT_SYMBOL_ALIAS(FUNC_NAME, ALIAS_NAME) \
+#define _COREGL_EXT_SYMBOL_ALIAS(ALIAS_NAME, FUNC_NAME) \
if (strcmp(procname, #ALIAS_NAME) == 0) \
{ \
_eng_fn ret_orig = NULL; \
- ret_orig = _orig_fastpath_eglGetProcAddress(#FUNC_NAME); \
+ ret_orig = _orig_fastpath_eglGetProcAddress(#ALIAS_NAME); \
if (ret_orig != NULL) \
ret = (_eng_fn)ovr_##FUNC_NAME; \
goto finish; \
return ret;
}
+const GLubyte *
+fastpath_glGetString(GLenum name)
+{
+ const GLubyte *ret = NULL;
+ static const GLubyte *string_gles20 = "OpenGL ES 2.0";
+ static GLubyte string_extensions[2048] = { 0 };
+
+ DEFINE_FASTPAH_GL_FUNC();
+ _COREGL_FASTPATH_FUNC_BEGIN();
+ INIT_FASTPATH_GL_FUNC();
+
+ switch (name)
+ {
+ case GL_VERSION:
+ IF_GL_SUCCESS(ret = _orig_fastpath_glGetString(name))
+ {
+ if (!strcmp(ret, "OpenGL ES 2.0"))
+ {
+ COREGL_WRN("\E[40;31;1mFastpath can't support %s (Fixed to %s)\E[0m\n", ret, string_gles20);
+ ret = string_gles20;
+ }
+ }
+ break;
+ case GL_EXTENSIONS:
+ IF_GL_SUCCESS(ret = _orig_fastpath_glGetString(name))
+ {
+ if (string_extensions[0] == NULL)
+ {
+ char tmp[64] = { 0 }, *tmpp = NULL;
+ strncpy(tmp, get_env_setting("COREGL_TRACE_SURFACE_FILTER_PERIOD"), 64);
+ for (tmpp = &tmp[0]; ; tmpp++)
+ {
+ if (*tmpp == 0x00) break;
+ if (*tmpp == '~')
+ {
+ *tmpp = 0x00;
+ trace_surface_filter_period_begin = atoi(tmp);
+ trace_surface_filter_period_end = atoi(tmpp + 1);
+ break;
+ }
+ }
+ }
+ ret = string_extensions;
+ }
+ break;
+ }
+
+ goto finish;
+
+finish:
+ _COREGL_FASTPATH_FUNC_END();
+ return ret;
+}
+
////////////////////////////////////////////////////////////////////////
void
objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
- _orig_fastpath_glGenTextures(n, objid_array);
-
- for (i = 0; i < n; i++)
+ IF_GL_SUCCESS(_orig_fastpath_glGenTextures(n, objid_array))
{
- textures[i] = fastpath_sostate_create_object(current_ctx->sostate, GL_OBJECT_TYPE_TEXTURE, objid_array[i]);
+ for (i = 0; i < n; i++)
+ {
+ textures[i] = fastpath_sostate_create_object(current_ctx->sostate, GL_OBJECT_TYPE_TEXTURE, objid_array[i]);
+ }
}
goto finish;
goto finish; \
}
-#define _COREGL_EXT_SYMBOL_ALIAS(FUNC_NAME, ALIAS_NAME) \
+#define _COREGL_EXT_SYMBOL_ALIAS(ALIAS_NAME, FUNC_NAME) \
if (strcmp(procname, #ALIAS_NAME) == 0) \
{ \
_eng_fn ret_orig = NULL; \
- ret_orig = _orig_tracepath_eglGetProcAddress(#FUNC_NAME); \
+ ret_orig = _orig_tracepath_eglGetProcAddress(#ALIAS_NAME); \
if (ret_orig != NULL) \
ret = (_eng_fn)ovr_##FUNC_NAME; \
goto finish; \