mirror of
https://github.com/MobileGL-Dev/MobileGlues.git
synced 2025-09-25 04:01:30 -04:00
poking around...got some stubs to get called
This commit is contained in:
parent
63bbcef186
commit
921bfcb58e
@ -30,6 +30,8 @@ add_library(${CMAKE_PROJECT_NAME} SHARED
|
||||
init.cpp
|
||||
main.c
|
||||
gl.c
|
||||
egl.cpp
|
||||
gles3.h
|
||||
)
|
||||
|
||||
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ./includes)
|
||||
@ -41,4 +43,5 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
|
||||
# List libraries link to the target library
|
||||
android
|
||||
log
|
||||
EGL)
|
||||
# EGL
|
||||
)
|
48
src/main/cpp/egl.cpp
Normal file
48
src/main/cpp/egl.cpp
Normal file
@ -0,0 +1,48 @@
|
||||
//
|
||||
// Created by Swung 0x48 on 2024/10/8.
|
||||
//
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "egl.h"
|
||||
#include "includes.h"
|
||||
#include <EGL/egl.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
static std::unordered_map<EGLContext, context_t> g_context;
|
||||
|
||||
EGLContext mglues_eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list) {
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"%s @ %s(...)", RENDERERNAME, __FUNCTION__);
|
||||
g_egl_func.eglCreateContext =
|
||||
(EGLCREATECONTEXTPROCP)g_egl_func.eglGetProcAddress("eglCreateContext");
|
||||
EGLContext ctx = g_egl_func.eglCreateContext(dpy, config, share_context, attrib_list);
|
||||
|
||||
g_context[ctx] = { .context = ctx };
|
||||
|
||||
return ctx;
|
||||
}
|
||||
|
||||
EGLBoolean mglues_eglDestroyContext(EGLDisplay dpy, EGLContext ctx) {
|
||||
if (g_context.find(ctx) == g_context.end())
|
||||
return EGL_FALSE;
|
||||
|
||||
EGLBoolean b = g_egl_func.eglDestroyContext(dpy, ctx);
|
||||
if (b)
|
||||
g_context.erase(ctx);
|
||||
return b;
|
||||
}
|
||||
|
||||
EGLBoolean mglues_eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) {
|
||||
return g_egl_func.eglMakeCurrent(dpy, draw, read, ctx);
|
||||
}
|
||||
|
||||
|
||||
|
30
src/main/cpp/egl.h
Normal file
30
src/main/cpp/egl.h
Normal file
@ -0,0 +1,30 @@
|
||||
//
|
||||
// Created by Swung 0x48 on 2024/10/8.
|
||||
//
|
||||
|
||||
#ifndef FOLD_CRAFT_LAUNCHER_EGL_H
|
||||
#define FOLD_CRAFT_LAUNCHER_EGL_H
|
||||
|
||||
#include <EGL/egl.h>
|
||||
|
||||
typedef __eglMustCastToProperFunctionPointerType (EGLGETPROCADDRESSPROC) (const char *procname);
|
||||
typedef EGLGETPROCADDRESSPROC* EGLGETPROCADDRESSPROCP;
|
||||
typedef EGLContext (EGLCREATECONTEXTPROC) (EGLDisplay, EGLConfig, EGLContext, const EGLint *);
|
||||
typedef EGLCREATECONTEXTPROC* EGLCREATECONTEXTPROCP;
|
||||
typedef EGLBoolean (EGLDESTROYCONTEXTPROC) (EGLDisplay, EGLContext);
|
||||
typedef EGLDESTROYCONTEXTPROC* EGLDESTROYCONTEXTPROCP;
|
||||
typedef EGLBoolean (EGLMAKECURRENTPROC)(EGLDisplay, EGLSurface, EGLSurface, EGLContext);
|
||||
typedef EGLMAKECURRENTPROC* EGLMAKECURRENTPROCP;
|
||||
|
||||
struct egl_func_t {
|
||||
EGLGETPROCADDRESSPROCP eglGetProcAddress;
|
||||
EGLCREATECONTEXTPROCP eglCreateContext;
|
||||
EGLDESTROYCONTEXTPROCP eglDestroyContext;
|
||||
EGLMAKECURRENTPROCP eglMakeCurrent;
|
||||
};
|
||||
|
||||
struct context_t {
|
||||
EGLContext context;
|
||||
};
|
||||
|
||||
#endif //FOLD_CRAFT_LAUNCHER_EGL_H
|
@ -128,11 +128,20 @@ GLAPI void GLAPIENTRY glPopClientAttrib( void ) { __android_log_print(ANDROID_LO
|
||||
GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ) { __android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Unimplemented function: %s @ %s(...)", RENDERERNAME, __FUNCTION__); return 0; }
|
||||
|
||||
//GLAPI GLenum GLAPIENTRY glGetError( void ) { __android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
// "Unimplemented function: %s @ %s(...)", RENDERERNAME, __FUNCTION__); }
|
||||
GLAPI GLenum GLAPIENTRY glGetError( void ) { __android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Unimplemented function: %s @ %s(...)", RENDERERNAME, __FUNCTION__); return GL_NO_ERROR; }
|
||||
|
||||
//GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ) { __android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
// "Unimplemented function: %s @ %s(...)", RENDERERNAME, __FUNCTION__); }
|
||||
GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ) {
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Unimplemented function: %s @ %s(...)", RENDERERNAME, __FUNCTION__);
|
||||
switch (name) {
|
||||
case GL_VENDOR:
|
||||
return "Swung0x48";
|
||||
case GL_RENDERER:
|
||||
return "4.6 MobileGlues";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
GLAPI void GLAPIENTRY glFinish( void ) { __android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Unimplemented function: %s @ %s(...)", RENDERERNAME, __FUNCTION__); }
|
||||
|
376
src/main/cpp/gles3.h
Normal file
376
src/main/cpp/gles3.h
Normal file
@ -0,0 +1,376 @@
|
||||
//
|
||||
// Created by Swung 0x48 on 2024/10/8.
|
||||
//
|
||||
|
||||
#ifndef FOLD_CRAFT_LAUNCHER_GLES3_H
|
||||
#define FOLD_CRAFT_LAUNCHER_GLES3_H
|
||||
|
||||
#include <GLES3/gl32.h>
|
||||
#include <GL/gl.h>
|
||||
|
||||
struct es3_functions_t
|
||||
{
|
||||
PFNGLACTIVETEXTUREPROC glActiveTexture;
|
||||
PFNGLATTACHSHADERPROC glAttachShader;
|
||||
PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
|
||||
PFNGLBINDBUFFERPROC glBindBuffer;
|
||||
PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
|
||||
PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
|
||||
PFNGLBINDTEXTUREPROC glBindTexture;
|
||||
PFNGLBLENDCOLORPROC glBlendColor;
|
||||
PFNGLBLENDEQUATIONPROC glBlendEquation;
|
||||
PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
|
||||
PFNGLBLENDFUNCPROC glBlendFunc;
|
||||
PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
|
||||
PFNGLBUFFERDATAPROC glBufferData;
|
||||
PFNGLBUFFERSUBDATAPROC glBufferSubData;
|
||||
PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
||||
PFNGLCLEARPROC glClear;
|
||||
PFNGLCLEARCOLORPROC glClearColor;
|
||||
PFNGLCLEARDEPTHFPROC glClearDepthf;
|
||||
PFNGLCLEARSTENCILPROC glClearStencil;
|
||||
PFNGLCOLORMASKPROC glColorMask;
|
||||
PFNGLCOMPILESHADERPROC glCompileShader;
|
||||
PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D;
|
||||
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
|
||||
PFNGLCOPYTEXIMAGE2DPROC glCopyTexImage2D;
|
||||
PFNGLCOPYTEXSUBIMAGE2DPROC glCopyTexSubImage2D;
|
||||
PFNGLCREATEPROGRAMPROC glCreateProgram;
|
||||
PFNGLCREATESHADERPROC glCreateShader;
|
||||
PFNGLCULLFACEPROC glCullFace;
|
||||
PFNGLDELETEBUFFERSPROC glDeleteBuffers;
|
||||
PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
||||
PFNGLDELETEPROGRAMPROC glDeleteProgram;
|
||||
PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
|
||||
PFNGLDELETESHADERPROC glDeleteShader;
|
||||
PFNGLDELETETEXTURESPROC glDeleteTextures;
|
||||
PFNGLDEPTHFUNCPROC glDepthFunc;
|
||||
PFNGLDEPTHMASKPROC glDepthMask;
|
||||
PFNGLDEPTHRANGEFPROC glDepthRangef;
|
||||
PFNGLDETACHSHADERPROC glDetachShader;
|
||||
PFNGLDISABLEPROC glDisable;
|
||||
PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
|
||||
PFNGLDRAWARRAYSPROC glDrawArrays;
|
||||
PFNGLDRAWELEMENTSPROC glDrawElements;
|
||||
PFNGLENABLEPROC glEnable;
|
||||
PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
|
||||
PFNGLFINISHPROC glFinish;
|
||||
PFNGLFLUSHPROC glFlush;
|
||||
PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
|
||||
PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
|
||||
PFNGLFRONTFACEPROC glFrontFace;
|
||||
PFNGLGENBUFFERSPROC glGenBuffers;
|
||||
PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
|
||||
PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
|
||||
PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
|
||||
PFNGLGENTEXTURESPROC glGenTextures;
|
||||
PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib;
|
||||
PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
|
||||
PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders;
|
||||
PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
|
||||
PFNGLGETBOOLEANVPROC glGetBooleanv;
|
||||
PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv;
|
||||
PFNGLGETERRORPROC glGetError;
|
||||
PFNGLGETFLOATVPROC glGetFloatv;
|
||||
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
|
||||
PFNGLGETINTEGERVPROC glGetIntegerv;
|
||||
PFNGLGETPROGRAMIVPROC glGetProgramiv;
|
||||
PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
|
||||
PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv;
|
||||
PFNGLGETSHADERIVPROC glGetShaderiv;
|
||||
PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
|
||||
PFNGLGETSHADERPRECISIONFORMATPROC glGetShaderPrecisionFormat;
|
||||
PFNGLGETSHADERSOURCEPROC glGetShaderSource;
|
||||
PFNGLGETSTRINGPROC glGetString;
|
||||
PFNGLGETTEXPARAMETERFVPROC glGetTexParameterfv;
|
||||
PFNGLGETTEXPARAMETERIVPROC glGetTexParameteriv;
|
||||
PFNGLGETUNIFORMFVPROC glGetUniformfv;
|
||||
PFNGLGETUNIFORMIVPROC glGetUniformiv;
|
||||
PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
|
||||
PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
|
||||
PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv;
|
||||
PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv;
|
||||
PFNGLHINTPROC glHint;
|
||||
PFNGLISBUFFERPROC glIsBuffer;
|
||||
PFNGLISENABLEDPROC glIsEnabled;
|
||||
PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
|
||||
PFNGLISPROGRAMPROC glIsProgram;
|
||||
PFNGLISRENDERBUFFERPROC glIsRenderbuffer;
|
||||
PFNGLISSHADERPROC glIsShader;
|
||||
PFNGLISTEXTUREPROC glIsTexture;
|
||||
PFNGLLINEWIDTHPROC glLineWidth;
|
||||
PFNGLLINKPROGRAMPROC glLinkProgram;
|
||||
PFNGLPIXELSTOREIPROC glPixelStorei;
|
||||
PFNGLPOLYGONOFFSETPROC glPolygonOffset;
|
||||
PFNGLREADPIXELSPROC glReadPixels;
|
||||
PFNGLRELEASESHADERCOMPILERPROC glReleaseShaderCompiler;
|
||||
PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
|
||||
PFNGLSAMPLECOVERAGEPROC glSampleCoverage;
|
||||
PFNGLSCISSORPROC glScissor;
|
||||
PFNGLSHADERBINARYPROC glShaderBinary;
|
||||
PFNGLSHADERSOURCEPROC glShaderSource;
|
||||
PFNGLSTENCILFUNCPROC glStencilFunc;
|
||||
PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
|
||||
PFNGLSTENCILMASKPROC glStencilMask;
|
||||
PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate;
|
||||
PFNGLSTENCILOPPROC glStencilOp;
|
||||
PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate;
|
||||
PFNGLTEXIMAGE2DPROC glTexImage2D;
|
||||
PFNGLTEXPARAMETERFPROC glTexParameterf;
|
||||
PFNGLTEXPARAMETERFVPROC glTexParameterfv;
|
||||
PFNGLTEXPARAMETERIPROC glTexParameteri;
|
||||
PFNGLTEXPARAMETERIVPROC glTexParameteriv;
|
||||
PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
|
||||
PFNGLUNIFORM1FPROC glUniform1f;
|
||||
PFNGLUNIFORM1FVPROC glUniform1fv;
|
||||
PFNGLUNIFORM1IPROC glUniform1i;
|
||||
PFNGLUNIFORM1IVPROC glUniform1iv;
|
||||
PFNGLUNIFORM2FPROC glUniform2f;
|
||||
PFNGLUNIFORM2FVPROC glUniform2fv;
|
||||
PFNGLUNIFORM2IPROC glUniform2i;
|
||||
PFNGLUNIFORM2IVPROC glUniform2iv;
|
||||
PFNGLUNIFORM3FPROC glUniform3f;
|
||||
PFNGLUNIFORM3FVPROC glUniform3fv;
|
||||
PFNGLUNIFORM3IPROC glUniform3i;
|
||||
PFNGLUNIFORM3IVPROC glUniform3iv;
|
||||
PFNGLUNIFORM4FPROC glUniform4f;
|
||||
PFNGLUNIFORM4FVPROC glUniform4fv;
|
||||
PFNGLUNIFORM4IPROC glUniform4i;
|
||||
PFNGLUNIFORM4IVPROC glUniform4iv;
|
||||
PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv;
|
||||
PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv;
|
||||
PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
|
||||
PFNGLUSEPROGRAMPROC glUseProgram;
|
||||
PFNGLVALIDATEPROGRAMPROC glValidateProgram;
|
||||
PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
|
||||
PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
|
||||
PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f;
|
||||
PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
|
||||
PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f;
|
||||
PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
|
||||
PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f;
|
||||
PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
|
||||
PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
|
||||
PFNGLVIEWPORTPROC glViewport;
|
||||
PFNGLREADBUFFERPROC glReadBuffer;
|
||||
PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
|
||||
PFNGLTEXIMAGE3DPROC glTexImage3D;
|
||||
PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
|
||||
PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
|
||||
PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
|
||||
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
|
||||
PFNGLGENQUERIESPROC glGenQueries;
|
||||
PFNGLDELETEQUERIESPROC glDeleteQueries;
|
||||
PFNGLISQUERYPROC glIsQuery;
|
||||
PFNGLBEGINQUERYPROC glBeginQuery;
|
||||
PFNGLENDQUERYPROC glEndQuery;
|
||||
PFNGLGETQUERYIVPROC glGetQueryiv;
|
||||
PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
|
||||
PFNGLUNMAPBUFFERPROC glUnmapBuffer;
|
||||
PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
|
||||
PFNGLDRAWBUFFERSPROC glDrawBuffers;
|
||||
PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv;
|
||||
PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv;
|
||||
PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv;
|
||||
PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv;
|
||||
PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
|
||||
PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv;
|
||||
PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
|
||||
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
|
||||
PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
|
||||
PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
|
||||
PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
|
||||
PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
|
||||
PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
|
||||
PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
|
||||
PFNGLISVERTEXARRAYPROC glIsVertexArray;
|
||||
PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
|
||||
PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
|
||||
PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
|
||||
PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
|
||||
PFNGLBINDBUFFERBASEPROC glBindBufferBase;
|
||||
PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
|
||||
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
|
||||
PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
|
||||
PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
|
||||
PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
|
||||
PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
|
||||
PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
|
||||
PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
|
||||
PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
|
||||
PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
|
||||
PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
|
||||
PFNGLUNIFORM1UIPROC glUniform1ui;
|
||||
PFNGLUNIFORM2UIPROC glUniform2ui;
|
||||
PFNGLUNIFORM3UIPROC glUniform3ui;
|
||||
PFNGLUNIFORM4UIPROC glUniform4ui;
|
||||
PFNGLUNIFORM1UIVPROC glUniform1uiv;
|
||||
PFNGLUNIFORM2UIVPROC glUniform2uiv;
|
||||
PFNGLUNIFORM3UIVPROC glUniform3uiv;
|
||||
PFNGLUNIFORM4UIVPROC glUniform4uiv;
|
||||
PFNGLCLEARBUFFERIVPROC glClearBufferiv;
|
||||
PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
|
||||
PFNGLCLEARBUFFERFVPROC glClearBufferfv;
|
||||
PFNGLCLEARBUFFERFIPROC glClearBufferfi;
|
||||
PFNGLGETSTRINGIPROC glGetStringi;
|
||||
PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData;
|
||||
PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
|
||||
PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
|
||||
PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
|
||||
PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
|
||||
PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
|
||||
PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
|
||||
PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
|
||||
PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
|
||||
PFNGLFENCESYNCPROC glFenceSync;
|
||||
PFNGLISSYNCPROC glIsSync;
|
||||
PFNGLDELETESYNCPROC glDeleteSync;
|
||||
PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
|
||||
PFNGLWAITSYNCPROC glWaitSync;
|
||||
PFNGLGETINTEGER64VPROC glGetInteger64v;
|
||||
PFNGLGETSYNCIVPROC glGetSynciv;
|
||||
PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
|
||||
PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
|
||||
PFNGLGENSAMPLERSPROC glGenSamplers;
|
||||
PFNGLDELETESAMPLERSPROC glDeleteSamplers;
|
||||
PFNGLISSAMPLERPROC glIsSampler;
|
||||
PFNGLBINDSAMPLERPROC glBindSampler;
|
||||
PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
|
||||
PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
|
||||
PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
|
||||
PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
|
||||
PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
|
||||
PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
|
||||
PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
|
||||
PFNGLBINDTRANSFORMFEEDBACKPROC glBindTransformFeedback;
|
||||
PFNGLDELETETRANSFORMFEEDBACKSPROC glDeleteTransformFeedbacks;
|
||||
PFNGLGENTRANSFORMFEEDBACKSPROC glGenTransformFeedbacks;
|
||||
PFNGLISTRANSFORMFEEDBACKPROC glIsTransformFeedback;
|
||||
PFNGLPAUSETRANSFORMFEEDBACKPROC glPauseTransformFeedback;
|
||||
PFNGLRESUMETRANSFORMFEEDBACKPROC glResumeTransformFeedback;
|
||||
PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
|
||||
PFNGLPROGRAMBINARYPROC glProgramBinary;
|
||||
PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
|
||||
PFNGLINVALIDATEFRAMEBUFFERPROC glInvalidateFramebuffer;
|
||||
PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer;
|
||||
PFNGLTEXSTORAGE2DPROC glTexStorage2D;
|
||||
PFNGLTEXSTORAGE3DPROC glTexStorage3D;
|
||||
PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ;
|
||||
PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
|
||||
PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect;
|
||||
PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect;
|
||||
PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri;
|
||||
PFNGLGETFRAMEBUFFERPARAMETERIVPROC glGetFramebufferParameteriv;
|
||||
PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv;
|
||||
PFNGLGETPROGRAMRESOURCEINDEXPROC glGetProgramResourceIndex;
|
||||
PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName;
|
||||
PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv;
|
||||
PFNGLGETPROGRAMRESOURCELOCATIONPROC glGetProgramResourceLocation;
|
||||
PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages;
|
||||
PFNGLACTIVESHADERPROGRAMPROC glActiveShaderProgram;
|
||||
PFNGLCREATESHADERPROGRAMVPROC glCreateShaderProgramv;
|
||||
PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline;
|
||||
PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines;
|
||||
PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines;
|
||||
PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline;
|
||||
PFNGLGETPROGRAMPIPELINEIVPROC glGetProgramPipelineiv;
|
||||
PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i;
|
||||
PFNGLPROGRAMUNIFORM2IPROC glProgramUniform2i;
|
||||
PFNGLPROGRAMUNIFORM3IPROC glProgramUniform3i;
|
||||
PFNGLPROGRAMUNIFORM4IPROC glProgramUniform4i;
|
||||
PFNGLPROGRAMUNIFORM1UIPROC glProgramUniform1ui;
|
||||
PFNGLPROGRAMUNIFORM2UIPROC glProgramUniform2ui;
|
||||
PFNGLPROGRAMUNIFORM3UIPROC glProgramUniform3ui;
|
||||
PFNGLPROGRAMUNIFORM4UIPROC glProgramUniform4ui;
|
||||
PFNGLPROGRAMUNIFORM1FPROC glProgramUniform1f;
|
||||
PFNGLPROGRAMUNIFORM2FPROC glProgramUniform2f;
|
||||
PFNGLPROGRAMUNIFORM3FPROC glProgramUniform3f;
|
||||
PFNGLPROGRAMUNIFORM4FPROC glProgramUniform4f;
|
||||
PFNGLPROGRAMUNIFORM1IVPROC glProgramUniform1iv;
|
||||
PFNGLPROGRAMUNIFORM2IVPROC glProgramUniform2iv;
|
||||
PFNGLPROGRAMUNIFORM3IVPROC glProgramUniform3iv;
|
||||
PFNGLPROGRAMUNIFORM4IVPROC glProgramUniform4iv;
|
||||
PFNGLPROGRAMUNIFORM1UIVPROC glProgramUniform1uiv;
|
||||
PFNGLPROGRAMUNIFORM2UIVPROC glProgramUniform2uiv;
|
||||
PFNGLPROGRAMUNIFORM3UIVPROC glProgramUniform3uiv;
|
||||
PFNGLPROGRAMUNIFORM4UIVPROC glProgramUniform4uiv;
|
||||
PFNGLPROGRAMUNIFORM1FVPROC glProgramUniform1fv;
|
||||
PFNGLPROGRAMUNIFORM2FVPROC glProgramUniform2fv;
|
||||
PFNGLPROGRAMUNIFORM3FVPROC glProgramUniform3fv;
|
||||
PFNGLPROGRAMUNIFORM4FVPROC glProgramUniform4fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX2FVPROC glProgramUniformMatrix2fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX3FVPROC glProgramUniformMatrix3fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX4FVPROC glProgramUniformMatrix4fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glProgramUniformMatrix2x3fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glProgramUniformMatrix3x2fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glProgramUniformMatrix2x4fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glProgramUniformMatrix4x2fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glProgramUniformMatrix3x4fv;
|
||||
PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glProgramUniformMatrix4x3fv;
|
||||
PFNGLVALIDATEPROGRAMPIPELINEPROC glValidateProgramPipeline;
|
||||
PFNGLGETPROGRAMPIPELINEINFOLOGPROC glGetProgramPipelineInfoLog;
|
||||
PFNGLBINDIMAGETEXTUREPROC glBindImageTexture;
|
||||
PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
|
||||
PFNGLMEMORYBARRIERPROC glMemoryBarrier;
|
||||
PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
|
||||
PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
|
||||
PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
|
||||
PFNGLSAMPLEMASKIPROC glSampleMaski;
|
||||
PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
|
||||
PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
|
||||
PFNGLBINDVERTEXBUFFERPROC glBindVertexBuffer;
|
||||
PFNGLVERTEXATTRIBFORMATPROC glVertexAttribFormat;
|
||||
PFNGLVERTEXATTRIBIFORMATPROC glVertexAttribIFormat;
|
||||
PFNGLVERTEXATTRIBBINDINGPROC glVertexAttribBinding;
|
||||
PFNGLVERTEXBINDINGDIVISORPROC glVertexBindingDivisor;
|
||||
PFNGLBLENDBARRIERPROC glBlendBarrier;
|
||||
PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
|
||||
PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
|
||||
PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
|
||||
PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
|
||||
PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
|
||||
PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
|
||||
PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
|
||||
PFNGLOBJECTLABELPROC glObjectLabel;
|
||||
PFNGLGETOBJECTLABELPROC glGetObjectLabel;
|
||||
PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
|
||||
PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
|
||||
PFNGLGETPOINTERVPROC glGetPointerv;
|
||||
PFNGLENABLEIPROC glEnablei;
|
||||
PFNGLDISABLEIPROC glDisablei;
|
||||
PFNGLBLENDEQUATIONIPROC glBlendEquationi;
|
||||
PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
|
||||
PFNGLBLENDFUNCIPROC glBlendFunci;
|
||||
PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
|
||||
PFNGLCOLORMASKIPROC glColorMaski;
|
||||
PFNGLISENABLEDIPROC glIsEnabledi;
|
||||
PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
|
||||
PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
|
||||
PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
|
||||
PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
|
||||
PFNGLPRIMITIVEBOUNDINGBOXPROC glPrimitiveBoundingBox;
|
||||
PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
|
||||
PFNGLREADNPIXELSPROC glReadnPixels;
|
||||
PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
|
||||
PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
|
||||
PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
|
||||
PFNGLMINSAMPLESHADINGPROC glMinSampleShading;
|
||||
PFNGLPATCHPARAMETERIPROC glPatchParameteri;
|
||||
PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
|
||||
PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
|
||||
PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
|
||||
PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
|
||||
PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
|
||||
PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
|
||||
PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
|
||||
PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
|
||||
PFNGLTEXBUFFERPROC glTexBuffer;
|
||||
PFNGLTEXBUFFERRANGEPROC glTexBufferRange;
|
||||
PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
|
||||
PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect;
|
||||
PFNGLMULTIDRAWARRAYSEXTPROC glMultiDrawArraysEXT;
|
||||
PFNGLMULTIDRAWELEMENTSEXTPROC glMultiDrawElementsEXT;
|
||||
PFNGLBUFFERSTORAGEEXTERNALEXTPROC glBufferStorage;
|
||||
};
|
||||
|
||||
#endif //FOLD_CRAFT_LAUNCHER_GLES3_H
|
@ -12,6 +12,8 @@
|
||||
#include <EGL/egl.h>
|
||||
#include <GLES3/gl32.h>
|
||||
|
||||
#include "egl.h"
|
||||
|
||||
#define _mglues_dlopen(name) dlopen(name, RTLD_LAZY)
|
||||
#define _mglues_dlclose(handle) dlclose(handle)
|
||||
#define _mglues_dlsym(handle, name) dlsym(handle, name)
|
||||
@ -20,22 +22,12 @@ static int g_initialized = 0;
|
||||
|
||||
void proc_init();
|
||||
|
||||
typedef __eglMustCastToProperFunctionPointerType (EGLGETPROCADDRESSPROC) (const char *procname);
|
||||
typedef EGLGETPROCADDRESSPROC* EGLGETPROCADDRESSPROCP;
|
||||
typedef EGLContext (EGLCREATECONTEXTPROC) (EGLDisplay, EGLConfig, EGLContext, const EGLint *);
|
||||
typedef EGLCREATECONTEXTPROC* EGLCREATECONTEXTPROCP;
|
||||
typedef EGLBoolean (EGLDESTROYCONTEXTPROC) (EGLDisplay, EGLContext);
|
||||
typedef EGLDESTROYCONTEXTPROC* EGLDESTROYCONTEXTPROCP;
|
||||
typedef EGLBoolean (EGLMAKECURRENTPROC)(EGLDisplay, EGLSurface, EGLSurface, EGLContext);
|
||||
typedef EGLMAKECURRENTPROC* EGLMAKECURRENTPROCP;
|
||||
|
||||
struct egl_func_t {
|
||||
EGLGETPROCADDRESSPROCP eglGetProcAddress;
|
||||
EGLCREATECONTEXTPROCP eglCreateContext;
|
||||
EGLDESTROYCONTEXTPROCP eglDestroyContext;
|
||||
EGLMAKECURRENTPROCP eglMakeCurrent;
|
||||
};
|
||||
EGLContext mglues_eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
|
||||
EGLBoolean mglues_eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
|
||||
EGLBoolean mglues_eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
|
||||
|
||||
static struct egl_func_t g_egl_func;
|
||||
|
||||
static struct egl_func_t g_target_egl_func;
|
||||
|
||||
#endif //MOBILEGLUES_INCLUDES_H
|
||||
|
@ -24,7 +24,7 @@ void proc_init() {
|
||||
__android_log_print(ANDROID_LOG_FATAL, RENDERERNAME,
|
||||
"Cannot load system libEGL.so!");
|
||||
|
||||
g_target_egl_func.eglGetProcAddress = _mglues_dlsym(handle, "eglGetProcAddress");
|
||||
g_egl_func.eglGetProcAddress = _mglues_dlsym(handle, "eglGetProcAddress");
|
||||
|
||||
init_target_egl();
|
||||
init_target_gles();
|
||||
@ -36,283 +36,301 @@ void init_target_egl() {
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Initializing %s @ %s", RENDERERNAME, __FUNCTION__);
|
||||
|
||||
g_target_egl_func.eglCreateContext =
|
||||
(EGLCREATECONTEXTPROCP)g_target_egl_func.eglGetProcAddress("eglCreateContext");
|
||||
g_target_egl_func.eglDestroyContext =
|
||||
(EGLDESTROYCONTEXTPROCP) g_target_egl_func.eglGetProcAddress("eglDestroyContext");
|
||||
g_target_egl_func.eglMakeCurrent =
|
||||
(EGLMAKECURRENTPROCP) g_target_egl_func.eglGetProcAddress("eglMakeCurrent");
|
||||
g_egl_func.eglCreateContext =
|
||||
(EGLCREATECONTEXTPROCP)g_egl_func.eglGetProcAddress("eglCreateContext");
|
||||
g_egl_func.eglDestroyContext =
|
||||
(EGLDESTROYCONTEXTPROCP) g_egl_func.eglGetProcAddress("eglDestroyContext");
|
||||
g_egl_func.eglMakeCurrent =
|
||||
(EGLMAKECURRENTPROCP) g_egl_func.eglGetProcAddress("eglMakeCurrent");
|
||||
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Got target eglCreateContext @ 0x%lx", g_target_egl_func.eglCreateContext);
|
||||
"Got target eglCreateContext @ 0x%lx", g_egl_func.eglCreateContext);
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Got target eglDestroyContext @ 0x%lx", g_target_egl_func.eglDestroyContext);
|
||||
"Got target eglDestroyContext @ 0x%lx", g_egl_func.eglDestroyContext);
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Got target eglMakeCurrent @ 0x%lx", g_target_egl_func.eglMakeCurrent);
|
||||
"Got target eglMakeCurrent @ 0x%lx", g_egl_func.eglMakeCurrent);
|
||||
}
|
||||
|
||||
void init_target_gles() {
|
||||
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"Initializing %s @ %s", RENDERERNAME, __FUNCTION__);
|
||||
}
|
||||
|
||||
#define UNIMPL_PH(name) if (strcmp(procname, #name) == 0) \
|
||||
#define MAP_FUNC(name) if (strcmp(procname, #name) == 0) \
|
||||
return (__eglMustCastToProperFunctionPointerType) name;
|
||||
|
||||
#define MAP_FUNC_MGLUES(name) if (strcmp(procname, #name) == 0) \
|
||||
return (__eglMustCastToProperFunctionPointerType) mglues_##name;
|
||||
|
||||
|
||||
__eglMustCastToProperFunctionPointerType prehook(const char *procname) {
|
||||
// if (strcmp(procname, "glGetString") == 0)
|
||||
// return (__eglMustCastToProperFunctionPointerType) glGetString;
|
||||
// if (strcmp(procname, "glGetIntegerv") == 0)
|
||||
// return (__eglMustCastToProperFunctionPointerType) glGetIntegerv;
|
||||
UNIMPL_PH(glAccum);
|
||||
UNIMPL_PH(glAreTexturesResident);
|
||||
UNIMPL_PH(glAreTexturesResident);
|
||||
UNIMPL_PH(glArrayElement);
|
||||
UNIMPL_PH(glBegin);
|
||||
UNIMPL_PH(glBitmap);
|
||||
UNIMPL_PH(glCallList);
|
||||
UNIMPL_PH(glCallLists);
|
||||
UNIMPL_PH(glClearAccum);
|
||||
UNIMPL_PH(glClearIndex);
|
||||
UNIMPL_PH(glClipPlane);
|
||||
UNIMPL_PH(glColor3b);
|
||||
UNIMPL_PH(glColor3s);
|
||||
UNIMPL_PH(glColor3i);
|
||||
UNIMPL_PH(glColor3f);
|
||||
UNIMPL_PH(glColor3d);
|
||||
UNIMPL_PH(glColor3ub);
|
||||
UNIMPL_PH(glColor3us);
|
||||
UNIMPL_PH(glColor3ui);
|
||||
UNIMPL_PH(glColor3bv);
|
||||
UNIMPL_PH(glColor3sv);
|
||||
UNIMPL_PH(glColor3iv);
|
||||
UNIMPL_PH(glColor3fv);
|
||||
UNIMPL_PH(glColor3dv);
|
||||
UNIMPL_PH(glColor3ubv);
|
||||
UNIMPL_PH(glColor3usv);
|
||||
UNIMPL_PH(glColor3uiv);
|
||||
UNIMPL_PH(glColor4b);
|
||||
UNIMPL_PH(glColor4s);
|
||||
UNIMPL_PH(glColor4i);
|
||||
UNIMPL_PH(glColor4d);
|
||||
UNIMPL_PH(glColor4us);
|
||||
UNIMPL_PH(glColor4ui);
|
||||
UNIMPL_PH(glColor4bv);
|
||||
UNIMPL_PH(glColor4sv);
|
||||
UNIMPL_PH(glColor4iv);
|
||||
UNIMPL_PH(glColor4fv);
|
||||
UNIMPL_PH(glColor4dv);
|
||||
UNIMPL_PH(glColor4ubv);
|
||||
UNIMPL_PH(glColor4usv);
|
||||
UNIMPL_PH(glColor4uiv);
|
||||
UNIMPL_PH(glColorMaterial);
|
||||
UNIMPL_PH(glCopyPixels);
|
||||
UNIMPL_PH(glDeleteLists);
|
||||
UNIMPL_PH(glDrawPixels);
|
||||
UNIMPL_PH(glEdgeFlag);
|
||||
UNIMPL_PH(glEdgeFlagv);
|
||||
UNIMPL_PH(glEdgeFlagPointer);
|
||||
UNIMPL_PH(glEnd);
|
||||
UNIMPL_PH(glEvalCoord1f);
|
||||
UNIMPL_PH(glEvalCoord1fv);
|
||||
UNIMPL_PH(glEvalCoord1d);
|
||||
UNIMPL_PH(glEvalCoord1dv);
|
||||
UNIMPL_PH(glEvalCoord2f);
|
||||
UNIMPL_PH(glEvalCoord2fv);
|
||||
UNIMPL_PH(glEvalCoord2d);
|
||||
UNIMPL_PH(glEvalCoord2dv);
|
||||
UNIMPL_PH(glEvalMesh1);
|
||||
UNIMPL_PH(glEvalMesh2);
|
||||
UNIMPL_PH(glEvalPoint1);
|
||||
UNIMPL_PH(glEvalPoint2);
|
||||
UNIMPL_PH(glFeedbackBuffer);
|
||||
UNIMPL_PH(glFogi);
|
||||
UNIMPL_PH(glFogiv);
|
||||
UNIMPL_PH(glGenLists);
|
||||
UNIMPL_PH(glGetClipPlane);
|
||||
UNIMPL_PH(glGetLightiv);
|
||||
UNIMPL_PH(glGetMapiv);
|
||||
UNIMPL_PH(glGetMapfv);
|
||||
UNIMPL_PH(glGetMapdv);
|
||||
UNIMPL_PH(glGetMaterialiv);
|
||||
UNIMPL_PH(glGetPixelMapfv);
|
||||
UNIMPL_PH(glGetPixelMapusv);
|
||||
UNIMPL_PH(glGetPixelMapuiv);
|
||||
UNIMPL_PH(glGetPolygonStipple);
|
||||
UNIMPL_PH(glGetTexGeniv);
|
||||
UNIMPL_PH(glGetTexGenfv);
|
||||
UNIMPL_PH(glGetTexGendv);
|
||||
UNIMPL_PH(glIndexi);
|
||||
UNIMPL_PH(glIndexub);
|
||||
UNIMPL_PH(glIndexs);
|
||||
UNIMPL_PH(glIndexf);
|
||||
UNIMPL_PH(glIndexd);
|
||||
UNIMPL_PH(glIndexiv);
|
||||
UNIMPL_PH(glIndexubv);
|
||||
UNIMPL_PH(glIndexsv);
|
||||
UNIMPL_PH(glIndexfv);
|
||||
UNIMPL_PH(glIndexdv);
|
||||
UNIMPL_PH(glIndexMask);
|
||||
UNIMPL_PH(glIndexPointer);
|
||||
UNIMPL_PH(glInitNames);
|
||||
UNIMPL_PH(glInterleavedArrays);
|
||||
UNIMPL_PH(glIsList);
|
||||
UNIMPL_PH(glLightModeli);
|
||||
UNIMPL_PH(glLightModeliv);
|
||||
UNIMPL_PH(glLighti);
|
||||
UNIMPL_PH(glLightiv);
|
||||
UNIMPL_PH(glLineStipple);
|
||||
UNIMPL_PH(glListBase);
|
||||
UNIMPL_PH(glLoadMatrixd);
|
||||
UNIMPL_PH(glLoadName);
|
||||
UNIMPL_PH(glMap1f);
|
||||
UNIMPL_PH(glMap1d);
|
||||
UNIMPL_PH(glMap2f);
|
||||
UNIMPL_PH(glMap2d);
|
||||
UNIMPL_PH(glMapGrid1f);
|
||||
UNIMPL_PH(glMapGrid1d);
|
||||
UNIMPL_PH(glMapGrid2f);
|
||||
UNIMPL_PH(glMapGrid2d);
|
||||
UNIMPL_PH(glMateriali);
|
||||
UNIMPL_PH(glMaterialiv);
|
||||
UNIMPL_PH(glMultMatrixd);
|
||||
UNIMPL_PH(glFrustum);
|
||||
UNIMPL_PH(glNewList);
|
||||
UNIMPL_PH(glEndList);
|
||||
UNIMPL_PH(glNormal3b);
|
||||
UNIMPL_PH(glNormal3s);
|
||||
UNIMPL_PH(glNormal3i);
|
||||
UNIMPL_PH(glNormal3d);
|
||||
UNIMPL_PH(glNormal3fv);
|
||||
UNIMPL_PH(glNormal3bv);
|
||||
UNIMPL_PH(glNormal3sv);
|
||||
UNIMPL_PH(glNormal3iv);
|
||||
UNIMPL_PH(glNormal3dv);
|
||||
UNIMPL_PH(glOrtho);
|
||||
UNIMPL_PH(glPassThrough);
|
||||
UNIMPL_PH(glPixelMapfv);
|
||||
UNIMPL_PH(glPixelMapusv);
|
||||
UNIMPL_PH(glPixelMapuiv);
|
||||
UNIMPL_PH(glPixelTransferi);
|
||||
UNIMPL_PH(glPixelTransferf);
|
||||
UNIMPL_PH(glPixelZoom);
|
||||
UNIMPL_PH(glPolygonStipple);
|
||||
UNIMPL_PH(glPushAttrib);
|
||||
UNIMPL_PH(glPushClientAttrib);
|
||||
UNIMPL_PH(glPopAttrib);
|
||||
UNIMPL_PH(glPopClientAttrib);
|
||||
UNIMPL_PH(glPopName);
|
||||
UNIMPL_PH(glPrioritizeTextures);
|
||||
UNIMPL_PH(glPushName);
|
||||
UNIMPL_PH(glRasterPos2i);
|
||||
UNIMPL_PH(glRasterPos2s);
|
||||
UNIMPL_PH(glRasterPos2f);
|
||||
UNIMPL_PH(glRasterPos2d);
|
||||
UNIMPL_PH(glRasterPos2iv);
|
||||
UNIMPL_PH(glRasterPos2sv);
|
||||
UNIMPL_PH(glRasterPos2fv);
|
||||
UNIMPL_PH(glRasterPos2dv);
|
||||
UNIMPL_PH(glRasterPos3i);
|
||||
UNIMPL_PH(glRasterPos3s);
|
||||
UNIMPL_PH(glRasterPos3f);
|
||||
UNIMPL_PH(glRasterPos3d);
|
||||
UNIMPL_PH(glRasterPos3iv);
|
||||
UNIMPL_PH(glRasterPos3sv);
|
||||
UNIMPL_PH(glRasterPos3fv);
|
||||
UNIMPL_PH(glRasterPos3dv);
|
||||
UNIMPL_PH(glRasterPos4i);
|
||||
UNIMPL_PH(glRasterPos4s);
|
||||
UNIMPL_PH(glRasterPos4f);
|
||||
UNIMPL_PH(glRasterPos4d);
|
||||
UNIMPL_PH(glRasterPos4iv);
|
||||
UNIMPL_PH(glRasterPos4sv);
|
||||
UNIMPL_PH(glRasterPos4fv);
|
||||
UNIMPL_PH(glRasterPos4dv);
|
||||
UNIMPL_PH(glRecti);
|
||||
UNIMPL_PH(glRects);
|
||||
UNIMPL_PH(glRectf);
|
||||
UNIMPL_PH(glRectd);
|
||||
UNIMPL_PH(glRectiv);
|
||||
UNIMPL_PH(glRectsv);
|
||||
UNIMPL_PH(glRectfv);
|
||||
UNIMPL_PH(glRectdv);
|
||||
UNIMPL_PH(glRenderMode);
|
||||
UNIMPL_PH(glRotated);
|
||||
UNIMPL_PH(glScaled);
|
||||
UNIMPL_PH(glSelectBuffer);
|
||||
UNIMPL_PH(glTexCoord1f);
|
||||
UNIMPL_PH(glTexCoord1s);
|
||||
UNIMPL_PH(glTexCoord1i);
|
||||
UNIMPL_PH(glTexCoord1d);
|
||||
UNIMPL_PH(glTexCoord1fv);
|
||||
UNIMPL_PH(glTexCoord1sv);
|
||||
UNIMPL_PH(glTexCoord1iv);
|
||||
UNIMPL_PH(glTexCoord1dv);
|
||||
UNIMPL_PH(glTexCoord2f);
|
||||
UNIMPL_PH(glTexCoord2s);
|
||||
UNIMPL_PH(glTexCoord2i);
|
||||
UNIMPL_PH(glTexCoord2d);
|
||||
UNIMPL_PH(glTexCoord2fv);
|
||||
UNIMPL_PH(glTexCoord2sv);
|
||||
UNIMPL_PH(glTexCoord2iv);
|
||||
UNIMPL_PH(glTexCoord2dv);
|
||||
UNIMPL_PH(glTexCoord3f);
|
||||
UNIMPL_PH(glTexCoord3s);
|
||||
UNIMPL_PH(glTexCoord3i);
|
||||
UNIMPL_PH(glTexCoord3d);
|
||||
UNIMPL_PH(glTexCoord3fv);
|
||||
UNIMPL_PH(glTexCoord3sv);
|
||||
UNIMPL_PH(glTexCoord3iv);
|
||||
UNIMPL_PH(glTexCoord3dv);
|
||||
UNIMPL_PH(glTexCoord4f);
|
||||
UNIMPL_PH(glTexCoord4s);
|
||||
UNIMPL_PH(glTexCoord4i);
|
||||
UNIMPL_PH(glTexCoord4d);
|
||||
UNIMPL_PH(glTexCoord4fv);
|
||||
UNIMPL_PH(glTexCoord4sv);
|
||||
UNIMPL_PH(glTexCoord4iv);
|
||||
UNIMPL_PH(glTexCoord4dv);
|
||||
UNIMPL_PH(glTexGeni);
|
||||
UNIMPL_PH(glTexGeniv);
|
||||
UNIMPL_PH(glTexGenf);
|
||||
UNIMPL_PH(glTexGenfv);
|
||||
UNIMPL_PH(glTexGend);
|
||||
UNIMPL_PH(glTexGendv);
|
||||
UNIMPL_PH(glTranslated);
|
||||
UNIMPL_PH(glVertex2f);
|
||||
UNIMPL_PH(glVertex2s);
|
||||
UNIMPL_PH(glVertex2i);
|
||||
UNIMPL_PH(glVertex2d);
|
||||
UNIMPL_PH(glVertex2fv);
|
||||
UNIMPL_PH(glVertex2sv);
|
||||
UNIMPL_PH(glVertex2iv);
|
||||
UNIMPL_PH(glVertex2dv);
|
||||
UNIMPL_PH(glVertex3f);
|
||||
UNIMPL_PH(glVertex3s);
|
||||
UNIMPL_PH(glVertex3i);
|
||||
UNIMPL_PH(glVertex3d);
|
||||
UNIMPL_PH(glVertex3fv);
|
||||
UNIMPL_PH(glVertex3sv);
|
||||
UNIMPL_PH(glVertex3iv);
|
||||
UNIMPL_PH(glVertex3dv);
|
||||
UNIMPL_PH(glVertex4f);
|
||||
UNIMPL_PH(glVertex4s);
|
||||
UNIMPL_PH(glVertex4i);
|
||||
UNIMPL_PH(glVertex4d);
|
||||
UNIMPL_PH(glVertex4fv);
|
||||
UNIMPL_PH(glVertex4sv);
|
||||
UNIMPL_PH(glVertex4iv);
|
||||
UNIMPL_PH(glVertex4dv);
|
||||
UNIMPL_PH(glClearDepth);
|
||||
UNIMPL_PH(glDepthRange);
|
||||
UNIMPL_PH(glDrawBuffer);
|
||||
UNIMPL_PH(glGetDoublev);
|
||||
UNIMPL_PH(glGetTexImage);
|
||||
UNIMPL_PH(glPixelStoref);
|
||||
UNIMPL_PH(glPolygonMode);
|
||||
UNIMPL_PH(glTexImage1D);
|
||||
UNIMPL_PH(glCopyTexImage1D);
|
||||
UNIMPL_PH(glCopyTexSubImage1D);
|
||||
UNIMPL_PH(glTexSubImage1D);
|
||||
if (!g_initialized)
|
||||
proc_init();
|
||||
if (!strncmp(procname, "egl", 3)) {
|
||||
// MAP_FUNC_MGLUES(eglCreateContext);
|
||||
// MAP_FUNC_MGLUES(eglDestroyContext);
|
||||
// MAP_FUNC_MGLUES(eglMakeCurrent);
|
||||
if (strcmp(procname, "eglCreateContext") == 0)
|
||||
return (__eglMustCastToProperFunctionPointerType) g_egl_func.eglCreateContext;
|
||||
if (strcmp(procname, "eglDestroyContext") == 0)
|
||||
return (__eglMustCastToProperFunctionPointerType) g_egl_func.eglDestroyContext;
|
||||
if (strcmp(procname, "eglMakeCurrent") == 0)
|
||||
return (__eglMustCastToProperFunctionPointerType) g_egl_func.eglMakeCurrent;
|
||||
}
|
||||
|
||||
// OpenGL 1.1
|
||||
MAP_FUNC(glAccum);
|
||||
MAP_FUNC(glAreTexturesResident);
|
||||
MAP_FUNC(glAreTexturesResident);
|
||||
MAP_FUNC(glArrayElement);
|
||||
MAP_FUNC(glBegin);
|
||||
MAP_FUNC(glBitmap);
|
||||
MAP_FUNC(glCallList);
|
||||
MAP_FUNC(glCallLists);
|
||||
MAP_FUNC(glClearAccum);
|
||||
MAP_FUNC(glClearIndex);
|
||||
MAP_FUNC(glClipPlane);
|
||||
MAP_FUNC(glColor3b);
|
||||
MAP_FUNC(glColor3s);
|
||||
MAP_FUNC(glColor3i);
|
||||
MAP_FUNC(glColor3f);
|
||||
MAP_FUNC(glColor3d);
|
||||
MAP_FUNC(glColor3ub);
|
||||
MAP_FUNC(glColor3us);
|
||||
MAP_FUNC(glColor3ui);
|
||||
MAP_FUNC(glColor3bv);
|
||||
MAP_FUNC(glColor3sv);
|
||||
MAP_FUNC(glColor3iv);
|
||||
MAP_FUNC(glColor3fv);
|
||||
MAP_FUNC(glColor3dv);
|
||||
MAP_FUNC(glColor3ubv);
|
||||
MAP_FUNC(glColor3usv);
|
||||
MAP_FUNC(glColor3uiv);
|
||||
MAP_FUNC(glColor4b);
|
||||
MAP_FUNC(glColor4s);
|
||||
MAP_FUNC(glColor4i);
|
||||
MAP_FUNC(glColor4d);
|
||||
MAP_FUNC(glColor4us);
|
||||
MAP_FUNC(glColor4ui);
|
||||
MAP_FUNC(glColor4bv);
|
||||
MAP_FUNC(glColor4sv);
|
||||
MAP_FUNC(glColor4iv);
|
||||
MAP_FUNC(glColor4fv);
|
||||
MAP_FUNC(glColor4dv);
|
||||
MAP_FUNC(glColor4ubv);
|
||||
MAP_FUNC(glColor4usv);
|
||||
MAP_FUNC(glColor4uiv);
|
||||
MAP_FUNC(glColorMaterial);
|
||||
MAP_FUNC(glCopyPixels);
|
||||
MAP_FUNC(glDeleteLists);
|
||||
MAP_FUNC(glDrawPixels);
|
||||
MAP_FUNC(glEdgeFlag);
|
||||
MAP_FUNC(glEdgeFlagv);
|
||||
MAP_FUNC(glEdgeFlagPointer);
|
||||
MAP_FUNC(glEnd);
|
||||
MAP_FUNC(glEvalCoord1f);
|
||||
MAP_FUNC(glEvalCoord1fv);
|
||||
MAP_FUNC(glEvalCoord1d);
|
||||
MAP_FUNC(glEvalCoord1dv);
|
||||
MAP_FUNC(glEvalCoord2f);
|
||||
MAP_FUNC(glEvalCoord2fv);
|
||||
MAP_FUNC(glEvalCoord2d);
|
||||
MAP_FUNC(glEvalCoord2dv);
|
||||
MAP_FUNC(glEvalMesh1);
|
||||
MAP_FUNC(glEvalMesh2);
|
||||
MAP_FUNC(glEvalPoint1);
|
||||
MAP_FUNC(glEvalPoint2);
|
||||
MAP_FUNC(glFeedbackBuffer);
|
||||
MAP_FUNC(glFogi);
|
||||
MAP_FUNC(glFogiv);
|
||||
MAP_FUNC(glGenLists);
|
||||
MAP_FUNC(glGetClipPlane);
|
||||
MAP_FUNC(glGetLightiv);
|
||||
MAP_FUNC(glGetMapiv);
|
||||
MAP_FUNC(glGetMapfv);
|
||||
MAP_FUNC(glGetMapdv);
|
||||
MAP_FUNC(glGetMaterialiv);
|
||||
MAP_FUNC(glGetPixelMapfv);
|
||||
MAP_FUNC(glGetPixelMapusv);
|
||||
MAP_FUNC(glGetPixelMapuiv);
|
||||
MAP_FUNC(glGetPolygonStipple);
|
||||
MAP_FUNC(glGetTexGeniv);
|
||||
MAP_FUNC(glGetTexGenfv);
|
||||
MAP_FUNC(glGetTexGendv);
|
||||
MAP_FUNC(glIndexi);
|
||||
MAP_FUNC(glIndexub);
|
||||
MAP_FUNC(glIndexs);
|
||||
MAP_FUNC(glIndexf);
|
||||
MAP_FUNC(glIndexd);
|
||||
MAP_FUNC(glIndexiv);
|
||||
MAP_FUNC(glIndexubv);
|
||||
MAP_FUNC(glIndexsv);
|
||||
MAP_FUNC(glIndexfv);
|
||||
MAP_FUNC(glIndexdv);
|
||||
MAP_FUNC(glIndexMask);
|
||||
MAP_FUNC(glIndexPointer);
|
||||
MAP_FUNC(glInitNames);
|
||||
MAP_FUNC(glInterleavedArrays);
|
||||
MAP_FUNC(glIsList);
|
||||
MAP_FUNC(glLightModeli);
|
||||
MAP_FUNC(glLightModeliv);
|
||||
MAP_FUNC(glLighti);
|
||||
MAP_FUNC(glLightiv);
|
||||
MAP_FUNC(glLineStipple);
|
||||
MAP_FUNC(glListBase);
|
||||
MAP_FUNC(glLoadMatrixd);
|
||||
MAP_FUNC(glLoadName);
|
||||
MAP_FUNC(glMap1f);
|
||||
MAP_FUNC(glMap1d);
|
||||
MAP_FUNC(glMap2f);
|
||||
MAP_FUNC(glMap2d);
|
||||
MAP_FUNC(glMapGrid1f);
|
||||
MAP_FUNC(glMapGrid1d);
|
||||
MAP_FUNC(glMapGrid2f);
|
||||
MAP_FUNC(glMapGrid2d);
|
||||
MAP_FUNC(glMateriali);
|
||||
MAP_FUNC(glMaterialiv);
|
||||
MAP_FUNC(glMultMatrixd);
|
||||
MAP_FUNC(glFrustum);
|
||||
MAP_FUNC(glNewList);
|
||||
MAP_FUNC(glEndList);
|
||||
MAP_FUNC(glNormal3b);
|
||||
MAP_FUNC(glNormal3s);
|
||||
MAP_FUNC(glNormal3i);
|
||||
MAP_FUNC(glNormal3d);
|
||||
MAP_FUNC(glNormal3fv);
|
||||
MAP_FUNC(glNormal3bv);
|
||||
MAP_FUNC(glNormal3sv);
|
||||
MAP_FUNC(glNormal3iv);
|
||||
MAP_FUNC(glNormal3dv);
|
||||
MAP_FUNC(glOrtho);
|
||||
MAP_FUNC(glPassThrough);
|
||||
MAP_FUNC(glPixelMapfv);
|
||||
MAP_FUNC(glPixelMapusv);
|
||||
MAP_FUNC(glPixelMapuiv);
|
||||
MAP_FUNC(glPixelTransferi);
|
||||
MAP_FUNC(glPixelTransferf);
|
||||
MAP_FUNC(glPixelZoom);
|
||||
MAP_FUNC(glPolygonStipple);
|
||||
MAP_FUNC(glPushAttrib);
|
||||
MAP_FUNC(glPushClientAttrib);
|
||||
MAP_FUNC(glPopAttrib);
|
||||
MAP_FUNC(glPopClientAttrib);
|
||||
MAP_FUNC(glPopName);
|
||||
MAP_FUNC(glPrioritizeTextures);
|
||||
MAP_FUNC(glPushName);
|
||||
MAP_FUNC(glRasterPos2i);
|
||||
MAP_FUNC(glRasterPos2s);
|
||||
MAP_FUNC(glRasterPos2f);
|
||||
MAP_FUNC(glRasterPos2d);
|
||||
MAP_FUNC(glRasterPos2iv);
|
||||
MAP_FUNC(glRasterPos2sv);
|
||||
MAP_FUNC(glRasterPos2fv);
|
||||
MAP_FUNC(glRasterPos2dv);
|
||||
MAP_FUNC(glRasterPos3i);
|
||||
MAP_FUNC(glRasterPos3s);
|
||||
MAP_FUNC(glRasterPos3f);
|
||||
MAP_FUNC(glRasterPos3d);
|
||||
MAP_FUNC(glRasterPos3iv);
|
||||
MAP_FUNC(glRasterPos3sv);
|
||||
MAP_FUNC(glRasterPos3fv);
|
||||
MAP_FUNC(glRasterPos3dv);
|
||||
MAP_FUNC(glRasterPos4i);
|
||||
MAP_FUNC(glRasterPos4s);
|
||||
MAP_FUNC(glRasterPos4f);
|
||||
MAP_FUNC(glRasterPos4d);
|
||||
MAP_FUNC(glRasterPos4iv);
|
||||
MAP_FUNC(glRasterPos4sv);
|
||||
MAP_FUNC(glRasterPos4fv);
|
||||
MAP_FUNC(glRasterPos4dv);
|
||||
MAP_FUNC(glRecti);
|
||||
MAP_FUNC(glRects);
|
||||
MAP_FUNC(glRectf);
|
||||
MAP_FUNC(glRectd);
|
||||
MAP_FUNC(glRectiv);
|
||||
MAP_FUNC(glRectsv);
|
||||
MAP_FUNC(glRectfv);
|
||||
MAP_FUNC(glRectdv);
|
||||
MAP_FUNC(glRenderMode);
|
||||
MAP_FUNC(glRotated);
|
||||
MAP_FUNC(glScaled);
|
||||
MAP_FUNC(glSelectBuffer);
|
||||
MAP_FUNC(glTexCoord1f);
|
||||
MAP_FUNC(glTexCoord1s);
|
||||
MAP_FUNC(glTexCoord1i);
|
||||
MAP_FUNC(glTexCoord1d);
|
||||
MAP_FUNC(glTexCoord1fv);
|
||||
MAP_FUNC(glTexCoord1sv);
|
||||
MAP_FUNC(glTexCoord1iv);
|
||||
MAP_FUNC(glTexCoord1dv);
|
||||
MAP_FUNC(glTexCoord2f);
|
||||
MAP_FUNC(glTexCoord2s);
|
||||
MAP_FUNC(glTexCoord2i);
|
||||
MAP_FUNC(glTexCoord2d);
|
||||
MAP_FUNC(glTexCoord2fv);
|
||||
MAP_FUNC(glTexCoord2sv);
|
||||
MAP_FUNC(glTexCoord2iv);
|
||||
MAP_FUNC(glTexCoord2dv);
|
||||
MAP_FUNC(glTexCoord3f);
|
||||
MAP_FUNC(glTexCoord3s);
|
||||
MAP_FUNC(glTexCoord3i);
|
||||
MAP_FUNC(glTexCoord3d);
|
||||
MAP_FUNC(glTexCoord3fv);
|
||||
MAP_FUNC(glTexCoord3sv);
|
||||
MAP_FUNC(glTexCoord3iv);
|
||||
MAP_FUNC(glTexCoord3dv);
|
||||
MAP_FUNC(glTexCoord4f);
|
||||
MAP_FUNC(glTexCoord4s);
|
||||
MAP_FUNC(glTexCoord4i);
|
||||
MAP_FUNC(glTexCoord4d);
|
||||
MAP_FUNC(glTexCoord4fv);
|
||||
MAP_FUNC(glTexCoord4sv);
|
||||
MAP_FUNC(glTexCoord4iv);
|
||||
MAP_FUNC(glTexCoord4dv);
|
||||
MAP_FUNC(glTexGeni);
|
||||
MAP_FUNC(glTexGeniv);
|
||||
MAP_FUNC(glTexGenf);
|
||||
MAP_FUNC(glTexGenfv);
|
||||
MAP_FUNC(glTexGend);
|
||||
MAP_FUNC(glTexGendv);
|
||||
MAP_FUNC(glTranslated);
|
||||
MAP_FUNC(glVertex2f);
|
||||
MAP_FUNC(glVertex2s);
|
||||
MAP_FUNC(glVertex2i);
|
||||
MAP_FUNC(glVertex2d);
|
||||
MAP_FUNC(glVertex2fv);
|
||||
MAP_FUNC(glVertex2sv);
|
||||
MAP_FUNC(glVertex2iv);
|
||||
MAP_FUNC(glVertex2dv);
|
||||
MAP_FUNC(glVertex3f);
|
||||
MAP_FUNC(glVertex3s);
|
||||
MAP_FUNC(glVertex3i);
|
||||
MAP_FUNC(glVertex3d);
|
||||
MAP_FUNC(glVertex3fv);
|
||||
MAP_FUNC(glVertex3sv);
|
||||
MAP_FUNC(glVertex3iv);
|
||||
MAP_FUNC(glVertex3dv);
|
||||
MAP_FUNC(glVertex4f);
|
||||
MAP_FUNC(glVertex4s);
|
||||
MAP_FUNC(glVertex4i);
|
||||
MAP_FUNC(glVertex4d);
|
||||
MAP_FUNC(glVertex4fv);
|
||||
MAP_FUNC(glVertex4sv);
|
||||
MAP_FUNC(glVertex4iv);
|
||||
MAP_FUNC(glVertex4dv);
|
||||
MAP_FUNC(glClearDepth);
|
||||
MAP_FUNC(glDepthRange);
|
||||
MAP_FUNC(glDrawBuffer);
|
||||
MAP_FUNC(glGetDoublev);
|
||||
MAP_FUNC(glGetTexImage);
|
||||
MAP_FUNC(glPixelStoref);
|
||||
MAP_FUNC(glPolygonMode);
|
||||
MAP_FUNC(glTexImage1D);
|
||||
MAP_FUNC(glCopyTexImage1D);
|
||||
MAP_FUNC(glCopyTexSubImage1D);
|
||||
MAP_FUNC(glTexSubImage1D);
|
||||
MAP_FUNC(glGetError);
|
||||
MAP_FUNC(glGetString);
|
||||
// UNIMPL_PH(glMultiTexCoord1f);
|
||||
// UNIMPL_PH(glMultiTexCoord1s);
|
||||
// UNIMPL_PH(glMultiTexCoord1i);
|
||||
@ -501,39 +519,38 @@ __eglMustCastToProperFunctionPointerType prehook(const char *procname) {
|
||||
}
|
||||
|
||||
__eglMustCastToProperFunctionPointerType posthook(const char *procname) {
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY glXGetProcAddress (const char *procname) {
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"%s @ %s(%s)", RENDERERNAME, __FUNCTION__, procname);
|
||||
__eglMustCastToProperFunctionPointerType proc = NULL;
|
||||
|
||||
proc = prehook(procname);
|
||||
if (proc) return proc;
|
||||
else
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"bad func addr: %s(%s) @ prehook", __FUNCTION__, procname);
|
||||
|
||||
proc = eglGetProcAddress(procname);
|
||||
if (proc) return proc;
|
||||
else
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"bad func addr: %s(%s) @ system", __FUNCTION__, procname);
|
||||
|
||||
proc = posthook(procname);
|
||||
if (!proc)
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"bad func addr: %s(%s) @ posthook", __FUNCTION__, procname);
|
||||
return proc;
|
||||
return eglGetProcAddress(procname);
|
||||
}
|
||||
|
||||
EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname) {
|
||||
__android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
"%s @ %s(%s)", RENDERERNAME, __FUNCTION__, procname);
|
||||
|
||||
return g_target_egl_func.eglGetProcAddress(procname);
|
||||
__eglMustCastToProperFunctionPointerType proc = NULL;
|
||||
|
||||
proc = prehook(procname);
|
||||
if (proc) return proc;
|
||||
// else
|
||||
// __android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
// "null func addr: %s(%s) @ prehook", __FUNCTION__, procname);
|
||||
|
||||
// proc = g_egl_func.eglGetProcAddress(procname);
|
||||
if (proc) return proc;
|
||||
// else
|
||||
// __android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
// "null func addr: %s(%s) @ system", __FUNCTION__, procname);
|
||||
|
||||
proc = posthook(procname);
|
||||
// if (!proc)
|
||||
// __android_log_print(ANDROID_LOG_VERBOSE, RENDERERNAME,
|
||||
// "null func addr: %s(%s) @ posthook", __FUNCTION__, procname);
|
||||
return proc;
|
||||
}
|
||||
|
||||
//static const unsigned char* vendor = "GL_VENDOR";
|
||||
|
Loading…
x
Reference in New Issue
Block a user