| //////////////////////////////////////////////////////////////////////////////// |
| // Automatically generated file. Do not modify! |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| #include "gfx_api.h" |
| #include "interpreter.h" |
| #include "stack.h" |
| |
| #include <gapic/get_gfx_proc_address.h> |
| #include <gapic/log.h> |
| |
| namespace gapir { |
| namespace gfxapi { |
| namespace { |
| |
| bool callEglInitialize(Stack* stack, bool pushReturn) { |
| int* minor = stack->pop<int*>(); |
| int* major = stack->pop<int*>(); |
| void* dpy = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("eglInitialize(%p, %p, %p)\n", dpy, major, minor); |
| if (eglInitialize != nullptr) { |
| int return_value = eglInitialize(dpy, major, minor); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<int>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function eglInitialize\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function eglInitialize\n"); |
| return false; |
| } |
| } |
| |
| bool callEglCreateContext(Stack* stack, bool pushReturn) { |
| int* attrib_list = stack->pop<int*>(); |
| void* share_context = stack->pop<void*>(); |
| void* config = stack->pop<void*>(); |
| void* display = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("eglCreateContext(%p, %p, %p, %p)\n", display, config, share_context, |
| attrib_list); |
| if (eglCreateContext != nullptr) { |
| void* return_value = eglCreateContext(display, config, share_context, attrib_list); |
| GAPID_INFO("Returned: %p\n", return_value); |
| if (pushReturn) { |
| stack->push<void*>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function eglCreateContext\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function eglCreateContext\n"); |
| return false; |
| } |
| } |
| |
| bool callEglMakeCurrent(Stack* stack, bool pushReturn) { |
| void* context = stack->pop<void*>(); |
| void* read = stack->pop<void*>(); |
| void* draw = stack->pop<void*>(); |
| void* display = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("eglMakeCurrent(%p, %p, %p, %p)\n", display, draw, read, context); |
| if (eglMakeCurrent != nullptr) { |
| int return_value = eglMakeCurrent(display, draw, read, context); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<int>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function eglMakeCurrent\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function eglMakeCurrent\n"); |
| return false; |
| } |
| } |
| |
| bool callEglSwapBuffers(Stack* stack, bool pushReturn) { |
| void* surface = stack->pop<void*>(); |
| void* display = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("eglSwapBuffers(%p, %p)\n", display, surface); |
| if (eglSwapBuffers != nullptr) { |
| int return_value = eglSwapBuffers(display, surface); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<int>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function eglSwapBuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function eglSwapBuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callEglQuerySurface(Stack* stack, bool pushReturn) { |
| int* value = stack->pop<int*>(); |
| int attribute = stack->pop<int>(); |
| void* surface = stack->pop<void*>(); |
| void* display = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("eglQuerySurface(%p, %p, %d, %p)\n", display, surface, attribute, value); |
| if (eglQuerySurface != nullptr) { |
| int return_value = eglQuerySurface(display, surface, attribute, value); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<int>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function eglQuerySurface\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function eglQuerySurface\n"); |
| return false; |
| } |
| } |
| |
| bool callGlXCreateContext(Stack* stack, bool pushReturn) { |
| bool direct = stack->pop<bool>(); |
| void* shareList = stack->pop<void*>(); |
| void* vis = stack->pop<void*>(); |
| void* dpy = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glXCreateContext(%p, %p, %p, %d)\n", dpy, vis, shareList, direct); |
| if (glXCreateContext != nullptr) { |
| void* return_value = glXCreateContext(dpy, vis, shareList, direct); |
| GAPID_INFO("Returned: %p\n", return_value); |
| if (pushReturn) { |
| stack->push<void*>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glXCreateContext\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glXCreateContext\n"); |
| return false; |
| } |
| } |
| |
| bool callGlXCreateNewContext(Stack* stack, bool pushReturn) { |
| bool direct = stack->pop<bool>(); |
| void* shared = stack->pop<void*>(); |
| uint32_t type = stack->pop<uint32_t>(); |
| void* fbconfig = stack->pop<void*>(); |
| void* display = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glXCreateNewContext(%p, %p, %u, %p, %d)\n", display, fbconfig, type, shared, |
| direct); |
| if (glXCreateNewContext != nullptr) { |
| void* return_value = glXCreateNewContext(display, fbconfig, type, shared, direct); |
| GAPID_INFO("Returned: %p\n", return_value); |
| if (pushReturn) { |
| stack->push<void*>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glXCreateNewContext\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glXCreateNewContext\n"); |
| return false; |
| } |
| } |
| |
| bool callGlXMakeContextCurrent(Stack* stack, bool pushReturn) { |
| void* ctx = stack->pop<void*>(); |
| void* read = stack->pop<void*>(); |
| void* draw = stack->pop<void*>(); |
| void* display = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glXMakeContextCurrent(%p, %p, %p, %p)\n", display, draw, read, ctx); |
| if (glXMakeContextCurrent != nullptr) { |
| glXMakeContextCurrent(display, draw, read, ctx); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glXMakeContextCurrent\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glXMakeContextCurrent\n"); |
| return false; |
| } |
| } |
| |
| bool callGlXSwapBuffers(Stack* stack, bool pushReturn) { |
| void* drawable = stack->pop<void*>(); |
| void* display = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glXSwapBuffers(%p, %p)\n", display, drawable); |
| if (glXSwapBuffers != nullptr) { |
| glXSwapBuffers(display, drawable); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glXSwapBuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glXSwapBuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callWglCreateContext(Stack* stack, bool pushReturn) { |
| void* hdc = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("wglCreateContext(%p)\n", hdc); |
| if (wglCreateContext != nullptr) { |
| void* return_value = wglCreateContext(hdc); |
| GAPID_INFO("Returned: %p\n", return_value); |
| if (pushReturn) { |
| stack->push<void*>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function wglCreateContext\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function wglCreateContext\n"); |
| return false; |
| } |
| } |
| |
| bool callWglCreateContextAttribsARB(Stack* stack, bool pushReturn) { |
| int* attribList = stack->pop<int*>(); |
| void* hShareContext = stack->pop<void*>(); |
| void* hdc = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("wglCreateContextAttribsARB(%p, %p, %p)\n", hdc, hShareContext, attribList); |
| if (wglCreateContextAttribsARB != nullptr) { |
| void* return_value = wglCreateContextAttribsARB(hdc, hShareContext, attribList); |
| GAPID_INFO("Returned: %p\n", return_value); |
| if (pushReturn) { |
| stack->push<void*>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function wglCreateContextAttribsARB\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function wglCreateContextAttribsARB\n"); |
| return false; |
| } |
| } |
| |
| bool callWglMakeCurrent(Stack* stack, bool pushReturn) { |
| void* hglrc = stack->pop<void*>(); |
| void* hdc = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("wglMakeCurrent(%p, %p)\n", hdc, hglrc); |
| if (wglMakeCurrent != nullptr) { |
| int return_value = wglMakeCurrent(hdc, hglrc); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<int>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function wglMakeCurrent\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function wglMakeCurrent\n"); |
| return false; |
| } |
| } |
| |
| bool callWglSwapBuffers(Stack* stack, bool pushReturn) { |
| void* hdc = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("wglSwapBuffers(%p)\n", hdc); |
| if (wglSwapBuffers != nullptr) { |
| wglSwapBuffers(hdc); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function wglSwapBuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function wglSwapBuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callCGLCreateContext(Stack* stack, bool pushReturn) { |
| void** ctx = stack->pop<void**>(); |
| void* share = stack->pop<void*>(); |
| void* pix = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("CGLCreateContext(%p, %p, %p)\n", pix, share, ctx); |
| if (CGLCreateContext != nullptr) { |
| int return_value = CGLCreateContext(pix, share, ctx); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<int>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function CGLCreateContext\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function CGLCreateContext\n"); |
| return false; |
| } |
| } |
| |
| bool callCGLSetCurrentContext(Stack* stack, bool pushReturn) { |
| void* ctx = stack->pop<void*>(); |
| if (stack->isValid()) { |
| GAPID_INFO("CGLSetCurrentContext(%p)\n", ctx); |
| if (CGLSetCurrentContext != nullptr) { |
| int return_value = CGLSetCurrentContext(ctx); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<int>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function CGLSetCurrentContext\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function CGLSetCurrentContext\n"); |
| return false; |
| } |
| } |
| |
| bool callGlEnableClientState(Stack* stack, bool pushReturn) { |
| ArrayType type = stack->pop<ArrayType>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glEnableClientState(%u)\n", type); |
| if (glEnableClientState != nullptr) { |
| glEnableClientState(type); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glEnableClientState\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glEnableClientState\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDisableClientState(Stack* stack, bool pushReturn) { |
| ArrayType type = stack->pop<ArrayType>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDisableClientState(%u)\n", type); |
| if (glDisableClientState != nullptr) { |
| glDisableClientState(type); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDisableClientState\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDisableClientState\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetProgramBinaryOES(Stack* stack, bool pushReturn) { |
| void* binary = stack->pop<void*>(); |
| uint32_t* binary_format = stack->pop<uint32_t*>(); |
| int32_t* bytes_written = stack->pop<int32_t*>(); |
| int32_t buffer_size = stack->pop<int32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetProgramBinaryOES(%u, %d, %p, %p, %p)\n", program, buffer_size, |
| bytes_written, binary_format, binary); |
| if (glGetProgramBinaryOES != nullptr) { |
| glGetProgramBinaryOES(program, buffer_size, bytes_written, binary_format, binary); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetProgramBinaryOES\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetProgramBinaryOES\n"); |
| return false; |
| } |
| } |
| |
| bool callGlProgramBinaryOES(Stack* stack, bool pushReturn) { |
| int32_t binary_size = stack->pop<int32_t>(); |
| void* binary = stack->pop<void*>(); |
| uint32_t binary_format = stack->pop<uint32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glProgramBinaryOES(%u, %u, %p, %d)\n", program, binary_format, binary, |
| binary_size); |
| if (glProgramBinaryOES != nullptr) { |
| glProgramBinaryOES(program, binary_format, binary, binary_size); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glProgramBinaryOES\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glProgramBinaryOES\n"); |
| return false; |
| } |
| } |
| |
| bool callGlStartTilingQCOM(Stack* stack, bool pushReturn) { |
| TilePreserveMaskQCOM preserveMask = stack->pop<TilePreserveMaskQCOM>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| int32_t y = stack->pop<int32_t>(); |
| int32_t x = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glStartTilingQCOM(%d, %d, %d, %d, %u)\n", x, y, width, height, preserveMask); |
| if (glStartTilingQCOM != nullptr) { |
| glStartTilingQCOM(x, y, width, height, preserveMask); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glStartTilingQCOM\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glStartTilingQCOM\n"); |
| return false; |
| } |
| } |
| |
| bool callGlEndTilingQCOM(Stack* stack, bool pushReturn) { |
| TilePreserveMaskQCOM preserve_mask = stack->pop<TilePreserveMaskQCOM>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glEndTilingQCOM(%u)\n", preserve_mask); |
| if (glEndTilingQCOM != nullptr) { |
| glEndTilingQCOM(preserve_mask); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glEndTilingQCOM\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glEndTilingQCOM\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDiscardFramebufferEXT(Stack* stack, bool pushReturn) { |
| DiscardFramebufferAttachment* attachments = stack->pop<DiscardFramebufferAttachment*>(); |
| int32_t numAttachments = stack->pop<int32_t>(); |
| FramebufferTarget target = stack->pop<FramebufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDiscardFramebufferEXT(%u, %d, %p)\n", target, numAttachments, attachments); |
| if (glDiscardFramebufferEXT != nullptr) { |
| glDiscardFramebufferEXT(target, numAttachments, attachments); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDiscardFramebufferEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDiscardFramebufferEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlInsertEventMarkerEXT(Stack* stack, bool pushReturn) { |
| char* marker = stack->pop<char*>(); |
| int32_t length = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glInsertEventMarkerEXT(%d, %s)\n", length, marker); |
| if (glInsertEventMarkerEXT != nullptr) { |
| glInsertEventMarkerEXT(length, marker); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glInsertEventMarkerEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glInsertEventMarkerEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlPushGroupMarkerEXT(Stack* stack, bool pushReturn) { |
| char* marker = stack->pop<char*>(); |
| int32_t length = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glPushGroupMarkerEXT(%d, %s)\n", length, marker); |
| if (glPushGroupMarkerEXT != nullptr) { |
| glPushGroupMarkerEXT(length, marker); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glPushGroupMarkerEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glPushGroupMarkerEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlPopGroupMarkerEXT(Stack* stack, bool pushReturn) { |
| if (stack->isValid()) { |
| GAPID_INFO("glPopGroupMarkerEXT()\n"); |
| if (glPopGroupMarkerEXT != nullptr) { |
| glPopGroupMarkerEXT(); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glPopGroupMarkerEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glPopGroupMarkerEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTexStorage1DEXT(Stack* stack, bool pushReturn) { |
| int32_t width = stack->pop<int32_t>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t levels = stack->pop<int32_t>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTexStorage1DEXT(%u, %d, %u, %d)\n", target, levels, format, width); |
| if (glTexStorage1DEXT != nullptr) { |
| glTexStorage1DEXT(target, levels, format, width); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTexStorage1DEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTexStorage1DEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTexStorage2DEXT(Stack* stack, bool pushReturn) { |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t levels = stack->pop<int32_t>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTexStorage2DEXT(%u, %d, %u, %d, %d)\n", target, levels, format, width, |
| height); |
| if (glTexStorage2DEXT != nullptr) { |
| glTexStorage2DEXT(target, levels, format, width, height); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTexStorage2DEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTexStorage2DEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTexStorage3DEXT(Stack* stack, bool pushReturn) { |
| int32_t depth = stack->pop<int32_t>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t levels = stack->pop<int32_t>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTexStorage3DEXT(%u, %d, %u, %d, %d, %d)\n", target, levels, format, width, |
| height, depth); |
| if (glTexStorage3DEXT != nullptr) { |
| glTexStorage3DEXT(target, levels, format, width, height, depth); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTexStorage3DEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTexStorage3DEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTextureStorage1DEXT(Stack* stack, bool pushReturn) { |
| int32_t width = stack->pop<int32_t>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t levels = stack->pop<int32_t>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| uint32_t texture = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTextureStorage1DEXT(%u, %u, %d, %u, %d)\n", texture, target, levels, format, |
| width); |
| if (glTextureStorage1DEXT != nullptr) { |
| glTextureStorage1DEXT(texture, target, levels, format, width); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTextureStorage1DEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTextureStorage1DEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTextureStorage2DEXT(Stack* stack, bool pushReturn) { |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t levels = stack->pop<int32_t>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| uint32_t texture = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTextureStorage2DEXT(%u, %u, %d, %u, %d, %d)\n", texture, target, levels, |
| format, width, height); |
| if (glTextureStorage2DEXT != nullptr) { |
| glTextureStorage2DEXT(texture, target, levels, format, width, height); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTextureStorage2DEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTextureStorage2DEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTextureStorage3DEXT(Stack* stack, bool pushReturn) { |
| int32_t depth = stack->pop<int32_t>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t levels = stack->pop<int32_t>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| uint32_t texture = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTextureStorage3DEXT(%u, %u, %d, %u, %d, %d, %d)\n", texture, target, levels, |
| format, width, height, depth); |
| if (glTextureStorage3DEXT != nullptr) { |
| glTextureStorage3DEXT(texture, target, levels, format, width, height, depth); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTextureStorage3DEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTextureStorage3DEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGenVertexArraysOES(Stack* stack, bool pushReturn) { |
| uint32_t* arrays = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGenVertexArraysOES(%d, %p)\n", count, arrays); |
| if (glGenVertexArraysOES != nullptr) { |
| glGenVertexArraysOES(count, arrays); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGenVertexArraysOES\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGenVertexArraysOES\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBindVertexArrayOES(Stack* stack, bool pushReturn) { |
| uint32_t array = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBindVertexArrayOES(%u)\n", array); |
| if (glBindVertexArrayOES != nullptr) { |
| glBindVertexArrayOES(array); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBindVertexArrayOES\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBindVertexArrayOES\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteVertexArraysOES(Stack* stack, bool pushReturn) { |
| uint32_t* arrays = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteVertexArraysOES(%d, %p)\n", count, arrays); |
| if (glDeleteVertexArraysOES != nullptr) { |
| glDeleteVertexArraysOES(count, arrays); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteVertexArraysOES\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteVertexArraysOES\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsVertexArrayOES(Stack* stack, bool pushReturn) { |
| uint32_t array = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsVertexArrayOES(%u)\n", array); |
| if (glIsVertexArrayOES != nullptr) { |
| bool return_value = glIsVertexArrayOES(array); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsVertexArrayOES\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsVertexArrayOES\n"); |
| return false; |
| } |
| } |
| |
| bool callGlEGLImageTargetTexture2DOES(Stack* stack, bool pushReturn) { |
| void* image = stack->pop<void*>(); |
| ImageTargetTexture target = stack->pop<ImageTargetTexture>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glEGLImageTargetTexture2DOES(%u, %p)\n", target, image); |
| if (glEGLImageTargetTexture2DOES != nullptr) { |
| glEGLImageTargetTexture2DOES(target, image); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glEGLImageTargetTexture2DOES\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glEGLImageTargetTexture2DOES\n"); |
| return false; |
| } |
| } |
| |
| bool callGlEGLImageTargetRenderbufferStorageOES(Stack* stack, bool pushReturn) { |
| void* image = stack->pop<void*>(); |
| ImageTargetRenderbufferStorage target = stack->pop<ImageTargetRenderbufferStorage>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glEGLImageTargetRenderbufferStorageOES(%u, %p)\n", target, image); |
| if (glEGLImageTargetRenderbufferStorageOES != nullptr) { |
| glEGLImageTargetRenderbufferStorageOES(target, image); |
| } else { |
| GAPID_WARNING( |
| "Attempted to call unsupported function " |
| "glEGLImageTargetRenderbufferStorageOES\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glEGLImageTargetRenderbufferStorageOES\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetGraphicsResetStatusEXT(Stack* stack, bool pushReturn) { |
| if (stack->isValid()) { |
| GAPID_INFO("glGetGraphicsResetStatusEXT()\n"); |
| if (glGetGraphicsResetStatusEXT != nullptr) { |
| ResetStatus return_value = glGetGraphicsResetStatusEXT(); |
| GAPID_INFO("Returned: %u\n", return_value); |
| if (pushReturn) { |
| stack->push<ResetStatus>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetGraphicsResetStatusEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetGraphicsResetStatusEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBindAttribLocation(Stack* stack, bool pushReturn) { |
| char* name = stack->pop<char*>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBindAttribLocation(%u, %u, %s)\n", program, location, name); |
| if (glBindAttribLocation != nullptr) { |
| glBindAttribLocation(program, location, name); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBindAttribLocation\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBindAttribLocation\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBlendFunc(Stack* stack, bool pushReturn) { |
| BlendFactor dst_factor = stack->pop<BlendFactor>(); |
| BlendFactor src_factor = stack->pop<BlendFactor>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBlendFunc(%u, %u)\n", src_factor, dst_factor); |
| if (glBlendFunc != nullptr) { |
| glBlendFunc(src_factor, dst_factor); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBlendFunc\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBlendFunc\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBlendFuncSeparate(Stack* stack, bool pushReturn) { |
| BlendFactor dst_factor_alpha = stack->pop<BlendFactor>(); |
| BlendFactor src_factor_alpha = stack->pop<BlendFactor>(); |
| BlendFactor dst_factor_rgb = stack->pop<BlendFactor>(); |
| BlendFactor src_factor_rgb = stack->pop<BlendFactor>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBlendFuncSeparate(%u, %u, %u, %u)\n", src_factor_rgb, dst_factor_rgb, |
| src_factor_alpha, dst_factor_alpha); |
| if (glBlendFuncSeparate != nullptr) { |
| glBlendFuncSeparate(src_factor_rgb, dst_factor_rgb, src_factor_alpha, dst_factor_alpha); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBlendFuncSeparate\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBlendFuncSeparate\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBlendEquation(Stack* stack, bool pushReturn) { |
| BlendEquation equation = stack->pop<BlendEquation>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBlendEquation(%u)\n", equation); |
| if (glBlendEquation != nullptr) { |
| glBlendEquation(equation); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBlendEquation\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBlendEquation\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBlendEquationSeparate(Stack* stack, bool pushReturn) { |
| BlendEquation alpha = stack->pop<BlendEquation>(); |
| BlendEquation rgb = stack->pop<BlendEquation>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBlendEquationSeparate(%u, %u)\n", rgb, alpha); |
| if (glBlendEquationSeparate != nullptr) { |
| glBlendEquationSeparate(rgb, alpha); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBlendEquationSeparate\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBlendEquationSeparate\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBlendColor(Stack* stack, bool pushReturn) { |
| float alpha = stack->pop<float>(); |
| float blue = stack->pop<float>(); |
| float green = stack->pop<float>(); |
| float red = stack->pop<float>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBlendColor(%f, %f, %f, %f)\n", red, green, blue, alpha); |
| if (glBlendColor != nullptr) { |
| glBlendColor(red, green, blue, alpha); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBlendColor\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBlendColor\n"); |
| return false; |
| } |
| } |
| |
| bool callGlEnableVertexAttribArray(Stack* stack, bool pushReturn) { |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glEnableVertexAttribArray(%u)\n", location); |
| if (glEnableVertexAttribArray != nullptr) { |
| glEnableVertexAttribArray(location); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glEnableVertexAttribArray\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glEnableVertexAttribArray\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDisableVertexAttribArray(Stack* stack, bool pushReturn) { |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDisableVertexAttribArray(%u)\n", location); |
| if (glDisableVertexAttribArray != nullptr) { |
| glDisableVertexAttribArray(location); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDisableVertexAttribArray\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDisableVertexAttribArray\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttribPointer(Stack* stack, bool pushReturn) { |
| void* data = stack->pop<void*>(); |
| int32_t stride = stack->pop<int32_t>(); |
| bool normalized = stack->pop<bool>(); |
| VertexAttribType type = stack->pop<VertexAttribType>(); |
| int32_t size = stack->pop<int32_t>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttribPointer(%u, %d, %u, %d, %d, %p)\n", location, size, type, |
| normalized, stride, data); |
| if (glVertexAttribPointer != nullptr) { |
| glVertexAttribPointer(location, size, type, normalized, stride, data); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttribPointer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttribPointer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetActiveAttrib(Stack* stack, bool pushReturn) { |
| char* name = stack->pop<char*>(); |
| ShaderAttribType* type = stack->pop<ShaderAttribType*>(); |
| int32_t* vector_count = stack->pop<int32_t*>(); |
| int32_t* buffer_bytes_written = stack->pop<int32_t*>(); |
| int32_t buffer_size = stack->pop<int32_t>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetActiveAttrib(%u, %u, %d, %p, %p, %p, %p)\n", program, location, |
| buffer_size, buffer_bytes_written, vector_count, type, name); |
| if (glGetActiveAttrib != nullptr) { |
| glGetActiveAttrib(program, location, buffer_size, buffer_bytes_written, vector_count, |
| type, name); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetActiveAttrib\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetActiveAttrib\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetActiveUniform(Stack* stack, bool pushReturn) { |
| char* name = stack->pop<char*>(); |
| ShaderUniformType* type = stack->pop<ShaderUniformType*>(); |
| int32_t* vector_count = stack->pop<int32_t*>(); |
| int32_t* buffer_bytes_written = stack->pop<int32_t*>(); |
| int32_t buffer_size = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetActiveUniform(%u, %d, %d, %p, %p, %p, %p)\n", program, location, |
| buffer_size, buffer_bytes_written, vector_count, type, name); |
| if (glGetActiveUniform != nullptr) { |
| glGetActiveUniform(program, location, buffer_size, buffer_bytes_written, vector_count, |
| type, name); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetActiveUniform\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetActiveUniform\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetError(Stack* stack, bool pushReturn) { |
| if (stack->isValid()) { |
| GAPID_INFO("glGetError()\n"); |
| if (glGetError != nullptr) { |
| Error return_value = glGetError(); |
| GAPID_INFO("Returned: %u\n", return_value); |
| if (pushReturn) { |
| stack->push<Error>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetError\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetError\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetProgramiv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| ProgramParameter parameter = stack->pop<ProgramParameter>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetProgramiv(%u, %u, %p)\n", program, parameter, value); |
| if (glGetProgramiv != nullptr) { |
| glGetProgramiv(program, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetProgramiv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetProgramiv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetShaderiv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| ShaderParameter parameter = stack->pop<ShaderParameter>(); |
| uint32_t shader = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetShaderiv(%u, %u, %p)\n", shader, parameter, value); |
| if (glGetShaderiv != nullptr) { |
| glGetShaderiv(shader, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetShaderiv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetShaderiv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetUniformLocation(Stack* stack, bool pushReturn) { |
| char* name = stack->pop<char*>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetUniformLocation(%u, %s)\n", program, name); |
| if (glGetUniformLocation != nullptr) { |
| int32_t return_value = glGetUniformLocation(program, name); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<int32_t>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetUniformLocation\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetUniformLocation\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetAttribLocation(Stack* stack, bool pushReturn) { |
| char* name = stack->pop<char*>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetAttribLocation(%u, %s)\n", program, name); |
| if (glGetAttribLocation != nullptr) { |
| uint32_t return_value = glGetAttribLocation(program, name); |
| GAPID_INFO("Returned: %u\n", return_value); |
| if (pushReturn) { |
| stack->push<uint32_t>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetAttribLocation\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetAttribLocation\n"); |
| return false; |
| } |
| } |
| |
| bool callGlPixelStorei(Stack* stack, bool pushReturn) { |
| int32_t value = stack->pop<int32_t>(); |
| PixelStoreParameter parameter = stack->pop<PixelStoreParameter>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glPixelStorei(%u, %d)\n", parameter, value); |
| if (glPixelStorei != nullptr) { |
| glPixelStorei(parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glPixelStorei\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glPixelStorei\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTexParameteri(Stack* stack, bool pushReturn) { |
| int32_t value = stack->pop<int32_t>(); |
| TextureParameter parameter = stack->pop<TextureParameter>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTexParameteri(%u, %u, %d)\n", target, parameter, value); |
| if (glTexParameteri != nullptr) { |
| glTexParameteri(target, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTexParameteri\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTexParameteri\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTexParameterf(Stack* stack, bool pushReturn) { |
| float value = stack->pop<float>(); |
| TextureParameter parameter = stack->pop<TextureParameter>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTexParameterf(%u, %u, %f)\n", target, parameter, value); |
| if (glTexParameterf != nullptr) { |
| glTexParameterf(target, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTexParameterf\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTexParameterf\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetTexParameteriv(Stack* stack, bool pushReturn) { |
| int32_t* values = stack->pop<int32_t*>(); |
| TextureParameter parameter = stack->pop<TextureParameter>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetTexParameteriv(%u, %u, %p)\n", target, parameter, values); |
| if (glGetTexParameteriv != nullptr) { |
| glGetTexParameteriv(target, parameter, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetTexParameteriv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetTexParameteriv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetTexParameterfv(Stack* stack, bool pushReturn) { |
| float* values = stack->pop<float*>(); |
| TextureParameter parameter = stack->pop<TextureParameter>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetTexParameterfv(%u, %u, %p)\n", target, parameter, values); |
| if (glGetTexParameterfv != nullptr) { |
| glGetTexParameterfv(target, parameter, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetTexParameterfv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetTexParameterfv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform1i(Stack* stack, bool pushReturn) { |
| int32_t value = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform1i(%d, %d)\n", location, value); |
| if (glUniform1i != nullptr) { |
| glUniform1i(location, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform1i\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform1i\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform2i(Stack* stack, bool pushReturn) { |
| int32_t value1 = stack->pop<int32_t>(); |
| int32_t value0 = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform2i(%d, %d, %d)\n", location, value0, value1); |
| if (glUniform2i != nullptr) { |
| glUniform2i(location, value0, value1); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform2i\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform2i\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform3i(Stack* stack, bool pushReturn) { |
| int32_t value2 = stack->pop<int32_t>(); |
| int32_t value1 = stack->pop<int32_t>(); |
| int32_t value0 = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform3i(%d, %d, %d, %d)\n", location, value0, value1, value2); |
| if (glUniform3i != nullptr) { |
| glUniform3i(location, value0, value1, value2); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform3i\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform3i\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform4i(Stack* stack, bool pushReturn) { |
| int32_t value3 = stack->pop<int32_t>(); |
| int32_t value2 = stack->pop<int32_t>(); |
| int32_t value1 = stack->pop<int32_t>(); |
| int32_t value0 = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform4i(%d, %d, %d, %d, %d)\n", location, value0, value1, value2, value3); |
| if (glUniform4i != nullptr) { |
| glUniform4i(location, value0, value1, value2, value3); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform4i\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform4i\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform1iv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform1iv(%d, %d, %p)\n", location, count, value); |
| if (glUniform1iv != nullptr) { |
| glUniform1iv(location, count, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform1iv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform1iv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform2iv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform2iv(%d, %d, %p)\n", location, count, value); |
| if (glUniform2iv != nullptr) { |
| glUniform2iv(location, count, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform2iv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform2iv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform3iv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform3iv(%d, %d, %p)\n", location, count, value); |
| if (glUniform3iv != nullptr) { |
| glUniform3iv(location, count, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform3iv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform3iv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform4iv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform4iv(%d, %d, %p)\n", location, count, value); |
| if (glUniform4iv != nullptr) { |
| glUniform4iv(location, count, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform4iv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform4iv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform1f(Stack* stack, bool pushReturn) { |
| float value = stack->pop<float>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform1f(%d, %f)\n", location, value); |
| if (glUniform1f != nullptr) { |
| glUniform1f(location, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform1f\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform1f\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform2f(Stack* stack, bool pushReturn) { |
| float value1 = stack->pop<float>(); |
| float value0 = stack->pop<float>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform2f(%d, %f, %f)\n", location, value0, value1); |
| if (glUniform2f != nullptr) { |
| glUniform2f(location, value0, value1); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform2f\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform2f\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform3f(Stack* stack, bool pushReturn) { |
| float value2 = stack->pop<float>(); |
| float value1 = stack->pop<float>(); |
| float value0 = stack->pop<float>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform3f(%d, %f, %f, %f)\n", location, value0, value1, value2); |
| if (glUniform3f != nullptr) { |
| glUniform3f(location, value0, value1, value2); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform3f\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform3f\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform4f(Stack* stack, bool pushReturn) { |
| float value3 = stack->pop<float>(); |
| float value2 = stack->pop<float>(); |
| float value1 = stack->pop<float>(); |
| float value0 = stack->pop<float>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform4f(%d, %f, %f, %f, %f)\n", location, value0, value1, value2, value3); |
| if (glUniform4f != nullptr) { |
| glUniform4f(location, value0, value1, value2, value3); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform4f\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform4f\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform1fv(Stack* stack, bool pushReturn) { |
| float* value = stack->pop<float*>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform1fv(%d, %d, %p)\n", location, count, value); |
| if (glUniform1fv != nullptr) { |
| glUniform1fv(location, count, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform1fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform1fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform2fv(Stack* stack, bool pushReturn) { |
| float* value = stack->pop<float*>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform2fv(%d, %d, %p)\n", location, count, value); |
| if (glUniform2fv != nullptr) { |
| glUniform2fv(location, count, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform2fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform2fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform3fv(Stack* stack, bool pushReturn) { |
| float* value = stack->pop<float*>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform3fv(%d, %d, %p)\n", location, count, value); |
| if (glUniform3fv != nullptr) { |
| glUniform3fv(location, count, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform3fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform3fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniform4fv(Stack* stack, bool pushReturn) { |
| float* value = stack->pop<float*>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniform4fv(%d, %d, %p)\n", location, count, value); |
| if (glUniform4fv != nullptr) { |
| glUniform4fv(location, count, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniform4fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniform4fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniformMatrix2fv(Stack* stack, bool pushReturn) { |
| float* values = stack->pop<float*>(); |
| bool transpose = stack->pop<bool>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniformMatrix2fv(%d, %d, %d, %p)\n", location, count, transpose, values); |
| if (glUniformMatrix2fv != nullptr) { |
| glUniformMatrix2fv(location, count, transpose, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniformMatrix2fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniformMatrix2fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniformMatrix3fv(Stack* stack, bool pushReturn) { |
| float* values = stack->pop<float*>(); |
| bool transpose = stack->pop<bool>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniformMatrix3fv(%d, %d, %d, %p)\n", location, count, transpose, values); |
| if (glUniformMatrix3fv != nullptr) { |
| glUniformMatrix3fv(location, count, transpose, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniformMatrix3fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniformMatrix3fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUniformMatrix4fv(Stack* stack, bool pushReturn) { |
| float* values = stack->pop<float*>(); |
| bool transpose = stack->pop<bool>(); |
| int32_t count = stack->pop<int32_t>(); |
| int32_t location = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUniformMatrix4fv(%d, %d, %d, %p)\n", location, count, transpose, values); |
| if (glUniformMatrix4fv != nullptr) { |
| glUniformMatrix4fv(location, count, transpose, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUniformMatrix4fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUniformMatrix4fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetUniformfv(Stack* stack, bool pushReturn) { |
| float* values = stack->pop<float*>(); |
| int32_t location = stack->pop<int32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetUniformfv(%u, %d, %p)\n", program, location, values); |
| if (glGetUniformfv != nullptr) { |
| glGetUniformfv(program, location, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetUniformfv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetUniformfv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetUniformiv(Stack* stack, bool pushReturn) { |
| int32_t* values = stack->pop<int32_t*>(); |
| int32_t location = stack->pop<int32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetUniformiv(%u, %d, %p)\n", program, location, values); |
| if (glGetUniformiv != nullptr) { |
| glGetUniformiv(program, location, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetUniformiv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetUniformiv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttrib1f(Stack* stack, bool pushReturn) { |
| float value0 = stack->pop<float>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttrib1f(%u, %f)\n", location, value0); |
| if (glVertexAttrib1f != nullptr) { |
| glVertexAttrib1f(location, value0); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttrib1f\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttrib1f\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttrib2f(Stack* stack, bool pushReturn) { |
| float value1 = stack->pop<float>(); |
| float value0 = stack->pop<float>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttrib2f(%u, %f, %f)\n", location, value0, value1); |
| if (glVertexAttrib2f != nullptr) { |
| glVertexAttrib2f(location, value0, value1); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttrib2f\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttrib2f\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttrib3f(Stack* stack, bool pushReturn) { |
| float value2 = stack->pop<float>(); |
| float value1 = stack->pop<float>(); |
| float value0 = stack->pop<float>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttrib3f(%u, %f, %f, %f)\n", location, value0, value1, value2); |
| if (glVertexAttrib3f != nullptr) { |
| glVertexAttrib3f(location, value0, value1, value2); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttrib3f\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttrib3f\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttrib4f(Stack* stack, bool pushReturn) { |
| float value3 = stack->pop<float>(); |
| float value2 = stack->pop<float>(); |
| float value1 = stack->pop<float>(); |
| float value0 = stack->pop<float>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttrib4f(%u, %f, %f, %f, %f)\n", location, value0, value1, value2, |
| value3); |
| if (glVertexAttrib4f != nullptr) { |
| glVertexAttrib4f(location, value0, value1, value2, value3); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttrib4f\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttrib4f\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttrib1fv(Stack* stack, bool pushReturn) { |
| float* value = stack->pop<float*>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttrib1fv(%u, %p)\n", location, value); |
| if (glVertexAttrib1fv != nullptr) { |
| glVertexAttrib1fv(location, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttrib1fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttrib1fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttrib2fv(Stack* stack, bool pushReturn) { |
| float* value = stack->pop<float*>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttrib2fv(%u, %p)\n", location, value); |
| if (glVertexAttrib2fv != nullptr) { |
| glVertexAttrib2fv(location, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttrib2fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttrib2fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttrib3fv(Stack* stack, bool pushReturn) { |
| float* value = stack->pop<float*>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttrib3fv(%u, %p)\n", location, value); |
| if (glVertexAttrib3fv != nullptr) { |
| glVertexAttrib3fv(location, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttrib3fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttrib3fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlVertexAttrib4fv(Stack* stack, bool pushReturn) { |
| float* value = stack->pop<float*>(); |
| uint32_t location = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glVertexAttrib4fv(%u, %p)\n", location, value); |
| if (glVertexAttrib4fv != nullptr) { |
| glVertexAttrib4fv(location, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glVertexAttrib4fv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glVertexAttrib4fv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetShaderPrecisionFormat(Stack* stack, bool pushReturn) { |
| int32_t* precision = stack->pop<int32_t*>(); |
| int32_t* range = stack->pop<int32_t*>(); |
| PrecisionType precision_type = stack->pop<PrecisionType>(); |
| ShaderType shader_type = stack->pop<ShaderType>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetShaderPrecisionFormat(%u, %u, %p, %p)\n", shader_type, precision_type, |
| range, precision); |
| if (glGetShaderPrecisionFormat != nullptr) { |
| glGetShaderPrecisionFormat(shader_type, precision_type, range, precision); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetShaderPrecisionFormat\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetShaderPrecisionFormat\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDepthMask(Stack* stack, bool pushReturn) { |
| bool enabled = stack->pop<bool>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDepthMask(%d)\n", enabled); |
| if (glDepthMask != nullptr) { |
| glDepthMask(enabled); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDepthMask\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDepthMask\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDepthFunc(Stack* stack, bool pushReturn) { |
| TestFunction function = stack->pop<TestFunction>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDepthFunc(%u)\n", function); |
| if (glDepthFunc != nullptr) { |
| glDepthFunc(function); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDepthFunc\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDepthFunc\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDepthRangef(Stack* stack, bool pushReturn) { |
| float far = stack->pop<float>(); |
| float near = stack->pop<float>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDepthRangef(%f, %f)\n", near, far); |
| if (glDepthRangef != nullptr) { |
| glDepthRangef(near, far); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDepthRangef\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDepthRangef\n"); |
| return false; |
| } |
| } |
| |
| bool callGlColorMask(Stack* stack, bool pushReturn) { |
| bool alpha = stack->pop<bool>(); |
| bool blue = stack->pop<bool>(); |
| bool green = stack->pop<bool>(); |
| bool red = stack->pop<bool>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glColorMask(%d, %d, %d, %d)\n", red, green, blue, alpha); |
| if (glColorMask != nullptr) { |
| glColorMask(red, green, blue, alpha); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glColorMask\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glColorMask\n"); |
| return false; |
| } |
| } |
| |
| bool callGlStencilMask(Stack* stack, bool pushReturn) { |
| uint32_t mask = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glStencilMask(%u)\n", mask); |
| if (glStencilMask != nullptr) { |
| glStencilMask(mask); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glStencilMask\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glStencilMask\n"); |
| return false; |
| } |
| } |
| |
| bool callGlStencilMaskSeparate(Stack* stack, bool pushReturn) { |
| uint32_t mask = stack->pop<uint32_t>(); |
| FaceMode face = stack->pop<FaceMode>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glStencilMaskSeparate(%u, %u)\n", face, mask); |
| if (glStencilMaskSeparate != nullptr) { |
| glStencilMaskSeparate(face, mask); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glStencilMaskSeparate\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glStencilMaskSeparate\n"); |
| return false; |
| } |
| } |
| |
| bool callGlStencilFuncSeparate(Stack* stack, bool pushReturn) { |
| int32_t mask = stack->pop<int32_t>(); |
| int32_t reference_value = stack->pop<int32_t>(); |
| TestFunction function = stack->pop<TestFunction>(); |
| FaceMode face = stack->pop<FaceMode>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glStencilFuncSeparate(%u, %u, %d, %d)\n", face, function, reference_value, |
| mask); |
| if (glStencilFuncSeparate != nullptr) { |
| glStencilFuncSeparate(face, function, reference_value, mask); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glStencilFuncSeparate\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glStencilFuncSeparate\n"); |
| return false; |
| } |
| } |
| |
| bool callGlStencilOpSeparate(Stack* stack, bool pushReturn) { |
| StencilAction stencil_pass_depth_pass = stack->pop<StencilAction>(); |
| StencilAction stencil_pass_depth_fail = stack->pop<StencilAction>(); |
| StencilAction stencil_fail = stack->pop<StencilAction>(); |
| FaceMode face = stack->pop<FaceMode>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glStencilOpSeparate(%u, %u, %u, %u)\n", face, stencil_fail, |
| stencil_pass_depth_fail, stencil_pass_depth_pass); |
| if (glStencilOpSeparate != nullptr) { |
| glStencilOpSeparate(face, stencil_fail, stencil_pass_depth_fail, |
| stencil_pass_depth_pass); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glStencilOpSeparate\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glStencilOpSeparate\n"); |
| return false; |
| } |
| } |
| |
| bool callGlFrontFace(Stack* stack, bool pushReturn) { |
| FaceOrientation orientation = stack->pop<FaceOrientation>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glFrontFace(%u)\n", orientation); |
| if (glFrontFace != nullptr) { |
| glFrontFace(orientation); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glFrontFace\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glFrontFace\n"); |
| return false; |
| } |
| } |
| |
| bool callGlViewport(Stack* stack, bool pushReturn) { |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| int32_t y = stack->pop<int32_t>(); |
| int32_t x = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glViewport(%d, %d, %d, %d)\n", x, y, width, height); |
| if (glViewport != nullptr) { |
| glViewport(x, y, width, height); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glViewport\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glViewport\n"); |
| return false; |
| } |
| } |
| |
| bool callGlScissor(Stack* stack, bool pushReturn) { |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| int32_t y = stack->pop<int32_t>(); |
| int32_t x = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glScissor(%d, %d, %d, %d)\n", x, y, width, height); |
| if (glScissor != nullptr) { |
| glScissor(x, y, width, height); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glScissor\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glScissor\n"); |
| return false; |
| } |
| } |
| |
| bool callGlActiveTexture(Stack* stack, bool pushReturn) { |
| TextureUnit unit = stack->pop<TextureUnit>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glActiveTexture(%u)\n", unit); |
| if (glActiveTexture != nullptr) { |
| glActiveTexture(unit); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glActiveTexture\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glActiveTexture\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGenTextures(Stack* stack, bool pushReturn) { |
| uint32_t* textures = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGenTextures(%d, %p)\n", count, textures); |
| if (glGenTextures != nullptr) { |
| glGenTextures(count, textures); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGenTextures\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGenTextures\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteTextures(Stack* stack, bool pushReturn) { |
| uint32_t* textures = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteTextures(%d, %p)\n", count, textures); |
| if (glDeleteTextures != nullptr) { |
| glDeleteTextures(count, textures); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteTextures\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteTextures\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsTexture(Stack* stack, bool pushReturn) { |
| uint32_t texture = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsTexture(%u)\n", texture); |
| if (glIsTexture != nullptr) { |
| bool return_value = glIsTexture(texture); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsTexture\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsTexture\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBindTexture(Stack* stack, bool pushReturn) { |
| uint32_t texture = stack->pop<uint32_t>(); |
| TextureTarget target = stack->pop<TextureTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBindTexture(%u, %u)\n", target, texture); |
| if (glBindTexture != nullptr) { |
| glBindTexture(target, texture); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBindTexture\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBindTexture\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTexImage2D(Stack* stack, bool pushReturn) { |
| void* data = stack->pop<void*>(); |
| TexelType type = stack->pop<TexelType>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t border = stack->pop<int32_t>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| TexelFormat internal_format = stack->pop<TexelFormat>(); |
| int32_t level = stack->pop<int32_t>(); |
| TextureImageTarget target = stack->pop<TextureImageTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTexImage2D(%u, %d, %u, %d, %d, %d, %u, %u, %p)\n", target, level, |
| internal_format, width, height, border, format, type, data); |
| if (glTexImage2D != nullptr) { |
| glTexImage2D(target, level, internal_format, width, height, border, format, type, data); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTexImage2D\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTexImage2D\n"); |
| return false; |
| } |
| } |
| |
| bool callGlTexSubImage2D(Stack* stack, bool pushReturn) { |
| void* data = stack->pop<void*>(); |
| TexelType type = stack->pop<TexelType>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| int32_t yoffset = stack->pop<int32_t>(); |
| int32_t xoffset = stack->pop<int32_t>(); |
| int32_t level = stack->pop<int32_t>(); |
| TextureImageTarget target = stack->pop<TextureImageTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glTexSubImage2D(%u, %d, %d, %d, %d, %d, %u, %u, %p)\n", target, level, xoffset, |
| yoffset, width, height, format, type, data); |
| if (glTexSubImage2D != nullptr) { |
| glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, data); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glTexSubImage2D\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glTexSubImage2D\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCopyTexImage2D(Stack* stack, bool pushReturn) { |
| int32_t border = stack->pop<int32_t>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| int32_t y = stack->pop<int32_t>(); |
| int32_t x = stack->pop<int32_t>(); |
| TexelFormat format = stack->pop<TexelFormat>(); |
| int32_t level = stack->pop<int32_t>(); |
| TextureImageTarget target = stack->pop<TextureImageTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glCopyTexImage2D(%u, %d, %u, %d, %d, %d, %d, %d)\n", target, level, format, x, |
| y, width, height, border); |
| if (glCopyTexImage2D != nullptr) { |
| glCopyTexImage2D(target, level, format, x, y, width, height, border); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCopyTexImage2D\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCopyTexImage2D\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCopyTexSubImage2D(Stack* stack, bool pushReturn) { |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| int32_t y = stack->pop<int32_t>(); |
| int32_t x = stack->pop<int32_t>(); |
| int32_t yoffset = stack->pop<int32_t>(); |
| int32_t xoffset = stack->pop<int32_t>(); |
| int32_t level = stack->pop<int32_t>(); |
| TextureImageTarget target = stack->pop<TextureImageTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glCopyTexSubImage2D(%u, %d, %d, %d, %d, %d, %d, %d)\n", target, level, xoffset, |
| yoffset, x, y, width, height); |
| if (glCopyTexSubImage2D != nullptr) { |
| glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCopyTexSubImage2D\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCopyTexSubImage2D\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCompressedTexImage2D(Stack* stack, bool pushReturn) { |
| void* data = stack->pop<void*>(); |
| int32_t image_size = stack->pop<int32_t>(); |
| int32_t border = stack->pop<int32_t>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| CompressedTexelFormat format = stack->pop<CompressedTexelFormat>(); |
| int32_t level = stack->pop<int32_t>(); |
| TextureImageTarget target = stack->pop<TextureImageTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glCompressedTexImage2D(%u, %d, %u, %d, %d, %d, %d, %p)\n", target, level, |
| format, width, height, border, image_size, data); |
| if (glCompressedTexImage2D != nullptr) { |
| glCompressedTexImage2D(target, level, format, width, height, border, image_size, data); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCompressedTexImage2D\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCompressedTexImage2D\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCompressedTexSubImage2D(Stack* stack, bool pushReturn) { |
| void* data = stack->pop<void*>(); |
| int32_t image_size = stack->pop<int32_t>(); |
| CompressedTexelFormat format = stack->pop<CompressedTexelFormat>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| int32_t yoffset = stack->pop<int32_t>(); |
| int32_t xoffset = stack->pop<int32_t>(); |
| int32_t level = stack->pop<int32_t>(); |
| TextureImageTarget target = stack->pop<TextureImageTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glCompressedTexSubImage2D(%u, %d, %d, %d, %d, %d, %u, %d, %p)\n", target, level, |
| xoffset, yoffset, width, height, format, image_size, data); |
| if (glCompressedTexSubImage2D != nullptr) { |
| glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, |
| image_size, data); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCompressedTexSubImage2D\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCompressedTexSubImage2D\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGenerateMipmap(Stack* stack, bool pushReturn) { |
| TextureImageTarget target = stack->pop<TextureImageTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGenerateMipmap(%u)\n", target); |
| if (glGenerateMipmap != nullptr) { |
| glGenerateMipmap(target); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGenerateMipmap\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGenerateMipmap\n"); |
| return false; |
| } |
| } |
| |
| bool callGlReadPixels(Stack* stack, bool pushReturn) { |
| void* data = stack->pop<void*>(); |
| TexelType type = stack->pop<TexelType>(); |
| BaseTexelFormat format = stack->pop<BaseTexelFormat>(); |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| int32_t y = stack->pop<int32_t>(); |
| int32_t x = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glReadPixels(%d, %d, %d, %d, %u, %u, %p)\n", x, y, width, height, format, type, |
| data); |
| if (glReadPixels != nullptr) { |
| glReadPixels(x, y, width, height, format, type, data); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glReadPixels\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glReadPixels\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGenFramebuffers(Stack* stack, bool pushReturn) { |
| uint32_t* framebuffers = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGenFramebuffers(%d, %p)\n", count, framebuffers); |
| if (glGenFramebuffers != nullptr) { |
| glGenFramebuffers(count, framebuffers); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGenFramebuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGenFramebuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBindFramebuffer(Stack* stack, bool pushReturn) { |
| uint32_t framebuffer = stack->pop<uint32_t>(); |
| FramebufferTarget target = stack->pop<FramebufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBindFramebuffer(%u, %u)\n", target, framebuffer); |
| if (glBindFramebuffer != nullptr) { |
| glBindFramebuffer(target, framebuffer); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBindFramebuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBindFramebuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCheckFramebufferStatus(Stack* stack, bool pushReturn) { |
| FramebufferTarget target = stack->pop<FramebufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glCheckFramebufferStatus(%u)\n", target); |
| if (glCheckFramebufferStatus != nullptr) { |
| FramebufferStatus return_value = glCheckFramebufferStatus(target); |
| GAPID_INFO("Returned: %u\n", return_value); |
| if (pushReturn) { |
| stack->push<FramebufferStatus>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCheckFramebufferStatus\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCheckFramebufferStatus\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteFramebuffers(Stack* stack, bool pushReturn) { |
| uint32_t* framebuffers = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteFramebuffers(%d, %p)\n", count, framebuffers); |
| if (glDeleteFramebuffers != nullptr) { |
| glDeleteFramebuffers(count, framebuffers); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteFramebuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteFramebuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsFramebuffer(Stack* stack, bool pushReturn) { |
| uint32_t framebuffer = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsFramebuffer(%u)\n", framebuffer); |
| if (glIsFramebuffer != nullptr) { |
| bool return_value = glIsFramebuffer(framebuffer); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsFramebuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsFramebuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGenRenderbuffers(Stack* stack, bool pushReturn) { |
| uint32_t* renderbuffers = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGenRenderbuffers(%d, %p)\n", count, renderbuffers); |
| if (glGenRenderbuffers != nullptr) { |
| glGenRenderbuffers(count, renderbuffers); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGenRenderbuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGenRenderbuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBindRenderbuffer(Stack* stack, bool pushReturn) { |
| uint32_t renderbuffer = stack->pop<uint32_t>(); |
| RenderbufferTarget target = stack->pop<RenderbufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBindRenderbuffer(%u, %u)\n", target, renderbuffer); |
| if (glBindRenderbuffer != nullptr) { |
| glBindRenderbuffer(target, renderbuffer); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBindRenderbuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBindRenderbuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlRenderbufferStorage(Stack* stack, bool pushReturn) { |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| RenderbufferFormat format = stack->pop<RenderbufferFormat>(); |
| RenderbufferTarget target = stack->pop<RenderbufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glRenderbufferStorage(%u, %u, %d, %d)\n", target, format, width, height); |
| if (glRenderbufferStorage != nullptr) { |
| glRenderbufferStorage(target, format, width, height); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorage\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glRenderbufferStorage\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteRenderbuffers(Stack* stack, bool pushReturn) { |
| uint32_t* renderbuffers = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteRenderbuffers(%d, %p)\n", count, renderbuffers); |
| if (glDeleteRenderbuffers != nullptr) { |
| glDeleteRenderbuffers(count, renderbuffers); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteRenderbuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteRenderbuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsRenderbuffer(Stack* stack, bool pushReturn) { |
| uint32_t renderbuffer = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsRenderbuffer(%u)\n", renderbuffer); |
| if (glIsRenderbuffer != nullptr) { |
| bool return_value = glIsRenderbuffer(renderbuffer); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsRenderbuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsRenderbuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetRenderbufferParameteriv(Stack* stack, bool pushReturn) { |
| int32_t* values = stack->pop<int32_t*>(); |
| RenderbufferParameter parameter = stack->pop<RenderbufferParameter>(); |
| RenderbufferTarget target = stack->pop<RenderbufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetRenderbufferParameteriv(%u, %u, %p)\n", target, parameter, values); |
| if (glGetRenderbufferParameteriv != nullptr) { |
| glGetRenderbufferParameteriv(target, parameter, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetRenderbufferParameteriv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetRenderbufferParameteriv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGenBuffers(Stack* stack, bool pushReturn) { |
| uint32_t* buffers = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGenBuffers(%d, %p)\n", count, buffers); |
| if (glGenBuffers != nullptr) { |
| glGenBuffers(count, buffers); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGenBuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGenBuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBindBuffer(Stack* stack, bool pushReturn) { |
| uint32_t buffer = stack->pop<uint32_t>(); |
| BufferTarget target = stack->pop<BufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBindBuffer(%u, %u)\n", target, buffer); |
| if (glBindBuffer != nullptr) { |
| glBindBuffer(target, buffer); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBindBuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBindBuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBufferData(Stack* stack, bool pushReturn) { |
| BufferUsage usage = stack->pop<BufferUsage>(); |
| void* data = stack->pop<void*>(); |
| int32_t size = stack->pop<int32_t>(); |
| BufferTarget target = stack->pop<BufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBufferData(%u, %d, %p, %u)\n", target, size, data, usage); |
| if (glBufferData != nullptr) { |
| glBufferData(target, size, data, usage); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBufferData\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBufferData\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBufferSubData(Stack* stack, bool pushReturn) { |
| void* data = stack->pop<void*>(); |
| int32_t size = stack->pop<int32_t>(); |
| int32_t offset = stack->pop<int32_t>(); |
| BufferTarget target = stack->pop<BufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBufferSubData(%u, %d, %d, %p)\n", target, offset, size, data); |
| if (glBufferSubData != nullptr) { |
| glBufferSubData(target, offset, size, data); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBufferSubData\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBufferSubData\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteBuffers(Stack* stack, bool pushReturn) { |
| uint32_t* buffers = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteBuffers(%d, %p)\n", count, buffers); |
| if (glDeleteBuffers != nullptr) { |
| glDeleteBuffers(count, buffers); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteBuffers\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteBuffers\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsBuffer(Stack* stack, bool pushReturn) { |
| uint32_t buffer = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsBuffer(%u)\n", buffer); |
| if (glIsBuffer != nullptr) { |
| bool return_value = glIsBuffer(buffer); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsBuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsBuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetBufferParameteriv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| BufferParameter parameter = stack->pop<BufferParameter>(); |
| BufferTarget target = stack->pop<BufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetBufferParameteriv(%u, %u, %p)\n", target, parameter, value); |
| if (glGetBufferParameteriv != nullptr) { |
| glGetBufferParameteriv(target, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetBufferParameteriv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetBufferParameteriv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCreateShader(Stack* stack, bool pushReturn) { |
| ShaderType type = stack->pop<ShaderType>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glCreateShader(%u)\n", type); |
| if (glCreateShader != nullptr) { |
| uint32_t return_value = glCreateShader(type); |
| GAPID_INFO("Returned: %u\n", return_value); |
| if (pushReturn) { |
| stack->push<uint32_t>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCreateShader\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCreateShader\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteShader(Stack* stack, bool pushReturn) { |
| uint32_t shader = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteShader(%u)\n", shader); |
| if (glDeleteShader != nullptr) { |
| glDeleteShader(shader); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteShader\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteShader\n"); |
| return false; |
| } |
| } |
| |
| bool callGlShaderSource(Stack* stack, bool pushReturn) { |
| int32_t* length = stack->pop<int32_t*>(); |
| char** source = stack->pop<char**>(); |
| int32_t count = stack->pop<int32_t>(); |
| uint32_t shader = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glShaderSource(%u, %d, %p, %p)\n", shader, count, source, length); |
| if (glShaderSource != nullptr) { |
| glShaderSource(shader, count, source, length); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glShaderSource\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glShaderSource\n"); |
| return false; |
| } |
| } |
| |
| bool callGlShaderBinary(Stack* stack, bool pushReturn) { |
| int32_t binary_size = stack->pop<int32_t>(); |
| void* binary = stack->pop<void*>(); |
| uint32_t binary_format = stack->pop<uint32_t>(); |
| uint32_t* shaders = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glShaderBinary(%d, %p, %u, %p, %d)\n", count, shaders, binary_format, binary, |
| binary_size); |
| if (glShaderBinary != nullptr) { |
| glShaderBinary(count, shaders, binary_format, binary, binary_size); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glShaderBinary\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glShaderBinary\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetShaderInfoLog(Stack* stack, bool pushReturn) { |
| char* info = stack->pop<char*>(); |
| int32_t* string_length_written = stack->pop<int32_t*>(); |
| int32_t buffer_length = stack->pop<int32_t>(); |
| uint32_t shader = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetShaderInfoLog(%u, %d, %p, %p)\n", shader, buffer_length, |
| string_length_written, info); |
| if (glGetShaderInfoLog != nullptr) { |
| glGetShaderInfoLog(shader, buffer_length, string_length_written, info); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetShaderInfoLog\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetShaderInfoLog\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetShaderSource(Stack* stack, bool pushReturn) { |
| char* source = stack->pop<char*>(); |
| int32_t* string_length_written = stack->pop<int32_t*>(); |
| int32_t buffer_length = stack->pop<int32_t>(); |
| uint32_t shader = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetShaderSource(%u, %d, %p, %p)\n", shader, buffer_length, |
| string_length_written, source); |
| if (glGetShaderSource != nullptr) { |
| glGetShaderSource(shader, buffer_length, string_length_written, source); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetShaderSource\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetShaderSource\n"); |
| return false; |
| } |
| } |
| |
| bool callGlReleaseShaderCompiler(Stack* stack, bool pushReturn) { |
| if (stack->isValid()) { |
| GAPID_INFO("glReleaseShaderCompiler()\n"); |
| if (glReleaseShaderCompiler != nullptr) { |
| glReleaseShaderCompiler(); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glReleaseShaderCompiler\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glReleaseShaderCompiler\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCompileShader(Stack* stack, bool pushReturn) { |
| uint32_t shader = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glCompileShader(%u)\n", shader); |
| if (glCompileShader != nullptr) { |
| glCompileShader(shader); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCompileShader\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCompileShader\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsShader(Stack* stack, bool pushReturn) { |
| uint32_t shader = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsShader(%u)\n", shader); |
| if (glIsShader != nullptr) { |
| bool return_value = glIsShader(shader); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsShader\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsShader\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCreateProgram(Stack* stack, bool pushReturn) { |
| if (stack->isValid()) { |
| GAPID_INFO("glCreateProgram()\n"); |
| if (glCreateProgram != nullptr) { |
| uint32_t return_value = glCreateProgram(); |
| GAPID_INFO("Returned: %u\n", return_value); |
| if (pushReturn) { |
| stack->push<uint32_t>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCreateProgram\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCreateProgram\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteProgram(Stack* stack, bool pushReturn) { |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteProgram(%u)\n", program); |
| if (glDeleteProgram != nullptr) { |
| glDeleteProgram(program); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteProgram\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteProgram\n"); |
| return false; |
| } |
| } |
| |
| bool callGlAttachShader(Stack* stack, bool pushReturn) { |
| uint32_t shader = stack->pop<uint32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glAttachShader(%u, %u)\n", program, shader); |
| if (glAttachShader != nullptr) { |
| glAttachShader(program, shader); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glAttachShader\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glAttachShader\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDetachShader(Stack* stack, bool pushReturn) { |
| uint32_t shader = stack->pop<uint32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDetachShader(%u, %u)\n", program, shader); |
| if (glDetachShader != nullptr) { |
| glDetachShader(program, shader); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDetachShader\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDetachShader\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetAttachedShaders(Stack* stack, bool pushReturn) { |
| uint32_t* shaders = stack->pop<uint32_t*>(); |
| int32_t* shaders_length_written = stack->pop<int32_t*>(); |
| int32_t buffer_length = stack->pop<int32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetAttachedShaders(%u, %d, %p, %p)\n", program, buffer_length, |
| shaders_length_written, shaders); |
| if (glGetAttachedShaders != nullptr) { |
| glGetAttachedShaders(program, buffer_length, shaders_length_written, shaders); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetAttachedShaders\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetAttachedShaders\n"); |
| return false; |
| } |
| } |
| |
| bool callGlLinkProgram(Stack* stack, bool pushReturn) { |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glLinkProgram(%u)\n", program); |
| if (glLinkProgram != nullptr) { |
| glLinkProgram(program); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glLinkProgram\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glLinkProgram\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetProgramInfoLog(Stack* stack, bool pushReturn) { |
| char* info = stack->pop<char*>(); |
| int32_t* string_length_written = stack->pop<int32_t*>(); |
| int32_t buffer_length = stack->pop<int32_t>(); |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetProgramInfoLog(%u, %d, %p, %p)\n", program, buffer_length, |
| string_length_written, info); |
| if (glGetProgramInfoLog != nullptr) { |
| glGetProgramInfoLog(program, buffer_length, string_length_written, info); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetProgramInfoLog\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetProgramInfoLog\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUseProgram(Stack* stack, bool pushReturn) { |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUseProgram(%u)\n", program); |
| if (glUseProgram != nullptr) { |
| glUseProgram(program); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUseProgram\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUseProgram\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsProgram(Stack* stack, bool pushReturn) { |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsProgram(%u)\n", program); |
| if (glIsProgram != nullptr) { |
| bool return_value = glIsProgram(program); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsProgram\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsProgram\n"); |
| return false; |
| } |
| } |
| |
| bool callGlValidateProgram(Stack* stack, bool pushReturn) { |
| uint32_t program = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glValidateProgram(%u)\n", program); |
| if (glValidateProgram != nullptr) { |
| glValidateProgram(program); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glValidateProgram\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glValidateProgram\n"); |
| return false; |
| } |
| } |
| |
| bool callGlClearColor(Stack* stack, bool pushReturn) { |
| float a = stack->pop<float>(); |
| float b = stack->pop<float>(); |
| float g = stack->pop<float>(); |
| float r = stack->pop<float>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glClearColor(%f, %f, %f, %f)\n", r, g, b, a); |
| if (glClearColor != nullptr) { |
| glClearColor(r, g, b, a); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glClearColor\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glClearColor\n"); |
| return false; |
| } |
| } |
| |
| bool callGlClearDepthf(Stack* stack, bool pushReturn) { |
| float depth = stack->pop<float>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glClearDepthf(%f)\n", depth); |
| if (glClearDepthf != nullptr) { |
| glClearDepthf(depth); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glClearDepthf\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glClearDepthf\n"); |
| return false; |
| } |
| } |
| |
| bool callGlClearStencil(Stack* stack, bool pushReturn) { |
| int32_t stencil = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glClearStencil(%d)\n", stencil); |
| if (glClearStencil != nullptr) { |
| glClearStencil(stencil); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glClearStencil\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glClearStencil\n"); |
| return false; |
| } |
| } |
| |
| bool callGlClear(Stack* stack, bool pushReturn) { |
| ClearMask mask = stack->pop<ClearMask>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glClear(%u)\n", mask); |
| if (glClear != nullptr) { |
| glClear(mask); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glClear\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glClear\n"); |
| return false; |
| } |
| } |
| |
| bool callGlCullFace(Stack* stack, bool pushReturn) { |
| FaceMode mode = stack->pop<FaceMode>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glCullFace(%u)\n", mode); |
| if (glCullFace != nullptr) { |
| glCullFace(mode); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glCullFace\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glCullFace\n"); |
| return false; |
| } |
| } |
| |
| bool callGlPolygonOffset(Stack* stack, bool pushReturn) { |
| float units = stack->pop<float>(); |
| float scale_factor = stack->pop<float>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glPolygonOffset(%f, %f)\n", scale_factor, units); |
| if (glPolygonOffset != nullptr) { |
| glPolygonOffset(scale_factor, units); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glPolygonOffset\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glPolygonOffset\n"); |
| return false; |
| } |
| } |
| |
| bool callGlLineWidth(Stack* stack, bool pushReturn) { |
| float width = stack->pop<float>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glLineWidth(%f)\n", width); |
| if (glLineWidth != nullptr) { |
| glLineWidth(width); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glLineWidth\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glLineWidth\n"); |
| return false; |
| } |
| } |
| |
| bool callGlSampleCoverage(Stack* stack, bool pushReturn) { |
| bool invert = stack->pop<bool>(); |
| float value = stack->pop<float>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glSampleCoverage(%f, %d)\n", value, invert); |
| if (glSampleCoverage != nullptr) { |
| glSampleCoverage(value, invert); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glSampleCoverage\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glSampleCoverage\n"); |
| return false; |
| } |
| } |
| |
| bool callGlHint(Stack* stack, bool pushReturn) { |
| HintMode mode = stack->pop<HintMode>(); |
| HintTarget target = stack->pop<HintTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glHint(%u, %u)\n", target, mode); |
| if (glHint != nullptr) { |
| glHint(target, mode); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glHint\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glHint\n"); |
| return false; |
| } |
| } |
| |
| bool callGlFramebufferRenderbuffer(Stack* stack, bool pushReturn) { |
| uint32_t renderbuffer = stack->pop<uint32_t>(); |
| RenderbufferTarget renderbuffer_target = stack->pop<RenderbufferTarget>(); |
| FramebufferAttachment framebuffer_attachment = stack->pop<FramebufferAttachment>(); |
| FramebufferTarget framebuffer_target = stack->pop<FramebufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glFramebufferRenderbuffer(%u, %u, %u, %u)\n", framebuffer_target, |
| framebuffer_attachment, renderbuffer_target, renderbuffer); |
| if (glFramebufferRenderbuffer != nullptr) { |
| glFramebufferRenderbuffer(framebuffer_target, framebuffer_attachment, |
| renderbuffer_target, renderbuffer); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glFramebufferRenderbuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glFramebufferRenderbuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlFramebufferTexture2D(Stack* stack, bool pushReturn) { |
| int32_t level = stack->pop<int32_t>(); |
| uint32_t texture = stack->pop<uint32_t>(); |
| TextureImageTarget texture_target = stack->pop<TextureImageTarget>(); |
| FramebufferAttachment framebuffer_attachment = stack->pop<FramebufferAttachment>(); |
| FramebufferTarget framebuffer_target = stack->pop<FramebufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glFramebufferTexture2D(%u, %u, %u, %u, %d)\n", framebuffer_target, |
| framebuffer_attachment, texture_target, texture, level); |
| if (glFramebufferTexture2D != nullptr) { |
| glFramebufferTexture2D(framebuffer_target, framebuffer_attachment, texture_target, |
| texture, level); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glFramebufferTexture2D\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glFramebufferTexture2D\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetFramebufferAttachmentParameteriv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| FramebufferAttachmentParameter parameter = stack->pop<FramebufferAttachmentParameter>(); |
| FramebufferAttachment attachment = stack->pop<FramebufferAttachment>(); |
| FramebufferTarget framebuffer_target = stack->pop<FramebufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetFramebufferAttachmentParameteriv(%u, %u, %u, %p)\n", framebuffer_target, |
| attachment, parameter, value); |
| if (glGetFramebufferAttachmentParameteriv != nullptr) { |
| glGetFramebufferAttachmentParameteriv(framebuffer_target, attachment, parameter, value); |
| } else { |
| GAPID_WARNING( |
| "Attempted to call unsupported function " |
| "glGetFramebufferAttachmentParameteriv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetFramebufferAttachmentParameteriv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDrawElements(Stack* stack, bool pushReturn) { |
| void* indices = stack->pop<void*>(); |
| IndicesType indices_type = stack->pop<IndicesType>(); |
| int32_t element_count = stack->pop<int32_t>(); |
| DrawMode draw_mode = stack->pop<DrawMode>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDrawElements(%u, %d, %u, %p)\n", draw_mode, element_count, indices_type, |
| indices); |
| if (glDrawElements != nullptr) { |
| glDrawElements(draw_mode, element_count, indices_type, indices); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDrawElements\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDrawElements\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDrawArrays(Stack* stack, bool pushReturn) { |
| int32_t index_count = stack->pop<int32_t>(); |
| int32_t first_index = stack->pop<int32_t>(); |
| DrawMode draw_mode = stack->pop<DrawMode>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDrawArrays(%u, %d, %d)\n", draw_mode, first_index, index_count); |
| if (glDrawArrays != nullptr) { |
| glDrawArrays(draw_mode, first_index, index_count); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDrawArrays\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDrawArrays\n"); |
| return false; |
| } |
| } |
| |
| bool callGlFlush(Stack* stack, bool pushReturn) { |
| if (stack->isValid()) { |
| GAPID_INFO("glFlush()\n"); |
| if (glFlush != nullptr) { |
| glFlush(); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glFlush\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glFlush\n"); |
| return false; |
| } |
| } |
| |
| bool callGlFinish(Stack* stack, bool pushReturn) { |
| if (stack->isValid()) { |
| GAPID_INFO("glFinish()\n"); |
| if (glFinish != nullptr) { |
| glFinish(); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glFinish\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glFinish\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetBooleanv(Stack* stack, bool pushReturn) { |
| bool* values = stack->pop<bool*>(); |
| StateVariable param = stack->pop<StateVariable>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetBooleanv(%u, %p)\n", param, values); |
| if (glGetBooleanv != nullptr) { |
| glGetBooleanv(param, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetBooleanv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetBooleanv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetFloatv(Stack* stack, bool pushReturn) { |
| float* values = stack->pop<float*>(); |
| StateVariable param = stack->pop<StateVariable>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetFloatv(%u, %p)\n", param, values); |
| if (glGetFloatv != nullptr) { |
| glGetFloatv(param, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetFloatv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetFloatv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetIntegerv(Stack* stack, bool pushReturn) { |
| int32_t* values = stack->pop<int32_t*>(); |
| StateVariable param = stack->pop<StateVariable>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetIntegerv(%u, %p)\n", param, values); |
| if (glGetIntegerv != nullptr) { |
| glGetIntegerv(param, values); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetIntegerv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetIntegerv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetString(Stack* stack, bool pushReturn) { |
| StringConstant param = stack->pop<StringConstant>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetString(%u)\n", param); |
| if (glGetString != nullptr) { |
| char* return_value = glGetString(param); |
| GAPID_INFO("Returned: %p\n", return_value); |
| if (pushReturn) { |
| stack->push<char*>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetString\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetString\n"); |
| return false; |
| } |
| } |
| |
| bool callGlEnable(Stack* stack, bool pushReturn) { |
| Capability capability = stack->pop<Capability>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glEnable(%u)\n", capability); |
| if (glEnable != nullptr) { |
| glEnable(capability); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glEnable\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glEnable\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDisable(Stack* stack, bool pushReturn) { |
| Capability capability = stack->pop<Capability>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDisable(%u)\n", capability); |
| if (glDisable != nullptr) { |
| glDisable(capability); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDisable\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDisable\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsEnabled(Stack* stack, bool pushReturn) { |
| Capability capability = stack->pop<Capability>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsEnabled(%u)\n", capability); |
| if (glIsEnabled != nullptr) { |
| bool return_value = glIsEnabled(capability); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsEnabled\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsEnabled\n"); |
| return false; |
| } |
| } |
| |
| bool callGlMapBufferRange(Stack* stack, bool pushReturn) { |
| MapBufferRangeAccess access = stack->pop<MapBufferRangeAccess>(); |
| int32_t length = stack->pop<int32_t>(); |
| int32_t offset = stack->pop<int32_t>(); |
| BufferTarget target = stack->pop<BufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glMapBufferRange(%u, %d, %d, %u)\n", target, offset, length, access); |
| if (glMapBufferRange != nullptr) { |
| void* return_value = glMapBufferRange(target, offset, length, access); |
| GAPID_INFO("Returned: %p\n", return_value); |
| if (pushReturn) { |
| stack->push<void*>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glMapBufferRange\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glMapBufferRange\n"); |
| return false; |
| } |
| } |
| |
| bool callGlUnmapBuffer(Stack* stack, bool pushReturn) { |
| BufferTarget target = stack->pop<BufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glUnmapBuffer(%u)\n", target); |
| if (glUnmapBuffer != nullptr) { |
| glUnmapBuffer(target); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glUnmapBuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glUnmapBuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlInvalidateFramebuffer(Stack* stack, bool pushReturn) { |
| FramebufferAttachment* attachments = stack->pop<FramebufferAttachment*>(); |
| int32_t count = stack->pop<int32_t>(); |
| FramebufferTarget target = stack->pop<FramebufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glInvalidateFramebuffer(%u, %d, %p)\n", target, count, attachments); |
| if (glInvalidateFramebuffer != nullptr) { |
| glInvalidateFramebuffer(target, count, attachments); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glInvalidateFramebuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glInvalidateFramebuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlRenderbufferStorageMultisample(Stack* stack, bool pushReturn) { |
| int32_t height = stack->pop<int32_t>(); |
| int32_t width = stack->pop<int32_t>(); |
| RenderbufferFormat format = stack->pop<RenderbufferFormat>(); |
| int32_t samples = stack->pop<int32_t>(); |
| RenderbufferTarget target = stack->pop<RenderbufferTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glRenderbufferStorageMultisample(%u, %d, %u, %d, %d)\n", target, samples, |
| format, width, height); |
| if (glRenderbufferStorageMultisample != nullptr) { |
| glRenderbufferStorageMultisample(target, samples, format, width, height); |
| } else { |
| GAPID_WARNING( |
| "Attempted to call unsupported function glRenderbufferStorageMultisample\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glRenderbufferStorageMultisample\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBlitFramebuffer(Stack* stack, bool pushReturn) { |
| TextureFilterMode filter = stack->pop<TextureFilterMode>(); |
| ClearMask mask = stack->pop<ClearMask>(); |
| int32_t dstY1 = stack->pop<int32_t>(); |
| int32_t dstX1 = stack->pop<int32_t>(); |
| int32_t dstY0 = stack->pop<int32_t>(); |
| int32_t dstX0 = stack->pop<int32_t>(); |
| int32_t srcY1 = stack->pop<int32_t>(); |
| int32_t srcX1 = stack->pop<int32_t>(); |
| int32_t srcY0 = stack->pop<int32_t>(); |
| int32_t srcX0 = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBlitFramebuffer(%d, %d, %d, %d, %d, %d, %d, %d, %u, %u)\n", srcX0, srcY0, |
| srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); |
| if (glBlitFramebuffer != nullptr) { |
| glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBlitFramebuffer\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBlitFramebuffer\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGenQueries(Stack* stack, bool pushReturn) { |
| uint32_t* queries = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGenQueries(%d, %p)\n", count, queries); |
| if (glGenQueries != nullptr) { |
| glGenQueries(count, queries); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGenQueries\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGenQueries\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBeginQuery(Stack* stack, bool pushReturn) { |
| uint32_t query = stack->pop<uint32_t>(); |
| QueryTarget target = stack->pop<QueryTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBeginQuery(%u, %u)\n", target, query); |
| if (glBeginQuery != nullptr) { |
| glBeginQuery(target, query); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBeginQuery\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBeginQuery\n"); |
| return false; |
| } |
| } |
| |
| bool callGlEndQuery(Stack* stack, bool pushReturn) { |
| QueryTarget target = stack->pop<QueryTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glEndQuery(%u)\n", target); |
| if (glEndQuery != nullptr) { |
| glEndQuery(target); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glEndQuery\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glEndQuery\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteQueries(Stack* stack, bool pushReturn) { |
| uint32_t* queries = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteQueries(%d, %p)\n", count, queries); |
| if (glDeleteQueries != nullptr) { |
| glDeleteQueries(count, queries); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteQueries\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteQueries\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsQuery(Stack* stack, bool pushReturn) { |
| uint32_t query = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsQuery(%u)\n", query); |
| if (glIsQuery != nullptr) { |
| bool return_value = glIsQuery(query); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsQuery\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsQuery\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetQueryiv(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| QueryParameter parameter = stack->pop<QueryParameter>(); |
| QueryTarget target = stack->pop<QueryTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetQueryiv(%u, %u, %p)\n", target, parameter, value); |
| if (glGetQueryiv != nullptr) { |
| glGetQueryiv(target, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetQueryiv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetQueryiv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetQueryObjectuiv(Stack* stack, bool pushReturn) { |
| uint32_t* value = stack->pop<uint32_t*>(); |
| QueryObjectParameter parameter = stack->pop<QueryObjectParameter>(); |
| uint32_t query = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetQueryObjectuiv(%u, %u, %p)\n", query, parameter, value); |
| if (glGetQueryObjectuiv != nullptr) { |
| glGetQueryObjectuiv(query, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectuiv\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetQueryObjectuiv\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGenQueriesEXT(Stack* stack, bool pushReturn) { |
| uint32_t* queries = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGenQueriesEXT(%d, %p)\n", count, queries); |
| if (glGenQueriesEXT != nullptr) { |
| glGenQueriesEXT(count, queries); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGenQueriesEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGenQueriesEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlBeginQueryEXT(Stack* stack, bool pushReturn) { |
| uint32_t query = stack->pop<uint32_t>(); |
| QueryTarget target = stack->pop<QueryTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glBeginQueryEXT(%u, %u)\n", target, query); |
| if (glBeginQueryEXT != nullptr) { |
| glBeginQueryEXT(target, query); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glBeginQueryEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glBeginQueryEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlEndQueryEXT(Stack* stack, bool pushReturn) { |
| QueryTarget target = stack->pop<QueryTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glEndQueryEXT(%u)\n", target); |
| if (glEndQueryEXT != nullptr) { |
| glEndQueryEXT(target); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glEndQueryEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glEndQueryEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlDeleteQueriesEXT(Stack* stack, bool pushReturn) { |
| uint32_t* queries = stack->pop<uint32_t*>(); |
| int32_t count = stack->pop<int32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glDeleteQueriesEXT(%d, %p)\n", count, queries); |
| if (glDeleteQueriesEXT != nullptr) { |
| glDeleteQueriesEXT(count, queries); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glDeleteQueriesEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glDeleteQueriesEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlIsQueryEXT(Stack* stack, bool pushReturn) { |
| uint32_t query = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glIsQueryEXT(%u)\n", query); |
| if (glIsQueryEXT != nullptr) { |
| bool return_value = glIsQueryEXT(query); |
| GAPID_INFO("Returned: %d\n", return_value); |
| if (pushReturn) { |
| stack->push<bool>(return_value); |
| } |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glIsQueryEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glIsQueryEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlQueryCounterEXT(Stack* stack, bool pushReturn) { |
| QueryTarget target = stack->pop<QueryTarget>(); |
| uint32_t query = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glQueryCounterEXT(%u, %u)\n", query, target); |
| if (glQueryCounterEXT != nullptr) { |
| glQueryCounterEXT(query, target); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glQueryCounterEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glQueryCounterEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetQueryivEXT(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| QueryParameter parameter = stack->pop<QueryParameter>(); |
| QueryTarget target = stack->pop<QueryTarget>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetQueryivEXT(%u, %u, %p)\n", target, parameter, value); |
| if (glGetQueryivEXT != nullptr) { |
| glGetQueryivEXT(target, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetQueryivEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetQueryivEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetQueryObjectivEXT(Stack* stack, bool pushReturn) { |
| int32_t* value = stack->pop<int32_t*>(); |
| QueryObjectParameter parameter = stack->pop<QueryObjectParameter>(); |
| uint32_t query = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetQueryObjectivEXT(%u, %u, %p)\n", query, parameter, value); |
| if (glGetQueryObjectivEXT != nullptr) { |
| glGetQueryObjectivEXT(query, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectivEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetQueryObjectivEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetQueryObjectuivEXT(Stack* stack, bool pushReturn) { |
| uint32_t* value = stack->pop<uint32_t*>(); |
| QueryObjectParameter parameter = stack->pop<QueryObjectParameter>(); |
| uint32_t query = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetQueryObjectuivEXT(%u, %u, %p)\n", query, parameter, value); |
| if (glGetQueryObjectuivEXT != nullptr) { |
| glGetQueryObjectuivEXT(query, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectuivEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetQueryObjectuivEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetQueryObjecti64vEXT(Stack* stack, bool pushReturn) { |
| int64_t* value = stack->pop<int64_t*>(); |
| QueryObjectParameter parameter = stack->pop<QueryObjectParameter>(); |
| uint32_t query = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetQueryObjecti64vEXT(%u, %u, %p)\n", query, parameter, value); |
| if (glGetQueryObjecti64vEXT != nullptr) { |
| glGetQueryObjecti64vEXT(query, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetQueryObjecti64vEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetQueryObjecti64vEXT\n"); |
| return false; |
| } |
| } |
| |
| bool callGlGetQueryObjectui64vEXT(Stack* stack, bool pushReturn) { |
| uint64_t* value = stack->pop<uint64_t*>(); |
| QueryObjectParameter parameter = stack->pop<QueryObjectParameter>(); |
| uint32_t query = stack->pop<uint32_t>(); |
| if (stack->isValid()) { |
| GAPID_INFO("glGetQueryObjectui64vEXT(%u, %u, %p)\n", query, parameter, value); |
| if (glGetQueryObjectui64vEXT != nullptr) { |
| glGetQueryObjectui64vEXT(query, parameter, value); |
| } else { |
| GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectui64vEXT\n"); |
| } |
| return true; |
| } else { |
| GAPID_WARNING("Error during calling function glGetQueryObjectui64vEXT\n"); |
| return false; |
| } |
| } |
| |
| } // end of anonymous namespace |
| |
| PFNEGLINITIALIZE eglInitialize = nullptr; |
| PFNEGLCREATECONTEXT eglCreateContext = nullptr; |
| PFNEGLMAKECURRENT eglMakeCurrent = nullptr; |
| PFNEGLSWAPBUFFERS eglSwapBuffers = nullptr; |
| PFNEGLQUERYSURFACE eglQuerySurface = nullptr; |
| PFNGLXCREATECONTEXT glXCreateContext = nullptr; |
| PFNGLXCREATENEWCONTEXT glXCreateNewContext = nullptr; |
| PFNGLXMAKECONTEXTCURRENT glXMakeContextCurrent = nullptr; |
| PFNGLXSWAPBUFFERS glXSwapBuffers = nullptr; |
| PFNWGLCREATECONTEXT wglCreateContext = nullptr; |
| PFNWGLCREATECONTEXTATTRIBSARB wglCreateContextAttribsARB = nullptr; |
| PFNWGLMAKECURRENT wglMakeCurrent = nullptr; |
| PFNWGLSWAPBUFFERS wglSwapBuffers = nullptr; |
| PFNCGLCREATECONTEXT CGLCreateContext = nullptr; |
| PFNCGLSETCURRENTCONTEXT CGLSetCurrentContext = nullptr; |
| PFNGLENABLECLIENTSTATE glEnableClientState = nullptr; |
| PFNGLDISABLECLIENTSTATE glDisableClientState = nullptr; |
| PFNGLGETPROGRAMBINARYOES glGetProgramBinaryOES = nullptr; |
| PFNGLPROGRAMBINARYOES glProgramBinaryOES = nullptr; |
| PFNGLSTARTTILINGQCOM glStartTilingQCOM = nullptr; |
| PFNGLENDTILINGQCOM glEndTilingQCOM = nullptr; |
| PFNGLDISCARDFRAMEBUFFEREXT glDiscardFramebufferEXT = nullptr; |
| PFNGLINSERTEVENTMARKEREXT glInsertEventMarkerEXT = nullptr; |
| PFNGLPUSHGROUPMARKEREXT glPushGroupMarkerEXT = nullptr; |
| PFNGLPOPGROUPMARKEREXT glPopGroupMarkerEXT = nullptr; |
| PFNGLTEXSTORAGE1DEXT glTexStorage1DEXT = nullptr; |
| PFNGLTEXSTORAGE2DEXT glTexStorage2DEXT = nullptr; |
| PFNGLTEXSTORAGE3DEXT glTexStorage3DEXT = nullptr; |
| PFNGLTEXTURESTORAGE1DEXT glTextureStorage1DEXT = nullptr; |
| PFNGLTEXTURESTORAGE2DEXT glTextureStorage2DEXT = nullptr; |
| PFNGLTEXTURESTORAGE3DEXT glTextureStorage3DEXT = nullptr; |
| PFNGLGENVERTEXARRAYSOES glGenVertexArraysOES = nullptr; |
| PFNGLBINDVERTEXARRAYOES glBindVertexArrayOES = nullptr; |
| PFNGLDELETEVERTEXARRAYSOES glDeleteVertexArraysOES = nullptr; |
| PFNGLISVERTEXARRAYOES glIsVertexArrayOES = nullptr; |
| PFNGLEGLIMAGETARGETTEXTURE2DOES glEGLImageTargetTexture2DOES = nullptr; |
| PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOES glEGLImageTargetRenderbufferStorageOES = nullptr; |
| PFNGLGETGRAPHICSRESETSTATUSEXT glGetGraphicsResetStatusEXT = nullptr; |
| PFNGLBINDATTRIBLOCATION glBindAttribLocation = nullptr; |
| PFNGLBLENDFUNC glBlendFunc = nullptr; |
| PFNGLBLENDFUNCSEPARATE glBlendFuncSeparate = nullptr; |
| PFNGLBLENDEQUATION glBlendEquation = nullptr; |
| PFNGLBLENDEQUATIONSEPARATE glBlendEquationSeparate = nullptr; |
| PFNGLBLENDCOLOR glBlendColor = nullptr; |
| PFNGLENABLEVERTEXATTRIBARRAY glEnableVertexAttribArray = nullptr; |
| PFNGLDISABLEVERTEXATTRIBARRAY glDisableVertexAttribArray = nullptr; |
| PFNGLVERTEXATTRIBPOINTER glVertexAttribPointer = nullptr; |
| PFNGLGETACTIVEATTRIB glGetActiveAttrib = nullptr; |
| PFNGLGETACTIVEUNIFORM glGetActiveUniform = nullptr; |
| PFNGLGETERROR glGetError = nullptr; |
| PFNGLGETPROGRAMIV glGetProgramiv = nullptr; |
| PFNGLGETSHADERIV glGetShaderiv = nullptr; |
| PFNGLGETUNIFORMLOCATION glGetUniformLocation = nullptr; |
| PFNGLGETATTRIBLOCATION glGetAttribLocation = nullptr; |
| PFNGLPIXELSTOREI glPixelStorei = nullptr; |
| PFNGLTEXPARAMETERI glTexParameteri = nullptr; |
| PFNGLTEXPARAMETERF glTexParameterf = nullptr; |
| PFNGLGETTEXPARAMETERIV glGetTexParameteriv = nullptr; |
| PFNGLGETTEXPARAMETERFV glGetTexParameterfv = nullptr; |
| PFNGLUNIFORM1I glUniform1i = nullptr; |
| PFNGLUNIFORM2I glUniform2i = nullptr; |
| PFNGLUNIFORM3I glUniform3i = nullptr; |
| PFNGLUNIFORM4I glUniform4i = nullptr; |
| PFNGLUNIFORM1IV glUniform1iv = nullptr; |
| PFNGLUNIFORM2IV glUniform2iv = nullptr; |
| PFNGLUNIFORM3IV glUniform3iv = nullptr; |
| PFNGLUNIFORM4IV glUniform4iv = nullptr; |
| PFNGLUNIFORM1F glUniform1f = nullptr; |
| PFNGLUNIFORM2F glUniform2f = nullptr; |
| PFNGLUNIFORM3F glUniform3f = nullptr; |
| PFNGLUNIFORM4F glUniform4f = nullptr; |
| PFNGLUNIFORM1FV glUniform1fv = nullptr; |
| PFNGLUNIFORM2FV glUniform2fv = nullptr; |
| PFNGLUNIFORM3FV glUniform3fv = nullptr; |
| PFNGLUNIFORM4FV glUniform4fv = nullptr; |
| PFNGLUNIFORMMATRIX2FV glUniformMatrix2fv = nullptr; |
| PFNGLUNIFORMMATRIX3FV glUniformMatrix3fv = nullptr; |
| PFNGLUNIFORMMATRIX4FV glUniformMatrix4fv = nullptr; |
| PFNGLGETUNIFORMFV glGetUniformfv = nullptr; |
| PFNGLGETUNIFORMIV glGetUniformiv = nullptr; |
| PFNGLVERTEXATTRIB1F glVertexAttrib1f = nullptr; |
| PFNGLVERTEXATTRIB2F glVertexAttrib2f = nullptr; |
| PFNGLVERTEXATTRIB3F glVertexAttrib3f = nullptr; |
| PFNGLVERTEXATTRIB4F glVertexAttrib4f = nullptr; |
| PFNGLVERTEXATTRIB1FV glVertexAttrib1fv = nullptr; |
| PFNGLVERTEXATTRIB2FV glVertexAttrib2fv = nullptr; |
| PFNGLVERTEXATTRIB3FV glVertexAttrib3fv = nullptr; |
| PFNGLVERTEXATTRIB4FV glVertexAttrib4fv = nullptr; |
| PFNGLGETSHADERPRECISIONFORMAT glGetShaderPrecisionFormat = nullptr; |
| PFNGLDEPTHMASK glDepthMask = nullptr; |
| PFNGLDEPTHFUNC glDepthFunc = nullptr; |
| PFNGLDEPTHRANGEF glDepthRangef = nullptr; |
| PFNGLCOLORMASK glColorMask = nullptr; |
| PFNGLSTENCILMASK glStencilMask = nullptr; |
| PFNGLSTENCILMASKSEPARATE glStencilMaskSeparate = nullptr; |
| PFNGLSTENCILFUNCSEPARATE glStencilFuncSeparate = nullptr; |
| PFNGLSTENCILOPSEPARATE glStencilOpSeparate = nullptr; |
| PFNGLFRONTFACE glFrontFace = nullptr; |
| PFNGLVIEWPORT glViewport = nullptr; |
| PFNGLSCISSOR glScissor = nullptr; |
| PFNGLACTIVETEXTURE glActiveTexture = nullptr; |
| PFNGLGENTEXTURES glGenTextures = nullptr; |
| PFNGLDELETETEXTURES glDeleteTextures = nullptr; |
| PFNGLISTEXTURE glIsTexture = nullptr; |
| PFNGLBINDTEXTURE glBindTexture = nullptr; |
| PFNGLTEXIMAGE2D glTexImage2D = nullptr; |
| PFNGLTEXSUBIMAGE2D glTexSubImage2D = nullptr; |
| PFNGLCOPYTEXIMAGE2D glCopyTexImage2D = nullptr; |
| PFNGLCOPYTEXSUBIMAGE2D glCopyTexSubImage2D = nullptr; |
| PFNGLCOMPRESSEDTEXIMAGE2D glCompressedTexImage2D = nullptr; |
| PFNGLCOMPRESSEDTEXSUBIMAGE2D glCompressedTexSubImage2D = nullptr; |
| PFNGLGENERATEMIPMAP glGenerateMipmap = nullptr; |
| PFNGLREADPIXELS glReadPixels = nullptr; |
| PFNGLGENFRAMEBUFFERS glGenFramebuffers = nullptr; |
| PFNGLBINDFRAMEBUFFER glBindFramebuffer = nullptr; |
| PFNGLCHECKFRAMEBUFFERSTATUS glCheckFramebufferStatus = nullptr; |
| PFNGLDELETEFRAMEBUFFERS glDeleteFramebuffers = nullptr; |
| PFNGLISFRAMEBUFFER glIsFramebuffer = nullptr; |
| PFNGLGENRENDERBUFFERS glGenRenderbuffers = nullptr; |
| PFNGLBINDRENDERBUFFER glBindRenderbuffer = nullptr; |
| PFNGLRENDERBUFFERSTORAGE glRenderbufferStorage = nullptr; |
| PFNGLDELETERENDERBUFFERS glDeleteRenderbuffers = nullptr; |
| PFNGLISRENDERBUFFER glIsRenderbuffer = nullptr; |
| PFNGLGETRENDERBUFFERPARAMETERIV glGetRenderbufferParameteriv = nullptr; |
| PFNGLGENBUFFERS glGenBuffers = nullptr; |
| PFNGLBINDBUFFER glBindBuffer = nullptr; |
| PFNGLBUFFERDATA glBufferData = nullptr; |
| PFNGLBUFFERSUBDATA glBufferSubData = nullptr; |
| PFNGLDELETEBUFFERS glDeleteBuffers = nullptr; |
| PFNGLISBUFFER glIsBuffer = nullptr; |
| PFNGLGETBUFFERPARAMETERIV glGetBufferParameteriv = nullptr; |
| PFNGLCREATESHADER glCreateShader = nullptr; |
| PFNGLDELETESHADER glDeleteShader = nullptr; |
| PFNGLSHADERSOURCE glShaderSource = nullptr; |
| PFNGLSHADERBINARY glShaderBinary = nullptr; |
| PFNGLGETSHADERINFOLOG glGetShaderInfoLog = nullptr; |
| PFNGLGETSHADERSOURCE glGetShaderSource = nullptr; |
| PFNGLRELEASESHADERCOMPILER glReleaseShaderCompiler = nullptr; |
| PFNGLCOMPILESHADER glCompileShader = nullptr; |
| PFNGLISSHADER glIsShader = nullptr; |
| PFNGLCREATEPROGRAM glCreateProgram = nullptr; |
| PFNGLDELETEPROGRAM glDeleteProgram = nullptr; |
| PFNGLATTACHSHADER glAttachShader = nullptr; |
| PFNGLDETACHSHADER glDetachShader = nullptr; |
| PFNGLGETATTACHEDSHADERS glGetAttachedShaders = nullptr; |
| PFNGLLINKPROGRAM glLinkProgram = nullptr; |
| PFNGLGETPROGRAMINFOLOG glGetProgramInfoLog = nullptr; |
| PFNGLUSEPROGRAM glUseProgram = nullptr; |
| PFNGLISPROGRAM glIsProgram = nullptr; |
| PFNGLVALIDATEPROGRAM glValidateProgram = nullptr; |
| PFNGLCLEARCOLOR glClearColor = nullptr; |
| PFNGLCLEARDEPTHF glClearDepthf = nullptr; |
| PFNGLCLEARSTENCIL glClearStencil = nullptr; |
| PFNGLCLEAR glClear = nullptr; |
| PFNGLCULLFACE glCullFace = nullptr; |
| PFNGLPOLYGONOFFSET glPolygonOffset = nullptr; |
| PFNGLLINEWIDTH glLineWidth = nullptr; |
| PFNGLSAMPLECOVERAGE glSampleCoverage = nullptr; |
| PFNGLHINT glHint = nullptr; |
| PFNGLFRAMEBUFFERRENDERBUFFER glFramebufferRenderbuffer = nullptr; |
| PFNGLFRAMEBUFFERTEXTURE2D glFramebufferTexture2D = nullptr; |
| PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV glGetFramebufferAttachmentParameteriv = nullptr; |
| PFNGLDRAWELEMENTS glDrawElements = nullptr; |
| PFNGLDRAWARRAYS glDrawArrays = nullptr; |
| PFNGLFLUSH glFlush = nullptr; |
| PFNGLFINISH glFinish = nullptr; |
| PFNGLGETBOOLEANV glGetBooleanv = nullptr; |
| PFNGLGETFLOATV glGetFloatv = nullptr; |
| PFNGLGETINTEGERV glGetIntegerv = nullptr; |
| PFNGLGETSTRING glGetString = nullptr; |
| PFNGLENABLE glEnable = nullptr; |
| PFNGLDISABLE glDisable = nullptr; |
| PFNGLISENABLED glIsEnabled = nullptr; |
| PFNGLMAPBUFFERRANGE glMapBufferRange = nullptr; |
| PFNGLUNMAPBUFFER glUnmapBuffer = nullptr; |
| PFNGLINVALIDATEFRAMEBUFFER glInvalidateFramebuffer = nullptr; |
| PFNGLRENDERBUFFERSTORAGEMULTISAMPLE glRenderbufferStorageMultisample = nullptr; |
| PFNGLBLITFRAMEBUFFER glBlitFramebuffer = nullptr; |
| PFNGLGENQUERIES glGenQueries = nullptr; |
| PFNGLBEGINQUERY glBeginQuery = nullptr; |
| PFNGLENDQUERY glEndQuery = nullptr; |
| PFNGLDELETEQUERIES glDeleteQueries = nullptr; |
| PFNGLISQUERY glIsQuery = nullptr; |
| PFNGLGETQUERYIV glGetQueryiv = nullptr; |
| PFNGLGETQUERYOBJECTUIV glGetQueryObjectuiv = nullptr; |
| PFNGLGENQUERIESEXT glGenQueriesEXT = nullptr; |
| PFNGLBEGINQUERYEXT glBeginQueryEXT = nullptr; |
| PFNGLENDQUERYEXT glEndQueryEXT = nullptr; |
| PFNGLDELETEQUERIESEXT glDeleteQueriesEXT = nullptr; |
| PFNGLISQUERYEXT glIsQueryEXT = nullptr; |
| PFNGLQUERYCOUNTEREXT glQueryCounterEXT = nullptr; |
| PFNGLGETQUERYIVEXT glGetQueryivEXT = nullptr; |
| PFNGLGETQUERYOBJECTIVEXT glGetQueryObjectivEXT = nullptr; |
| PFNGLGETQUERYOBJECTUIVEXT glGetQueryObjectuivEXT = nullptr; |
| PFNGLGETQUERYOBJECTI64VEXT glGetQueryObjecti64vEXT = nullptr; |
| PFNGLGETQUERYOBJECTUI64VEXT glGetQueryObjectui64vEXT = nullptr; |
| |
| void Register(Interpreter* interpreter) { |
| interpreter->registerFunction(Ids::EglInitialize, callEglInitialize); |
| interpreter->registerFunction(Ids::EglCreateContext, callEglCreateContext); |
| interpreter->registerFunction(Ids::EglMakeCurrent, callEglMakeCurrent); |
| interpreter->registerFunction(Ids::EglSwapBuffers, callEglSwapBuffers); |
| interpreter->registerFunction(Ids::EglQuerySurface, callEglQuerySurface); |
| interpreter->registerFunction(Ids::GlXCreateContext, callGlXCreateContext); |
| interpreter->registerFunction(Ids::GlXCreateNewContext, callGlXCreateNewContext); |
| interpreter->registerFunction(Ids::GlXMakeContextCurrent, callGlXMakeContextCurrent); |
| interpreter->registerFunction(Ids::GlXSwapBuffers, callGlXSwapBuffers); |
| interpreter->registerFunction(Ids::WglCreateContext, callWglCreateContext); |
| interpreter->registerFunction(Ids::WglCreateContextAttribsARB, callWglCreateContextAttribsARB); |
| interpreter->registerFunction(Ids::WglMakeCurrent, callWglMakeCurrent); |
| interpreter->registerFunction(Ids::WglSwapBuffers, callWglSwapBuffers); |
| interpreter->registerFunction(Ids::CGLCreateContext, callCGLCreateContext); |
| interpreter->registerFunction(Ids::CGLSetCurrentContext, callCGLSetCurrentContext); |
| interpreter->registerFunction(Ids::GlEnableClientState, callGlEnableClientState); |
| interpreter->registerFunction(Ids::GlDisableClientState, callGlDisableClientState); |
| interpreter->registerFunction(Ids::GlGetProgramBinaryOES, callGlGetProgramBinaryOES); |
| interpreter->registerFunction(Ids::GlProgramBinaryOES, callGlProgramBinaryOES); |
| interpreter->registerFunction(Ids::GlStartTilingQCOM, callGlStartTilingQCOM); |
| interpreter->registerFunction(Ids::GlEndTilingQCOM, callGlEndTilingQCOM); |
| interpreter->registerFunction(Ids::GlDiscardFramebufferEXT, callGlDiscardFramebufferEXT); |
| interpreter->registerFunction(Ids::GlInsertEventMarkerEXT, callGlInsertEventMarkerEXT); |
| interpreter->registerFunction(Ids::GlPushGroupMarkerEXT, callGlPushGroupMarkerEXT); |
| interpreter->registerFunction(Ids::GlPopGroupMarkerEXT, callGlPopGroupMarkerEXT); |
| interpreter->registerFunction(Ids::GlTexStorage1DEXT, callGlTexStorage1DEXT); |
| interpreter->registerFunction(Ids::GlTexStorage2DEXT, callGlTexStorage2DEXT); |
| interpreter->registerFunction(Ids::GlTexStorage3DEXT, callGlTexStorage3DEXT); |
| interpreter->registerFunction(Ids::GlTextureStorage1DEXT, callGlTextureStorage1DEXT); |
| interpreter->registerFunction(Ids::GlTextureStorage2DEXT, callGlTextureStorage2DEXT); |
| interpreter->registerFunction(Ids::GlTextureStorage3DEXT, callGlTextureStorage3DEXT); |
| interpreter->registerFunction(Ids::GlGenVertexArraysOES, callGlGenVertexArraysOES); |
| interpreter->registerFunction(Ids::GlBindVertexArrayOES, callGlBindVertexArrayOES); |
| interpreter->registerFunction(Ids::GlDeleteVertexArraysOES, callGlDeleteVertexArraysOES); |
| interpreter->registerFunction(Ids::GlIsVertexArrayOES, callGlIsVertexArrayOES); |
| interpreter->registerFunction(Ids::GlEGLImageTargetTexture2DOES, |
| callGlEGLImageTargetTexture2DOES); |
| interpreter->registerFunction(Ids::GlEGLImageTargetRenderbufferStorageOES, |
| callGlEGLImageTargetRenderbufferStorageOES); |
| interpreter->registerFunction(Ids::GlGetGraphicsResetStatusEXT, |
| callGlGetGraphicsResetStatusEXT); |
| interpreter->registerFunction(Ids::GlBindAttribLocation, callGlBindAttribLocation); |
| interpreter->registerFunction(Ids::GlBlendFunc, callGlBlendFunc); |
| interpreter->registerFunction(Ids::GlBlendFuncSeparate, callGlBlendFuncSeparate); |
| interpreter->registerFunction(Ids::GlBlendEquation, callGlBlendEquation); |
| interpreter->registerFunction(Ids::GlBlendEquationSeparate, callGlBlendEquationSeparate); |
| interpreter->registerFunction(Ids::GlBlendColor, callGlBlendColor); |
| interpreter->registerFunction(Ids::GlEnableVertexAttribArray, callGlEnableVertexAttribArray); |
| interpreter->registerFunction(Ids::GlDisableVertexAttribArray, callGlDisableVertexAttribArray); |
| interpreter->registerFunction(Ids::GlVertexAttribPointer, callGlVertexAttribPointer); |
| interpreter->registerFunction(Ids::GlGetActiveAttrib, callGlGetActiveAttrib); |
| interpreter->registerFunction(Ids::GlGetActiveUniform, callGlGetActiveUniform); |
| interpreter->registerFunction(Ids::GlGetError, callGlGetError); |
| interpreter->registerFunction(Ids::GlGetProgramiv, callGlGetProgramiv); |
| interpreter->registerFunction(Ids::GlGetShaderiv, callGlGetShaderiv); |
| interpreter->registerFunction(Ids::GlGetUniformLocation, callGlGetUniformLocation); |
| interpreter->registerFunction(Ids::GlGetAttribLocation, callGlGetAttribLocation); |
| interpreter->registerFunction(Ids::GlPixelStorei, callGlPixelStorei); |
| interpreter->registerFunction(Ids::GlTexParameteri, callGlTexParameteri); |
| interpreter->registerFunction(Ids::GlTexParameterf, callGlTexParameterf); |
| interpreter->registerFunction(Ids::GlGetTexParameteriv, callGlGetTexParameteriv); |
| interpreter->registerFunction(Ids::GlGetTexParameterfv, callGlGetTexParameterfv); |
| interpreter->registerFunction(Ids::GlUniform1i, callGlUniform1i); |
| interpreter->registerFunction(Ids::GlUniform2i, callGlUniform2i); |
| interpreter->registerFunction(Ids::GlUniform3i, callGlUniform3i); |
| interpreter->registerFunction(Ids::GlUniform4i, callGlUniform4i); |
| interpreter->registerFunction(Ids::GlUniform1iv, callGlUniform1iv); |
| interpreter->registerFunction(Ids::GlUniform2iv, callGlUniform2iv); |
| interpreter->registerFunction(Ids::GlUniform3iv, callGlUniform3iv); |
| interpreter->registerFunction(Ids::GlUniform4iv, callGlUniform4iv); |
| interpreter->registerFunction(Ids::GlUniform1f, callGlUniform1f); |
| interpreter->registerFunction(Ids::GlUniform2f, callGlUniform2f); |
| interpreter->registerFunction(Ids::GlUniform3f, callGlUniform3f); |
| interpreter->registerFunction(Ids::GlUniform4f, callGlUniform4f); |
| interpreter->registerFunction(Ids::GlUniform1fv, callGlUniform1fv); |
| interpreter->registerFunction(Ids::GlUniform2fv, callGlUniform2fv); |
| interpreter->registerFunction(Ids::GlUniform3fv, callGlUniform3fv); |
| interpreter->registerFunction(Ids::GlUniform4fv, callGlUniform4fv); |
| interpreter->registerFunction(Ids::GlUniformMatrix2fv, callGlUniformMatrix2fv); |
| interpreter->registerFunction(Ids::GlUniformMatrix3fv, callGlUniformMatrix3fv); |
| interpreter->registerFunction(Ids::GlUniformMatrix4fv, callGlUniformMatrix4fv); |
| interpreter->registerFunction(Ids::GlGetUniformfv, callGlGetUniformfv); |
| interpreter->registerFunction(Ids::GlGetUniformiv, callGlGetUniformiv); |
| interpreter->registerFunction(Ids::GlVertexAttrib1f, callGlVertexAttrib1f); |
| interpreter->registerFunction(Ids::GlVertexAttrib2f, callGlVertexAttrib2f); |
| interpreter->registerFunction(Ids::GlVertexAttrib3f, callGlVertexAttrib3f); |
| interpreter->registerFunction(Ids::GlVertexAttrib4f, callGlVertexAttrib4f); |
| interpreter->registerFunction(Ids::GlVertexAttrib1fv, callGlVertexAttrib1fv); |
| interpreter->registerFunction(Ids::GlVertexAttrib2fv, callGlVertexAttrib2fv); |
| interpreter->registerFunction(Ids::GlVertexAttrib3fv, callGlVertexAttrib3fv); |
| interpreter->registerFunction(Ids::GlVertexAttrib4fv, callGlVertexAttrib4fv); |
| interpreter->registerFunction(Ids::GlGetShaderPrecisionFormat, callGlGetShaderPrecisionFormat); |
| interpreter->registerFunction(Ids::GlDepthMask, callGlDepthMask); |
| interpreter->registerFunction(Ids::GlDepthFunc, callGlDepthFunc); |
| interpreter->registerFunction(Ids::GlDepthRangef, callGlDepthRangef); |
| interpreter->registerFunction(Ids::GlColorMask, callGlColorMask); |
| interpreter->registerFunction(Ids::GlStencilMask, callGlStencilMask); |
| interpreter->registerFunction(Ids::GlStencilMaskSeparate, callGlStencilMaskSeparate); |
| interpreter->registerFunction(Ids::GlStencilFuncSeparate, callGlStencilFuncSeparate); |
| interpreter->registerFunction(Ids::GlStencilOpSeparate, callGlStencilOpSeparate); |
| interpreter->registerFunction(Ids::GlFrontFace, callGlFrontFace); |
| interpreter->registerFunction(Ids::GlViewport, callGlViewport); |
| interpreter->registerFunction(Ids::GlScissor, callGlScissor); |
| interpreter->registerFunction(Ids::GlActiveTexture, callGlActiveTexture); |
| interpreter->registerFunction(Ids::GlGenTextures, callGlGenTextures); |
| interpreter->registerFunction(Ids::GlDeleteTextures, callGlDeleteTextures); |
| interpreter->registerFunction(Ids::GlIsTexture, callGlIsTexture); |
| interpreter->registerFunction(Ids::GlBindTexture, callGlBindTexture); |
| interpreter->registerFunction(Ids::GlTexImage2D, callGlTexImage2D); |
| interpreter->registerFunction(Ids::GlTexSubImage2D, callGlTexSubImage2D); |
| interpreter->registerFunction(Ids::GlCopyTexImage2D, callGlCopyTexImage2D); |
| interpreter->registerFunction(Ids::GlCopyTexSubImage2D, callGlCopyTexSubImage2D); |
| interpreter->registerFunction(Ids::GlCompressedTexImage2D, callGlCompressedTexImage2D); |
| interpreter->registerFunction(Ids::GlCompressedTexSubImage2D, callGlCompressedTexSubImage2D); |
| interpreter->registerFunction(Ids::GlGenerateMipmap, callGlGenerateMipmap); |
| interpreter->registerFunction(Ids::GlReadPixels, callGlReadPixels); |
| interpreter->registerFunction(Ids::GlGenFramebuffers, callGlGenFramebuffers); |
| interpreter->registerFunction(Ids::GlBindFramebuffer, callGlBindFramebuffer); |
| interpreter->registerFunction(Ids::GlCheckFramebufferStatus, callGlCheckFramebufferStatus); |
| interpreter->registerFunction(Ids::GlDeleteFramebuffers, callGlDeleteFramebuffers); |
| interpreter->registerFunction(Ids::GlIsFramebuffer, callGlIsFramebuffer); |
| interpreter->registerFunction(Ids::GlGenRenderbuffers, callGlGenRenderbuffers); |
| interpreter->registerFunction(Ids::GlBindRenderbuffer, callGlBindRenderbuffer); |
| interpreter->registerFunction(Ids::GlRenderbufferStorage, callGlRenderbufferStorage); |
| interpreter->registerFunction(Ids::GlDeleteRenderbuffers, callGlDeleteRenderbuffers); |
| interpreter->registerFunction(Ids::GlIsRenderbuffer, callGlIsRenderbuffer); |
| interpreter->registerFunction(Ids::GlGetRenderbufferParameteriv, |
| callGlGetRenderbufferParameteriv); |
| interpreter->registerFunction(Ids::GlGenBuffers, callGlGenBuffers); |
| interpreter->registerFunction(Ids::GlBindBuffer, callGlBindBuffer); |
| interpreter->registerFunction(Ids::GlBufferData, callGlBufferData); |
| interpreter->registerFunction(Ids::GlBufferSubData, callGlBufferSubData); |
| interpreter->registerFunction(Ids::GlDeleteBuffers, callGlDeleteBuffers); |
| interpreter->registerFunction(Ids::GlIsBuffer, callGlIsBuffer); |
| interpreter->registerFunction(Ids::GlGetBufferParameteriv, callGlGetBufferParameteriv); |
| interpreter->registerFunction(Ids::GlCreateShader, callGlCreateShader); |
| interpreter->registerFunction(Ids::GlDeleteShader, callGlDeleteShader); |
| interpreter->registerFunction(Ids::GlShaderSource, callGlShaderSource); |
| interpreter->registerFunction(Ids::GlShaderBinary, callGlShaderBinary); |
| interpreter->registerFunction(Ids::GlGetShaderInfoLog, callGlGetShaderInfoLog); |
| interpreter->registerFunction(Ids::GlGetShaderSource, callGlGetShaderSource); |
| interpreter->registerFunction(Ids::GlReleaseShaderCompiler, callGlReleaseShaderCompiler); |
| interpreter->registerFunction(Ids::GlCompileShader, callGlCompileShader); |
| interpreter->registerFunction(Ids::GlIsShader, callGlIsShader); |
| interpreter->registerFunction(Ids::GlCreateProgram, callGlCreateProgram); |
| interpreter->registerFunction(Ids::GlDeleteProgram, callGlDeleteProgram); |
| interpreter->registerFunction(Ids::GlAttachShader, callGlAttachShader); |
| interpreter->registerFunction(Ids::GlDetachShader, callGlDetachShader); |
| interpreter->registerFunction(Ids::GlGetAttachedShaders, callGlGetAttachedShaders); |
| interpreter->registerFunction(Ids::GlLinkProgram, callGlLinkProgram); |
| interpreter->registerFunction(Ids::GlGetProgramInfoLog, callGlGetProgramInfoLog); |
| interpreter->registerFunction(Ids::GlUseProgram, callGlUseProgram); |
| interpreter->registerFunction(Ids::GlIsProgram, callGlIsProgram); |
| interpreter->registerFunction(Ids::GlValidateProgram, callGlValidateProgram); |
| interpreter->registerFunction(Ids::GlClearColor, callGlClearColor); |
| interpreter->registerFunction(Ids::GlClearDepthf, callGlClearDepthf); |
| interpreter->registerFunction(Ids::GlClearStencil, callGlClearStencil); |
| interpreter->registerFunction(Ids::GlClear, callGlClear); |
| interpreter->registerFunction(Ids::GlCullFace, callGlCullFace); |
| interpreter->registerFunction(Ids::GlPolygonOffset, callGlPolygonOffset); |
| interpreter->registerFunction(Ids::GlLineWidth, callGlLineWidth); |
| interpreter->registerFunction(Ids::GlSampleCoverage, callGlSampleCoverage); |
| interpreter->registerFunction(Ids::GlHint, callGlHint); |
| interpreter->registerFunction(Ids::GlFramebufferRenderbuffer, callGlFramebufferRenderbuffer); |
| interpreter->registerFunction(Ids::GlFramebufferTexture2D, callGlFramebufferTexture2D); |
| interpreter->registerFunction(Ids::GlGetFramebufferAttachmentParameteriv, |
| callGlGetFramebufferAttachmentParameteriv); |
| interpreter->registerFunction(Ids::GlDrawElements, callGlDrawElements); |
| interpreter->registerFunction(Ids::GlDrawArrays, callGlDrawArrays); |
| interpreter->registerFunction(Ids::GlFlush, callGlFlush); |
| interpreter->registerFunction(Ids::GlFinish, callGlFinish); |
| interpreter->registerFunction(Ids::GlGetBooleanv, callGlGetBooleanv); |
| interpreter->registerFunction(Ids::GlGetFloatv, callGlGetFloatv); |
| interpreter->registerFunction(Ids::GlGetIntegerv, callGlGetIntegerv); |
| interpreter->registerFunction(Ids::GlGetString, callGlGetString); |
| interpreter->registerFunction(Ids::GlEnable, callGlEnable); |
| interpreter->registerFunction(Ids::GlDisable, callGlDisable); |
| interpreter->registerFunction(Ids::GlIsEnabled, callGlIsEnabled); |
| interpreter->registerFunction(Ids::GlMapBufferRange, callGlMapBufferRange); |
| interpreter->registerFunction(Ids::GlUnmapBuffer, callGlUnmapBuffer); |
| interpreter->registerFunction(Ids::GlInvalidateFramebuffer, callGlInvalidateFramebuffer); |
| interpreter->registerFunction(Ids::GlRenderbufferStorageMultisample, |
| callGlRenderbufferStorageMultisample); |
| interpreter->registerFunction(Ids::GlBlitFramebuffer, callGlBlitFramebuffer); |
| interpreter->registerFunction(Ids::GlGenQueries, callGlGenQueries); |
| interpreter->registerFunction(Ids::GlBeginQuery, callGlBeginQuery); |
| interpreter->registerFunction(Ids::GlEndQuery, callGlEndQuery); |
| interpreter->registerFunction(Ids::GlDeleteQueries, callGlDeleteQueries); |
| interpreter->registerFunction(Ids::GlIsQuery, callGlIsQuery); |
| interpreter->registerFunction(Ids::GlGetQueryiv, callGlGetQueryiv); |
| interpreter->registerFunction(Ids::GlGetQueryObjectuiv, callGlGetQueryObjectuiv); |
| interpreter->registerFunction(Ids::GlGenQueriesEXT, callGlGenQueriesEXT); |
| interpreter->registerFunction(Ids::GlBeginQueryEXT, callGlBeginQueryEXT); |
| interpreter->registerFunction(Ids::GlEndQueryEXT, callGlEndQueryEXT); |
| interpreter->registerFunction(Ids::GlDeleteQueriesEXT, callGlDeleteQueriesEXT); |
| interpreter->registerFunction(Ids::GlIsQueryEXT, callGlIsQueryEXT); |
| interpreter->registerFunction(Ids::GlQueryCounterEXT, callGlQueryCounterEXT); |
| interpreter->registerFunction(Ids::GlGetQueryivEXT, callGlGetQueryivEXT); |
| interpreter->registerFunction(Ids::GlGetQueryObjectivEXT, callGlGetQueryObjectivEXT); |
| interpreter->registerFunction(Ids::GlGetQueryObjectuivEXT, callGlGetQueryObjectuivEXT); |
| interpreter->registerFunction(Ids::GlGetQueryObjecti64vEXT, callGlGetQueryObjecti64vEXT); |
| interpreter->registerFunction(Ids::GlGetQueryObjectui64vEXT, callGlGetQueryObjectui64vEXT); |
| } |
| void Initialize() { |
| eglInitialize = |
| reinterpret_cast<PFNEGLINITIALIZE>(gapic::GetGfxProcAddress("eglInitialize", false)); |
| eglCreateContext = reinterpret_cast<PFNEGLCREATECONTEXT>( |
| gapic::GetGfxProcAddress("eglCreateContext", false)); |
| eglMakeCurrent = |
| reinterpret_cast<PFNEGLMAKECURRENT>(gapic::GetGfxProcAddress("eglMakeCurrent", false)); |
| eglSwapBuffers = |
| reinterpret_cast<PFNEGLSWAPBUFFERS>(gapic::GetGfxProcAddress("eglSwapBuffers", false)); |
| eglQuerySurface = reinterpret_cast<PFNEGLQUERYSURFACE>( |
| gapic::GetGfxProcAddress("eglQuerySurface", false)); |
| glXCreateContext = reinterpret_cast<PFNGLXCREATECONTEXT>( |
| gapic::GetGfxProcAddress("glXCreateContext", false)); |
| glXCreateNewContext = reinterpret_cast<PFNGLXCREATENEWCONTEXT>( |
| gapic::GetGfxProcAddress("glXCreateNewContext", false)); |
| glXMakeContextCurrent = reinterpret_cast<PFNGLXMAKECONTEXTCURRENT>( |
| gapic::GetGfxProcAddress("glXMakeContextCurrent", false)); |
| glXSwapBuffers = |
| reinterpret_cast<PFNGLXSWAPBUFFERS>(gapic::GetGfxProcAddress("glXSwapBuffers", false)); |
| wglCreateContext = reinterpret_cast<PFNWGLCREATECONTEXT>( |
| gapic::GetGfxProcAddress("wglCreateContext", false)); |
| wglCreateContextAttribsARB = reinterpret_cast<PFNWGLCREATECONTEXTATTRIBSARB>( |
| gapic::GetGfxProcAddress("wglCreateContextAttribsARB", false)); |
| wglMakeCurrent = |
| reinterpret_cast<PFNWGLMAKECURRENT>(gapic::GetGfxProcAddress("wglMakeCurrent", false)); |
| wglSwapBuffers = |
| reinterpret_cast<PFNWGLSWAPBUFFERS>(gapic::GetGfxProcAddress("wglSwapBuffers", false)); |
| CGLCreateContext = reinterpret_cast<PFNCGLCREATECONTEXT>( |
| gapic::GetGfxProcAddress("CGLCreateContext", false)); |
| CGLSetCurrentContext = reinterpret_cast<PFNCGLSETCURRENTCONTEXT>( |
| gapic::GetGfxProcAddress("CGLSetCurrentContext", false)); |
| glEnableClientState = reinterpret_cast<PFNGLENABLECLIENTSTATE>( |
| gapic::GetGfxProcAddress("glEnableClientState", false)); |
| glDisableClientState = reinterpret_cast<PFNGLDISABLECLIENTSTATE>( |
| gapic::GetGfxProcAddress("glDisableClientState", false)); |
| glGetProgramBinaryOES = reinterpret_cast<PFNGLGETPROGRAMBINARYOES>( |
| gapic::GetGfxProcAddress("glGetProgramBinaryOES", false)); |
| glProgramBinaryOES = reinterpret_cast<PFNGLPROGRAMBINARYOES>( |
| gapic::GetGfxProcAddress("glProgramBinaryOES", false)); |
| glStartTilingQCOM = reinterpret_cast<PFNGLSTARTTILINGQCOM>( |
| gapic::GetGfxProcAddress("glStartTilingQCOM", false)); |
| glEndTilingQCOM = reinterpret_cast<PFNGLENDTILINGQCOM>( |
| gapic::GetGfxProcAddress("glEndTilingQCOM", false)); |
| glDiscardFramebufferEXT = reinterpret_cast<PFNGLDISCARDFRAMEBUFFEREXT>( |
| gapic::GetGfxProcAddress("glDiscardFramebufferEXT", false)); |
| glInsertEventMarkerEXT = reinterpret_cast<PFNGLINSERTEVENTMARKEREXT>( |
| gapic::GetGfxProcAddress("glInsertEventMarkerEXT", false)); |
| glPushGroupMarkerEXT = reinterpret_cast<PFNGLPUSHGROUPMARKEREXT>( |
| gapic::GetGfxProcAddress("glPushGroupMarkerEXT", false)); |
| glPopGroupMarkerEXT = reinterpret_cast<PFNGLPOPGROUPMARKEREXT>( |
| gapic::GetGfxProcAddress("glPopGroupMarkerEXT", false)); |
| glTexStorage1DEXT = reinterpret_cast<PFNGLTEXSTORAGE1DEXT>( |
| gapic::GetGfxProcAddress("glTexStorage1DEXT", false)); |
| glTexStorage2DEXT = reinterpret_cast<PFNGLTEXSTORAGE2DEXT>( |
| gapic::GetGfxProcAddress("glTexStorage2DEXT", false)); |
| glTexStorage3DEXT = reinterpret_cast<PFNGLTEXSTORAGE3DEXT>( |
| gapic::GetGfxProcAddress("glTexStorage3DEXT", false)); |
| glTextureStorage1DEXT = reinterpret_cast<PFNGLTEXTURESTORAGE1DEXT>( |
| gapic::GetGfxProcAddress("glTextureStorage1DEXT", false)); |
| glTextureStorage2DEXT = reinterpret_cast<PFNGLTEXTURESTORAGE2DEXT>( |
| gapic::GetGfxProcAddress("glTextureStorage2DEXT", false)); |
| glTextureStorage3DEXT = reinterpret_cast<PFNGLTEXTURESTORAGE3DEXT>( |
| gapic::GetGfxProcAddress("glTextureStorage3DEXT", false)); |
| glGenVertexArraysOES = reinterpret_cast<PFNGLGENVERTEXARRAYSOES>( |
| gapic::GetGfxProcAddress("glGenVertexArraysOES", false)); |
| glBindVertexArrayOES = reinterpret_cast<PFNGLBINDVERTEXARRAYOES>( |
| gapic::GetGfxProcAddress("glBindVertexArrayOES", false)); |
| glDeleteVertexArraysOES = reinterpret_cast<PFNGLDELETEVERTEXARRAYSOES>( |
| gapic::GetGfxProcAddress("glDeleteVertexArraysOES", false)); |
| glIsVertexArrayOES = reinterpret_cast<PFNGLISVERTEXARRAYOES>( |
| gapic::GetGfxProcAddress("glIsVertexArrayOES", false)); |
| glEGLImageTargetTexture2DOES = reinterpret_cast<PFNGLEGLIMAGETARGETTEXTURE2DOES>( |
| gapic::GetGfxProcAddress("glEGLImageTargetTexture2DOES", false)); |
| glEGLImageTargetRenderbufferStorageOES = |
| reinterpret_cast<PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOES>( |
| gapic::GetGfxProcAddress("glEGLImageTargetRenderbufferStorageOES", false)); |
| glGetGraphicsResetStatusEXT = reinterpret_cast<PFNGLGETGRAPHICSRESETSTATUSEXT>( |
| gapic::GetGfxProcAddress("glGetGraphicsResetStatusEXT", false)); |
| glBindAttribLocation = reinterpret_cast<PFNGLBINDATTRIBLOCATION>( |
| gapic::GetGfxProcAddress("glBindAttribLocation", false)); |
| glBlendFunc = reinterpret_cast<PFNGLBLENDFUNC>(gapic::GetGfxProcAddress("glBlendFunc", false)); |
| glBlendFuncSeparate = reinterpret_cast<PFNGLBLENDFUNCSEPARATE>( |
| gapic::GetGfxProcAddress("glBlendFuncSeparate", false)); |
| glBlendEquation = reinterpret_cast<PFNGLBLENDEQUATION>( |
| gapic::GetGfxProcAddress("glBlendEquation", false)); |
| glBlendEquationSeparate = reinterpret_cast<PFNGLBLENDEQUATIONSEPARATE>( |
| gapic::GetGfxProcAddress("glBlendEquationSeparate", false)); |
| glBlendColor = |
| reinterpret_cast<PFNGLBLENDCOLOR>(gapic::GetGfxProcAddress("glBlendColor", false)); |
| glEnableVertexAttribArray = reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAY>( |
| gapic::GetGfxProcAddress("glEnableVertexAttribArray", false)); |
| glDisableVertexAttribArray = reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAY>( |
| gapic::GetGfxProcAddress("glDisableVertexAttribArray", false)); |
| glVertexAttribPointer = reinterpret_cast<PFNGLVERTEXATTRIBPOINTER>( |
| gapic::GetGfxProcAddress("glVertexAttribPointer", false)); |
| glGetActiveAttrib = reinterpret_cast<PFNGLGETACTIVEATTRIB>( |
| gapic::GetGfxProcAddress("glGetActiveAttrib", false)); |
| glGetActiveUniform = reinterpret_cast<PFNGLGETACTIVEUNIFORM>( |
| gapic::GetGfxProcAddress("glGetActiveUniform", false)); |
| glGetError = reinterpret_cast<PFNGLGETERROR>(gapic::GetGfxProcAddress("glGetError", false)); |
| glGetProgramiv = |
| reinterpret_cast<PFNGLGETPROGRAMIV>(gapic::GetGfxProcAddress("glGetProgramiv", false)); |
| glGetShaderiv = |
| reinterpret_cast<PFNGLGETSHADERIV>(gapic::GetGfxProcAddress("glGetShaderiv", false)); |
| glGetUniformLocation = reinterpret_cast<PFNGLGETUNIFORMLOCATION>( |
| gapic::GetGfxProcAddress("glGetUniformLocation", false)); |
| glGetAttribLocation = reinterpret_cast<PFNGLGETATTRIBLOCATION>( |
| gapic::GetGfxProcAddress("glGetAttribLocation", false)); |
| glPixelStorei = |
| reinterpret_cast<PFNGLPIXELSTOREI>(gapic::GetGfxProcAddress("glPixelStorei", false)); |
| glTexParameteri = reinterpret_cast<PFNGLTEXPARAMETERI>( |
| gapic::GetGfxProcAddress("glTexParameteri", false)); |
| glTexParameterf = reinterpret_cast<PFNGLTEXPARAMETERF>( |
| gapic::GetGfxProcAddress("glTexParameterf", false)); |
| glGetTexParameteriv = reinterpret_cast<PFNGLGETTEXPARAMETERIV>( |
| gapic::GetGfxProcAddress("glGetTexParameteriv", false)); |
| glGetTexParameterfv = reinterpret_cast<PFNGLGETTEXPARAMETERFV>( |
| gapic::GetGfxProcAddress("glGetTexParameterfv", false)); |
| glUniform1i = reinterpret_cast<PFNGLUNIFORM1I>(gapic::GetGfxProcAddress("glUniform1i", false)); |
| glUniform2i = reinterpret_cast<PFNGLUNIFORM2I>(gapic::GetGfxProcAddress("glUniform2i", false)); |
| glUniform3i = reinterpret_cast<PFNGLUNIFORM3I>(gapic::GetGfxProcAddress("glUniform3i", false)); |
| glUniform4i = reinterpret_cast<PFNGLUNIFORM4I>(gapic::GetGfxProcAddress("glUniform4i", false)); |
| glUniform1iv = |
| reinterpret_cast<PFNGLUNIFORM1IV>(gapic::GetGfxProcAddress("glUniform1iv", false)); |
| glUniform2iv = |
| reinterpret_cast<PFNGLUNIFORM2IV>(gapic::GetGfxProcAddress("glUniform2iv", false)); |
| glUniform3iv = |
| reinterpret_cast<PFNGLUNIFORM3IV>(gapic::GetGfxProcAddress("glUniform3iv", false)); |
| glUniform4iv = |
| reinterpret_cast<PFNGLUNIFORM4IV>(gapic::GetGfxProcAddress("glUniform4iv", false)); |
| glUniform1f = reinterpret_cast<PFNGLUNIFORM1F>(gapic::GetGfxProcAddress("glUniform1f", false)); |
| glUniform2f = reinterpret_cast<PFNGLUNIFORM2F>(gapic::GetGfxProcAddress("glUniform2f", false)); |
| glUniform3f = reinterpret_cast<PFNGLUNIFORM3F>(gapic::GetGfxProcAddress("glUniform3f", false)); |
| glUniform4f = reinterpret_cast<PFNGLUNIFORM4F>(gapic::GetGfxProcAddress("glUniform4f", false)); |
| glUniform1fv = |
| reinterpret_cast<PFNGLUNIFORM1FV>(gapic::GetGfxProcAddress("glUniform1fv", false)); |
| glUniform2fv = |
| reinterpret_cast<PFNGLUNIFORM2FV>(gapic::GetGfxProcAddress("glUniform2fv", false)); |
| glUniform3fv = |
| reinterpret_cast<PFNGLUNIFORM3FV>(gapic::GetGfxProcAddress("glUniform3fv", false)); |
| glUniform4fv = |
| reinterpret_cast<PFNGLUNIFORM4FV>(gapic::GetGfxProcAddress("glUniform4fv", false)); |
| glUniformMatrix2fv = reinterpret_cast<PFNGLUNIFORMMATRIX2FV>( |
| gapic::GetGfxProcAddress("glUniformMatrix2fv", false)); |
| glUniformMatrix3fv = reinterpret_cast<PFNGLUNIFORMMATRIX3FV>( |
| gapic::GetGfxProcAddress("glUniformMatrix3fv", false)); |
| glUniformMatrix4fv = reinterpret_cast<PFNGLUNIFORMMATRIX4FV>( |
| gapic::GetGfxProcAddress("glUniformMatrix4fv", false)); |
| glGetUniformfv = |
| reinterpret_cast<PFNGLGETUNIFORMFV>(gapic::GetGfxProcAddress("glGetUniformfv", false)); |
| glGetUniformiv = |
| reinterpret_cast<PFNGLGETUNIFORMIV>(gapic::GetGfxProcAddress("glGetUniformiv", false)); |
| glVertexAttrib1f = reinterpret_cast<PFNGLVERTEXATTRIB1F>( |
| gapic::GetGfxProcAddress("glVertexAttrib1f", false)); |
| glVertexAttrib2f = reinterpret_cast<PFNGLVERTEXATTRIB2F>( |
| gapic::GetGfxProcAddress("glVertexAttrib2f", false)); |
| glVertexAttrib3f = reinterpret_cast<PFNGLVERTEXATTRIB3F>( |
| gapic::GetGfxProcAddress("glVertexAttrib3f", false)); |
| glVertexAttrib4f = reinterpret_cast<PFNGLVERTEXATTRIB4F>( |
| gapic::GetGfxProcAddress("glVertexAttrib4f", false)); |
| glVertexAttrib1fv = reinterpret_cast<PFNGLVERTEXATTRIB1FV>( |
| gapic::GetGfxProcAddress("glVertexAttrib1fv", false)); |
| glVertexAttrib2fv = reinterpret_cast<PFNGLVERTEXATTRIB2FV>( |
| gapic::GetGfxProcAddress("glVertexAttrib2fv", false)); |
| glVertexAttrib3fv = reinterpret_cast<PFNGLVERTEXATTRIB3FV>( |
| gapic::GetGfxProcAddress("glVertexAttrib3fv", false)); |
| glVertexAttrib4fv = reinterpret_cast<PFNGLVERTEXATTRIB4FV>( |
| gapic::GetGfxProcAddress("glVertexAttrib4fv", false)); |
| glGetShaderPrecisionFormat = reinterpret_cast<PFNGLGETSHADERPRECISIONFORMAT>( |
| gapic::GetGfxProcAddress("glGetShaderPrecisionFormat", false)); |
| glDepthMask = reinterpret_cast<PFNGLDEPTHMASK>(gapic::GetGfxProcAddress("glDepthMask", false)); |
| glDepthFunc = reinterpret_cast<PFNGLDEPTHFUNC>(gapic::GetGfxProcAddress("glDepthFunc", false)); |
| glDepthRangef = |
| reinterpret_cast<PFNGLDEPTHRANGEF>(gapic::GetGfxProcAddress("glDepthRangef", false)); |
| glColorMask = reinterpret_cast<PFNGLCOLORMASK>(gapic::GetGfxProcAddress("glColorMask", false)); |
| glStencilMask = |
| reinterpret_cast<PFNGLSTENCILMASK>(gapic::GetGfxProcAddress("glStencilMask", false)); |
| glStencilMaskSeparate = reinterpret_cast<PFNGLSTENCILMASKSEPARATE>( |
| gapic::GetGfxProcAddress("glStencilMaskSeparate", false)); |
| glStencilFuncSeparate = reinterpret_cast<PFNGLSTENCILFUNCSEPARATE>( |
| gapic::GetGfxProcAddress("glStencilFuncSeparate", false)); |
| glStencilOpSeparate = reinterpret_cast<PFNGLSTENCILOPSEPARATE>( |
| gapic::GetGfxProcAddress("glStencilOpSeparate", false)); |
| glFrontFace = reinterpret_cast<PFNGLFRONTFACE>(gapic::GetGfxProcAddress("glFrontFace", false)); |
| glViewport = reinterpret_cast<PFNGLVIEWPORT>(gapic::GetGfxProcAddress("glViewport", false)); |
| glScissor = reinterpret_cast<PFNGLSCISSOR>(gapic::GetGfxProcAddress("glScissor", false)); |
| glActiveTexture = reinterpret_cast<PFNGLACTIVETEXTURE>( |
| gapic::GetGfxProcAddress("glActiveTexture", false)); |
| glGenTextures = |
| reinterpret_cast<PFNGLGENTEXTURES>(gapic::GetGfxProcAddress("glGenTextures", false)); |
| glDeleteTextures = reinterpret_cast<PFNGLDELETETEXTURES>( |
| gapic::GetGfxProcAddress("glDeleteTextures", false)); |
| glIsTexture = reinterpret_cast<PFNGLISTEXTURE>(gapic::GetGfxProcAddress("glIsTexture", false)); |
| glBindTexture = |
| reinterpret_cast<PFNGLBINDTEXTURE>(gapic::GetGfxProcAddress("glBindTexture", false)); |
| glTexImage2D = |
| reinterpret_cast<PFNGLTEXIMAGE2D>(gapic::GetGfxProcAddress("glTexImage2D", false)); |
| glTexSubImage2D = reinterpret_cast<PFNGLTEXSUBIMAGE2D>( |
| gapic::GetGfxProcAddress("glTexSubImage2D", false)); |
| glCopyTexImage2D = reinterpret_cast<PFNGLCOPYTEXIMAGE2D>( |
| gapic::GetGfxProcAddress("glCopyTexImage2D", false)); |
| glCopyTexSubImage2D = reinterpret_cast<PFNGLCOPYTEXSUBIMAGE2D>( |
| gapic::GetGfxProcAddress("glCopyTexSubImage2D", false)); |
| glCompressedTexImage2D = reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE2D>( |
| gapic::GetGfxProcAddress("glCompressedTexImage2D", false)); |
| glCompressedTexSubImage2D = reinterpret_cast<PFNGLCOMPRESSEDTEXSUBIMAGE2D>( |
| gapic::GetGfxProcAddress("glCompressedTexSubImage2D", false)); |
| glGenerateMipmap = reinterpret_cast<PFNGLGENERATEMIPMAP>( |
| gapic::GetGfxProcAddress("glGenerateMipmap", false)); |
| glReadPixels = |
| reinterpret_cast<PFNGLREADPIXELS>(gapic::GetGfxProcAddress("glReadPixels", false)); |
| glGenFramebuffers = reinterpret_cast<PFNGLGENFRAMEBUFFERS>( |
| gapic::GetGfxProcAddress("glGenFramebuffers", false)); |
| glBindFramebuffer = reinterpret_cast<PFNGLBINDFRAMEBUFFER>( |
| gapic::GetGfxProcAddress("glBindFramebuffer", false)); |
| glCheckFramebufferStatus = reinterpret_cast<PFNGLCHECKFRAMEBUFFERSTATUS>( |
| gapic::GetGfxProcAddress("glCheckFramebufferStatus", false)); |
| glDeleteFramebuffers = reinterpret_cast<PFNGLDELETEFRAMEBUFFERS>( |
| gapic::GetGfxProcAddress("glDeleteFramebuffers", false)); |
| glIsFramebuffer = reinterpret_cast<PFNGLISFRAMEBUFFER>( |
| gapic::GetGfxProcAddress("glIsFramebuffer", false)); |
| glGenRenderbuffers = reinterpret_cast<PFNGLGENRENDERBUFFERS>( |
| gapic::GetGfxProcAddress("glGenRenderbuffers", false)); |
| glBindRenderbuffer = reinterpret_cast<PFNGLBINDRENDERBUFFER>( |
| gapic::GetGfxProcAddress("glBindRenderbuffer", false)); |
| glRenderbufferStorage = reinterpret_cast<PFNGLRENDERBUFFERSTORAGE>( |
| gapic::GetGfxProcAddress("glRenderbufferStorage", false)); |
| glDeleteRenderbuffers = reinterpret_cast<PFNGLDELETERENDERBUFFERS>( |
| gapic::GetGfxProcAddress("glDeleteRenderbuffers", false)); |
| glIsRenderbuffer = reinterpret_cast<PFNGLISRENDERBUFFER>( |
| gapic::GetGfxProcAddress("glIsRenderbuffer", false)); |
| glGetRenderbufferParameteriv = reinterpret_cast<PFNGLGETRENDERBUFFERPARAMETERIV>( |
| gapic::GetGfxProcAddress("glGetRenderbufferParameteriv", false)); |
| glGenBuffers = |
| reinterpret_cast<PFNGLGENBUFFERS>(gapic::GetGfxProcAddress("glGenBuffers", false)); |
| glBindBuffer = |
| reinterpret_cast<PFNGLBINDBUFFER>(gapic::GetGfxProcAddress("glBindBuffer", false)); |
| glBufferData = |
| reinterpret_cast<PFNGLBUFFERDATA>(gapic::GetGfxProcAddress("glBufferData", false)); |
| glBufferSubData = reinterpret_cast<PFNGLBUFFERSUBDATA>( |
| gapic::GetGfxProcAddress("glBufferSubData", false)); |
| glDeleteBuffers = reinterpret_cast<PFNGLDELETEBUFFERS>( |
| gapic::GetGfxProcAddress("glDeleteBuffers", false)); |
| glIsBuffer = reinterpret_cast<PFNGLISBUFFER>(gapic::GetGfxProcAddress("glIsBuffer", false)); |
| glGetBufferParameteriv = reinterpret_cast<PFNGLGETBUFFERPARAMETERIV>( |
| gapic::GetGfxProcAddress("glGetBufferParameteriv", false)); |
| glCreateShader = |
| reinterpret_cast<PFNGLCREATESHADER>(gapic::GetGfxProcAddress("glCreateShader", false)); |
| glDeleteShader = |
| reinterpret_cast<PFNGLDELETESHADER>(gapic::GetGfxProcAddress("glDeleteShader", false)); |
| glShaderSource = |
| reinterpret_cast<PFNGLSHADERSOURCE>(gapic::GetGfxProcAddress("glShaderSource", false)); |
| glShaderBinary = |
| reinterpret_cast<PFNGLSHADERBINARY>(gapic::GetGfxProcAddress("glShaderBinary", false)); |
| glGetShaderInfoLog = reinterpret_cast<PFNGLGETSHADERINFOLOG>( |
| gapic::GetGfxProcAddress("glGetShaderInfoLog", false)); |
| glGetShaderSource = reinterpret_cast<PFNGLGETSHADERSOURCE>( |
| gapic::GetGfxProcAddress("glGetShaderSource", false)); |
| glReleaseShaderCompiler = reinterpret_cast<PFNGLRELEASESHADERCOMPILER>( |
| gapic::GetGfxProcAddress("glReleaseShaderCompiler", false)); |
| glCompileShader = reinterpret_cast<PFNGLCOMPILESHADER>( |
| gapic::GetGfxProcAddress("glCompileShader", false)); |
| glIsShader = reinterpret_cast<PFNGLISSHADER>(gapic::GetGfxProcAddress("glIsShader", false)); |
| glCreateProgram = reinterpret_cast<PFNGLCREATEPROGRAM>( |
| gapic::GetGfxProcAddress("glCreateProgram", false)); |
| glDeleteProgram = reinterpret_cast<PFNGLDELETEPROGRAM>( |
| gapic::GetGfxProcAddress("glDeleteProgram", false)); |
| glAttachShader = |
| reinterpret_cast<PFNGLATTACHSHADER>(gapic::GetGfxProcAddress("glAttachShader", false)); |
| glDetachShader = |
| reinterpret_cast<PFNGLDETACHSHADER>(gapic::GetGfxProcAddress("glDetachShader", false)); |
| glGetAttachedShaders = reinterpret_cast<PFNGLGETATTACHEDSHADERS>( |
| gapic::GetGfxProcAddress("glGetAttachedShaders", false)); |
| glLinkProgram = |
| reinterpret_cast<PFNGLLINKPROGRAM>(gapic::GetGfxProcAddress("glLinkProgram", false)); |
| glGetProgramInfoLog = reinterpret_cast<PFNGLGETPROGRAMINFOLOG>( |
| gapic::GetGfxProcAddress("glGetProgramInfoLog", false)); |
| glUseProgram = |
| reinterpret_cast<PFNGLUSEPROGRAM>(gapic::GetGfxProcAddress("glUseProgram", false)); |
| glIsProgram = reinterpret_cast<PFNGLISPROGRAM>(gapic::GetGfxProcAddress("glIsProgram", false)); |
| glValidateProgram = reinterpret_cast<PFNGLVALIDATEPROGRAM>( |
| gapic::GetGfxProcAddress("glValidateProgram", false)); |
| glClearColor = |
| reinterpret_cast<PFNGLCLEARCOLOR>(gapic::GetGfxProcAddress("glClearColor", false)); |
| glClearDepthf = |
| reinterpret_cast<PFNGLCLEARDEPTHF>(gapic::GetGfxProcAddress("glClearDepthf", false)); |
| glClearStencil = |
| reinterpret_cast<PFNGLCLEARSTENCIL>(gapic::GetGfxProcAddress("glClearStencil", false)); |
| glClear = reinterpret_cast<PFNGLCLEAR>(gapic::GetGfxProcAddress("glClear", false)); |
| glCullFace = reinterpret_cast<PFNGLCULLFACE>(gapic::GetGfxProcAddress("glCullFace", false)); |
| glPolygonOffset = reinterpret_cast<PFNGLPOLYGONOFFSET>( |
| gapic::GetGfxProcAddress("glPolygonOffset", false)); |
| glLineWidth = reinterpret_cast<PFNGLLINEWIDTH>(gapic::GetGfxProcAddress("glLineWidth", false)); |
| glSampleCoverage = reinterpret_cast<PFNGLSAMPLECOVERAGE>( |
| gapic::GetGfxProcAddress("glSampleCoverage", false)); |
| glHint = reinterpret_cast<PFNGLHINT>(gapic::GetGfxProcAddress("glHint", false)); |
| glFramebufferRenderbuffer = reinterpret_cast<PFNGLFRAMEBUFFERRENDERBUFFER>( |
| gapic::GetGfxProcAddress("glFramebufferRenderbuffer", false)); |
| glFramebufferTexture2D = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE2D>( |
| gapic::GetGfxProcAddress("glFramebufferTexture2D", false)); |
| glGetFramebufferAttachmentParameteriv = |
| reinterpret_cast<PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV>( |
| gapic::GetGfxProcAddress("glGetFramebufferAttachmentParameteriv", false)); |
| glDrawElements = |
| reinterpret_cast<PFNGLDRAWELEMENTS>(gapic::GetGfxProcAddress("glDrawElements", false)); |
| glDrawArrays = |
| reinterpret_cast<PFNGLDRAWARRAYS>(gapic::GetGfxProcAddress("glDrawArrays", false)); |
| glFlush = reinterpret_cast<PFNGLFLUSH>(gapic::GetGfxProcAddress("glFlush", false)); |
| glFinish = reinterpret_cast<PFNGLFINISH>(gapic::GetGfxProcAddress("glFinish", false)); |
| glGetBooleanv = |
| reinterpret_cast<PFNGLGETBOOLEANV>(gapic::GetGfxProcAddress("glGetBooleanv", false)); |
| glGetFloatv = reinterpret_cast<PFNGLGETFLOATV>(gapic::GetGfxProcAddress("glGetFloatv", false)); |
| glGetIntegerv = |
| reinterpret_cast<PFNGLGETINTEGERV>(gapic::GetGfxProcAddress("glGetIntegerv", false)); |
| glGetString = reinterpret_cast<PFNGLGETSTRING>(gapic::GetGfxProcAddress("glGetString", false)); |
| glEnable = reinterpret_cast<PFNGLENABLE>(gapic::GetGfxProcAddress("glEnable", false)); |
| glDisable = reinterpret_cast<PFNGLDISABLE>(gapic::GetGfxProcAddress("glDisable", false)); |
| glIsEnabled = reinterpret_cast<PFNGLISENABLED>(gapic::GetGfxProcAddress("glIsEnabled", false)); |
| glMapBufferRange = reinterpret_cast<PFNGLMAPBUFFERRANGE>( |
| gapic::GetGfxProcAddress("glMapBufferRange", false)); |
| glUnmapBuffer = |
| reinterpret_cast<PFNGLUNMAPBUFFER>(gapic::GetGfxProcAddress("glUnmapBuffer", false)); |
| glInvalidateFramebuffer = reinterpret_cast<PFNGLINVALIDATEFRAMEBUFFER>( |
| gapic::GetGfxProcAddress("glInvalidateFramebuffer", false)); |
| glRenderbufferStorageMultisample = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLE>( |
| gapic::GetGfxProcAddress("glRenderbufferStorageMultisample", false)); |
| glBlitFramebuffer = reinterpret_cast<PFNGLBLITFRAMEBUFFER>( |
| gapic::GetGfxProcAddress("glBlitFramebuffer", false)); |
| glGenQueries = |
| reinterpret_cast<PFNGLGENQUERIES>(gapic::GetGfxProcAddress("glGenQueries", false)); |
| glBeginQuery = |
| reinterpret_cast<PFNGLBEGINQUERY>(gapic::GetGfxProcAddress("glBeginQuery", false)); |
| glEndQuery = reinterpret_cast<PFNGLENDQUERY>(gapic::GetGfxProcAddress("glEndQuery", false)); |
| glDeleteQueries = reinterpret_cast<PFNGLDELETEQUERIES>( |
| gapic::GetGfxProcAddress("glDeleteQueries", false)); |
| glIsQuery = reinterpret_cast<PFNGLISQUERY>(gapic::GetGfxProcAddress("glIsQuery", false)); |
| glGetQueryiv = |
| reinterpret_cast<PFNGLGETQUERYIV>(gapic::GetGfxProcAddress("glGetQueryiv", false)); |
| glGetQueryObjectuiv = reinterpret_cast<PFNGLGETQUERYOBJECTUIV>( |
| gapic::GetGfxProcAddress("glGetQueryObjectuiv", false)); |
| glGenQueriesEXT = reinterpret_cast<PFNGLGENQUERIESEXT>( |
| gapic::GetGfxProcAddress("glGenQueriesEXT", false)); |
| glBeginQueryEXT = reinterpret_cast<PFNGLBEGINQUERYEXT>( |
| gapic::GetGfxProcAddress("glBeginQueryEXT", false)); |
| glEndQueryEXT = |
| reinterpret_cast<PFNGLENDQUERYEXT>(gapic::GetGfxProcAddress("glEndQueryEXT", false)); |
| glDeleteQueriesEXT = reinterpret_cast<PFNGLDELETEQUERIESEXT>( |
| gapic::GetGfxProcAddress("glDeleteQueriesEXT", false)); |
| glIsQueryEXT = |
| reinterpret_cast<PFNGLISQUERYEXT>(gapic::GetGfxProcAddress("glIsQueryEXT", false)); |
| glQueryCounterEXT = reinterpret_cast<PFNGLQUERYCOUNTEREXT>( |
| gapic::GetGfxProcAddress("glQueryCounterEXT", false)); |
| glGetQueryivEXT = reinterpret_cast<PFNGLGETQUERYIVEXT>( |
| gapic::GetGfxProcAddress("glGetQueryivEXT", false)); |
| glGetQueryObjectivEXT = reinterpret_cast<PFNGLGETQUERYOBJECTIVEXT>( |
| gapic::GetGfxProcAddress("glGetQueryObjectivEXT", false)); |
| glGetQueryObjectuivEXT = reinterpret_cast<PFNGLGETQUERYOBJECTUIVEXT>( |
| gapic::GetGfxProcAddress("glGetQueryObjectuivEXT", false)); |
| glGetQueryObjecti64vEXT = reinterpret_cast<PFNGLGETQUERYOBJECTI64VEXT>( |
| gapic::GetGfxProcAddress("glGetQueryObjecti64vEXT", false)); |
| glGetQueryObjectui64vEXT = reinterpret_cast<PFNGLGETQUERYOBJECTUI64VEXT>( |
| gapic::GetGfxProcAddress("glGetQueryObjectui64vEXT", false)); |
| } |
| |
| } // namespace gfxapi |
| } // namespace gapir |