diff options
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rwxr-xr-x | rebuild_wrappers.py | 4 | ||||
| -rw-r--r-- | src/librarian/library.c | 6 | ||||
| -rw-r--r-- | src/library_list.h | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 6 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedglesv2defs.h | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedglesv2types.h | 17 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedglesv2undefs.h | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibgltypes.h | 6 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rw-r--r-- | src/wrapped/wrappedglesv2.c | 23 | ||||
| -rw-r--r-- | src/wrapped/wrappedglesv2_private.h | 362 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibegl_private.h | 20 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibgl.c | 133 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibgl_private.h | 204 |
16 files changed, 704 insertions, 100 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f0ac96a..6179d5fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -470,6 +470,7 @@ set(WRAPPEDS "${BOX64_ROOT}/src/wrapped/wrappedgdkpixbuf2.c" "${BOX64_ROOT}/src/wrapped/wrappedgdkx112.c" "${BOX64_ROOT}/src/wrapped/wrappedgio2.c" + "${BOX64_ROOT}/src/wrapped/wrappedglesv2.c" "${BOX64_ROOT}/src/wrapped/wrappedglib2.c" "${BOX64_ROOT}/src/wrapped/wrappedgmodule2.c" "${BOX64_ROOT}/src/wrapped/wrappedgmp.c" diff --git a/rebuild_wrappers.py b/rebuild_wrappers.py index 70ab3889..115e7d80 100755 --- a/rebuild_wrappers.py +++ b/rebuild_wrappers.py @@ -399,7 +399,9 @@ def readFiles(files: Iterable[Filename]) -> Tuple[JumbledGlobals, JumbledRedirec or match("sdl1mixer", "sdl2mixer") \ or match("sdl1net", "sdl2net") \ or match("sdl1ttf", "sdl2ttf") \ - or match("libGL", "libEGL") \ + or match("libgl", "libegl") \ + or match("libgl", "glesv2") \ + or match("libegl", "glesv2") \ or match("libc", "tcmallocminimal") \ or match("libc", "tbbmallocproxy") \ or match("libc", "androidshmem") \ diff --git a/src/librarian/library.c b/src/librarian/library.c index 99d884cd..fb27c430 100644 --- a/src/librarian/library.c +++ b/src/librarian/library.c @@ -473,6 +473,12 @@ library_t *NewLibrary(const char* path, box64context_t* context, elfheader_t* ve int precise = (!box64_prefer_wrapped && !essential && path && strchr(path, '/'))?1:0; if(!notwrapped && precise && strstr(path, "libtcmalloc_minimal.so")) precise = 0; // allow native version for tcmalloc_minimum + /* + if(!notwrapped && precise && strstr(path, "libEGL.so")) + precise = 0; // allow native version for EGL + if(!notwrapped && precise && strstr(path, "libGLESv2.so")) + precise = 0; // allow native version for GLESv2 + */ // check if name is libSDL_sound-1.0.so.1 but with SDL2 loaded, then try emulated first... if(!notwrapped && !strcmp(lib->name, "libSDL_sound-1.0.so.1") && my_context->sdl2lib) notwrapped = 1; diff --git a/src/library_list.h b/src/library_list.h index ba69fd4e..6314311a 100644 --- a/src/library_list.h +++ b/src/library_list.h @@ -6,12 +6,15 @@ GO("libc.musl-x86_64.so.1", libcmusl) GO("librt.so.1", librt) GO("libbsd.so.0", libbsd) GO("libEGL.so.1", libegl) +GO("libEGL.so", libegl) GO("libGL.so.1", libgl) GO("libGL.so", libgl) GO("libOpenGL.so.0", libgl) GO("libGLU.so.1", libglu) GO("libGLX.so.0", libglx) GO("libGLX.so", libglx) +GO("libGLESv2.so.2", glesv2) +GO("libGLESv2.so", glesv2) GO("libX11.so.6", libx11) GO("libasound.so.2", libasound) GO("libasound.so", libasound) diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index ceff6490..9ec09008 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -2482,6 +2482,7 @@ #() vFEpppppuu #() vFiiiiuuip #() vFiilliilp +#() vFiilluulp #() vFiupuiuup #() vFiupuuuup #() vFuiiiiiii @@ -3437,6 +3438,7 @@ wrappedgio2: - g_dbus_connection_signal_subscribe - vFpppppppiippp: - g_dbus_connection_call +wrappedglesv2: wrappedglib2: - vFp: - g_atexit @@ -4365,10 +4367,14 @@ wrappedlibgl: - glDebugMessageCallbackAMD - glDebugMessageCallbackARB - glDebugMessageCallbackKHR +- iFpp: + - eglDebugMessageControlKHR - vFipp: - glProgramCallbackMESA - vFppi: - glXSwapIntervalEXT +- vFppp: + - eglSetBlobCacheFuncsANDROID wrappedlibglu: - vFpip: - gluNurbsCallback diff --git a/src/wrapped/generated/wrappedglesv2defs.h b/src/wrapped/generated/wrappedglesv2defs.h new file mode 100644 index 00000000..26d20e5a --- /dev/null +++ b/src/wrapped/generated/wrappedglesv2defs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.4.0.21) * + *******************************************************************/ +#ifndef __wrappedglesv2DEFS_H_ +#define __wrappedglesv2DEFS_H_ + + +#endif // __wrappedglesv2DEFS_H_ diff --git a/src/wrapped/generated/wrappedglesv2types.h b/src/wrapped/generated/wrappedglesv2types.h new file mode 100644 index 00000000..586fe02b --- /dev/null +++ b/src/wrapped/generated/wrappedglesv2types.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.4.0.21) * + *******************************************************************/ +#ifndef __wrappedglesv2TYPES_H_ +#define __wrappedglesv2TYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedglesv2TYPES_H_ diff --git a/src/wrapped/generated/wrappedglesv2undefs.h b/src/wrapped/generated/wrappedglesv2undefs.h new file mode 100644 index 00000000..9362f423 --- /dev/null +++ b/src/wrapped/generated/wrappedglesv2undefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.4.0.21) * + *******************************************************************/ +#ifndef __wrappedglesv2UNDEFS_H_ +#define __wrappedglesv2UNDEFS_H_ + + +#endif // __wrappedglesv2UNDEFS_H_ diff --git a/src/wrapped/generated/wrappedlibgltypes.h b/src/wrapped/generated/wrappedlibgltypes.h index d266fdc9..e9d48457 100644 --- a/src/wrapped/generated/wrappedlibgltypes.h +++ b/src/wrapped/generated/wrappedlibgltypes.h @@ -14,8 +14,10 @@ typedef int32_t (*iFi_t)(int32_t); typedef void* (*pFp_t)(void*); typedef void (*vFpp_t)(void*, void*); +typedef int32_t (*iFpp_t)(void*, void*); typedef void (*vFipp_t)(int32_t, void*, void*); typedef void (*vFppi_t)(void*, void*, int32_t); +typedef void (*vFppp_t)(void*, void*, void*); #define SUPER() ADDED_FUNCTIONS() \ GO(glXSwapIntervalMESA, iFi_t) \ @@ -26,7 +28,9 @@ typedef void (*vFppi_t)(void*, void*, int32_t); GO(glDebugMessageCallbackAMD, vFpp_t) \ GO(glDebugMessageCallbackARB, vFpp_t) \ GO(glDebugMessageCallbackKHR, vFpp_t) \ + GO(eglDebugMessageControlKHR, iFpp_t) \ GO(glProgramCallbackMESA, vFipp_t) \ - GO(glXSwapIntervalEXT, vFppi_t) + GO(glXSwapIntervalEXT, vFppi_t) \ + GO(eglSetBlobCacheFuncsANDROID, vFppp_t) #endif // __wrappedlibglTYPES_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 260f1fc7..5126f324 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -2520,6 +2520,7 @@ typedef void (*vFEpppuipV_t)(x64emu_t*, void*, void*, void*, uint32_t, int32_t, typedef void (*vFEpppppuu_t)(x64emu_t*, void*, void*, void*, void*, void*, uint32_t, uint32_t); typedef void (*vFiiiiuuip_t)(int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, void*); typedef void (*vFiilliilp_t)(int32_t, int32_t, intptr_t, intptr_t, int32_t, int32_t, intptr_t, void*); +typedef void (*vFiilluulp_t)(int32_t, int32_t, intptr_t, intptr_t, uint32_t, uint32_t, intptr_t, void*); typedef void (*vFiupuiuup_t)(int32_t, uint32_t, void*, uint32_t, int32_t, uint32_t, uint32_t, void*); typedef void (*vFiupuuuup_t)(int32_t, uint32_t, void*, uint32_t, uint32_t, uint32_t, uint32_t, void*); typedef void (*vFuiiiiiii_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); @@ -5589,6 +5590,7 @@ void vFEpppuipV(x64emu_t *emu, uintptr_t fcn) { vFEpppuipV_t fn = (vFEpppuipV_t) void vFEpppppuu(x64emu_t *emu, uintptr_t fcn) { vFEpppppuu_t fn = (vFEpppppuu_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); } void vFiiiiuuip(x64emu_t *emu, uintptr_t fcn) { vFiiiiuuip_t fn = (vFiiiiuuip_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } void vFiilliilp(x64emu_t *emu, uintptr_t fcn) { vFiilliilp_t fn = (vFiilliilp_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(intptr_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } +void vFiilluulp(x64emu_t *emu, uintptr_t fcn) { vFiilluulp_t fn = (vFiilluulp_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(intptr_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } void vFiupuiuup(x64emu_t *emu, uintptr_t fcn) { vFiupuiuup_t fn = (vFiupuiuup_t)fcn; fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } void vFiupuuuup(x64emu_t *emu, uintptr_t fcn) { vFiupuuuup_t fn = (vFiupuuuup_t)fcn; fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } void vFuiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiii_t fn = (vFuiiiiiii_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 2e3fb875..d9393acd 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -2520,6 +2520,7 @@ void vFEpppuipV(x64emu_t *emu, uintptr_t fnc); void vFEpppppuu(x64emu_t *emu, uintptr_t fnc); void vFiiiiuuip(x64emu_t *emu, uintptr_t fnc); void vFiilliilp(x64emu_t *emu, uintptr_t fnc); +void vFiilluulp(x64emu_t *emu, uintptr_t fnc); void vFiupuiuup(x64emu_t *emu, uintptr_t fnc); void vFiupuuuup(x64emu_t *emu, uintptr_t fnc); void vFuiiiiiii(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedglesv2.c b/src/wrapped/wrappedglesv2.c new file mode 100644 index 00000000..63b22358 --- /dev/null +++ b/src/wrapped/wrappedglesv2.c @@ -0,0 +1,23 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +#ifdef ANDROID + const char* glesv2Name = "libGLESv2.so"; +#else + const char* glesv2Name = "libGLESv2.so.2"; +#endif + +#define LIBNAME glesv2 + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedglesv2_private.h b/src/wrapped/wrappedglesv2_private.h new file mode 100644 index 00000000..54cb4b42 --- /dev/null +++ b/src/wrapped/wrappedglesv2_private.h @@ -0,0 +1,362 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +GO(glActiveShaderProgram, vFuu) +GO(glActiveTexture, vFu) +GO(glAttachShader, vFuu) +GO(glBeginQuery, vFuu) +GO(glBeginTransformFeedback, vFu) +GO(glBindAttribLocation, vFuup) +GO(glBindBuffer, vFuu) +GO(glBindBufferBase, vFuuu) +GO(glBindBufferRange, vFuuuii) +GO(glBindFramebuffer, vFuu) +GO(glBindImageTexture, vFuuiCiuu) +GO(glBindProgramPipeline, vFu) +GO(glBindRenderbuffer, vFuu) +GO(glBindSampler, vFuu) +GO(glBindTexture, vFuu) +GO(glBindTransformFeedback, vFuu) +GO(glBindVertexArray, vFu) +GO(glBindVertexBuffer, vFuuli) +GO(glBlendBarrier, vFv) +GO(glBlendColor, vFffff) +GO(glBlendEquation, vFu) +GO(glBlendEquationi, vFuu) +GO(glBlendEquationSeparate, vFuu) +GO(glBlendEquationSeparatei, vFuuu) +GO(glBlendFunc, vFuu) +GO(glBlendFunci, vFuuu) +GO(glBlendFuncSeparate, vFuuuu) +GO(glBlendFuncSeparatei, vFuuuuu) +GO(glBlitFramebuffer, vFiiiiiiiiiu) +GO(glBufferData, vFulpu) +GO(glBufferSubData, vFullp) +GO(glCheckFramebufferStatus, uFu) +GO(glClear, vFi) +GO(glClearBufferfi, vFuifi) +GO(glClearBufferfv, vFuip) +GO(glClearBufferiv, vFuip) +GO(glClearBufferuiv, vFuip) +GO(glClearColor, vFffff) +GO(glClearDepthf, vFf) +GO(glClearStencil, vFi) +GO(glClientWaitSync, uFpuL) +GO(glColorMask, vFCCCC) +GO(glColorMaski, vFuiiii) +GO(glCompileShader, vFu) +GO(glCompressedTexImage2D, vFuiuiiiip) +GO(glCompressedTexImage3D, vFuiuiiiiip) +GO(glCompressedTexSubImage2D, vFuiiiiiuip) +GO(glCompressedTexSubImage3D, vFuiiiiiiiuip) +GO(glCopyBufferSubData, vFuulll) +GO(glCopyImageSubData, vFuuiiiiuuiiiiiii) +GO(glCopyTexImage2D, vFuiuiiiii) +GO(glCopyTexSubImage2D, vFuiiiiiii) +GO(glCopyTexSubImage3D, vFuiiiiiiii) +GO(glCreateProgram, uFv) +GO(glCreateShader, uFu) +GO(glCreateShaderProgramv, uFuip) +GO(glCullFace, vFu) +//GO(glDebugMessageCallback, +GO(glDebugMessageControl, vFuuuipi) +GO(glDebugMessageInsert, vFuuuuip) +GO(glDeleteBuffers, vFip) +GO(glDeleteFramebuffers, vFip) +GO(glDeleteProgram, vFu) +GO(glDeleteProgramPipelines, vFip) +GO(glDeleteQueries, vFip) +GO(glDeleteRenderbuffers, vFip) +GO(glDeleteSamplers, vFip) +GO(glDeleteShader, vFu) +GO(glDeleteSync, vFp) +GO(glDeleteTextures, vFip) +GO(glDeleteTransformFeedbacks, vFip) +GO(glDeleteVertexArrays, vFip) +GO(glDepthFunc, vFu) +GO(glDepthMask, vFi) +GO(glDepthRangef, vFff) +GO(glDetachShader, vFuu) +GO(glDisable, vFu) +GO(glDisablei, vFuu) +GO(glDisableVertexAttribArray, vFu) +GO(glDispatchCompute, vFuuu) +GO(glDispatchComputeIndirect, vFi) +GO(glDrawArrays, vFuii) +GO(glDrawArraysIndirect, vFup) +GO(glDrawArraysInstanced, vFuiii) +GO(glDrawBuffers, vFip) +GO(glDrawElements, vFuiup) +GO(glDrawElementsBaseVertex, vFuiupi) +GO(glDrawElementsIndirect, vFuup) +GO(glDrawElementsInstanced, vFuiupi) +GO(glDrawElementsInstancedBaseVertex, vFuiupii) +GO(glDrawRangeElements, vFuuuiup) +GO(glDrawRangeElementsBaseVertex, vFuuuiupi) +GO(glEnable, vFu) +GO(glEnablei, vFuu) +GO(glEnableVertexAttribArray, vFu) +GO(glEndQuery, vFu) +GO(glEndTransformFeedback, vFv) +GO(glFenceSync, pFuu) +GO(glFinish, vFv) +GO(glFlush, vFv) +GO(glFlushMappedBufferRange, vFull) +GO(glFramebufferParameteri, vFuui) +GO(glFramebufferRenderbuffer, vFuuuu) +GO(glFramebufferTexture, vFuuui) +GO(glFramebufferTexture2D, vFuuuui) +GO(glFramebufferTextureLayer, vFuuuii) +GO(glFrontFace, vFu) +GO(glGenBuffers, vFip) +GO(glGenerateMipmap, vFu) +GO(glGenFramebuffers, vFip) +GO(glGenProgramPipelines, vFip) +GO(glGenQueries, vFip) +GO(glGenRenderbuffers, vFip) +GO(glGenSamplers, vFip) +GO(glGenTextures, vFip) +GO(glGenTransformFeedbacks, vFip) +GO(glGenVertexArrays, vFip) +GO(glGetActiveAttrib, vFuuipppp) +GO(glGetActiveUniform, vFuuipppp) +GO(glGetActiveUniformBlockiv, vFuuup) +GO(glGetActiveUniformBlockName, vFuuipp) +GO(glGetActiveUniformsiv, vFuipup) +GO(glGetAttachedShaders, vFuipp) +GO(glGetAttribLocation, iFup) +GO(glGetBooleani_v, vFuup) +GO(glGetBooleanv, vFup) +GO(glGetBufferParameteri64v, vFuup) +GO(glGetBufferParameteriv, vFuup) +GO(glGetBufferPointerv, vFuup) +GO(glGetDebugMessageLog, uFuipppppp) +GO(glGetError, uFv) +GO(glGetFloatv, vFup) +GO(glGetFragDataLocation, iFup) +GO(glGetFramebufferAttachmentParameteriv, vFuuup) +GO(glGetFramebufferParameteriv, vFuup) +GO(glGetGraphicsResetStatus, iFv) +GO(glGetInteger64i_v, vFuup) +GO(glGetInteger64v, vFup) +GO(glGetIntegeri_v, vFuup) +GO(glGetIntegerv, vFup) +GO(glGetInternalformativ, vFuuuip) +GO(glGetMultisamplefv, vFuup) +GO(glGetnUniformfv, vFuilp) +GO(glGetnUniformiv, vFuilp) +GO(glGetnUniformuiv, vFuilp) +GO(glGetObjectLabel, vFuuipp) +GO(glGetObjectPtrLabel, vFpipp) +GO(glGetPointerv, vFup) +GO(glGetProgramBinary, vFuippp) +GO(glGetProgramInfoLog, vFuipp) +GO(glGetProgramInterfaceiv, vFuuup) +GO(glGetProgramiv, vFuup) +GO(glGetProgramPipelineInfoLog, vFuipp) +GO(glGetProgramPipelineiv, vFuup) +GO(glGetProgramResourceIndex, uFuup) +GO(glGetProgramResourceiv, vFuuuipipp) +GO(glGetProgramResourceLocation, iFuup) +GO(glGetProgramResourceName, vFuuuipp) +GO(glGetQueryiv, vFuup) +GO(glGetQueryObjectuiv, vFuup) +GO(glGetRenderbufferParameteriv, vFuup) +GO(glGetSamplerParameterfv, vFuup) +GO(glGetSamplerParameterIiv, vFuup) +GO(glGetSamplerParameterIuiv, vFuup) +GO(glGetSamplerParameteriv, vFuup) +GO(glGetShaderInfoLog, vFuipp) +GO(glGetShaderiv, vFuup) +GO(glGetShaderPrecisionFormat, vFuupp) +GO(glGetShaderSource, vFuipp) +GO(glGetString, pFu) +GO(glGetStringi, pFuu) +GO(glGetSynciv, vFpuipp) +GO(glGetTexLevelParameterfv, vFuiup) +GO(glGetTexLevelParameteriv, vFuiup) +GO(glGetTexParameterfv, vFuup) +GO(glGetTexParameterIiv, vFuup) +GO(glGetTexParameterIuiv, vFuup) +GO(glGetTexParameteriv, vFuup) +GO(glGetTransformFeedbackVarying, vFuuipppp) +GO(glGetUniformBlockIndex, uFup) +GO(glGetUniformfv, vFuip) +GO(glGetUniformIndices, vFuipp) +GO(glGetUniformiv, vFuip) +GO(glGetUniformLocation, iFup) +GO(glGetUniformuiv, vFuip) +GO(glGetVertexAttribfv, vFuup) +GO(glGetVertexAttribIiv, vFuup) +GO(glGetVertexAttribIuiv, vFuup) +GO(glGetVertexAttribiv, vFuup) +GO(glGetVertexAttribPointerv, vFuup) +GO(glHint, vFuu) +GO(glInvalidateFramebuffer, vFuip) +GO(glInvalidateSubFramebuffer, vFuipiiii) +GO(glIsBuffer, iFu) +GO(glIsEnabled, iFu) +GO(glIsEnabledi, iFuu) +GO(glIsFramebuffer, iFu) +GO(glIsProgram, iFu) +GO(glIsProgramPipeline, iFu) +GO(glIsQuery, iFu) +GO(glIsRenderbuffer, iFu) +GO(glIsSampler, iFu) +GO(glIsShader, iFu) +GO(glIsSync, CFp) +GO(glIsTexture, iFu) +GO(glIsTransformFeedback, iFu) +GO(glIsVertexArray, iFu) +GO(glLineWidth, vFf) +GO(glLinkProgram, vFu) +GO(glMapBufferRange, pFullu) +GO(glMemoryBarrier, vFi) +GO(glMemoryBarrierByRegion, vFu) +GO(glMinSampleShading, vFf) +GO(glObjectLabel, vFuuip) +GO(glObjectPtrLabel, vFpip) +GO(glPatchParameteri, vFui) +GO(glPauseTransformFeedback, vFv) +GO(glPixelStorei, vFui) +GO(glPolygonOffset, vFff) +GO(glPopDebugGroup, vFv) +GO(glPrimitiveBoundingBox, vFffffffff) +GO(glProgramBinary, vFuupi) +GO(glProgramParameteri, vFuui) +GO(glProgramUniform1f, vFuif) +GO(glProgramUniform1fv, vFuiip) +GO(glProgramUniform1i, vFuii) +GO(glProgramUniform1iv, vFuiip) +GO(glProgramUniform1ui, vFuiu) +GO(glProgramUniform1uiv, vFuiip) +GO(glProgramUniform2f, vFuiff) +GO(glProgramUniform2fv, vFuiip) +GO(glProgramUniform2i, vFuiii) +GO(glProgramUniform2iv, vFuiip) +GO(glProgramUniform2ui, vFuiuu) +GO(glProgramUniform2uiv, vFuiip) +GO(glProgramUniform3f, vFuifff) +GO(glProgramUniform3fv, vFuiip) +GO(glProgramUniform3i, vFuiiii) +GO(glProgramUniform3iv, vFuiip) +GO(glProgramUniform3ui, vFuiuuu) +GO(glProgramUniform3uiv, vFuiip) +GO(glProgramUniform4f, vFuiffff) +GO(glProgramUniform4fv, vFuiip) +GO(glProgramUniform4i, vFuiiiii) +GO(glProgramUniform4iv, vFuiip) +GO(glProgramUniform4ui, vFuiuuuu) +GO(glProgramUniform4uiv, vFuiip) +GO(glProgramUniformMatrix2fv, vFuiiip) +GO(glProgramUniformMatrix2x3fv, vFuiiip) +GO(glProgramUniformMatrix2x4fv, vFuiiip) +GO(glProgramUniformMatrix3fv, vFuiiip) +GO(glProgramUniformMatrix3x2fv, vFuiiip) +GO(glProgramUniformMatrix3x4fv, vFuiiip) +GO(glProgramUniformMatrix4fv, vFuiiip) +GO(glProgramUniformMatrix4x2fv, vFuiiip) +GO(glProgramUniformMatrix4x3fv, vFuiiip) +GO(glPushDebugGroup, vFuuip) +GO(glReadBuffer, vFu) +GO(glReadnPixels, vFiilluulp) +GO(glReadPixels, vFiiiiuup) +GO(glReleaseShaderCompiler, vFv) +GO(glRenderbufferStorage, vFuuii) +GO(glRenderbufferStorageMultisample, vFuiuii) +GO(glResumeTransformFeedback, vFv) +GO(glSampleCoverage, vFfi) +GO(glSampleMaski, vFui) +GO(glSamplerParameterf, vFuuf) +GO(glSamplerParameterfv, vFuup) +GO(glSamplerParameteri, vFuui) +GO(glSamplerParameterIiv, vFuup) +GO(glSamplerParameterIuiv, vFuup) +GO(glSamplerParameteriv, vFuup) +GO(glScissor, vFiiii) +GO(glShaderBinary, vFipupi) +GO(glShaderSource, vFuipp) +GO(glStencilFunc, vFuiu) +GO(glStencilFuncSeparate, vFuuiu) +GO(glStencilMask, vFu) +GO(glStencilMaskSeparate, vFuu) +GO(glStencilOp, vFuuu) +GO(glStencilOpSeparate, vFuuuu) +GO(glTexBuffer, vFuuu) +GO(glTexBufferRange, vFuuull) +GO(glTexImage2D, vFuiiiiiuup) +GO(glTexImage3D, vFuiiiiiiuup) +GO(glTexParameterf, vFuuf) +GO(glTexParameterfv, vFuup) +GO(glTexParameteri, vFuui) +GO(glTexParameterIiv, vFuup) +GO(glTexParameterIuiv, vFuup) +GO(glTexParameteriv, vFuup) +GO(glTexStorage2D, vFuiuii) +GO(glTexStorage2DMultisample, vFuiuiiC) +GO(glTexStorage3D, vFuiuiii) +GO(glTexStorage3DMultisample, vFuiuiiiC) +GO(glTexSubImage2D, vFuiiiiiuup) +GO(glTexSubImage3D, vFuiiiiiiiuup) +GO(glTransformFeedbackVaryings, vFuipu) +GO(glUniform1f, vFif) +GO(glUniform1fv, vFiip) +GO(glUniform1i, vFii) +GO(glUniform1iv, vFiip) +GO(glUniform1ui, vFiu) +GO(glUniform1uiv, vFiip) +GO(glUniform2f, vFiff) +GO(glUniform2fv, vFiip) +GO(glUniform2i, vFiii) +GO(glUniform2iv, vFiip) +GO(glUniform2ui, vFiuu) +GO(glUniform2uiv, vFiip) +GO(glUniform3f, vFifff) +GO(glUniform3fv, vFiip) +GO(glUniform3i, vFiiii) +GO(glUniform3iv, vFiip) +GO(glUniform3ui, vFiuuu) +GO(glUniform3uiv, vFiip) +GO(glUniform4f, vFiffff) +GO(glUniform4fv, vFiip) +GO(glUniform4i, vFiiiii) +GO(glUniform4iv, vFiip) +GO(glUniform4ui, vFiuuuu) +GO(glUniform4uiv, vFiip) +GO(glUniformBlockBinding, vFuuu) +GO(glUniformMatrix2fv, vFiiip) +GO(glUniformMatrix2x3fv, vFiiip) +GO(glUniformMatrix2x4fv, vFiiip) +GO(glUniformMatrix3fv, vFiiip) +GO(glUniformMatrix3x2fv, vFiiip) +GO(glUniformMatrix3x4fv, vFiiip) +GO(glUniformMatrix4fv, vFiiip) +GO(glUniformMatrix4x2fv, vFiiip) +GO(glUniformMatrix4x3fv, vFiiip) +GO(glUnmapBuffer, iFu) +GO(glUseProgram, vFu) +GO(glUseProgramStages, vFuuu) +GO(glValidateProgram, vFu) +GO(glValidateProgramPipeline, vFu) +GO(glVertexAttrib1f, vFuf) +GO(glVertexAttrib1fv, vFup) +GO(glVertexAttrib2f, vFuff) +GO(glVertexAttrib2fv, vFup) +GO(glVertexAttrib3f, vFufff) +GO(glVertexAttrib3fv, vFup) +GO(glVertexAttrib4f, vFuffff) +GO(glVertexAttrib4fv, vFup) +GO(glVertexAttribBinding, vFuu) +GO(glVertexAttribDivisor, vFuu) +GO(glVertexAttribFormat, vFuiuCu) +GO(glVertexAttribI4i, vFuiiii) +GO(glVertexAttribI4iv, vFup) +GO(glVertexAttribI4ui, vFuuuuu) +GO(glVertexAttribI4uiv, vFup) +GO(glVertexAttribIFormat, vFuiuu) +GO(glVertexAttribIPointer, vFuiuip) +GO(glVertexAttribPointer, vFuiuiip) +GO(glVertexBindingDivisor, vFuu) +GO(glViewport, vFiiii) +GO(glWaitSync, vFpuL) diff --git a/src/wrapped/wrappedlibegl_private.h b/src/wrapped/wrappedlibegl_private.h index e109388a..1f3eb966 100644 --- a/src/wrapped/wrappedlibegl_private.h +++ b/src/wrapped/wrappedlibegl_private.h @@ -5,21 +5,21 @@ GO(eglBindAPI, iFi) GO(eglBindTexImage, iFppi) GO(eglChooseConfig, iFpppip) -//GO(eglClientWaitSync, +GO(eglClientWaitSync, iFppiU) GO(eglCopyBuffers, iFppp) GO(eglCreateContext, pFpppp) -//GO(eglCreateImage, +GO(eglCreateImage, pFppuup) GO(eglCreatePbufferFromClientBuffer, pFpippp) GO(eglCreatePbufferSurface, pFppp) GO(eglCreatePixmapSurface, pFpppp) -//GO(eglCreatePlatformPixmapSurface, -//GO(eglCreatePlatformWindowSurface, -//GO(eglCreateSync, +GO(eglCreatePlatformPixmapSurface, pFpppp) +GO(eglCreatePlatformWindowSurface, pFpppp) +GO(eglCreateSync, pFpup) GO(eglCreateWindowSurface, pFpppp) GO(eglDestroyContext, iFpp) -//GO(eglDestroyImage, +GO(eglDestroyImage, iFpp) GO(eglDestroySurface, iFpp) -//GO(eglDestroySync, +GO(eglDestroySync, iFpp) GO(eglGetConfigAttrib, iFppip) GO(eglGetConfigs, iFppip) GO(eglGetCurrentContext, pFv) @@ -27,9 +27,9 @@ GO(eglGetCurrentDisplay, pFv) GO(eglGetCurrentSurface, pFi) GO(eglGetDisplay, pFp) GO(eglGetError, iFv) -//GO(eglGetPlatformDisplay, +GO(eglGetPlatformDisplay, pFppp) GOM(eglGetProcAddress, pFEp) -//GO(eglGetSyncAttrib, +GO(eglGetSyncAttrib, iFppip) GO(eglInitialize, iFppp) GO(eglMakeCurrent, iFpppp) GO(eglQueryAPI, iFv) @@ -45,5 +45,5 @@ GO(eglTerminate, iFp) GO(eglWaitClient, iFv) GO(eglWaitGL, iFv) GO(eglWaitNative, iFi) -//GO(eglWaitSync, +GO(eglWaitSync, iFppi) diff --git a/src/wrapped/wrappedlibgl.c b/src/wrapped/wrappedlibgl.c index 32780acb..f7d7633e 100644 --- a/src/wrapped/wrappedlibgl.c +++ b/src/wrapped/wrappedlibgl.c @@ -33,6 +33,7 @@ EXPORT void* my_glXGetProcAddressARB(x64emu_t* emu, void* name) __attribute__((a typedef int (*iFi_t)(int); typedef void (*vFpp_t)(void*, void*); +typedef void (*vFppp_t)(void*, void*, void*); typedef void (*vFppi_t)(void*, void*, int); typedef void*(*pFp_t)(void*); typedef void (*debugProc_t)(int32_t, int32_t, uint32_t, int32_t, int32_t, void*, void*); @@ -76,6 +77,28 @@ static void* find_debug_callback_Fct(void* fct) printf_log(LOG_NONE, "Warning, no more slot for libGL debug_callback callback\n"); return NULL; } +// egl_debug_callback ... +#define GO(A) \ +static uintptr_t my_egl_debug_callback_fct_##A = 0; \ + static void my_egl_debug_callback_##A(int a, void* b, int c, void* d, void* e, const char* f) \ +{ \ + RunFunctionFmt(my_egl_debug_callback_fct_##A, "ipippp", a, b, c, d, e, f); \ +} +SUPER() +#undef GO +static void* find_egl_debug_callback_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_egl_debug_callback_fct_##A == (uintptr_t)fct) return my_egl_debug_callback_##A; + SUPER() + #undef GO + #define GO(A) if(my_egl_debug_callback_fct_##A == 0) {my_egl_debug_callback_fct_##A = (uintptr_t)fct; return my_egl_debug_callback_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libGL egl_debug_callback callback\n"); + return NULL; +} // program_callback ... #define GO(A) \ static uintptr_t my_program_callback_fct_##A = 0; \ @@ -98,6 +121,50 @@ static void* find_program_callback_Fct(void* fct) printf_log(LOG_NONE, "Warning, no more slot for libGL program_callback callback\n"); return NULL; } +// set_blob_func ... +#define GO(A) \ +static uintptr_t my_set_blob_func_fct_##A = 0; \ +static void my_set_blob_func_##A(void* a, ssize_t b, void* c, ssize_t d) \ +{ \ + RunFunctionFmt(my_set_blob_func_fct_##A, "plpl", a, b, c, d); \ +} +SUPER() +#undef GO +static void* find_set_blob_func_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_set_blob_func_fct_##A == (uintptr_t)fct) return my_set_blob_func_##A; + SUPER() + #undef GO + #define GO(A) if(my_set_blob_func_fct_##A == 0) {my_set_blob_func_fct_##A = (uintptr_t)fct; return my_set_blob_func_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libGL set_blob_func callback\n"); + return NULL; +} +// get_blob_func ... +#define GO(A) \ +static uintptr_t my_get_blob_func_fct_##A = 0; \ +static ssize_t my_get_blob_func_##A(void* a, ssize_t b, void* c, ssize_t d) \ +{ \ + return (ssize_t)RunFunctionFmt(my_get_blob_func_fct_##A, "plpl", a, b, c, d); \ +} +SUPER() +#undef GO +static void* find_get_blob_func_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_get_blob_func_fct_##A == (uintptr_t)fct) return my_get_blob_func_##A; + SUPER() + #undef GO + #define GO(A) if(my_get_blob_func_fct_##A == 0) {my_get_blob_func_fct_##A = (uintptr_t)fct; return my_get_blob_func_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libGL get_blob_func callback\n"); + return NULL; +} // glDebugMessageCallback ... #define GO(A) \ @@ -191,6 +258,52 @@ static void* find_glDebugMessageCallbackKHR_Fct(void* fct) printf_log(LOG_NONE, "Warning, no more slot for libGL glDebugMessageCallbackKHR callback\n"); return NULL; } +// eglDebugMessageControlKHR ... +#define GO(A) \ +static vFpp_t my_eglDebugMessageControlKHR_fct_##A = NULL; \ +static void my_eglDebugMessageControlKHR_##A(x64emu_t* emu, void* prod, void* param) \ +{ \ + if(!my_eglDebugMessageControlKHR_fct_##A) \ + return; \ + my_eglDebugMessageControlKHR_fct_##A(find_egl_debug_callback_Fct(prod), param); \ +} +SUPER() +#undef GO +static void* find_eglDebugMessageControlKHR_Fct(void* fct) +{ + if(!fct) return fct; + #define GO(A) if(my_eglDebugMessageControlKHR_fct_##A == (vFpp_t)fct) return my_eglDebugMessageControlKHR_##A; + SUPER() + #undef GO + #define GO(A) if(my_eglDebugMessageControlKHR_fct_##A == 0) {my_eglDebugMessageControlKHR_fct_##A = (vFpp_t)fct; return my_eglDebugMessageControlKHR_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libGL eglDebugMessageControlKHR callback\n"); + return NULL; +} +// eglSetBlobCacheFuncsANDROID ... +#define GO(A) \ +static vFppp_t my_eglSetBlobCacheFuncsANDROID_fct_##A = NULL; \ +static void my_eglSetBlobCacheFuncsANDROID_##A(x64emu_t* emu, void* dpy, void* set, void* get) \ +{ \ + if(!my_eglSetBlobCacheFuncsANDROID_fct_##A) \ + return; \ + my_eglSetBlobCacheFuncsANDROID_fct_##A(dpy, find_set_blob_func_Fct(set), find_get_blob_func_Fct(get)); \ +} +SUPER() +#undef GO +static void* find_eglSetBlobCacheFuncsANDROID_Fct(void* fct) +{ + if(!fct) return fct; + #define GO(A) if(my_eglSetBlobCacheFuncsANDROID_fct_##A == (vFppp_t)fct) return my_eglSetBlobCacheFuncsANDROID_##A; + SUPER() + #undef GO + #define GO(A) if(my_eglSetBlobCacheFuncsANDROID_fct_##A == 0) {my_eglSetBlobCacheFuncsANDROID_fct_##A = (vFppp_t)fct; return my_eglSetBlobCacheFuncsANDROID_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libGL eglSetBlobCacheFuncsANDROID callback\n"); + return NULL; +} // glXSwapIntervalMESA ... #define GO(A) \ static iFi_t my_glXSwapIntervalMESA_fct_##A = NULL; \ @@ -325,15 +438,17 @@ static void* find_glGetVkProcAddrNV_Fct(void* fct) #include "wrappedlib_init.h" -#define SUPER() \ - GO(vFpp_t, glDebugMessageCallback) \ - GO(vFpp_t, glDebugMessageCallbackARB) \ - GO(vFpp_t, glDebugMessageCallbackAMD) \ - GO(vFpp_t, glDebugMessageCallbackKHR) \ - GO(iFi_t, glXSwapIntervalMESA) \ - GO(vFppi_t, glXSwapIntervalEXT) \ - GO(vFpp_t, glProgramCallbackMESA) \ - GO(pFp_t, glGetVkProcAddrNV) \ +#define SUPER() \ + GO(vFpp_t, glDebugMessageCallback) \ + GO(vFpp_t, glDebugMessageCallbackARB) \ + GO(vFpp_t, glDebugMessageCallbackAMD) \ + GO(vFpp_t, glDebugMessageCallbackKHR) \ + GO(vFpp_t, eglDebugMessageControlKHR) \ + GO(iFi_t, glXSwapIntervalMESA) \ + GO(vFppi_t, glXSwapIntervalEXT) \ + GO(vFpp_t, glProgramCallbackMESA) \ + GO(pFp_t, glGetVkProcAddrNV) \ + GO(vFppp_t, eglSetBlobCacheFuncsANDROID) \ gl_wrappers_t* getGLProcWrapper(box64context_t* context, glprocaddress_t procaddress) diff --git a/src/wrapped/wrappedlibgl_private.h b/src/wrapped/wrappedlibgl_private.h index b25f26d6..33605de8 100644 --- a/src/wrapped/wrappedlibgl_private.h +++ b/src/wrapped/wrappedlibgl_private.h @@ -787,6 +787,10 @@ GO(glMemoryBarrierByRegion, vFu) GO(glGetTextureSubImage, vFuiiiiiiiuuip) GO(glGetCompressedTextureSubImage, vFuiiiiiiiip) GO(glGetGraphicsResetStatus, iFv) +GO(glGetnUniformfv, vFuilp) +GO(glGetnUniformiv, vFuilp) +GO(glGetnUniformuiv, vFuilp) +GO(glReadnPixels, vFiilluulp) //VERSION_4_6 GO(glSpecializeShader, vFippp) @@ -2037,9 +2041,6 @@ GO(glIsTextureEXT, iFu) GO(glPrioritizeTexturesEXT, vFipp) //EXT_texture_perturb_normal GO(glTextureNormalEXT, vFu) -//EXT_timer_query -GO(glGetQueryObjecti64vEXT, vFuup) -GO(glGetQueryObjectui64vEXT, vFuup) //EXT_transform_feedback GO(glBeginTransformFeedbackEXT, vFu) GO(glBindBufferBaseEXT, vFuuu) @@ -3309,82 +3310,6 @@ GO(glGetnUniformfvKHR, vFuilp) GO(glGetnUniformivKHR, vFuilp) GO(glGetnUniformuivKHR, vFuilp) -// EGL stuffs -GO(eglBindAPI, iFi) -GO(eglBindTexImage, iFppi) -GO(eglChooseConfig, iFpppip) -GO(eglClientWaitSyncKHR, iFppip) -GO(eglClientWaitSyncNV, iFpip) -GO(eglCopyBuffers, iFppp) -GO(eglCreateContext, pFpppp) -GO(eglCreateDRMImageMESA, pFpp) -GO(eglCreateFenceSyncNV, pFpip) -GO(eglCreateImageKHR, pFppipp) -GO(eglCreatePbufferFromClientBuffer, pFpippp) -GO(eglCreatePbufferSurface, pFppp) -GO(eglCreatePixmapSurface, pFpppp) -GO(eglCreatePixmapSurfaceHI, pFppp) -GO(eglCreateStreamFromFileDescriptorKHR, pFpi) -GO(eglCreateStreamKHR, pFpp) -GO(eglCreateStreamProducerSurfaceKHR, pFpppp) -GO(eglCreateSyncKHR, pFpip) -GO(eglCreateWindowSurface, pFpppp) -GO(eglDestroyContext, iFpp) -GO(eglDestroyImageKHR, iFpp) -GO(eglDestroyStreamKHR, iFpp) -GO(eglDestroySurface, iFpp) -GO(eglDestroySyncKHR, iFpp) -GO(eglDestroySyncNV, iFp) -GO(eglDupNativeFenceFDANDROID, iFpp) -GO(eglExportDRMImageMESA, iFppppp) -GO(eglFenceNV, iFp) -GO(eglGetConfigAttrib, iFppip) -GO(eglGetConfigs, iFppip) -GO(eglGetCurrentContext, pFv) -GO(eglGetCurrentDisplay, pFv) -GO(eglGetCurrentSurface, pFi) -GO(eglGetDisplay, pFp) -GO(eglGetError, iFv) -GO(eglGetStreamFileDescriptorKHR, iFpp) -GO(eglGetSyncAttribKHR, iFppip) -GO(eglGetSyncAttribNV, iFpip) -GO(eglGetSystemTimeFrequencyNV, UFv) -GO(eglGetSystemTimeNV, UFv) -GO(eglInitialize, iFppp) -GO(eglLockSurfaceKHR, iFppp) -GO(eglMakeCurrent, iFpppp) -GO(eglPostSubBufferNV, iFppiiii) -GO(eglQueryAPI, iFv) -GO(eglQueryContext, iFppip) -GO(eglQueryNativeDisplayNV, iFpp) -GO(eglQueryNativePixmapNV, iFppp) -GO(eglQueryNativeWindowNV, iFppp) -GO(eglQueryStreamKHR, iFppip) -GO(eglQueryStreamTimeKHR, iFppip) -GO(eglQueryStreamu64KHR, iFppip) -GO(eglQueryString, pFpi) -GO(eglQuerySurface, iFppip) -GO(eglQuerySurfacePointerANGLE, iFppip) -GO(eglReleaseTexImage, iFppi) -GO(eglReleaseThread, iFv) -//GOM(eglSetBlobCacheFuncsANDROID, vFpBB) -GO(eglSignalSyncKHR, iFppi) -GO(eglSignalSyncNV, iFpi) -GO(eglStreamAttribKHR, iFppii) -GO(eglStreamConsumerAcquireKHR, iFpp) -GO(eglStreamConsumerGLTextureExternalKHR, iFpp) -GO(eglStreamConsumerReleaseKHR, iFpp) -GO(eglSurfaceAttrib, iFppii) -GO(eglSwapBuffers, iFpp) -GO(eglSwapBuffersWithDamageEXT, iFpppi) -GO(eglSwapInterval, iFpi) -GO(eglTerminate, iFp) -GO(eglUnlockSurfaceKHR, iFpp) -GO(eglWaitClient, iFv) -GO(eglWaitGL, iFv) -GO(eglWaitNative, iFi) -GO(eglWaitSyncKHR, iFppi) - // GLES stuff GO(glDiscardFramebuffer, vFilp) GO(glDiscardFramebufferARB, vFilp) @@ -3417,6 +3342,7 @@ GO(glGetProgramPipelineivEXT, vFuip) GO(glIsProgramPipelineEXT, iFu) GO(glUseProgramStagesEXT, vFuuu) GO(glValidateProgramPipelineEXT, vFu) +GO(glPrimitiveBoundingBox, vFffffffff) // GL_EXT_window_rectangles GO(glWindowRectanglesEXT, vFuip) @@ -4014,3 +3940,123 @@ GO(glTexturePageCommitmentMemNV, vFuiiiiiiiiuLC) // GL_NV_vdpau_interop2 GO(glVDPAURegisterVideoSurfaceWithPictureStructureNV, lFpuipC) + +// Base EGL +GO(eglBindAPI, iFi) +GO(eglBindTexImage, iFppi) +GO(eglChooseConfig, iFpppip) +GO(eglClientWaitSync, iFppiU) +GO(eglCopyBuffers, iFppp) +GO(eglCreateContext, pFpppp) +GO(eglCreateImage, pFppuup) +GO(eglCreatePbufferFromClientBuffer, pFpippp) +GO(eglCreatePbufferSurface, pFppp) +GO(eglCreatePixmapSurface, pFpppp) +GO(eglCreatePlatformPixmapSurface, pFpppp) +GO(eglCreatePlatformWindowSurface, pFpppp) +GO(eglCreateSync, pFpup) +GO(eglCreateWindowSurface, pFpppp) +GO(eglDestroyContext, iFpp) +GO(eglDestroyImage, iFpp) +GO(eglDestroySurface, iFpp) +GO(eglDestroySync, iFpp) +GO(eglGetConfigAttrib, iFppip) +GO(eglGetConfigs, iFppip) +GO(eglGetCurrentContext, pFv) +GO(eglGetCurrentDisplay, pFv) +GO(eglGetCurrentSurface, pFi) +GO(eglGetDisplay, pFp) +GO(eglGetError, iFv) +GO(eglGetPlatformDisplay, pFppp) +//GOM(eglGetProcAddress, pFEp) +GO(eglGetSyncAttrib, iFppip) +GO(eglInitialize, iFppp) +GO(eglMakeCurrent, iFpppp) +GO(eglQueryAPI, iFv) +GO(eglQueryContext, iFppip) +GO(eglQueryString, pFpi) +GO(eglQuerySurface, iFppip) +GO(eglReleaseTexImage, iFppi) +GO(eglReleaseThread, iFv) +GO(eglSurfaceAttrib, iFppii) +GO(eglSwapBuffers, iFpp) +GO(eglSwapInterval, iFpi) +GO(eglTerminate, iFp) +GO(eglWaitClient, iFv) +GO(eglWaitGL, iFv) +GO(eglWaitNative, iFi) +GO(eglWaitSync, iFppi) + +// EGL_KHR_debug +GOM(eglDebugMessageControlKHR, iFEpp) +GO(eglQueryDebugKHR, iFip) +GO(eglLabelObjectKHR, iFpupp) + +// EGL_MESA_image_dma_buf_export +GO(eglExportDMABUFImageQueryMESA, iFppppp) +GO(eglExportDMABUFImageMESA, iFppppp) + +// EGL_ANGLE_sync_control_rate +GO(eglGetMscRateANGLE, iFpppp) + +// EGL_CHROMIUM_sync_control +GO(eglGetSyncValuesCHROMIUM, iFppppp) + +// EGL_EXT_device_query +GO(eglQueryDeviceAttribEXT, iFpip) +GO(eglQueryDeviceStringEXT, pFpi) +GO(eglQueryDisplayAttribEXT, iFpip) + +// EGL_EXT_device_enumeration +GO(eglQueryDevicesEXT, iFipp) + +// EGL_EXT_image_dma_buf_import_modifiers +GO(eglQueryDmaBufFormatsEXT, iFpipp) +GO(eglQueryDmaBufModifiersEXT, iFpiippp) + +// EGL_ANDROID_blob_cache +GOM(eglSetBlobCacheFuncsANDROID, vFEppp) + +// EGL_KHR_swap_buffers_with_damage +GO(eglSwapBuffersWithDamageKHR, iFpppi) + +// EGL_KHR_wait_sync +GO(eglWaitSyncKHR, iFppi) + +// EGL_KHR_image_base +GO(eglCreateImageKHR, pFppupp) +GO(eglDestroyImageKHR, iFpp) + +// EGL_KHR_fence_sync +GO(eglCreateSyncKHR, pFpup) +GO(eglDestroySyncKHR, iFpp) +GO(eglClientWaitSyncKHR, iFppiU) +GO(eglGetSyncAttribKHR, iFppip) + +// EGL_ANDROID_native_fence_sync +GO(eglDupNativeFenceFDANDROID, iFpp) + +// EGL_NV_post_sub_buffer +GO(eglPostSubBufferNV, iFppiiii) + +// GL_EXT_clip_control +GO(glClipControlEXT, vFuu) + +// GL_EXT_disjoint_timer_query +GO(glGenQueriesEXT, vFlp) +GO(glDeleteQueriesEXT, vFlp) +GO(glIsQueryEXT, iFu) +GO(glBeginQueryEXT, vFuu) +GO(glEndQueryEXT, vFu) +GO(glQueryCounterEXT, vFuu) +GO(glGetQueryivEXT, vFuup) +GO(glGetQueryObjectivEXT, vFuup) +GO(glGetQueryObjectuivEXT, vFuup) +GO(glGetQueryObjecti64vEXT, vFuup) +GO(glGetQueryObjectui64vEXT, vFuup) +GO(glGetInteger64vEXT, vFup) + +// GL_OES_mapbuffer +GO(glGetBufferPointervOES, vFuup) +GO(glMapBufferOES, pFuu) +GO(glUnmapBufferOES, iFu) |