blob: b4de41b5c398ede1a54948ab1033e4c3aaeed455 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
// 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>
#define __STDC_FORMAT_MACROS
#include <inttypes.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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("eglInitialize returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("eglCreateContext returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("eglMakeCurrent returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("eglSwapBuffers returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("eglQuerySurface returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glXCreateContext returned error: 0x%x\n", err);
}
} 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, %" PRIu32 ", %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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glXCreateNewContext returned error: 0x%x\n", err);
}
} 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) {
int return_value = glXMakeContextCurrent(display, draw, read, ctx);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glXMakeContextCurrent returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXMakeContextCurrent\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXMakeContextCurrent\n");
return false;
}
}
bool callGlXMakeCurrent(Stack* stack, bool pushReturn) {
void* ctx = stack->pop<void*>();
void* drawable = stack->pop<void*>();
void* display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glXMakeCurrent(%p, %p, %p)\n", display, drawable, ctx);
if (glXMakeCurrent != nullptr) {
int return_value = glXMakeCurrent(display, drawable, ctx);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glXMakeCurrent returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXMakeCurrent\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXMakeCurrent\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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glXSwapBuffers returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXSwapBuffers\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXSwapBuffers\n");
return false;
}
}
bool callGlXQueryDrawable(Stack* stack, bool pushReturn) {
int* value = stack->pop<int*>();
int attribute = stack->pop<int>();
void* draw = stack->pop<void*>();
void* display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glXQueryDrawable(%p, %p, %d, %p)\n", display, draw, attribute, value);
if (glXQueryDrawable != nullptr) {
int return_value = glXQueryDrawable(display, draw, attribute, value);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glXQueryDrawable returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXQueryDrawable\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXQueryDrawable\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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("wglCreateContext returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("wglCreateContextAttribsARB returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("wglMakeCurrent returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("wglSwapBuffers returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("CGLCreateContext returned error: 0x%x\n", err);
}
} 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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("CGLSetCurrentContext returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGLSetCurrentContext\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGLSetCurrentContext\n");
return false;
}
}
bool callCGLGetSurface(Stack* stack, bool pushReturn) {
int32_t* sid = stack->pop<int32_t*>();
int32_t* wid = stack->pop<int32_t*>();
void** cid = stack->pop<void**>();
void* ctx = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("CGLGetSurface(%p, %p, %p, %p)\n", ctx, cid, wid, sid);
if (CGLGetSurface != nullptr) {
int return_value = CGLGetSurface(ctx, cid, wid, sid);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("CGLGetSurface returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGLGetSurface\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGLGetSurface\n");
return false;
}
}
bool callCGSGetSurfaceBounds(Stack* stack, bool pushReturn) {
double* bounds = stack->pop<double*>();
int32_t sid = stack->pop<int32_t>();
int32_t wid = stack->pop<int32_t>();
void* cid = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("CGSGetSurfaceBounds(%p, %" PRId32 ", %" PRId32 ", %p)\n", cid, wid, sid,
bounds);
if (CGSGetSurfaceBounds != nullptr) {
int return_value = CGSGetSurfaceBounds(cid, wid, sid, bounds);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("CGSGetSurfaceBounds returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGSGetSurfaceBounds\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGSGetSurfaceBounds\n");
return false;
}
}
bool callCGLFlushDrawable(Stack* stack, bool pushReturn) {
void* ctx = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("CGLFlushDrawable(%p)\n", ctx);
if (CGLFlushDrawable != nullptr) {
int return_value = CGLFlushDrawable(ctx);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("CGLFlushDrawable returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGLFlushDrawable\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGLFlushDrawable\n");
return false;
}
}
bool callGlEnableClientState(Stack* stack, bool pushReturn) {
GLenum type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEnableClientState(%u)\n", type);
if (glEnableClientState != nullptr) {
glEnableClientState(type);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glEnableClientState returned error: 0x%x\n", err);
}
} 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) {
GLenum type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDisableClientState(%u)\n", type);
if (glDisableClientState != nullptr) {
glDisableClientState(type);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDisableClientState returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRId32 ", %p, %p, %p)\n", program,
buffer_size, bytes_written, binary_format, binary);
if (glGetProgramBinaryOES != nullptr) {
glGetProgramBinaryOES(program, buffer_size, bytes_written, binary_format, binary);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetProgramBinaryOES returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRIu32 ", %p, %" PRId32 ")\n", program,
binary_format, binary, binary_size);
if (glProgramBinaryOES != nullptr) {
glProgramBinaryOES(program, binary_format, binary, binary_size);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glProgramBinaryOES returned error: 0x%x\n", err);
}
} 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) {
GLbitfield preserveMask = stack->pop<GLbitfield>();
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(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u)\n", x,
y, width, height, preserveMask);
if (glStartTilingQCOM != nullptr) {
glStartTilingQCOM(x, y, width, height, preserveMask);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glStartTilingQCOM returned error: 0x%x\n", err);
}
} 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) {
GLbitfield preserve_mask = stack->pop<GLbitfield>();
if (stack->isValid()) {
GAPID_INFO("glEndTilingQCOM(%u)\n", preserve_mask);
if (glEndTilingQCOM != nullptr) {
glEndTilingQCOM(preserve_mask);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glEndTilingQCOM returned error: 0x%x\n", err);
}
} 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) {
GLenum* attachments = stack->pop<GLenum*>();
int32_t numAttachments = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDiscardFramebufferEXT(%u, %" PRId32 ", %p)\n", target, numAttachments,
attachments);
if (glDiscardFramebufferEXT != nullptr) {
glDiscardFramebufferEXT(target, numAttachments, attachments);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDiscardFramebufferEXT returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", length, marker);
if (glInsertEventMarkerEXT != nullptr) {
glInsertEventMarkerEXT(length, marker);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glInsertEventMarkerEXT returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", length, marker);
if (glPushGroupMarkerEXT != nullptr) {
glPushGroupMarkerEXT(length, marker);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glPushGroupMarkerEXT returned error: 0x%x\n", err);
}
} 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();
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glPopGroupMarkerEXT returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t levels = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage1DEXT(%u, %" PRId32 ", %u, %" PRId32 ")\n", target, levels, format,
width);
if (glTexStorage1DEXT != nullptr) {
glTexStorage1DEXT(target, levels, format, width);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTexStorage1DEXT returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t levels = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage2DEXT(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")\n", target,
levels, format, width, height);
if (glTexStorage2DEXT != nullptr) {
glTexStorage2DEXT(target, levels, format, width, height);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTexStorage2DEXT returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t levels = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage3DEXT(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32
")\n",
target, levels, format, width, height, depth);
if (glTexStorage3DEXT != nullptr) {
glTexStorage3DEXT(target, levels, format, width, height, depth);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTexStorage3DEXT returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t levels = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
uint32_t texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTextureStorage1DEXT(%" PRIu32 ", %u, %" PRId32 ", %u, %" PRId32 ")\n",
texture, target, levels, format, width);
if (glTextureStorage1DEXT != nullptr) {
glTextureStorage1DEXT(texture, target, levels, format, width);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTextureStorage1DEXT returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t levels = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
uint32_t texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTextureStorage2DEXT(%" PRIu32 ", %u, %" PRId32 ", %u, %" PRId32 ", %" PRId32
")\n",
texture, target, levels, format, width, height);
if (glTextureStorage2DEXT != nullptr) {
glTextureStorage2DEXT(texture, target, levels, format, width, height);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTextureStorage2DEXT returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t levels = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
uint32_t texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTextureStorage3DEXT(%" PRIu32 ", %u, %" PRId32 ", %u, %" PRId32 ", %" PRId32
", %" PRId32 ")\n",
texture, target, levels, format, width, height, depth);
if (glTextureStorage3DEXT != nullptr) {
glTextureStorage3DEXT(texture, target, levels, format, width, height, depth);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTextureStorage3DEXT returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, arrays);
if (glGenVertexArraysOES != nullptr) {
glGenVertexArraysOES(count, arrays);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenVertexArraysOES returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", array);
if (glBindVertexArrayOES != nullptr) {
glBindVertexArrayOES(array);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBindVertexArrayOES returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, arrays);
if (glDeleteVertexArraysOES != nullptr) {
glDeleteVertexArraysOES(count, arrays);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteVertexArraysOES returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", array);
if (glIsVertexArrayOES != nullptr) {
bool return_value = glIsVertexArrayOES(array);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsVertexArrayOES returned error: 0x%x\n", err);
}
} 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*>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEGLImageTargetTexture2DOES(%u, %p)\n", target, image);
if (glEGLImageTargetTexture2DOES != nullptr) {
glEGLImageTargetTexture2DOES(target, image);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glEGLImageTargetTexture2DOES returned error: 0x%x\n", err);
}
} 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*>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEGLImageTargetRenderbufferStorageOES(%u, %p)\n", target, image);
if (glEGLImageTargetRenderbufferStorageOES != nullptr) {
glEGLImageTargetRenderbufferStorageOES(target, image);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glEGLImageTargetRenderbufferStorageOES returned error: 0x%x\n", err);
}
} 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) {
GLenum return_value = glGetGraphicsResetStatusEXT();
GAPID_INFO("Returned: %u\n", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetGraphicsResetStatusEXT returned error: 0x%x\n", err);
}
} 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*>();
int32_t location = stack->pop<int32_t>();
uint32_t program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindAttribLocation(%" PRIu32 ", %" PRId32 ", %s)\n", program, location, name);
if (glBindAttribLocation != nullptr) {
glBindAttribLocation(program, location, name);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBindAttribLocation returned error: 0x%x\n", err);
}
} 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) {
GLenum dst_factor = stack->pop<GLenum>();
GLenum src_factor = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendFunc(%u, %u)\n", src_factor, dst_factor);
if (glBlendFunc != nullptr) {
glBlendFunc(src_factor, dst_factor);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBlendFunc returned error: 0x%x\n", err);
}
} 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) {
GLenum dst_factor_alpha = stack->pop<GLenum>();
GLenum src_factor_alpha = stack->pop<GLenum>();
GLenum dst_factor_rgb = stack->pop<GLenum>();
GLenum src_factor_rgb = stack->pop<GLenum>();
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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBlendFuncSeparate returned error: 0x%x\n", err);
}
} 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) {
GLenum equation = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquation(%u)\n", equation);
if (glBlendEquation != nullptr) {
glBlendEquation(equation);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBlendEquation returned error: 0x%x\n", err);
}
} 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) {
GLenum alpha = stack->pop<GLenum>();
GLenum rgb = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationSeparate(%u, %u)\n", rgb, alpha);
if (glBlendEquationSeparate != nullptr) {
glBlendEquationSeparate(rgb, alpha);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBlendEquationSeparate returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBlendColor returned error: 0x%x\n", err);
}
} 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) {
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glEnableVertexAttribArray(%" PRId32 ")\n", location);
if (glEnableVertexAttribArray != nullptr) {
glEnableVertexAttribArray(location);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glEnableVertexAttribArray returned error: 0x%x\n", err);
}
} 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) {
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDisableVertexAttribArray(%" PRId32 ")\n", location);
if (glDisableVertexAttribArray != nullptr) {
glDisableVertexAttribArray(location);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDisableVertexAttribArray returned error: 0x%x\n", err);
}
} 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>();
GLenum type = stack->pop<GLenum>();
int32_t size = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribPointer(%" PRId32 ", %" PRId32 ", %u, %d, %" PRId32 ", %p)\n",
location, size, type, normalized, stride, data);
if (glVertexAttribPointer != nullptr) {
glVertexAttribPointer(location, size, type, normalized, stride, data);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttribPointer returned error: 0x%x\n", err);
}
} 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*>();
GLenum* type = stack->pop<GLenum*>();
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("glGetActiveAttrib(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetActiveAttrib returned error: 0x%x\n", err);
}
} 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*>();
GLenum* type = stack->pop<GLenum*>();
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(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetActiveUniform returned error: 0x%x\n", err);
}
} 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) {
GLenum return_value = glGetError();
GAPID_INFO("Returned: %u\n", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetError returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramiv(%" PRIu32 ", %u, %p)\n", program, parameter, value);
if (glGetProgramiv != nullptr) {
glGetProgramiv(program, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetProgramiv returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetShaderiv(%" PRIu32 ", %u, %p)\n", shader, parameter, value);
if (glGetShaderiv != nullptr) {
glGetShaderiv(shader, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetShaderiv returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %s)\n", program, name);
if (glGetUniformLocation != nullptr) {
int32_t return_value = glGetUniformLocation(program, name);
GAPID_INFO("Returned: %" PRId32 "\n", return_value);
if (pushReturn) {
stack->push<int32_t>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetUniformLocation returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %s)\n", program, name);
if (glGetAttribLocation != nullptr) {
int32_t return_value = glGetAttribLocation(program, name);
GAPID_INFO("Returned: %" PRId32 "\n", return_value);
if (pushReturn) {
stack->push<int32_t>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetAttribLocation returned error: 0x%x\n", err);
}
} 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>();
GLenum parameter = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPixelStorei(%u, %" PRId32 ")\n", parameter, value);
if (glPixelStorei != nullptr) {
glPixelStorei(parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glPixelStorei returned error: 0x%x\n", err);
}
} 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>();
GLenum parameter = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameteri(%u, %u, %" PRId32 ")\n", target, parameter, value);
if (glTexParameteri != nullptr) {
glTexParameteri(target, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTexParameteri returned error: 0x%x\n", err);
}
} 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>();
GLenum parameter = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterf(%u, %u, %f)\n", target, parameter, value);
if (glTexParameterf != nullptr) {
glTexParameterf(target, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTexParameterf returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameteriv(%u, %u, %p)\n", target, parameter, values);
if (glGetTexParameteriv != nullptr) {
glGetTexParameteriv(target, parameter, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetTexParameteriv returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterfv(%u, %u, %p)\n", target, parameter, values);
if (glGetTexParameterfv != nullptr) {
glGetTexParameterfv(target, parameter, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetTexParameterfv returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ")\n", location, value);
if (glUniform1i != nullptr) {
glUniform1i(location, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform1i returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ", %" PRId32 ")\n", location, value0,
value1);
if (glUniform2i != nullptr) {
glUniform2i(location, value0, value1);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform2i returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")\n", location,
value0, value1, value2);
if (glUniform3i != nullptr) {
glUniform3i(location, value0, value1, value2);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform3i returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")\n",
location, value0, value1, value2, value3);
if (glUniform4i != nullptr) {
glUniform4i(location, value0, value1, value2, value3);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform4i returned error: 0x%x\n", err);
}
} 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* values = stack->pop<int32_t*>();
int32_t count = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1iv(%" PRId32 ", %" PRId32 ", %p)\n", location, count, values);
if (glUniform1iv != nullptr) {
glUniform1iv(location, count, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform1iv returned error: 0x%x\n", err);
}
} 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* values = stack->pop<int32_t*>();
int32_t count = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2iv(%" PRId32 ", %" PRId32 ", %p)\n", location, count, values);
if (glUniform2iv != nullptr) {
glUniform2iv(location, count, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform2iv returned error: 0x%x\n", err);
}
} 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* values = stack->pop<int32_t*>();
int32_t count = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3iv(%" PRId32 ", %" PRId32 ", %p)\n", location, count, values);
if (glUniform3iv != nullptr) {
glUniform3iv(location, count, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform3iv returned error: 0x%x\n", err);
}
} 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* values = stack->pop<int32_t*>();
int32_t count = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4iv(%" PRId32 ", %" PRId32 ", %p)\n", location, count, values);
if (glUniform4iv != nullptr) {
glUniform4iv(location, count, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform4iv returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %f)\n", location, value);
if (glUniform1f != nullptr) {
glUniform1f(location, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform1f returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %f, %f)\n", location, value0, value1);
if (glUniform2f != nullptr) {
glUniform2f(location, value0, value1);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform2f returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %f, %f, %f)\n", location, value0, value1, value2);
if (glUniform3f != nullptr) {
glUniform3f(location, value0, value1, value2);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform3f returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %f, %f, %f, %f)\n", location, value0, value1, value2,
value3);
if (glUniform4f != nullptr) {
glUniform4f(location, value0, value1, value2, value3);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform4f returned error: 0x%x\n", err);
}
} 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* values = stack->pop<float*>();
int32_t count = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1fv(%" PRId32 ", %" PRId32 ", %p)\n", location, count, values);
if (glUniform1fv != nullptr) {
glUniform1fv(location, count, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform1fv returned error: 0x%x\n", err);
}
} 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* values = stack->pop<float*>();
int32_t count = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2fv(%" PRId32 ", %" PRId32 ", %p)\n", location, count, values);
if (glUniform2fv != nullptr) {
glUniform2fv(location, count, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform2fv returned error: 0x%x\n", err);
}
} 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* values = stack->pop<float*>();
int32_t count = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3fv(%" PRId32 ", %" PRId32 ", %p)\n", location, count, values);
if (glUniform3fv != nullptr) {
glUniform3fv(location, count, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform3fv returned error: 0x%x\n", err);
}
} 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* values = stack->pop<float*>();
int32_t count = stack->pop<int32_t>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4fv(%" PRId32 ", %" PRId32 ", %p)\n", location, count, values);
if (glUniform4fv != nullptr) {
glUniform4fv(location, count, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniform4fv returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ", %d, %p)\n", location, count,
transpose, values);
if (glUniformMatrix2fv != nullptr) {
glUniformMatrix2fv(location, count, transpose, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniformMatrix2fv returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ", %d, %p)\n", location, count,
transpose, values);
if (glUniformMatrix3fv != nullptr) {
glUniformMatrix3fv(location, count, transpose, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniformMatrix3fv returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ", %d, %p)\n", location, count,
transpose, values);
if (glUniformMatrix4fv != nullptr) {
glUniformMatrix4fv(location, count, transpose, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniformMatrix4fv returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRId32 ", %p)\n", program, location, values);
if (glGetUniformfv != nullptr) {
glGetUniformfv(program, location, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetUniformfv returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRId32 ", %p)\n", program, location, values);
if (glGetUniformiv != nullptr) {
glGetUniformiv(program, location, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetUniformiv returned error: 0x%x\n", err);
}
} 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>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib1f(%" PRId32 ", %f)\n", location, value0);
if (glVertexAttrib1f != nullptr) {
glVertexAttrib1f(location, value0);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttrib1f returned error: 0x%x\n", err);
}
} 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>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib2f(%" PRId32 ", %f, %f)\n", location, value0, value1);
if (glVertexAttrib2f != nullptr) {
glVertexAttrib2f(location, value0, value1);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttrib2f returned error: 0x%x\n", err);
}
} 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>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib3f(%" PRId32 ", %f, %f, %f)\n", location, value0, value1, value2);
if (glVertexAttrib3f != nullptr) {
glVertexAttrib3f(location, value0, value1, value2);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttrib3f returned error: 0x%x\n", err);
}
} 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>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib4f(%" PRId32 ", %f, %f, %f, %f)\n", location, value0, value1,
value2, value3);
if (glVertexAttrib4f != nullptr) {
glVertexAttrib4f(location, value0, value1, value2, value3);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttrib4f returned error: 0x%x\n", err);
}
} 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*>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib1fv(%" PRId32 ", %p)\n", location, value);
if (glVertexAttrib1fv != nullptr) {
glVertexAttrib1fv(location, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttrib1fv returned error: 0x%x\n", err);
}
} 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*>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib2fv(%" PRId32 ", %p)\n", location, value);
if (glVertexAttrib2fv != nullptr) {
glVertexAttrib2fv(location, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttrib2fv returned error: 0x%x\n", err);
}
} 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*>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib3fv(%" PRId32 ", %p)\n", location, value);
if (glVertexAttrib3fv != nullptr) {
glVertexAttrib3fv(location, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttrib3fv returned error: 0x%x\n", err);
}
} 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*>();
int32_t location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib4fv(%" PRId32 ", %p)\n", location, value);
if (glVertexAttrib4fv != nullptr) {
glVertexAttrib4fv(location, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glVertexAttrib4fv returned error: 0x%x\n", err);
}
} 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*>();
GLenum precision_type = stack->pop<GLenum>();
GLenum shader_type = stack->pop<GLenum>();
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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetShaderPrecisionFormat returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDepthMask returned error: 0x%x\n", err);
}
} 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) {
GLenum function = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDepthFunc(%u)\n", function);
if (glDepthFunc != nullptr) {
glDepthFunc(function);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDepthFunc returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDepthRangef returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glColorMask returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", mask);
if (glStencilMask != nullptr) {
glStencilMask(mask);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glStencilMask returned error: 0x%x\n", err);
}
} 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>();
GLenum face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glStencilMaskSeparate(%u, %" PRIu32 ")\n", face, mask);
if (glStencilMaskSeparate != nullptr) {
glStencilMaskSeparate(face, mask);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glStencilMaskSeparate returned error: 0x%x\n", err);
}
} 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>();
GLenum function = stack->pop<GLenum>();
GLenum face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glStencilFuncSeparate(%u, %u, %" PRId32 ", %" PRId32 ")\n", face, function,
reference_value, mask);
if (glStencilFuncSeparate != nullptr) {
glStencilFuncSeparate(face, function, reference_value, mask);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glStencilFuncSeparate returned error: 0x%x\n", err);
}
} 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) {
GLenum stencil_pass_depth_pass = stack->pop<GLenum>();
GLenum stencil_pass_depth_fail = stack->pop<GLenum>();
GLenum stencil_fail = stack->pop<GLenum>();
GLenum face = stack->pop<GLenum>();
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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glStencilOpSeparate returned error: 0x%x\n", err);
}
} 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) {
GLenum orientation = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFrontFace(%u)\n", orientation);
if (glFrontFace != nullptr) {
glFrontFace(orientation);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glFrontFace returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")\n", x, y, width,
height);
if (glViewport != nullptr) {
glViewport(x, y, width, height);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glViewport returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")\n", x, y, width,
height);
if (glScissor != nullptr) {
glScissor(x, y, width, height);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glScissor returned error: 0x%x\n", err);
}
} 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) {
GLenum unit = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glActiveTexture(%u)\n", unit);
if (glActiveTexture != nullptr) {
glActiveTexture(unit);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glActiveTexture returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, textures);
if (glGenTextures != nullptr) {
glGenTextures(count, textures);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenTextures returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, textures);
if (glDeleteTextures != nullptr) {
glDeleteTextures(count, textures);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteTextures returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", texture);
if (glIsTexture != nullptr) {
bool return_value = glIsTexture(texture);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsTexture returned error: 0x%x\n", err);
}
} 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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindTexture(%u, %" PRIu32 ")\n", target, texture);
if (glBindTexture != nullptr) {
glBindTexture(target, texture);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBindTexture returned error: 0x%x\n", err);
}
} 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*>();
GLenum type = stack->pop<GLenum>();
GLenum format = stack->pop<GLenum>();
int32_t border = stack->pop<int32_t>();
int32_t height = stack->pop<int32_t>();
int32_t width = stack->pop<int32_t>();
GLenum internal_format = stack->pop<GLenum>();
int32_t level = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexImage2D(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32
", %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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTexImage2D returned error: 0x%x\n", err);
}
} 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*>();
GLenum type = stack->pop<GLenum>();
GLenum format = stack->pop<GLenum>();
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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexSubImage2D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32
", %" PRId32 ", %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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glTexSubImage2D returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t level = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCopyTexImage2D(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32
", %" PRId32 ", %" PRId32 ")\n",
target, level, format, x, y, width, height, border);
if (glCopyTexImage2D != nullptr) {
glCopyTexImage2D(target, level, format, x, y, width, height, border);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCopyTexImage2D returned error: 0x%x\n", err);
}
} 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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCopyTexSubImage2D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32
", %" PRId32 ", %" PRId32 ", %" PRId32 ")\n",
target, level, xoffset, yoffset, x, y, width, height);
if (glCopyTexSubImage2D != nullptr) {
glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCopyTexSubImage2D returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t level = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCompressedTexImage2D(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32
", %" PRId32 ", %p)\n",
target, level, format, width, height, border, image_size, data);
if (glCompressedTexImage2D != nullptr) {
glCompressedTexImage2D(target, level, format, width, height, border, image_size, data);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCompressedTexImage2D returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCompressedTexSubImage2D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32
", %" PRId32 ", %u, %" PRId32 ", %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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCompressedTexSubImage2D returned error: 0x%x\n", err);
}
} 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) {
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGenerateMipmap(%u)\n", target);
if (glGenerateMipmap != nullptr) {
glGenerateMipmap(target);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenerateMipmap returned error: 0x%x\n", err);
}
} 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*>();
GLenum type = stack->pop<GLenum>();
GLenum format = stack->pop<GLenum>();
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(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)\n",
x, y, width, height, format, type, data);
if (glReadPixels != nullptr) {
glReadPixels(x, y, width, height, format, type, data);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glReadPixels returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, framebuffers);
if (glGenFramebuffers != nullptr) {
glGenFramebuffers(count, framebuffers);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenFramebuffers returned error: 0x%x\n", err);
}
} 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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindFramebuffer(%u, %" PRIu32 ")\n", target, framebuffer);
if (glBindFramebuffer != nullptr) {
glBindFramebuffer(target, framebuffer);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBindFramebuffer returned error: 0x%x\n", err);
}
} 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) {
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCheckFramebufferStatus(%u)\n", target);
if (glCheckFramebufferStatus != nullptr) {
GLenum return_value = glCheckFramebufferStatus(target);
GAPID_INFO("Returned: %u\n", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCheckFramebufferStatus returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, framebuffers);
if (glDeleteFramebuffers != nullptr) {
glDeleteFramebuffers(count, framebuffers);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteFramebuffers returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", framebuffer);
if (glIsFramebuffer != nullptr) {
bool return_value = glIsFramebuffer(framebuffer);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsFramebuffer returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, renderbuffers);
if (glGenRenderbuffers != nullptr) {
glGenRenderbuffers(count, renderbuffers);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenRenderbuffers returned error: 0x%x\n", err);
}
} 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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindRenderbuffer(%u, %" PRIu32 ")\n", target, renderbuffer);
if (glBindRenderbuffer != nullptr) {
glBindRenderbuffer(target, renderbuffer);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBindRenderbuffer returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorage(%u, %u, %" PRId32 ", %" PRId32 ")\n", target, format,
width, height);
if (glRenderbufferStorage != nullptr) {
glRenderbufferStorage(target, format, width, height);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glRenderbufferStorage returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, renderbuffers);
if (glDeleteRenderbuffers != nullptr) {
glDeleteRenderbuffers(count, renderbuffers);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteRenderbuffers returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", renderbuffer);
if (glIsRenderbuffer != nullptr) {
bool return_value = glIsRenderbuffer(renderbuffer);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsRenderbuffer returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetRenderbufferParameteriv(%u, %u, %p)\n", target, parameter, values);
if (glGetRenderbufferParameteriv != nullptr) {
glGetRenderbufferParameteriv(target, parameter, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetRenderbufferParameteriv returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, buffers);
if (glGenBuffers != nullptr) {
glGenBuffers(count, buffers);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenBuffers returned error: 0x%x\n", err);
}
} 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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindBuffer(%u, %" PRIu32 ")\n", target, buffer);
if (glBindBuffer != nullptr) {
glBindBuffer(target, buffer);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBindBuffer returned error: 0x%x\n", err);
}
} 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) {
GLenum usage = stack->pop<GLenum>();
void* data = stack->pop<void*>();
int32_t size = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBufferData(%u, %" PRId32 ", %p, %u)\n", target, size, data, usage);
if (glBufferData != nullptr) {
glBufferData(target, size, data, usage);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBufferData returned error: 0x%x\n", err);
}
} 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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBufferSubData(%u, %" PRId32 ", %" PRId32 ", %p)\n", target, offset, size,
data);
if (glBufferSubData != nullptr) {
glBufferSubData(target, offset, size, data);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBufferSubData returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, buffers);
if (glDeleteBuffers != nullptr) {
glDeleteBuffers(count, buffers);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteBuffers returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", buffer);
if (glIsBuffer != nullptr) {
bool return_value = glIsBuffer(buffer);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsBuffer returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetBufferParameteriv(%u, %u, %p)\n", target, parameter, value);
if (glGetBufferParameteriv != nullptr) {
glGetBufferParameteriv(target, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetBufferParameteriv returned error: 0x%x\n", err);
}
} 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) {
GLenum type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCreateShader(%u)\n", type);
if (glCreateShader != nullptr) {
uint32_t return_value = glCreateShader(type);
GAPID_INFO("Returned: %" PRIu32 "\n", return_value);
if (pushReturn) {
stack->push<uint32_t>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCreateShader returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", shader);
if (glDeleteShader != nullptr) {
glDeleteShader(shader);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteShader returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRId32 ", %p, %p)\n", shader, count, source,
length);
if (glShaderSource != nullptr) {
glShaderSource(shader, count, source, length);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glShaderSource returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p, %" PRIu32 ", %p, %" PRId32 ")\n", count,
shaders, binary_format, binary, binary_size);
if (glShaderBinary != nullptr) {
glShaderBinary(count, shaders, binary_format, binary, binary_size);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glShaderBinary returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRId32 ", %p, %p)\n", shader, buffer_length,
string_length_written, info);
if (glGetShaderInfoLog != nullptr) {
glGetShaderInfoLog(shader, buffer_length, string_length_written, info);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetShaderInfoLog returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRId32 ", %p, %p)\n", shader, buffer_length,
string_length_written, source);
if (glGetShaderSource != nullptr) {
glGetShaderSource(shader, buffer_length, string_length_written, source);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetShaderSource returned error: 0x%x\n", err);
}
} 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();
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glReleaseShaderCompiler returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", shader);
if (glCompileShader != nullptr) {
glCompileShader(shader);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCompileShader returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", shader);
if (glIsShader != nullptr) {
bool return_value = glIsShader(shader);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsShader returned error: 0x%x\n", err);
}
} 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: %" PRIu32 "\n", return_value);
if (pushReturn) {
stack->push<uint32_t>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCreateProgram returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", program);
if (glDeleteProgram != nullptr) {
glDeleteProgram(program);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteProgram returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRIu32 ")\n", program, shader);
if (glAttachShader != nullptr) {
glAttachShader(program, shader);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glAttachShader returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRIu32 ")\n", program, shader);
if (glDetachShader != nullptr) {
glDetachShader(program, shader);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDetachShader returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRId32 ", %p, %p)\n", program,
buffer_length, shaders_length_written, shaders);
if (glGetAttachedShaders != nullptr) {
glGetAttachedShaders(program, buffer_length, shaders_length_written, shaders);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetAttachedShaders returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", program);
if (glLinkProgram != nullptr) {
glLinkProgram(program);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glLinkProgram returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ", %" PRId32 ", %p, %p)\n", program,
buffer_length, string_length_written, info);
if (glGetProgramInfoLog != nullptr) {
glGetProgramInfoLog(program, buffer_length, string_length_written, info);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetProgramInfoLog returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", program);
if (glUseProgram != nullptr) {
glUseProgram(program);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUseProgram returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", program);
if (glIsProgram != nullptr) {
bool return_value = glIsProgram(program);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsProgram returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", program);
if (glValidateProgram != nullptr) {
glValidateProgram(program);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glValidateProgram returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glClearColor returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glClearDepthf returned error: 0x%x\n", err);
}
} 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(%" PRId32 ")\n", stencil);
if (glClearStencil != nullptr) {
glClearStencil(stencil);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glClearStencil returned error: 0x%x\n", err);
}
} 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) {
GLbitfield mask = stack->pop<GLbitfield>();
if (stack->isValid()) {
GAPID_INFO("glClear(%u)\n", mask);
if (glClear != nullptr) {
glClear(mask);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glClear returned error: 0x%x\n", err);
}
} 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) {
GLenum mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCullFace(%u)\n", mode);
if (glCullFace != nullptr) {
glCullFace(mode);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glCullFace returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glPolygonOffset returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glLineWidth returned error: 0x%x\n", err);
}
} 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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glSampleCoverage returned error: 0x%x\n", err);
}
} 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) {
GLenum mode = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glHint(%u, %u)\n", target, mode);
if (glHint != nullptr) {
glHint(target, mode);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glHint returned error: 0x%x\n", err);
}
} 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>();
GLenum renderbuffer_target = stack->pop<GLenum>();
GLenum framebuffer_attachment = stack->pop<GLenum>();
GLenum framebuffer_target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferRenderbuffer(%u, %u, %u, %" PRIu32 ")\n", framebuffer_target,
framebuffer_attachment, renderbuffer_target, renderbuffer);
if (glFramebufferRenderbuffer != nullptr) {
glFramebufferRenderbuffer(framebuffer_target, framebuffer_attachment,
renderbuffer_target, renderbuffer);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glFramebufferRenderbuffer returned error: 0x%x\n", err);
}
} 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>();
GLenum texture_target = stack->pop<GLenum>();
GLenum framebuffer_attachment = stack->pop<GLenum>();
GLenum framebuffer_target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTexture2D(%u, %u, %u, %" PRIu32 ", %" PRId32 ")\n",
framebuffer_target, framebuffer_attachment, texture_target, texture, level);
if (glFramebufferTexture2D != nullptr) {
glFramebufferTexture2D(framebuffer_target, framebuffer_attachment, texture_target,
texture, level);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glFramebufferTexture2D returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
GLenum attachment = stack->pop<GLenum>();
GLenum framebuffer_target = stack->pop<GLenum>();
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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetFramebufferAttachmentParameteriv returned error: 0x%x\n", err);
}
} 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*>();
GLenum indices_type = stack->pop<GLenum>();
int32_t element_count = stack->pop<int32_t>();
GLenum draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElements(%u, %" PRId32 ", %u, %p)\n", draw_mode, element_count,
indices_type, indices);
if (glDrawElements != nullptr) {
glDrawElements(draw_mode, element_count, indices_type, indices);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDrawElements returned error: 0x%x\n", err);
}
} 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>();
GLenum draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawArrays(%u, %" PRId32 ", %" PRId32 ")\n", draw_mode, first_index,
index_count);
if (glDrawArrays != nullptr) {
glDrawArrays(draw_mode, first_index, index_count);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDrawArrays returned error: 0x%x\n", err);
}
} 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();
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glFlush returned error: 0x%x\n", err);
}
} 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();
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glFinish returned error: 0x%x\n", err);
}
} 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*>();
GLenum param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetBooleanv(%u, %p)\n", param, values);
if (glGetBooleanv != nullptr) {
glGetBooleanv(param, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetBooleanv returned error: 0x%x\n", err);
}
} 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*>();
GLenum param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFloatv(%u, %p)\n", param, values);
if (glGetFloatv != nullptr) {
glGetFloatv(param, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetFloatv returned error: 0x%x\n", err);
}
} 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*>();
GLenum param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetIntegerv(%u, %p)\n", param, values);
if (glGetIntegerv != nullptr) {
glGetIntegerv(param, values);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetIntegerv returned error: 0x%x\n", err);
}
} 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) {
GLenum param = stack->pop<GLenum>();
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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetString returned error: 0x%x\n", err);
}
} 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) {
GLenum capability = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEnable(%u)\n", capability);
if (glEnable != nullptr) {
glEnable(capability);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glEnable returned error: 0x%x\n", err);
}
} 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) {
GLenum capability = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDisable(%u)\n", capability);
if (glDisable != nullptr) {
glDisable(capability);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDisable returned error: 0x%x\n", err);
}
} 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) {
GLenum capability = stack->pop<GLenum>();
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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsEnabled returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsEnabled\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsEnabled\n");
return false;
}
}
bool callGlFenceSync(Stack* stack, bool pushReturn) {
SyncFlags syncFlags = stack->pop<SyncFlags>();
SyncCondition condition = stack->pop<SyncCondition>();
if (stack->isValid()) {
GAPID_INFO("glFenceSync(%u, %u)\n", condition, syncFlags);
if (glFenceSync != nullptr) {
uint64_t return_value = glFenceSync(condition, syncFlags);
GAPID_INFO("Returned: %" PRIu64 "\n", return_value);
if (pushReturn) {
stack->push<uint64_t>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glFenceSync returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glFenceSync\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFenceSync\n");
return false;
}
}
bool callGlDeleteSync(Stack* stack, bool pushReturn) {
uint64_t sync = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteSync(%" PRIu64 ")\n", sync);
if (glDeleteSync != nullptr) {
glDeleteSync(sync);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteSync returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteSync\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteSync\n");
return false;
}
}
bool callGlWaitSync(Stack* stack, bool pushReturn) {
uint64_t timeout = stack->pop<uint64_t>();
SyncFlags syncFlags = stack->pop<SyncFlags>();
uint64_t sync = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glWaitSync(%" PRIu64 ", %u, %" PRIu64 ")\n", sync, syncFlags, timeout);
if (glWaitSync != nullptr) {
glWaitSync(sync, syncFlags, timeout);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glWaitSync returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glWaitSync\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glWaitSync\n");
return false;
}
}
bool callGlClientWaitSync(Stack* stack, bool pushReturn) {
uint64_t timeout = stack->pop<uint64_t>();
SyncFlags syncFlags = stack->pop<SyncFlags>();
uint64_t sync = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glClientWaitSync(%" PRIu64 ", %u, %" PRIu64 ")\n", sync, syncFlags, timeout);
if (glClientWaitSync != nullptr) {
ClientWaitSyncSignal return_value = glClientWaitSync(sync, syncFlags, timeout);
GAPID_INFO("Returned: %u\n", return_value);
if (pushReturn) {
stack->push<ClientWaitSyncSignal>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glClientWaitSync returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glClientWaitSync\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClientWaitSync\n");
return false;
}
}
bool callGlMapBufferRange(Stack* stack, bool pushReturn) {
GLbitfield access = stack->pop<GLbitfield>();
int32_t length = stack->pop<int32_t>();
int32_t offset = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMapBufferRange(%u, %" PRId32 ", %" PRId32 ", %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);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glMapBufferRange returned error: 0x%x\n", err);
}
} 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) {
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glUnmapBuffer(%u)\n", target);
if (glUnmapBuffer != nullptr) {
glUnmapBuffer(target);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUnmapBuffer returned error: 0x%x\n", err);
}
} 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) {
GLenum* attachments = stack->pop<GLenum*>();
int32_t count = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glInvalidateFramebuffer(%u, %" PRId32 ", %p)\n", target, count, attachments);
if (glInvalidateFramebuffer != nullptr) {
glInvalidateFramebuffer(target, count, attachments);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glInvalidateFramebuffer returned error: 0x%x\n", err);
}
} 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>();
GLenum format = stack->pop<GLenum>();
int32_t samples = stack->pop<int32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorageMultisample(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32
")\n",
target, samples, format, width, height);
if (glRenderbufferStorageMultisample != nullptr) {
glRenderbufferStorageMultisample(target, samples, format, width, height);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glRenderbufferStorageMultisample returned error: 0x%x\n", err);
}
} 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) {
GLenum filter = stack->pop<GLenum>();
GLbitfield mask = stack->pop<GLbitfield>();
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(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32
", %" PRId32 ", %" PRId32 ", %" PRId32 ", %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);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBlitFramebuffer returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, queries);
if (glGenQueries != nullptr) {
glGenQueries(count, queries);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenQueries returned error: 0x%x\n", err);
}
} 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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBeginQuery(%u, %" PRIu32 ")\n", target, query);
if (glBeginQuery != nullptr) {
glBeginQuery(target, query);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBeginQuery returned error: 0x%x\n", err);
}
} 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) {
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEndQuery(%u)\n", target);
if (glEndQuery != nullptr) {
glEndQuery(target);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glEndQuery returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, queries);
if (glDeleteQueries != nullptr) {
glDeleteQueries(count, queries);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteQueries returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", query);
if (glIsQuery != nullptr) {
bool return_value = glIsQuery(query);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsQuery returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryiv(%u, %u, %p)\n", target, parameter, value);
if (glGetQueryiv != nullptr) {
glGetQueryiv(target, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryiv returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectuiv(%" PRIu32 ", %u, %p)\n", query, parameter, value);
if (glGetQueryObjectuiv != nullptr) {
glGetQueryObjectuiv(query, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryObjectuiv returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectuiv\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjectuiv\n");
return false;
}
}
bool callGlGetActiveUniformBlockName(Stack* stack, bool pushReturn) {
char* name = stack->pop<char*>();
int32_t* buffer_bytes_written = stack->pop<int32_t*>();
int32_t buffer_size = stack->pop<int32_t>();
uint32_t uniform_block_index = stack->pop<uint32_t>();
uint32_t program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetActiveUniformBlockName(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %p, %p)\n",
program, uniform_block_index, buffer_size, buffer_bytes_written, name);
if (glGetActiveUniformBlockName != nullptr) {
glGetActiveUniformBlockName(program, uniform_block_index, buffer_size,
buffer_bytes_written, name);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetActiveUniformBlockName returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetActiveUniformBlockName\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetActiveUniformBlockName\n");
return false;
}
}
bool callGlGetActiveUniformBlockiv(Stack* stack, bool pushReturn) {
int32_t* parameters = stack->pop<int32_t*>();
GLenum parameter_name = stack->pop<GLenum>();
uint32_t uniform_block_index = stack->pop<uint32_t>();
uint32_t program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetActiveUniformBlockiv(%" PRIu32 ", %" PRIu32 ", %u, %p)\n", program,
uniform_block_index, parameter_name, parameters);
if (glGetActiveUniformBlockiv != nullptr) {
glGetActiveUniformBlockiv(program, uniform_block_index, parameter_name, parameters);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetActiveUniformBlockiv returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetActiveUniformBlockiv\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetActiveUniformBlockiv\n");
return false;
}
}
bool callGlUniformBlockBinding(Stack* stack, bool pushReturn) {
uint32_t uniform_block_binding = stack->pop<uint32_t>();
uint32_t uniform_block_index = stack->pop<uint32_t>();
uint32_t program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformBlockBinding(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ")\n", program,
uniform_block_index, uniform_block_binding);
if (glUniformBlockBinding != nullptr) {
glUniformBlockBinding(program, uniform_block_index, uniform_block_binding);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glUniformBlockBinding returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformBlockBinding\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformBlockBinding\n");
return false;
}
}
bool callGlGetActiveUniformsiv(Stack* stack, bool pushReturn) {
int32_t* parameters = stack->pop<int32_t*>();
GLenum parameter_name = stack->pop<GLenum>();
uint32_t* uniform_indices = stack->pop<uint32_t*>();
uint32_t uniform_count = stack->pop<uint32_t>();
uint32_t program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetActiveUniformsiv(%" PRIu32 ", %" PRIu32 ", %p, %u, %p)\n", program,
uniform_count, uniform_indices, parameter_name, parameters);
if (glGetActiveUniformsiv != nullptr) {
glGetActiveUniformsiv(program, uniform_count, uniform_indices, parameter_name,
parameters);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetActiveUniformsiv returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetActiveUniformsiv\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetActiveUniformsiv\n");
return false;
}
}
bool callGlBindBufferBase(Stack* stack, bool pushReturn) {
uint32_t buffer = stack->pop<uint32_t>();
uint32_t index = stack->pop<uint32_t>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindBufferBase(%u, %" PRIu32 ", %" PRIu32 ")\n", target, index, buffer);
if (glBindBufferBase != nullptr) {
glBindBufferBase(target, index, buffer);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBindBufferBase returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glBindBufferBase\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindBufferBase\n");
return false;
}
}
bool callGlGenVertexArrays(Stack* stack, bool pushReturn) {
uint32_t* arrays = stack->pop<uint32_t*>();
int32_t count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenVertexArrays(%" PRId32 ", %p)\n", count, arrays);
if (glGenVertexArrays != nullptr) {
glGenVertexArrays(count, arrays);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenVertexArrays returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGenVertexArrays\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenVertexArrays\n");
return false;
}
}
bool callGlBindVertexArray(Stack* stack, bool pushReturn) {
uint32_t array = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindVertexArray(%" PRIu32 ")\n", array);
if (glBindVertexArray != nullptr) {
glBindVertexArray(array);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBindVertexArray returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glBindVertexArray\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindVertexArray\n");
return false;
}
}
bool callGlDeleteVertexArrays(Stack* stack, bool pushReturn) {
uint32_t* arrays = stack->pop<uint32_t*>();
uint32_t count = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteVertexArrays(%" PRIu32 ", %p)\n", count, arrays);
if (glDeleteVertexArrays != nullptr) {
glDeleteVertexArrays(count, arrays);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteVertexArrays returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteVertexArrays\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteVertexArrays\n");
return false;
}
}
bool callGlGetQueryObjecti64v(Stack* stack, bool pushReturn) {
int64_t* value = stack->pop<int64_t*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjecti64v(%" PRIu32 ", %u, %p)\n", query, parameter, value);
if (glGetQueryObjecti64v != nullptr) {
glGetQueryObjecti64v(query, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryObjecti64v returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjecti64v\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjecti64v\n");
return false;
}
}
bool callGlGetQueryObjectui64v(Stack* stack, bool pushReturn) {
uint64_t* value = stack->pop<uint64_t*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectui64v(%" PRIu32 ", %u, %p)\n", query, parameter, value);
if (glGetQueryObjectui64v != nullptr) {
glGetQueryObjectui64v(query, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryObjectui64v returned error: 0x%x\n", err);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectui64v\n");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjectui64v\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(%" PRId32 ", %p)\n", count, queries);
if (glGenQueriesEXT != nullptr) {
glGenQueriesEXT(count, queries);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGenQueriesEXT returned error: 0x%x\n", err);
}
} 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>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBeginQueryEXT(%u, %" PRIu32 ")\n", target, query);
if (glBeginQueryEXT != nullptr) {
glBeginQueryEXT(target, query);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glBeginQueryEXT returned error: 0x%x\n", err);
}
} 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) {
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEndQueryEXT(%u)\n", target);
if (glEndQueryEXT != nullptr) {
glEndQueryEXT(target);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glEndQueryEXT returned error: 0x%x\n", err);
}
} 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(%" PRId32 ", %p)\n", count, queries);
if (glDeleteQueriesEXT != nullptr) {
glDeleteQueriesEXT(count, queries);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glDeleteQueriesEXT returned error: 0x%x\n", err);
}
} 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(%" PRIu32 ")\n", query);
if (glIsQueryEXT != nullptr) {
bool return_value = glIsQueryEXT(query);
GAPID_INFO("Returned: %d\n", return_value);
if (pushReturn) {
stack->push<bool>(return_value);
}
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glIsQueryEXT returned error: 0x%x\n", err);
}
} 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) {
GLenum target = stack->pop<GLenum>();
uint32_t query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glQueryCounterEXT(%" PRIu32 ", %u)\n", query, target);
if (glQueryCounterEXT != nullptr) {
glQueryCounterEXT(query, target);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glQueryCounterEXT returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
GLenum target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryivEXT(%u, %u, %p)\n", target, parameter, value);
if (glGetQueryivEXT != nullptr) {
glGetQueryivEXT(target, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryivEXT returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectivEXT(%" PRIu32 ", %u, %p)\n", query, parameter, value);
if (glGetQueryObjectivEXT != nullptr) {
glGetQueryObjectivEXT(query, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryObjectivEXT returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectuivEXT(%" PRIu32 ", %u, %p)\n", query, parameter, value);
if (glGetQueryObjectuivEXT != nullptr) {
glGetQueryObjectuivEXT(query, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryObjectuivEXT returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjecti64vEXT(%" PRIu32 ", %u, %p)\n", query, parameter, value);
if (glGetQueryObjecti64vEXT != nullptr) {
glGetQueryObjecti64vEXT(query, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryObjecti64vEXT returned error: 0x%x\n", err);
}
} 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*>();
GLenum parameter = stack->pop<GLenum>();
uint32_t query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectui64vEXT(%" PRIu32 ", %u, %p)\n", query, parameter, value);
if (glGetQueryObjectui64vEXT != nullptr) {
glGetQueryObjectui64vEXT(query, parameter, value);
const GLenum err = glGetError();
if (err != GLenum::GL_NO_ERROR) {
GAPID_WARNING("glGetQueryObjectui64vEXT returned error: 0x%x\n", err);
}
} 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;
PFNGLXMAKECURRENT glXMakeCurrent = nullptr;
PFNGLXSWAPBUFFERS glXSwapBuffers = nullptr;
PFNGLXQUERYDRAWABLE glXQueryDrawable = nullptr;
PFNWGLCREATECONTEXT wglCreateContext = nullptr;
PFNWGLCREATECONTEXTATTRIBSARB wglCreateContextAttribsARB = nullptr;
PFNWGLMAKECURRENT wglMakeCurrent = nullptr;
PFNWGLSWAPBUFFERS wglSwapBuffers = nullptr;
PFNCGLCREATECONTEXT CGLCreateContext = nullptr;
PFNCGLSETCURRENTCONTEXT CGLSetCurrentContext = nullptr;
PFNCGLGETSURFACE CGLGetSurface = nullptr;
PFNCGSGETSURFACEBOUNDS CGSGetSurfaceBounds = nullptr;
PFNCGLFLUSHDRAWABLE CGLFlushDrawable = 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;
PFNGLFENCESYNC glFenceSync = nullptr;
PFNGLDELETESYNC glDeleteSync = nullptr;
PFNGLWAITSYNC glWaitSync = nullptr;
PFNGLCLIENTWAITSYNC glClientWaitSync = 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;
PFNGLGETACTIVEUNIFORMBLOCKNAME glGetActiveUniformBlockName = nullptr;
PFNGLGETACTIVEUNIFORMBLOCKIV glGetActiveUniformBlockiv = nullptr;
PFNGLUNIFORMBLOCKBINDING glUniformBlockBinding = nullptr;
PFNGLGETACTIVEUNIFORMSIV glGetActiveUniformsiv = nullptr;
PFNGLBINDBUFFERBASE glBindBufferBase = nullptr;
PFNGLGENVERTEXARRAYS glGenVertexArrays = nullptr;
PFNGLBINDVERTEXARRAY glBindVertexArray = nullptr;
PFNGLDELETEVERTEXARRAYS glDeleteVertexArrays = nullptr;
PFNGLGETQUERYOBJECTI64V glGetQueryObjecti64v = nullptr;
PFNGLGETQUERYOBJECTUI64V glGetQueryObjectui64v = 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::GlXMakeCurrent, callGlXMakeCurrent);
interpreter->registerFunction(Ids::GlXSwapBuffers, callGlXSwapBuffers);
interpreter->registerFunction(Ids::GlXQueryDrawable, callGlXQueryDrawable);
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::CGLGetSurface, callCGLGetSurface);
interpreter->registerFunction(Ids::CGSGetSurfaceBounds, callCGSGetSurfaceBounds);
interpreter->registerFunction(Ids::CGLFlushDrawable, callCGLFlushDrawable);
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::GlFenceSync, callGlFenceSync);
interpreter->registerFunction(Ids::GlDeleteSync, callGlDeleteSync);
interpreter->registerFunction(Ids::GlWaitSync, callGlWaitSync);
interpreter->registerFunction(Ids::GlClientWaitSync, callGlClientWaitSync);
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::GlGetActiveUniformBlockName,
callGlGetActiveUniformBlockName);
interpreter->registerFunction(Ids::GlGetActiveUniformBlockiv, callGlGetActiveUniformBlockiv);
interpreter->registerFunction(Ids::GlUniformBlockBinding, callGlUniformBlockBinding);
interpreter->registerFunction(Ids::GlGetActiveUniformsiv, callGlGetActiveUniformsiv);
interpreter->registerFunction(Ids::GlBindBufferBase, callGlBindBufferBase);
interpreter->registerFunction(Ids::GlGenVertexArrays, callGlGenVertexArrays);
interpreter->registerFunction(Ids::GlBindVertexArray, callGlBindVertexArray);
interpreter->registerFunction(Ids::GlDeleteVertexArrays, callGlDeleteVertexArrays);
interpreter->registerFunction(Ids::GlGetQueryObjecti64v, callGlGetQueryObjecti64v);
interpreter->registerFunction(Ids::GlGetQueryObjectui64v, callGlGetQueryObjectui64v);
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));
glXMakeCurrent =
reinterpret_cast<PFNGLXMAKECURRENT>(gapic::GetGfxProcAddress("glXMakeCurrent", false));
glXSwapBuffers =
reinterpret_cast<PFNGLXSWAPBUFFERS>(gapic::GetGfxProcAddress("glXSwapBuffers", false));
glXQueryDrawable = reinterpret_cast<PFNGLXQUERYDRAWABLE>(
gapic::GetGfxProcAddress("glXQueryDrawable", 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));
CGLGetSurface =
reinterpret_cast<PFNCGLGETSURFACE>(gapic::GetGfxProcAddress("CGLGetSurface", false));
CGSGetSurfaceBounds = reinterpret_cast<PFNCGSGETSURFACEBOUNDS>(
gapic::GetGfxProcAddress("CGSGetSurfaceBounds", false));
CGLFlushDrawable = reinterpret_cast<PFNCGLFLUSHDRAWABLE>(
gapic::GetGfxProcAddress("CGLFlushDrawable", 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));
glFenceSync = reinterpret_cast<PFNGLFENCESYNC>(gapic::GetGfxProcAddress("glFenceSync", false));
glDeleteSync =
reinterpret_cast<PFNGLDELETESYNC>(gapic::GetGfxProcAddress("glDeleteSync", false));
glWaitSync = reinterpret_cast<PFNGLWAITSYNC>(gapic::GetGfxProcAddress("glWaitSync", false));
glClientWaitSync = reinterpret_cast<PFNGLCLIENTWAITSYNC>(
gapic::GetGfxProcAddress("glClientWaitSync", 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));
glGetActiveUniformBlockName = reinterpret_cast<PFNGLGETACTIVEUNIFORMBLOCKNAME>(
gapic::GetGfxProcAddress("glGetActiveUniformBlockName", false));
glGetActiveUniformBlockiv = reinterpret_cast<PFNGLGETACTIVEUNIFORMBLOCKIV>(
gapic::GetGfxProcAddress("glGetActiveUniformBlockiv", false));
glUniformBlockBinding = reinterpret_cast<PFNGLUNIFORMBLOCKBINDING>(
gapic::GetGfxProcAddress("glUniformBlockBinding", false));
glGetActiveUniformsiv = reinterpret_cast<PFNGLGETACTIVEUNIFORMSIV>(
gapic::GetGfxProcAddress("glGetActiveUniformsiv", false));
glBindBufferBase = reinterpret_cast<PFNGLBINDBUFFERBASE>(
gapic::GetGfxProcAddress("glBindBufferBase", false));
glGenVertexArrays = reinterpret_cast<PFNGLGENVERTEXARRAYS>(
gapic::GetGfxProcAddress("glGenVertexArrays", false));
glBindVertexArray = reinterpret_cast<PFNGLBINDVERTEXARRAY>(
gapic::GetGfxProcAddress("glBindVertexArray", false));
glDeleteVertexArrays = reinterpret_cast<PFNGLDELETEVERTEXARRAYS>(
gapic::GetGfxProcAddress("glDeleteVertexArrays", false));
glGetQueryObjecti64v = reinterpret_cast<PFNGLGETQUERYOBJECTI64V>(
gapic::GetGfxProcAddress("glGetQueryObjecti64v", false));
glGetQueryObjectui64v = reinterpret_cast<PFNGLGETQUERYOBJECTUI64V>(
gapic::GetGfxProcAddress("glGetQueryObjectui64v", 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