diff --git a/src/wrappedlibgl_private.h b/src/wrappedlibgl_private.h index 82bb360e..af030cb9 100755 --- a/src/wrappedlibgl_private.h +++ b/src/wrappedlibgl_private.h @@ -2826,15 +2826,27 @@ GO(glBlendFuncSeparatei,vFuuuuu) GO(glBlendFunci,vFuuu) GO(glMinSampleShading,vFf) +//GL_KTX_buffer_region +GO(glBufferRegionEnabled,uFv) +GO(glNewBufferRegion,uFi) +GO(glDeleteBufferRegion,vFi) +GO(glReadBufferRegion,vFuiiii) +GO(glDrawBufferRegion,vFuiiiiii) + //glx GO(glXBindHyperpipeSGIX,iFpi) GO(glXBindTexImageEXT, vFppip) +GO(glXBindSwapBarrierNV, iFpuu) GO(glXBindSwapBarrierSGIX,vFii) +GO(glXBindVideoCaptureDeviceNV, iFpup) +GO(glXBindVideoDeviceNV, iFpuup) +GO(glXBindVideoImageNV, iFpppi) GO(glXChangeDrawableAttributes,vFp) GO(glXChangeDrawableAttributesSGIX,vFp) GO(glXClientInfo,vFv) GO(glXCopyContext,vFppp) GO(glXChooseFBConfig, pFpipp) +GO(glXChooseFBConfigSGIX, pFpipp) GO(glXCreateContext,pFpppi) GO(glXCreateContextAttribsARB, pFpppip) GO(glXCreateContextWithConfigSGIX,pFppipi) @@ -2847,6 +2859,7 @@ GO(glXCreatePbuffer,pFpp) GO(glXCreatePixmap,pFppp) GO(glXCreateWindow,pFpppp) GO(glXChooseVisual, pFpip) +GO(glXCopyImageSubDataNV, vFppuiiiiipuiiiiiiii) GO(glXCopySubBufferMESA, vFppiiii) GO(glXDestroyContext,vFpp) GO(glXDestroyGLXPbufferSGIX,vFpp) @@ -2856,6 +2869,8 @@ GO(glXDestroyHyperpipeConfigSGIX,iFpi) GO(glXDestroyPbuffer,vFp) GO(glXDestroyPixmap,vFp) GO(glXDestroyWindow,vFp) +GO(glXEnumerateVideoCaptureDevicesNV, pFpip) +GO(glXEnumerateVideoDevicesNV, pFpip) GO(glXFreeContextEXT, vFpp) GO(glXGetClientString, pFpi) GO(glXGetContextIDEXT, uFp) @@ -2866,16 +2881,25 @@ GO(glXGetDrawableAttributes,vFi) GO(glXGetDrawableAttributesSGIX,vFi) GO(glXGetFBConfigs,pFpip) GO(glXGetFBConfigAttrib, iFppip) +GO(glXGetFBConfigAttribSGIX, iFppip) +GO(glXGetFBConfigFromVisualSGIX, pFpp) GO(glXGetFBConfigsSGIX,pFpip) GO(glXGetSelectedEvent, vFppp) +GO(glXGetSelectedEventSGIX, vFppp) +GO(glXGetVideoDeviceNV, iFpiip) +GO(glXGetVideoInfoNV, iFpippp) +GO(glXGetVideoSyncSGI, iFp) GO(glXGetVisualConfigs,pFpp) GO(glXGetVisualFromFBConfig, pFpp) +GO(glXGetVisualFromFBConfigSGIX, pFpp) GO(glXGetSwapIntervalMESA, iFv) GO(glXHyperpipeAttribSGIX,iFpiiip) //GO(glXHyperpipeConfigSGIX,iFpii?p) GO(glXImportContextEXT, pFpu) GO(glXIsDirect,iFpp) +GO(glXJoinSwapGroupNV, iFppu) GO(glXJoinSwapGroupSGIX,vFpp) +GO(glXLockVideoCaptureDeviceNV, vFpp) GO(glXMakeContextCurrent,iFpppp) GO(glXMakeCurrent,iFppp) GO(glXMakeCurrentReadSGI,iFppp) @@ -2884,17 +2908,28 @@ GO(glXQueryContextInfoEXT,iFppip) GO(glXQueryDrawable, iFppip) GO(glXQueryExtension, iFppp) GO(glXQueryExtensionsString,pFpi) +GO(glXQueryFrameCountNV, iFpip) +GO(glXQueryGLXPbufferSGIX, vFppip) GO(glXQueryHyperpipeAttribSGIX,iFpiiip) GO(glXQueryHyperpipeBestAttribSGIX,iFpiiipp) GO(glXQueryHyperpipeConfigSGIX,pFpip) GO(glXQueryHyperpipeNetworkSGIX,pFpp) GO(glXQueryMaxSwapBarriersSGIX,pFpp) //? +GO(glXQueryMaxSwapGroupsNV, iFpipp) GO(glXQueryServerString,pFpii) +GO(glXQuerySwapGroupNV, iFpipp) GO(glXQueryVersion,iFppp) +GO(glXQueryVideoCaptureDeviceNV, iFppip) GO(glXReleaseTexImageEXT, vFppi) +GO(glXReleaseVideoCaptureDeviceNV, vFpp) +GO(glXReleaseVideoDeviceNV, iFpip) +GO(glXReleaseVideoImageNV, iFpp) //GO(glXRender,vFv) //GO(glXRenderLarge,vFv) +GO(glXResetFrameCountNV, iFpi) GO(glXSelectEvent, vFppu) +GO(glXSelectEventSGIX, vFppu) +GO(glXSendPbufferToVideoNV, iFppipi) GO(glXSwapBuffers,vFpp) GO(glXSwapIntervalEXT,pFppi) GO(glXSwapIntervalMESA,iFi) @@ -2903,6 +2938,7 @@ GO(glXUseXFont,vFpiii) //GO(glXVendorPrivate,vFv) //GO(glXVendorPrivateWithReply,vFv) GO(glXWaitGL,vFv) +GO(glXWaitVideoSyncSGI, iFiip) GO(glXWaitX,vFv) GOM(glXGetProcAddress, pFEp) diff --git a/src/wrapper.c b/src/wrapper.c index f7f16db2..baa3b554 100644 --- a/src/wrapper.c +++ b/src/wrapper.c @@ -479,6 +479,7 @@ typedef int32_t (*iFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t); typedef int32_t (*iFpiipp_t)(void*, int32_t, int32_t, void*, void*); typedef int32_t (*iFpipii_t)(void*, int32_t, void*, int32_t, int32_t); typedef int32_t (*iFpippi_t)(void*, int32_t, void*, void*, int32_t); +typedef int32_t (*iFpippp_t)(void*, int32_t, void*, void*, void*); typedef int32_t (*iFpCCCC_t)(void*, uint8_t, uint8_t, uint8_t, uint8_t); typedef int32_t (*iFpuuui_t)(void*, uint32_t, uint32_t, uint32_t, int32_t); typedef int32_t (*iFppiip_t)(void*, void*, int32_t, int32_t, void*); @@ -806,6 +807,7 @@ typedef void (*vFuddiiddiiddiip_t)(uint32_t, double, double, int32_t, int32_t, d typedef void (*vFuuiiiiuuiiiiiii_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); typedef void (*vFfffffffffffffff_t)(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float); typedef uint32_t (*uFpppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); +typedef void (*vFppuiiiiipuiiiiiiii_t)(void*, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); void iF(x86emu_t *emu, uintptr_t fcn) { iF_t fn = (iF_t)fcn; R_EAX=fn(); } void vFE(x86emu_t *emu, uintptr_t fcn) { vFE_t fn = (vFE_t)fcn; fn(emu); } void vFv(x86emu_t *emu, uintptr_t fcn) { vFv_t fn = (vFv_t)fcn; fn(); } @@ -1262,6 +1264,7 @@ void iFpiiuu(x86emu_t *emu, uintptr_t fcn) { iFpiiuu_t fn = (iFpiiuu_t)fcn; R_EA void iFpiipp(x86emu_t *emu, uintptr_t fcn) { iFpiipp_t fn = (iFpiipp_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20)); } void iFpipii(x86emu_t *emu, uintptr_t fcn) { iFpipii_t fn = (iFpipii_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20)); } void iFpippi(x86emu_t *emu, uintptr_t fcn) { iFpippi_t fn = (iFpippi_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16), *(int32_t*)(R_ESP + 20)); } +void iFpippp(x86emu_t *emu, uintptr_t fcn) { iFpippp_t fn = (iFpippp_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20)); } void iFpCCCC(x86emu_t *emu, uintptr_t fcn) { iFpCCCC_t fn = (iFpCCCC_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(uint8_t*)(R_ESP + 8), *(uint8_t*)(R_ESP + 12), *(uint8_t*)(R_ESP + 16), *(uint8_t*)(R_ESP + 20)); } void iFpuuui(x86emu_t *emu, uintptr_t fcn) { iFpuuui_t fn = (iFpuuui_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(uint32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20)); } void iFppiip(x86emu_t *emu, uintptr_t fcn) { iFppiip_t fn = (iFppiip_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(void**)(R_ESP + 20)); } @@ -1589,6 +1592,7 @@ void vFuddiiddiiddiip(x86emu_t *emu, uintptr_t fcn) { vFuddiiddiiddiip_t fn = (v void vFuuiiiiuuiiiiiii(x86emu_t *emu, uintptr_t fcn) { vFuuiiiiuuiiiiiii_t fn = (vFuuiiiiuuiiiiiii_t)fcn; fn(*(uint32_t*)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(uint32_t*)(R_ESP + 28), *(uint32_t*)(R_ESP + 32), *(int32_t*)(R_ESP + 36), *(int32_t*)(R_ESP + 40), *(int32_t*)(R_ESP + 44), *(int32_t*)(R_ESP + 48), *(int32_t*)(R_ESP + 52), *(int32_t*)(R_ESP + 56), *(int32_t*)(R_ESP + 60)); } void vFfffffffffffffff(x86emu_t *emu, uintptr_t fcn) { vFfffffffffffffff_t fn = (vFfffffffffffffff_t)fcn; fn(*(float*)(R_ESP + 4), *(float*)(R_ESP + 8), *(float*)(R_ESP + 12), *(float*)(R_ESP + 16), *(float*)(R_ESP + 20), *(float*)(R_ESP + 24), *(float*)(R_ESP + 28), *(float*)(R_ESP + 32), *(float*)(R_ESP + 36), *(float*)(R_ESP + 40), *(float*)(R_ESP + 44), *(float*)(R_ESP + 48), *(float*)(R_ESP + 52), *(float*)(R_ESP + 56), *(float*)(R_ESP + 60)); } void uFpppppppppppppppp(x86emu_t *emu, uintptr_t fcn) { uFpppppppppppppppp_t fn = (uFpppppppppppppppp_t)fcn; R_EAX=(uint32_t)fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20), *(void**)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32), *(void**)(R_ESP + 36), *(void**)(R_ESP + 40), *(void**)(R_ESP + 44), *(void**)(R_ESP + 48), *(void**)(R_ESP + 52), *(void**)(R_ESP + 56), *(void**)(R_ESP + 60), *(void**)(R_ESP + 64)); } +void vFppuiiiiipuiiiiiiii(x86emu_t *emu, uintptr_t fcn) { vFppuiiiiipuiiiiiiii_t fn = (vFppuiiiiipuiiiiiiii_t)fcn; fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(int32_t*)(R_ESP + 28), *(int32_t*)(R_ESP + 32), *(void**)(R_ESP + 36), *(uint32_t*)(R_ESP + 40), *(int32_t*)(R_ESP + 44), *(int32_t*)(R_ESP + 48), *(int32_t*)(R_ESP + 52), *(int32_t*)(R_ESP + 56), *(int32_t*)(R_ESP + 60), *(int32_t*)(R_ESP + 64), *(int32_t*)(R_ESP + 68), *(int32_t*)(R_ESP + 72)); } void iFEpvvpp(x86emu_t *emu, uintptr_t fcn) { iFEppp_t fn = (iFEppp_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20)); } void iFEvpVV(x86emu_t *emu, uintptr_t fcn) { iFEpVV_t fn = (iFEpVV_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 8), (void*)(R_ESP + 12), (void*)(R_ESP + 12)); } void iFEv(x86emu_t *emu, uintptr_t fcn) { iFE_t fn = (iFE_t)fcn; R_EAX=fn(emu); } diff --git a/src/wrapper.h b/src/wrapper.h index 3f0fcb5f..32d347e7 100644 --- a/src/wrapper.h +++ b/src/wrapper.h @@ -478,6 +478,7 @@ void iFpiiuu(x86emu_t *emu, uintptr_t fnc); void iFpiipp(x86emu_t *emu, uintptr_t fnc); void iFpipii(x86emu_t *emu, uintptr_t fnc); void iFpippi(x86emu_t *emu, uintptr_t fnc); +void iFpippp(x86emu_t *emu, uintptr_t fnc); void iFpCCCC(x86emu_t *emu, uintptr_t fnc); void iFpuuui(x86emu_t *emu, uintptr_t fnc); void iFppiip(x86emu_t *emu, uintptr_t fnc); @@ -805,6 +806,7 @@ void vFuddiiddiiddiip(x86emu_t *emu, uintptr_t fnc); void vFuuiiiiuuiiiiiii(x86emu_t *emu, uintptr_t fnc); void vFfffffffffffffff(x86emu_t *emu, uintptr_t fnc); void uFpppppppppppppppp(x86emu_t *emu, uintptr_t fnc); +void vFppuiiiiipuiiiiiiii(x86emu_t *emu, uintptr_t fnc); void iFEpvvpp(x86emu_t *emu, uintptr_t fnc); void iFEvpVV(x86emu_t *emu, uintptr_t fnc); void iFEv(x86emu_t *emu, uintptr_t fnc);