blob: e3669edf3b2fc6b7ea55949c9d6e211f4ca151cc [file] [log] [blame]
/*
* Copyright 2015, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* THIS FILE WAS GENERATED BY apic. DO NOT EDIT.
*/
#ifndef GAPII_GLES_SPY_H
#define GAPII_GLES_SPY_H
#include "gles_imports.h"
#include "gles_types.h"
#include "spy_base.h"
#include <gapic/log.h>
#include <memory>
#include <string>
namespace gapii {
class GlesSpy : public SpyBase {
public:
inline void init(std::shared_ptr<gapic::Encoder> encoder);
inline void replayCreateRenderer(uint32_t id);
inline void replayBindRenderer(uint32_t id);
inline void backbufferInfo(int32_t width, int32_t height, uint32_t color_fmt,
uint32_t depth_fmt, uint32_t stencil_fmt, bool resetViewportScissor);
inline void startTimer(uint8_t index);
inline uint64_t stopTimer(uint8_t index);
inline void flushPostBuffer();
inline int eglInitialize(void* dpy, int* major, int* minor);
inline void* eglCreateContext(void* display, void* config, void* share_context,
int* attrib_list);
inline int eglMakeCurrent(void* display, void* draw, void* read, void* context);
inline int eglSwapBuffers(void* display, void* surface);
inline int eglQuerySurface(void* display, void* surface, int attribute, int* value);
inline void* glXCreateContext(void* dpy, void* vis, void* shareList, bool direct);
inline void* glXCreateNewContext(void* display, void* fbconfig, uint32_t type, void* shared,
bool direct);
inline void glXMakeContextCurrent(void* display, void* draw, void* read, void* ctx);
inline void glXSwapBuffers(void* display, void* drawable);
inline void* wglCreateContext(void* hdc);
inline void* wglCreateContextAttribsARB(void* hdc, void* hShareContext, int* attribList);
inline int wglMakeCurrent(void* hdc, void* hglrc);
inline void wglSwapBuffers(void* hdc);
inline int CGLCreateContext(void* pix, void* share, void** ctx);
inline int CGLSetCurrentContext(void* ctx);
inline void glEnableClientState(uint32_t type);
inline void glDisableClientState(uint32_t type);
inline void glGetProgramBinaryOES(uint32_t program, int32_t buffer_size, int32_t* bytes_written,
uint32_t* binary_format, void* binary);
inline void glProgramBinaryOES(uint32_t program, uint32_t binary_format, void* binary,
int32_t binary_size);
inline void glStartTilingQCOM(int32_t x, int32_t y, int32_t width, int32_t height,
uint32_t preserveMask);
inline void glEndTilingQCOM(uint32_t preserve_mask);
inline void glDiscardFramebufferEXT(uint32_t target, int32_t numAttachments,
uint32_t* attachments);
inline void glInsertEventMarkerEXT(int32_t length, char* marker);
inline void glPushGroupMarkerEXT(int32_t length, char* marker);
inline void glPopGroupMarkerEXT();
inline void glTexStorage1DEXT(uint32_t target, int32_t levels, uint32_t format, int32_t width);
inline void glTexStorage2DEXT(uint32_t target, int32_t levels, uint32_t format, int32_t width,
int32_t height);
inline void glTexStorage3DEXT(uint32_t target, int32_t levels, uint32_t format, int32_t width,
int32_t height, int32_t depth);
inline void glTextureStorage1DEXT(uint32_t texture, uint32_t target, int32_t levels,
uint32_t format, int32_t width);
inline void glTextureStorage2DEXT(uint32_t texture, uint32_t target, int32_t levels,
uint32_t format, int32_t width, int32_t height);
inline void glTextureStorage3DEXT(uint32_t texture, uint32_t target, int32_t levels,
uint32_t format, int32_t width, int32_t height,
int32_t depth);
inline void glGenVertexArraysOES(int32_t count, uint32_t* arrays);
inline void glBindVertexArrayOES(uint32_t array);
inline void glDeleteVertexArraysOES(int32_t count, uint32_t* arrays);
inline bool glIsVertexArrayOES(uint32_t array);
inline void glEGLImageTargetTexture2DOES(uint32_t target, void* image);
inline void glEGLImageTargetRenderbufferStorageOES(uint32_t target, void* image);
inline uint32_t glGetGraphicsResetStatusEXT();
inline void glBindAttribLocation(uint32_t program, uint32_t location, char* name);
inline void glBlendFunc(uint32_t src_factor, uint32_t dst_factor);
inline void glBlendFuncSeparate(uint32_t src_factor_rgb, uint32_t dst_factor_rgb,
uint32_t src_factor_alpha, uint32_t dst_factor_alpha);
inline void glBlendEquation(uint32_t equation);
inline void glBlendEquationSeparate(uint32_t rgb, uint32_t alpha);
inline void glBlendColor(float red, float green, float blue, float alpha);
inline void glEnableVertexAttribArray(uint32_t location);
inline void glDisableVertexAttribArray(uint32_t location);
inline void glVertexAttribPointer(uint32_t location, int32_t size, uint32_t type,
bool normalized, int32_t stride, void* data);
inline void glGetActiveAttrib(uint32_t program, uint32_t location, int32_t buffer_size,
int32_t* buffer_bytes_written, int32_t* vector_count,
uint32_t* type, char* name);
inline void glGetActiveUniform(uint32_t program, int32_t location, int32_t buffer_size,
int32_t* buffer_bytes_written, int32_t* size, uint32_t* type,
char* name);
inline uint32_t glGetError();
inline void glGetProgramiv(uint32_t program, uint32_t parameter, int32_t* value);
inline void glGetShaderiv(uint32_t shader, uint32_t parameter, int32_t* value);
inline int32_t glGetUniformLocation(uint32_t program, char* name);
inline uint32_t glGetAttribLocation(uint32_t program, char* name);
inline void glPixelStorei(uint32_t parameter, int32_t value);
inline void glTexParameteri(uint32_t target, uint32_t parameter, int32_t value);
inline void glTexParameterf(uint32_t target, uint32_t parameter, float value);
inline void glGetTexParameteriv(uint32_t target, uint32_t parameter, int32_t* values);
inline void glGetTexParameterfv(uint32_t target, uint32_t parameter, float* values);
inline void glUniform1i(int32_t location, int32_t value);
inline void glUniform2i(int32_t location, int32_t value0, int32_t value1);
inline void glUniform3i(int32_t location, int32_t value0, int32_t value1, int32_t value2);
inline void glUniform4i(int32_t location, int32_t value0, int32_t value1, int32_t value2,
int32_t value3);
inline void glUniform1iv(int32_t location, int32_t count, int32_t* value);
inline void glUniform2iv(int32_t location, int32_t count, int32_t* value);
inline void glUniform3iv(int32_t location, int32_t count, int32_t* value);
inline void glUniform4iv(int32_t location, int32_t count, int32_t* value);
inline void glUniform1f(int32_t location, float value);
inline void glUniform2f(int32_t location, float value0, float value1);
inline void glUniform3f(int32_t location, float value0, float value1, float value2);
inline void glUniform4f(int32_t location, float value0, float value1, float value2,
float value3);
inline void glUniform1fv(int32_t location, int32_t count, float* value);
inline void glUniform2fv(int32_t location, int32_t count, float* value);
inline void glUniform3fv(int32_t location, int32_t count, float* value);
inline void glUniform4fv(int32_t location, int32_t count, float* value);
inline void glUniformMatrix2fv(int32_t location, int32_t count, bool transpose, float* values);
inline void glUniformMatrix3fv(int32_t location, int32_t count, bool transpose, float* values);
inline void glUniformMatrix4fv(int32_t location, int32_t count, bool transpose, float* values);
inline void glGetUniformfv(uint32_t program, int32_t location, float* values);
inline void glGetUniformiv(uint32_t program, int32_t location, int32_t* values);
inline void glVertexAttrib1f(uint32_t location, float value0);
inline void glVertexAttrib2f(uint32_t location, float value0, float value1);
inline void glVertexAttrib3f(uint32_t location, float value0, float value1, float value2);
inline void glVertexAttrib4f(uint32_t location, float value0, float value1, float value2,
float value3);
inline void glVertexAttrib1fv(uint32_t location, float* value);
inline void glVertexAttrib2fv(uint32_t location, float* value);
inline void glVertexAttrib3fv(uint32_t location, float* value);
inline void glVertexAttrib4fv(uint32_t location, float* value);
inline void glGetShaderPrecisionFormat(uint32_t shader_type, uint32_t precision_type,
int32_t* range, int32_t* precision);
inline void glDepthMask(bool enabled);
inline void glDepthFunc(uint32_t function);
inline void glDepthRangef(float near, float far);
inline void glColorMask(bool red, bool green, bool blue, bool alpha);
inline void glStencilMask(uint32_t mask);
inline void glStencilMaskSeparate(uint32_t face, uint32_t mask);
inline void glStencilFuncSeparate(uint32_t face, uint32_t function, int32_t reference_value,
int32_t mask);
inline void glStencilOpSeparate(uint32_t face, uint32_t stencil_fail,
uint32_t stencil_pass_depth_fail,
uint32_t stencil_pass_depth_pass);
inline void glFrontFace(uint32_t orientation);
inline void glViewport(int32_t x, int32_t y, int32_t width, int32_t height);
inline void glScissor(int32_t x, int32_t y, int32_t width, int32_t height);
inline void glActiveTexture(uint32_t unit);
inline void glGenTextures(int32_t count, uint32_t* textures);
inline void glDeleteTextures(int32_t count, uint32_t* textures);
inline bool glIsTexture(uint32_t texture);
inline void glBindTexture(uint32_t target, uint32_t texture);
inline void glTexImage2D(uint32_t target, int32_t level, uint32_t internal_format,
int32_t width, int32_t height, int32_t border, uint32_t format,
uint32_t type, void* data);
inline void glTexSubImage2D(uint32_t target, int32_t level, int32_t xoffset, int32_t yoffset,
int32_t width, int32_t height, uint32_t format, uint32_t type,
void* data);
inline void glCopyTexImage2D(uint32_t target, int32_t level, uint32_t format, int32_t x,
int32_t y, int32_t width, int32_t height, int32_t border);
inline void glCopyTexSubImage2D(uint32_t target, int32_t level, int32_t xoffset,
int32_t yoffset, int32_t x, int32_t y, int32_t width,
int32_t height);
inline void glCompressedTexImage2D(uint32_t target, int32_t level, uint32_t format,
int32_t width, int32_t height, int32_t border,
int32_t image_size, void* data);
inline void glCompressedTexSubImage2D(uint32_t target, int32_t level, int32_t xoffset,
int32_t yoffset, int32_t width, int32_t height,
uint32_t format, int32_t image_size, void* data);
inline void glGenerateMipmap(uint32_t target);
inline void glReadPixels(int32_t x, int32_t y, int32_t width, int32_t height, uint32_t format,
uint32_t type, void* data);
inline void glGenFramebuffers(int32_t count, uint32_t* framebuffers);
inline void glBindFramebuffer(uint32_t target, uint32_t framebuffer);
inline uint32_t glCheckFramebufferStatus(uint32_t target);
inline void glDeleteFramebuffers(int32_t count, uint32_t* framebuffers);
inline bool glIsFramebuffer(uint32_t framebuffer);
inline void glGenRenderbuffers(int32_t count, uint32_t* renderbuffers);
inline void glBindRenderbuffer(uint32_t target, uint32_t renderbuffer);
inline void glRenderbufferStorage(uint32_t target, uint32_t format, int32_t width,
int32_t height);
inline void glDeleteRenderbuffers(int32_t count, uint32_t* renderbuffers);
inline bool glIsRenderbuffer(uint32_t renderbuffer);
inline void glGetRenderbufferParameteriv(uint32_t target, uint32_t parameter, int32_t* values);
inline void glGenBuffers(int32_t count, uint32_t* buffers);
inline void glBindBuffer(uint32_t target, uint32_t buffer);
inline void glBufferData(uint32_t target, int32_t size, void* data, uint32_t usage);
inline void glBufferSubData(uint32_t target, int32_t offset, int32_t size, void* data);
inline void glDeleteBuffers(int32_t count, uint32_t* buffers);
inline bool glIsBuffer(uint32_t buffer);
inline void glGetBufferParameteriv(uint32_t target, uint32_t parameter, int32_t* value);
inline uint32_t glCreateShader(uint32_t type);
inline void glDeleteShader(uint32_t shader);
inline void glShaderSource(uint32_t shader, int32_t count, char** source, int32_t* length);
inline void glShaderBinary(int32_t count, uint32_t* shaders, uint32_t binary_format,
void* binary, int32_t binary_size);
inline void glGetShaderInfoLog(uint32_t shader, int32_t buffer_length,
int32_t* string_length_written, char* info);
inline void glGetShaderSource(uint32_t shader, int32_t buffer_length,
int32_t* string_length_written, char* source);
inline void glReleaseShaderCompiler();
inline void glCompileShader(uint32_t shader);
inline bool glIsShader(uint32_t shader);
inline uint32_t glCreateProgram();
inline void glDeleteProgram(uint32_t program);
inline void glAttachShader(uint32_t program, uint32_t shader);
inline void glDetachShader(uint32_t program, uint32_t shader);
inline void glGetAttachedShaders(uint32_t program, int32_t buffer_length,
int32_t* shaders_length_written, uint32_t* shaders);
inline void glLinkProgram(uint32_t program);
inline void glGetProgramInfoLog(uint32_t program, int32_t buffer_length,
int32_t* string_length_written, char* info);
inline void glUseProgram(uint32_t program);
inline bool glIsProgram(uint32_t program);
inline void glValidateProgram(uint32_t program);
inline void glClearColor(float r, float g, float b, float a);
inline void glClearDepthf(float depth);
inline void glClearStencil(int32_t stencil);
inline void glClear(uint32_t mask);
inline void glCullFace(uint32_t mode);
inline void glPolygonOffset(float scale_factor, float units);
inline void glLineWidth(float width);
inline void glSampleCoverage(float value, bool invert);
inline void glHint(uint32_t target, uint32_t mode);
inline void glFramebufferRenderbuffer(uint32_t framebuffer_target,
uint32_t framebuffer_attachment,
uint32_t renderbuffer_target, uint32_t renderbuffer);
inline void glFramebufferTexture2D(uint32_t framebuffer_target, uint32_t framebuffer_attachment,
uint32_t texture_target, uint32_t texture, int32_t level);
inline void glGetFramebufferAttachmentParameteriv(uint32_t framebuffer_target,
uint32_t attachment, uint32_t parameter,
int32_t* value);
inline void glDrawElements(uint32_t draw_mode, int32_t element_count, uint32_t indices_type,
void* indices);
inline void glDrawArrays(uint32_t draw_mode, int32_t first_index, int32_t index_count);
inline void glFlush();
inline void glFinish();
inline void glGetBooleanv(uint32_t param, bool* values);
inline void glGetFloatv(uint32_t param, float* values);
inline void glGetIntegerv(uint32_t param, int32_t* values);
inline char* glGetString(uint32_t param);
inline void glEnable(uint32_t capability);
inline void glDisable(uint32_t capability);
inline bool glIsEnabled(uint32_t capability);
inline void* glMapBufferRange(uint32_t target, int32_t offset, int32_t length, uint32_t access);
inline void glUnmapBuffer(uint32_t target);
inline void glInvalidateFramebuffer(uint32_t target, int32_t count, uint32_t* attachments);
inline void glRenderbufferStorageMultisample(uint32_t target, int32_t samples, uint32_t format,
int32_t width, int32_t height);
inline void glBlitFramebuffer(int32_t srcX0, int32_t srcY0, int32_t srcX1, int32_t srcY1,
int32_t dstX0, int32_t dstY0, int32_t dstX1, int32_t dstY1,
uint32_t mask, uint32_t filter);
inline void glGenQueries(int32_t count, uint32_t* queries);
inline void glBeginQuery(uint32_t target, uint32_t query);
inline void glEndQuery(uint32_t target);
inline void glDeleteQueries(int32_t count, uint32_t* queries);
inline bool glIsQuery(uint32_t query);
inline void glGetQueryiv(uint32_t target, uint32_t parameter, int32_t* value);
inline void glGetQueryObjectuiv(uint32_t query, uint32_t parameter, uint32_t* value);
inline void glGenQueriesEXT(int32_t count, uint32_t* queries);
inline void glBeginQueryEXT(uint32_t target, uint32_t query);
inline void glEndQueryEXT(uint32_t target);
inline void glDeleteQueriesEXT(int32_t count, uint32_t* queries);
inline bool glIsQueryEXT(uint32_t query);
inline void glQueryCounterEXT(uint32_t query, uint32_t target);
inline void glGetQueryivEXT(uint32_t target, uint32_t parameter, int32_t* value);
inline void glGetQueryObjectivEXT(uint32_t query, uint32_t parameter, int32_t* value);
inline void glGetQueryObjectuivEXT(uint32_t query, uint32_t parameter, uint32_t* value);
inline void glGetQueryObjecti64vEXT(uint32_t query, uint32_t parameter, int64_t* value);
inline void glGetQueryObjectui64vEXT(uint32_t query, uint32_t parameter, uint64_t* value);
protected:
GlesImports mImports;
// Globals
ContextID NextContextID;
ThreadID CurrentThread;
ThreadIDToContextRef Contexts;
EGLContextToContextRef EGLContexts;
GLXContextToContextRef GLXContexts;
HGLRCToContextRef WGLContexts;
CGLContextObjToContextRef CGLContexts;
#include "gles_state_externs.inl"
};
// Inline methods
inline void GlesSpy::init(std::shared_ptr<gapic::Encoder> encoder) {
SpyBase::init(encoder);
mImports.Resolve();
}
inline void GlesSpy::replayCreateRenderer(uint32_t id) {
GAPID_INFO("replayCreateRenderer()\n");
do {
} while (false);
mEncoder->Uint16(0); // Type ID -- TODO: mEncoder->Id(REPLAY_CREATE_RENDERER_ID);
encodeObservations();
mEncoder->Uint32(id);
}
inline void GlesSpy::replayBindRenderer(uint32_t id) {
GAPID_INFO("replayBindRenderer()\n");
do {
} while (false);
mEncoder->Uint16(1); // Type ID -- TODO: mEncoder->Id(REPLAY_BIND_RENDERER_ID);
encodeObservations();
mEncoder->Uint32(id);
}
inline void GlesSpy::backbufferInfo(int32_t width, int32_t height, uint32_t color_fmt,
uint32_t depth_fmt, uint32_t stencil_fmt,
bool resetViewportScissor) {
GAPID_INFO("backbufferInfo()\n");
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_0_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_0_result;
std::shared_ptr<Framebuffer> l_backbuffer =
l_ctx->mInstances.mFramebuffers[(FramebufferId)(0)];
RenderbufferId l_color_id = (RenderbufferId)(
l_backbuffer->mAttachments[FramebufferAttachment::GL_COLOR_ATTACHMENT0].mObject);
std::shared_ptr<Renderbuffer> l_color_buffer = l_ctx->mInstances.mRenderbuffers[l_color_id];
RenderbufferId l_depth_id = (RenderbufferId)(
l_backbuffer->mAttachments[FramebufferAttachment::GL_DEPTH_ATTACHMENT].mObject);
std::shared_ptr<Renderbuffer> l_depth_buffer = l_ctx->mInstances.mRenderbuffers[l_depth_id];
RenderbufferId l_stencil_id = (RenderbufferId)(
l_backbuffer->mAttachments[FramebufferAttachment::GL_STENCIL_ATTACHMENT].mObject);
std::shared_ptr<Renderbuffer> l_stencil_buffer =
l_ctx->mInstances.mRenderbuffers[l_stencil_id];
l_color_buffer->mWidth = width;
l_color_buffer->mHeight = height;
l_color_buffer->mFormat = color_fmt;
l_depth_buffer->mWidth = width;
l_depth_buffer->mHeight = height;
l_depth_buffer->mFormat = depth_fmt;
l_stencil_buffer->mWidth = width;
l_stencil_buffer->mHeight = height;
l_stencil_buffer->mFormat = stencil_fmt;
if (resetViewportScissor) {
l_ctx->mRasterizing.mScissor.mWidth = width;
l_ctx->mRasterizing.mScissor.mHeight = height;
l_ctx->mRasterizing.mViewport.mWidth = width;
l_ctx->mRasterizing.mViewport.mHeight = height;
}
} while (false);
mEncoder->Uint16(2); // Type ID -- TODO: mEncoder->Id(BACKBUFFER_INFO_ID);
encodeObservations();
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Uint32(static_cast<uint32_t>(color_fmt));
mEncoder->Uint32(static_cast<uint32_t>(depth_fmt));
mEncoder->Uint32(static_cast<uint32_t>(stencil_fmt));
mEncoder->Bool(resetViewportScissor);
}
inline void GlesSpy::startTimer(uint8_t index) {
GAPID_INFO("startTimer()\n");
do {
} while (false);
mEncoder->Uint16(3); // Type ID -- TODO: mEncoder->Id(START_TIMER_ID);
encodeObservations();
mEncoder->Uint8(index);
}
inline uint64_t GlesSpy::stopTimer(uint8_t index) {
GAPID_INFO("stopTimer()\n");
uint64_t result = 0;
do {
break;
} while (false);
mEncoder->Uint16(4); // Type ID -- TODO: mEncoder->Id(STOP_TIMER_ID);
encodeObservations();
mEncoder->Uint8(index);
mEncoder->Uint64(result);
return result;
}
inline void GlesSpy::flushPostBuffer() {
GAPID_INFO("flushPostBuffer()\n");
do {
} while (false);
mEncoder->Uint16(5); // Type ID -- TODO: mEncoder->Id(FLUSH_POST_BUFFER_ID);
encodeObservations();
}
inline int GlesSpy::eglInitialize(void* dpy, int* major, int* minor) {
GAPID_INFO("eglInitialize()\n");
int result = mImports.eglInitialize(dpy, major, minor);
do {
write(slice(major, 0, 1), 0, read(slice(major, 0, 1), 0));
write(slice(minor, 0, 1), 0, read(slice(minor, 0, 1), 0));
break;
} while (false);
mEncoder->Uint16(6); // Type ID -- TODO: mEncoder->Id(EGL_INITIALIZE_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(dpy));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(major));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(minor));
mEncoder->Uint32(0); // PoolID
mEncoder->Int64(result);
return result;
}
inline void* GlesSpy::eglCreateContext(void* display, void* config, void* share_context,
int* attrib_list) {
GAPID_INFO("eglCreateContext()\n");
void* result = mImports.eglCreateContext(display, config, share_context, attrib_list);
do {
EGLContext l_context = (EGLContext)(result);
ContextID l_identifier = this->NextContextID;
this->NextContextID = this->NextContextID + (ContextID)(1);
std::shared_ptr<Context> l_ctx = std::shared_ptr<Context>((new Context()));
l_ctx->mIdentifier = l_identifier;
l_ctx->mInstances.mBuffers[(BufferId)(0)] = std::shared_ptr<Buffer>((new Buffer()));
l_ctx->mInstances.mTextures[(TextureId)(0)] = std::shared_ptr<Texture>((new Texture()));
l_ctx->mInstances.mRenderbuffers[(RenderbufferId)(0)] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
RenderbufferId l_color_id = (RenderbufferId)(4294967295);
RenderbufferId l_depth_id = (RenderbufferId)(4294967294);
RenderbufferId l_stencil_id = (RenderbufferId)(4294967293);
l_ctx->mInstances.mRenderbuffers[l_color_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_depth_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_stencil_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
std::shared_ptr<Framebuffer> l_backbuffer =
std::shared_ptr<Framebuffer>((new Framebuffer()));
l_backbuffer->mAttachments[FramebufferAttachment::GL_COLOR_ATTACHMENT0] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_color_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_DEPTH_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_depth_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_STENCIL_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_stencil_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_ctx->mInstances.mFramebuffers[(FramebufferId)(0)] = l_backbuffer;
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_DRAW_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_READ_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = 4294967295;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = 4294967295;
l_ctx->mPixelStorage[PixelStoreParameter::GL_PACK_ALIGNMENT] = 4;
l_ctx->mPixelStorage[PixelStoreParameter::GL_UNPACK_ALIGNMENT] = 4;
for (int32_t l_i = 0; l_i < 64; ++l_i) {
l_ctx->mVertexAttributeArrays[(AttributeLocation)(l_i)] =
std::shared_ptr<VertexAttributeArray>((new VertexAttributeArray()));
}
std::shared_ptr<Context> l_CreateContext_1_result = l_ctx;
this->EGLContexts[l_context] = l_CreateContext_1_result;
break;
} while (false);
mEncoder->Uint16(7); // Type ID -- TODO: mEncoder->Id(EGL_CREATE_CONTEXT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(display));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(config));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(share_context));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(attrib_list));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(result));
mEncoder->Uint32(0); // PoolID
return result;
}
inline int GlesSpy::eglMakeCurrent(void* display, void* draw, void* read, void* context) {
GAPID_INFO("eglMakeCurrent()\n");
int result = mImports.eglMakeCurrent(display, draw, read, context);
do {
std::shared_ptr<Context> l_SetContext_2_context = this->EGLContexts[context];
this->Contexts[this->CurrentThread] = l_SetContext_2_context;
break;
} while (false);
mEncoder->Uint16(8); // Type ID -- TODO: mEncoder->Id(EGL_MAKE_CURRENT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(display));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(draw));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(read));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(context));
mEncoder->Uint32(0); // PoolID
mEncoder->Int64(result);
return result;
}
inline int GlesSpy::eglSwapBuffers(void* display, void* surface) {
GAPID_INFO("eglSwapBuffers()\n");
int result = mImports.eglSwapBuffers(display, surface);
do {
break;
} while (false);
mEncoder->Uint16(9); // Type ID -- TODO: mEncoder->Id(EGL_SWAP_BUFFERS_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(display));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(surface));
mEncoder->Uint32(0); // PoolID
mEncoder->Int64(result);
return result;
}
inline int GlesSpy::eglQuerySurface(void* display, void* surface, int attribute, int* value) {
GAPID_INFO("eglQuerySurface()\n");
int result = mImports.eglQuerySurface(display, surface, attribute, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
break;
} while (false);
mEncoder->Uint16(10); // Type ID -- TODO: mEncoder->Id(EGL_QUERY_SURFACE_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(display));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(surface));
mEncoder->Uint32(0); // PoolID
mEncoder->Int64(attribute);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
mEncoder->Int64(result);
return result;
}
inline void* GlesSpy::glXCreateContext(void* dpy, void* vis, void* shareList, bool direct) {
GAPID_INFO("glXCreateContext()\n");
void* result = mImports.glXCreateContext(dpy, vis, shareList, direct);
do {
GLXContext l_context = (GLXContext)(result);
ContextID l_identifier = this->NextContextID;
this->NextContextID = this->NextContextID + (ContextID)(1);
std::shared_ptr<Context> l_ctx = std::shared_ptr<Context>((new Context()));
l_ctx->mIdentifier = l_identifier;
l_ctx->mInstances.mBuffers[(BufferId)(0)] = std::shared_ptr<Buffer>((new Buffer()));
l_ctx->mInstances.mTextures[(TextureId)(0)] = std::shared_ptr<Texture>((new Texture()));
l_ctx->mInstances.mRenderbuffers[(RenderbufferId)(0)] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
RenderbufferId l_color_id = (RenderbufferId)(4294967295);
RenderbufferId l_depth_id = (RenderbufferId)(4294967294);
RenderbufferId l_stencil_id = (RenderbufferId)(4294967293);
l_ctx->mInstances.mRenderbuffers[l_color_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_depth_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_stencil_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
std::shared_ptr<Framebuffer> l_backbuffer =
std::shared_ptr<Framebuffer>((new Framebuffer()));
l_backbuffer->mAttachments[FramebufferAttachment::GL_COLOR_ATTACHMENT0] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_color_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_DEPTH_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_depth_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_STENCIL_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_stencil_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_ctx->mInstances.mFramebuffers[(FramebufferId)(0)] = l_backbuffer;
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_DRAW_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_READ_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = 4294967295;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = 4294967295;
l_ctx->mPixelStorage[PixelStoreParameter::GL_PACK_ALIGNMENT] = 4;
l_ctx->mPixelStorage[PixelStoreParameter::GL_UNPACK_ALIGNMENT] = 4;
for (int32_t l_i = 0; l_i < 64; ++l_i) {
l_ctx->mVertexAttributeArrays[(AttributeLocation)(l_i)] =
std::shared_ptr<VertexAttributeArray>((new VertexAttributeArray()));
}
std::shared_ptr<Context> l_CreateContext_3_result = l_ctx;
this->GLXContexts[l_context] = l_CreateContext_3_result;
break;
} while (false);
mEncoder->Uint16(11); // Type ID -- TODO: mEncoder->Id(GL_X_CREATE_CONTEXT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(dpy));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(vis));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(shareList));
mEncoder->Uint32(0); // PoolID
mEncoder->Bool(direct);
mEncoder->Uint64(reinterpret_cast<uint64_t>(result));
mEncoder->Uint32(0); // PoolID
return result;
}
inline void* GlesSpy::glXCreateNewContext(void* display, void* fbconfig, uint32_t type,
void* shared, bool direct) {
GAPID_INFO("glXCreateNewContext()\n");
void* result = mImports.glXCreateNewContext(display, fbconfig, type, shared, direct);
do {
GLXContext l_context = (GLXContext)(result);
ContextID l_identifier = this->NextContextID;
this->NextContextID = this->NextContextID + (ContextID)(1);
std::shared_ptr<Context> l_ctx = std::shared_ptr<Context>((new Context()));
l_ctx->mIdentifier = l_identifier;
l_ctx->mInstances.mBuffers[(BufferId)(0)] = std::shared_ptr<Buffer>((new Buffer()));
l_ctx->mInstances.mTextures[(TextureId)(0)] = std::shared_ptr<Texture>((new Texture()));
l_ctx->mInstances.mRenderbuffers[(RenderbufferId)(0)] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
RenderbufferId l_color_id = (RenderbufferId)(4294967295);
RenderbufferId l_depth_id = (RenderbufferId)(4294967294);
RenderbufferId l_stencil_id = (RenderbufferId)(4294967293);
l_ctx->mInstances.mRenderbuffers[l_color_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_depth_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_stencil_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
std::shared_ptr<Framebuffer> l_backbuffer =
std::shared_ptr<Framebuffer>((new Framebuffer()));
l_backbuffer->mAttachments[FramebufferAttachment::GL_COLOR_ATTACHMENT0] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_color_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_DEPTH_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_depth_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_STENCIL_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_stencil_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_ctx->mInstances.mFramebuffers[(FramebufferId)(0)] = l_backbuffer;
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_DRAW_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_READ_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = 4294967295;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = 4294967295;
l_ctx->mPixelStorage[PixelStoreParameter::GL_PACK_ALIGNMENT] = 4;
l_ctx->mPixelStorage[PixelStoreParameter::GL_UNPACK_ALIGNMENT] = 4;
for (int32_t l_i = 0; l_i < 64; ++l_i) {
l_ctx->mVertexAttributeArrays[(AttributeLocation)(l_i)] =
std::shared_ptr<VertexAttributeArray>((new VertexAttributeArray()));
}
std::shared_ptr<Context> l_CreateContext_4_result = l_ctx;
this->GLXContexts[l_context] = l_CreateContext_4_result;
break;
} while (false);
mEncoder->Uint16(12); // Type ID -- TODO: mEncoder->Id(GL_X_CREATE_NEW_CONTEXT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(display));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(fbconfig));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint32(type);
mEncoder->Uint64(reinterpret_cast<uint64_t>(shared));
mEncoder->Uint32(0); // PoolID
mEncoder->Bool(direct);
mEncoder->Uint64(reinterpret_cast<uint64_t>(result));
mEncoder->Uint32(0); // PoolID
return result;
}
inline void GlesSpy::glXMakeContextCurrent(void* display, void* draw, void* read, void* ctx) {
GAPID_INFO("glXMakeContextCurrent()\n");
mImports.glXMakeContextCurrent(display, draw, read, ctx);
do {
std::shared_ptr<Context> l_SetContext_5_context = this->GLXContexts[ctx];
this->Contexts[this->CurrentThread] = l_SetContext_5_context;
} while (false);
mEncoder->Uint16(13); // Type ID -- TODO: mEncoder->Id(GL_X_MAKE_CONTEXT_CURRENT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(display));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(draw));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(read));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(ctx));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glXSwapBuffers(void* display, void* drawable) {
GAPID_INFO("glXSwapBuffers()\n");
mImports.glXSwapBuffers(display, drawable);
do {
} while (false);
mEncoder->Uint16(14); // Type ID -- TODO: mEncoder->Id(GL_X_SWAP_BUFFERS_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(display));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(drawable));
mEncoder->Uint32(0); // PoolID
}
inline void* GlesSpy::wglCreateContext(void* hdc) {
GAPID_INFO("wglCreateContext()\n");
void* result = mImports.wglCreateContext(hdc);
do {
HGLRC l_context = (HGLRC)(result);
ContextID l_identifier = this->NextContextID;
this->NextContextID = this->NextContextID + (ContextID)(1);
std::shared_ptr<Context> l_ctx = std::shared_ptr<Context>((new Context()));
l_ctx->mIdentifier = l_identifier;
l_ctx->mInstances.mBuffers[(BufferId)(0)] = std::shared_ptr<Buffer>((new Buffer()));
l_ctx->mInstances.mTextures[(TextureId)(0)] = std::shared_ptr<Texture>((new Texture()));
l_ctx->mInstances.mRenderbuffers[(RenderbufferId)(0)] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
RenderbufferId l_color_id = (RenderbufferId)(4294967295);
RenderbufferId l_depth_id = (RenderbufferId)(4294967294);
RenderbufferId l_stencil_id = (RenderbufferId)(4294967293);
l_ctx->mInstances.mRenderbuffers[l_color_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_depth_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_stencil_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
std::shared_ptr<Framebuffer> l_backbuffer =
std::shared_ptr<Framebuffer>((new Framebuffer()));
l_backbuffer->mAttachments[FramebufferAttachment::GL_COLOR_ATTACHMENT0] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_color_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_DEPTH_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_depth_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_STENCIL_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_stencil_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_ctx->mInstances.mFramebuffers[(FramebufferId)(0)] = l_backbuffer;
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_DRAW_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_READ_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = 4294967295;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = 4294967295;
l_ctx->mPixelStorage[PixelStoreParameter::GL_PACK_ALIGNMENT] = 4;
l_ctx->mPixelStorage[PixelStoreParameter::GL_UNPACK_ALIGNMENT] = 4;
for (int32_t l_i = 0; l_i < 64; ++l_i) {
l_ctx->mVertexAttributeArrays[(AttributeLocation)(l_i)] =
std::shared_ptr<VertexAttributeArray>((new VertexAttributeArray()));
}
std::shared_ptr<Context> l_CreateContext_6_result = l_ctx;
this->WGLContexts[l_context] = l_CreateContext_6_result;
break;
} while (false);
mEncoder->Uint16(15); // Type ID -- TODO: mEncoder->Id(WGL_CREATE_CONTEXT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(hdc));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(result));
mEncoder->Uint32(0); // PoolID
return result;
}
inline void* GlesSpy::wglCreateContextAttribsARB(void* hdc, void* hShareContext, int* attribList) {
GAPID_INFO("wglCreateContextAttribsARB()\n");
void* result = mImports.wglCreateContextAttribsARB(hdc, hShareContext, attribList);
do {
HGLRC l_context = (HGLRC)(result);
ContextID l_identifier = this->NextContextID;
this->NextContextID = this->NextContextID + (ContextID)(1);
std::shared_ptr<Context> l_ctx = std::shared_ptr<Context>((new Context()));
l_ctx->mIdentifier = l_identifier;
l_ctx->mInstances.mBuffers[(BufferId)(0)] = std::shared_ptr<Buffer>((new Buffer()));
l_ctx->mInstances.mTextures[(TextureId)(0)] = std::shared_ptr<Texture>((new Texture()));
l_ctx->mInstances.mRenderbuffers[(RenderbufferId)(0)] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
RenderbufferId l_color_id = (RenderbufferId)(4294967295);
RenderbufferId l_depth_id = (RenderbufferId)(4294967294);
RenderbufferId l_stencil_id = (RenderbufferId)(4294967293);
l_ctx->mInstances.mRenderbuffers[l_color_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_depth_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_stencil_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
std::shared_ptr<Framebuffer> l_backbuffer =
std::shared_ptr<Framebuffer>((new Framebuffer()));
l_backbuffer->mAttachments[FramebufferAttachment::GL_COLOR_ATTACHMENT0] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_color_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_DEPTH_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_depth_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_STENCIL_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_stencil_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_ctx->mInstances.mFramebuffers[(FramebufferId)(0)] = l_backbuffer;
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_DRAW_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_READ_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = 4294967295;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = 4294967295;
l_ctx->mPixelStorage[PixelStoreParameter::GL_PACK_ALIGNMENT] = 4;
l_ctx->mPixelStorage[PixelStoreParameter::GL_UNPACK_ALIGNMENT] = 4;
for (int32_t l_i = 0; l_i < 64; ++l_i) {
l_ctx->mVertexAttributeArrays[(AttributeLocation)(l_i)] =
std::shared_ptr<VertexAttributeArray>((new VertexAttributeArray()));
}
std::shared_ptr<Context> l_CreateContext_7_result = l_ctx;
this->WGLContexts[l_context] = l_CreateContext_7_result;
break;
} while (false);
mEncoder->Uint16(16); // Type ID -- TODO: mEncoder->Id(WGL_CREATE_CONTEXT_ATTRIBS_A_R_B_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(hdc));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(hShareContext));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(attribList));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(result));
mEncoder->Uint32(0); // PoolID
return result;
}
inline int GlesSpy::wglMakeCurrent(void* hdc, void* hglrc) {
GAPID_INFO("wglMakeCurrent()\n");
int result = mImports.wglMakeCurrent(hdc, hglrc);
do {
std::shared_ptr<Context> l_SetContext_8_context = this->WGLContexts[hglrc];
this->Contexts[this->CurrentThread] = l_SetContext_8_context;
break;
} while (false);
mEncoder->Uint16(17); // Type ID -- TODO: mEncoder->Id(WGL_MAKE_CURRENT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(hdc));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(hglrc));
mEncoder->Uint32(0); // PoolID
mEncoder->Int64(result);
return result;
}
inline void GlesSpy::wglSwapBuffers(void* hdc) {
GAPID_INFO("wglSwapBuffers()\n");
mImports.wglSwapBuffers(hdc);
do {
} while (false);
mEncoder->Uint16(18); // Type ID -- TODO: mEncoder->Id(WGL_SWAP_BUFFERS_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(hdc));
mEncoder->Uint32(0); // PoolID
}
inline int GlesSpy::CGLCreateContext(void* pix, void* share, void** ctx) {
GAPID_INFO("CGLCreateContext()\n");
int result = mImports.CGLCreateContext(pix, share, ctx);
do {
CGLContextObj l_context = (CGLContextObj)(read(slice(ctx, 0, 1), 0));
ContextID l_identifier = this->NextContextID;
this->NextContextID = this->NextContextID + (ContextID)(1);
std::shared_ptr<Context> l_ctx = std::shared_ptr<Context>((new Context()));
l_ctx->mIdentifier = l_identifier;
l_ctx->mInstances.mBuffers[(BufferId)(0)] = std::shared_ptr<Buffer>((new Buffer()));
l_ctx->mInstances.mTextures[(TextureId)(0)] = std::shared_ptr<Texture>((new Texture()));
l_ctx->mInstances.mRenderbuffers[(RenderbufferId)(0)] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
RenderbufferId l_color_id = (RenderbufferId)(4294967295);
RenderbufferId l_depth_id = (RenderbufferId)(4294967294);
RenderbufferId l_stencil_id = (RenderbufferId)(4294967293);
l_ctx->mInstances.mRenderbuffers[l_color_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_depth_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
l_ctx->mInstances.mRenderbuffers[l_stencil_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
std::shared_ptr<Framebuffer> l_backbuffer =
std::shared_ptr<Framebuffer>((new Framebuffer()));
l_backbuffer->mAttachments[FramebufferAttachment::GL_COLOR_ATTACHMENT0] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_color_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_DEPTH_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_depth_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_backbuffer->mAttachments[FramebufferAttachment::GL_STENCIL_ATTACHMENT] =
FramebufferAttachmentInfo()
.SetObject((uint32_t)(l_stencil_id))
.SetType(FramebufferAttachmentType::GL_RENDERBUFFER)
.SetCubeMapFace(CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X);
l_ctx->mInstances.mFramebuffers[(FramebufferId)(0)] = l_backbuffer;
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_DRAW_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_READ_FRAMEBUFFER] = (FramebufferId)(0);
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = 4294967295;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = 4294967295;
l_ctx->mPixelStorage[PixelStoreParameter::GL_PACK_ALIGNMENT] = 4;
l_ctx->mPixelStorage[PixelStoreParameter::GL_UNPACK_ALIGNMENT] = 4;
for (int32_t l_i = 0; l_i < 64; ++l_i) {
l_ctx->mVertexAttributeArrays[(AttributeLocation)(l_i)] =
std::shared_ptr<VertexAttributeArray>((new VertexAttributeArray()));
}
std::shared_ptr<Context> l_CreateContext_9_result = l_ctx;
this->CGLContexts[l_context] = l_CreateContext_9_result;
write(slice(ctx, 0, 1), 0, l_context);
break;
} while (false);
mEncoder->Uint16(19); // Type ID -- TODO: mEncoder->Id(C_G_L_CREATE_CONTEXT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(pix));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(share));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(ctx));
mEncoder->Uint32(0); // PoolID
mEncoder->Int64(result);
return result;
}
inline int GlesSpy::CGLSetCurrentContext(void* ctx) {
GAPID_INFO("CGLSetCurrentContext()\n");
int result = mImports.CGLSetCurrentContext(ctx);
do {
std::shared_ptr<Context> l_SetContext_10_context = this->CGLContexts[ctx];
this->Contexts[this->CurrentThread] = l_SetContext_10_context;
break;
} while (false);
mEncoder->Uint16(20); // Type ID -- TODO: mEncoder->Id(C_G_L_SET_CURRENT_CONTEXT_ID);
encodeObservations();
mEncoder->Uint64(reinterpret_cast<uint64_t>(ctx));
mEncoder->Uint32(0); // PoolID
mEncoder->Int64(result);
return result;
}
inline void GlesSpy::glEnableClientState(uint32_t type) {
GAPID_INFO("glEnableClientState()\n");
mImports.glEnableClientState(type);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_11_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_11_result;
l_ctx->mCapabilities[(uint32_t)(type)] = true;
} while (false);
mEncoder->Uint16(21); // Type ID -- TODO: mEncoder->Id(GL_ENABLE_CLIENT_STATE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(type));
}
inline void GlesSpy::glDisableClientState(uint32_t type) {
GAPID_INFO("glDisableClientState()\n");
mImports.glDisableClientState(type);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_12_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_12_result;
l_ctx->mCapabilities[(uint32_t)(type)] = false;
} while (false);
mEncoder->Uint16(22); // Type ID -- TODO: mEncoder->Id(GL_DISABLE_CLIENT_STATE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(type));
}
inline void GlesSpy::glGetProgramBinaryOES(uint32_t program, int32_t buffer_size,
int32_t* bytes_written, uint32_t* binary_format,
void* binary) {
GAPID_INFO("glGetProgramBinaryOES()\n");
mImports.glGetProgramBinaryOES(program, buffer_size, bytes_written, binary_format, binary);
do {
int32_t l_l = (int32_t)(read(slice(bytes_written, 0, 1), 0));
write(slice(bytes_written, 0, 1), 0, l_l);
write(slice(binary_format, 0, 1), 0, read(slice(binary_format, 0, 1), 0));
write(slice(binary, (uint64_t)(0), (uint64_t)(l_l)));
} while (false);
mEncoder->Uint16(23); // Type ID -- TODO: mEncoder->Id(GL_GET_PROGRAM_BINARY_O_E_S_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Int32(buffer_size);
mEncoder->Uint64(reinterpret_cast<uint64_t>(bytes_written));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(binary_format));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(binary));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glProgramBinaryOES(uint32_t program, uint32_t binary_format, void* binary,
int32_t binary_size) {
GAPID_INFO("glProgramBinaryOES()\n");
mImports.glProgramBinaryOES(program, binary_format, binary, binary_size);
do {
} while (false);
mEncoder->Uint16(24); // Type ID -- TODO: mEncoder->Id(GL_PROGRAM_BINARY_O_E_S_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Uint32(binary_format);
mEncoder->Uint64(reinterpret_cast<uint64_t>(binary));
mEncoder->Uint32(0); // PoolID
mEncoder->Int32(binary_size);
}
inline void GlesSpy::glStartTilingQCOM(int32_t x, int32_t y, int32_t width, int32_t height,
uint32_t preserveMask) {
GAPID_INFO("glStartTilingQCOM()\n");
mImports.glStartTilingQCOM(x, y, width, height, preserveMask);
do {
} while (false);
mEncoder->Uint16(25); // Type ID -- TODO: mEncoder->Id(GL_START_TILING_Q_C_O_M_ID);
encodeObservations();
mEncoder->Int32(x);
mEncoder->Int32(y);
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Uint32(static_cast<uint32_t>(preserveMask));
}
inline void GlesSpy::glEndTilingQCOM(uint32_t preserve_mask) {
GAPID_INFO("glEndTilingQCOM()\n");
mImports.glEndTilingQCOM(preserve_mask);
do {
} while (false);
mEncoder->Uint16(26); // Type ID -- TODO: mEncoder->Id(GL_END_TILING_Q_C_O_M_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(preserve_mask));
}
inline void GlesSpy::glDiscardFramebufferEXT(uint32_t target, int32_t numAttachments,
uint32_t* attachments) {
GAPID_INFO("glDiscardFramebufferEXT()\n");
mImports.glDiscardFramebufferEXT(target, numAttachments, attachments);
do {
} while (false);
mEncoder->Uint16(27); // Type ID -- TODO: mEncoder->Id(GL_DISCARD_FRAMEBUFFER_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(numAttachments);
mEncoder->Uint64(reinterpret_cast<uint64_t>(attachments));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glInsertEventMarkerEXT(int32_t length, char* marker) {
GAPID_INFO("glInsertEventMarkerEXT()\n");
mImports.glInsertEventMarkerEXT(length, marker);
do {
} while (false);
mEncoder->Uint16(28); // Type ID -- TODO: mEncoder->Id(GL_INSERT_EVENT_MARKER_E_X_T_ID);
encodeObservations();
mEncoder->Int32(length);
mEncoder->String(marker);
}
inline void GlesSpy::glPushGroupMarkerEXT(int32_t length, char* marker) {
GAPID_INFO("glPushGroupMarkerEXT()\n");
mImports.glPushGroupMarkerEXT(length, marker);
do {
} while (false);
mEncoder->Uint16(29); // Type ID -- TODO: mEncoder->Id(GL_PUSH_GROUP_MARKER_E_X_T_ID);
encodeObservations();
mEncoder->Int32(length);
mEncoder->String(marker);
}
inline void GlesSpy::glPopGroupMarkerEXT() {
GAPID_INFO("glPopGroupMarkerEXT()\n");
mImports.glPopGroupMarkerEXT();
do {
} while (false);
mEncoder->Uint16(30); // Type ID -- TODO: mEncoder->Id(GL_POP_GROUP_MARKER_E_X_T_ID);
encodeObservations();
}
inline void GlesSpy::glTexStorage1DEXT(uint32_t target, int32_t levels, uint32_t format,
int32_t width) {
GAPID_INFO("glTexStorage1DEXT()\n");
mImports.glTexStorage1DEXT(target, levels, format, width);
do {
} while (false);
mEncoder->Uint16(31); // Type ID -- TODO: mEncoder->Id(GL_TEX_STORAGE1D_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(levels);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
}
inline void GlesSpy::glTexStorage2DEXT(uint32_t target, int32_t levels, uint32_t format,
int32_t width, int32_t height) {
GAPID_INFO("glTexStorage2DEXT()\n");
mImports.glTexStorage2DEXT(target, levels, format, width, height);
do {
} while (false);
mEncoder->Uint16(32); // Type ID -- TODO: mEncoder->Id(GL_TEX_STORAGE2D_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(levels);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
mEncoder->Int32(height);
}
inline void GlesSpy::glTexStorage3DEXT(uint32_t target, int32_t levels, uint32_t format,
int32_t width, int32_t height, int32_t depth) {
GAPID_INFO("glTexStorage3DEXT()\n");
mImports.glTexStorage3DEXT(target, levels, format, width, height, depth);
do {
} while (false);
mEncoder->Uint16(33); // Type ID -- TODO: mEncoder->Id(GL_TEX_STORAGE3D_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(levels);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Int32(depth);
}
inline void GlesSpy::glTextureStorage1DEXT(uint32_t texture, uint32_t target, int32_t levels,
uint32_t format, int32_t width) {
GAPID_INFO("glTextureStorage1DEXT()\n");
mImports.glTextureStorage1DEXT(texture, target, levels, format, width);
do {
} while (false);
mEncoder->Uint16(34); // Type ID -- TODO: mEncoder->Id(GL_TEXTURE_STORAGE1D_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(texture);
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(levels);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
}
inline void GlesSpy::glTextureStorage2DEXT(uint32_t texture, uint32_t target, int32_t levels,
uint32_t format, int32_t width, int32_t height) {
GAPID_INFO("glTextureStorage2DEXT()\n");
mImports.glTextureStorage2DEXT(texture, target, levels, format, width, height);
do {
} while (false);
mEncoder->Uint16(35); // Type ID -- TODO: mEncoder->Id(GL_TEXTURE_STORAGE2D_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(texture);
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(levels);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
mEncoder->Int32(height);
}
inline void GlesSpy::glTextureStorage3DEXT(uint32_t texture, uint32_t target, int32_t levels,
uint32_t format, int32_t width, int32_t height,
int32_t depth) {
GAPID_INFO("glTextureStorage3DEXT()\n");
mImports.glTextureStorage3DEXT(texture, target, levels, format, width, height, depth);
do {
} while (false);
mEncoder->Uint16(36); // Type ID -- TODO: mEncoder->Id(GL_TEXTURE_STORAGE3D_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(texture);
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(levels);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Int32(depth);
}
inline void GlesSpy::glGenVertexArraysOES(int32_t count, uint32_t* arrays) {
GAPID_INFO("glGenVertexArraysOES()\n");
mImports.glGenVertexArraysOES(count, arrays);
do {
Slice<VertexArrayId> l_a = slice(arrays, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_13_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_13_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
VertexArrayId l_id = (VertexArrayId)(
read(slice(arrays, (uint64_t)(0), (uint64_t)(count)), (uint64_t)(l_i)));
l_ctx->mInstances.mVertexArrays[l_id] =
std::shared_ptr<VertexArray>((new VertexArray()));
write(l_a, (uint64_t)(l_i), l_id);
}
} while (false);
mEncoder->Uint16(37); // Type ID -- TODO: mEncoder->Id(GL_GEN_VERTEX_ARRAYS_O_E_S_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(arrays));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glBindVertexArrayOES(uint32_t array) {
GAPID_INFO("glBindVertexArrayOES()\n");
mImports.glBindVertexArrayOES(array);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_14_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_14_result;
if (!(l_ctx->mInstances.mVertexArrays.count(array) > 0)) {
l_ctx->mInstances.mVertexArrays[array] =
std::shared_ptr<VertexArray>((new VertexArray()));
}
l_ctx->mBoundVertexArray = array;
} while (false);
mEncoder->Uint16(38); // Type ID -- TODO: mEncoder->Id(GL_BIND_VERTEX_ARRAY_O_E_S_ID);
encodeObservations();
mEncoder->Uint32(array);
}
inline void GlesSpy::glDeleteVertexArraysOES(int32_t count, uint32_t* arrays) {
GAPID_INFO("glDeleteVertexArraysOES()\n");
mImports.glDeleteVertexArraysOES(count, arrays);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_15_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_15_result;
Slice<VertexArrayId> l_a = slice(arrays, (uint64_t)(0), (uint64_t)(count));
for (int32_t l_i = 0; l_i < count; ++l_i) {
l_ctx->mInstances.mVertexArrays[read(l_a, (uint64_t)(l_i))] =
std::shared_ptr<VertexArray>();
}
} while (false);
mEncoder->Uint16(39); // Type ID -- TODO: mEncoder->Id(GL_DELETE_VERTEX_ARRAYS_O_E_S_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(arrays));
mEncoder->Uint32(0); // PoolID
}
inline bool GlesSpy::glIsVertexArrayOES(uint32_t array) {
GAPID_INFO("glIsVertexArrayOES()\n");
bool result = mImports.glIsVertexArrayOES(array);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_16_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_16_result;
break;
} while (false);
mEncoder->Uint16(40); // Type ID -- TODO: mEncoder->Id(GL_IS_VERTEX_ARRAY_O_E_S_ID);
encodeObservations();
mEncoder->Uint32(array);
mEncoder->Bool(result);
return result;
}
inline void GlesSpy::glEGLImageTargetTexture2DOES(uint32_t target, void* image) {
GAPID_INFO("glEGLImageTargetTexture2DOES()\n");
mImports.glEGLImageTargetTexture2DOES(target, image);
do {
} while (false);
mEncoder->Uint16(
41); // Type ID -- TODO: mEncoder->Id(GL_E_G_L_IMAGE_TARGET_TEXTURE2D_O_E_S_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint64(reinterpret_cast<uint64_t>(image));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glEGLImageTargetRenderbufferStorageOES(uint32_t target, void* image) {
GAPID_INFO("glEGLImageTargetRenderbufferStorageOES()\n");
mImports.glEGLImageTargetRenderbufferStorageOES(target, image);
do {
} while (false);
mEncoder->Uint16(42); // Type ID -- TODO:
// mEncoder->Id(GL_E_G_L_IMAGE_TARGET_RENDERBUFFER_STORAGE_O_E_S_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint64(reinterpret_cast<uint64_t>(image));
mEncoder->Uint32(0); // PoolID
}
inline uint32_t GlesSpy::glGetGraphicsResetStatusEXT() {
GAPID_INFO("glGetGraphicsResetStatusEXT()\n");
uint32_t result = mImports.glGetGraphicsResetStatusEXT();
do {
break;
} while (false);
mEncoder->Uint16(43); // Type ID -- TODO: mEncoder->Id(GL_GET_GRAPHICS_RESET_STATUS_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(result));
return result;
}
inline void GlesSpy::glBindAttribLocation(uint32_t program, uint32_t location, char* name) {
GAPID_INFO("glBindAttribLocation()\n");
mImports.glBindAttribLocation(program, location, name);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_17_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_17_result;
std::shared_ptr<Program> l_p = l_ctx->mInstances.mPrograms[program];
l_p->mAttributeBindings[name] = location;
} while (false);
mEncoder->Uint16(44); // Type ID -- TODO: mEncoder->Id(GL_BIND_ATTRIB_LOCATION_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Uint32(location);
mEncoder->String(name);
}
inline void GlesSpy::glBlendFunc(uint32_t src_factor, uint32_t dst_factor) {
GAPID_INFO("glBlendFunc()\n");
mImports.glBlendFunc(src_factor, dst_factor);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_18_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_18_result;
l_ctx->mBlending.mSrcRgbBlendFactor = src_factor;
l_ctx->mBlending.mSrcAlphaBlendFactor = src_factor;
l_ctx->mBlending.mDstRgbBlendFactor = dst_factor;
l_ctx->mBlending.mDstAlphaBlendFactor = dst_factor;
} while (false);
mEncoder->Uint16(45); // Type ID -- TODO: mEncoder->Id(GL_BLEND_FUNC_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(src_factor));
mEncoder->Uint32(static_cast<uint32_t>(dst_factor));
}
inline void GlesSpy::glBlendFuncSeparate(uint32_t src_factor_rgb, uint32_t dst_factor_rgb,
uint32_t src_factor_alpha, uint32_t dst_factor_alpha) {
GAPID_INFO("glBlendFuncSeparate()\n");
mImports.glBlendFuncSeparate(src_factor_rgb, dst_factor_rgb, src_factor_alpha,
dst_factor_alpha);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_19_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_19_result;
l_ctx->mBlending.mSrcRgbBlendFactor = src_factor_rgb;
l_ctx->mBlending.mDstRgbBlendFactor = dst_factor_rgb;
l_ctx->mBlending.mSrcAlphaBlendFactor = src_factor_alpha;
l_ctx->mBlending.mDstAlphaBlendFactor = dst_factor_alpha;
} while (false);
mEncoder->Uint16(46); // Type ID -- TODO: mEncoder->Id(GL_BLEND_FUNC_SEPARATE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(src_factor_rgb));
mEncoder->Uint32(static_cast<uint32_t>(dst_factor_rgb));
mEncoder->Uint32(static_cast<uint32_t>(src_factor_alpha));
mEncoder->Uint32(static_cast<uint32_t>(dst_factor_alpha));
}
inline void GlesSpy::glBlendEquation(uint32_t equation) {
GAPID_INFO("glBlendEquation()\n");
mImports.glBlendEquation(equation);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_20_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_20_result;
l_ctx->mBlending.mBlendEquationRgb = equation;
l_ctx->mBlending.mBlendEquationAlpha = equation;
} while (false);
mEncoder->Uint16(47); // Type ID -- TODO: mEncoder->Id(GL_BLEND_EQUATION_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(equation));
}
inline void GlesSpy::glBlendEquationSeparate(uint32_t rgb, uint32_t alpha) {
GAPID_INFO("glBlendEquationSeparate()\n");
mImports.glBlendEquationSeparate(rgb, alpha);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_21_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_21_result;
l_ctx->mBlending.mBlendEquationRgb = rgb;
l_ctx->mBlending.mBlendEquationAlpha = alpha;
} while (false);
mEncoder->Uint16(48); // Type ID -- TODO: mEncoder->Id(GL_BLEND_EQUATION_SEPARATE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(rgb));
mEncoder->Uint32(static_cast<uint32_t>(alpha));
}
inline void GlesSpy::glBlendColor(float red, float green, float blue, float alpha) {
GAPID_INFO("glBlendColor()\n");
mImports.glBlendColor(red, green, blue, alpha);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_22_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_22_result;
l_ctx->mBlending.mBlendColor =
Color().SetRed(red).SetGreen(green).SetBlue(blue).SetAlpha(alpha);
} while (false);
mEncoder->Uint16(49); // Type ID -- TODO: mEncoder->Id(GL_BLEND_COLOR_ID);
encodeObservations();
mEncoder->Float32(red);
mEncoder->Float32(green);
mEncoder->Float32(blue);
mEncoder->Float32(alpha);
}
inline void GlesSpy::glEnableVertexAttribArray(uint32_t location) {
GAPID_INFO("glEnableVertexAttribArray()\n");
mImports.glEnableVertexAttribArray(location);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_23_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_23_result;
l_ctx->mVertexAttributeArrays[location]->mEnabled = true;
} while (false);
mEncoder->Uint16(50); // Type ID -- TODO: mEncoder->Id(GL_ENABLE_VERTEX_ATTRIB_ARRAY_ID);
encodeObservations();
mEncoder->Uint32(location);
}
inline void GlesSpy::glDisableVertexAttribArray(uint32_t location) {
GAPID_INFO("glDisableVertexAttribArray()\n");
mImports.glDisableVertexAttribArray(location);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_24_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_24_result;
l_ctx->mVertexAttributeArrays[location]->mEnabled = false;
} while (false);
mEncoder->Uint16(51); // Type ID -- TODO: mEncoder->Id(GL_DISABLE_VERTEX_ATTRIB_ARRAY_ID);
encodeObservations();
mEncoder->Uint32(location);
}
inline void GlesSpy::glVertexAttribPointer(uint32_t location, int32_t size, uint32_t type,
bool normalized, int32_t stride, void* data) {
GAPID_INFO("glVertexAttribPointer()\n");
mImports.glVertexAttribPointer(location, size, type, normalized, stride, data);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_25_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_25_result;
std::shared_ptr<VertexAttributeArray> l_a = l_ctx->mVertexAttributeArrays[location];
l_a->mSize = (uint32_t)(size);
l_a->mType = type;
l_a->mNormalized = normalized;
l_a->mStride = stride;
l_a->mPointer = data;
l_a->mBuffer = l_ctx->mBoundBuffers[BufferTarget::GL_ARRAY_BUFFER];
} while (false);
mEncoder->Uint16(52); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB_POINTER_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Int32(size);
mEncoder->Uint32(static_cast<uint32_t>(type));
mEncoder->Bool(normalized);
mEncoder->Int32(stride);
mEncoder->Uint64(reinterpret_cast<uint64_t>(data));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetActiveAttrib(uint32_t program, uint32_t location, int32_t buffer_size,
int32_t* buffer_bytes_written, int32_t* vector_count,
uint32_t* type, char* name) {
GAPID_INFO("glGetActiveAttrib()\n");
mImports.glGetActiveAttrib(program, location, buffer_size, buffer_bytes_written, vector_count,
type, name);
do {
} while (false);
mEncoder->Uint16(53); // Type ID -- TODO: mEncoder->Id(GL_GET_ACTIVE_ATTRIB_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Uint32(location);
mEncoder->Int32(buffer_size);
mEncoder->Uint64(reinterpret_cast<uint64_t>(buffer_bytes_written));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(vector_count));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(type));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(name));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetActiveUniform(uint32_t program, int32_t location, int32_t buffer_size,
int32_t* buffer_bytes_written, int32_t* size,
uint32_t* type, char* name) {
GAPID_INFO("glGetActiveUniform()\n");
mImports.glGetActiveUniform(program, location, buffer_size, buffer_bytes_written, size, type,
name);
do {
} while (false);
mEncoder->Uint16(54); // Type ID -- TODO: mEncoder->Id(GL_GET_ACTIVE_UNIFORM_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Int32(location);
mEncoder->Int32(buffer_size);
mEncoder->Uint64(reinterpret_cast<uint64_t>(buffer_bytes_written));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(size));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(type));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(name));
mEncoder->Uint32(0); // PoolID
}
inline uint32_t GlesSpy::glGetError() {
GAPID_INFO("glGetError()\n");
uint32_t result = mImports.glGetError();
do {
break;
} while (false);
mEncoder->Uint16(55); // Type ID -- TODO: mEncoder->Id(GL_GET_ERROR_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(result));
return result;
}
inline void GlesSpy::glGetProgramiv(uint32_t program, uint32_t parameter, int32_t* value) {
GAPID_INFO("glGetProgramiv()\n");
mImports.glGetProgramiv(program, parameter, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
} while (false);
mEncoder->Uint16(56); // Type ID -- TODO: mEncoder->Id(GL_GET_PROGRAMIV_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetShaderiv(uint32_t shader, uint32_t parameter, int32_t* value) {
GAPID_INFO("glGetShaderiv()\n");
mImports.glGetShaderiv(shader, parameter, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_26_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_26_result;
std::shared_ptr<Shader> l_s = l_ctx->mInstances.mShaders[shader];
write(slice(value, 0, 1), 0, /* clang-format off */
/* switch(parameter) */
/* case ShaderParameter::GL_SHADER_TYPE: */(((parameter) == (ShaderParameter::GL_SHADER_TYPE))) ? ((int32_t)(l_s->mType)) :
/* case ShaderParameter::GL_DELETE_STATUS: */(((parameter) == (ShaderParameter::GL_DELETE_STATUS))) ? (/* clang-format off */
/* switch(l_s->mDeletable) */
/* case true: */(((l_s->mDeletable) == (true))) ? (1) :
/* case false: */(((l_s->mDeletable) == (false))) ? (0) :
/* default: */ 0 /* clang-format on */)
:
/* case ShaderParameter::GL_COMPILE_STATUS: */ (
((parameter) == (ShaderParameter::GL_COMPILE_STATUS)))
? (/* clang-format off */
/* switch(l_s->mCompiled) */
/* case true: */(((l_s->mCompiled) == (true))) ? (1) :
/* case false: */(((l_s->mCompiled) == (false))) ? (0) :
/* default: */ 0 /* clang-format on */)
:
/* case ShaderParameter::GL_INFO_LOG_LENGTH: */ ((
(parameter) == (ShaderParameter::GL_INFO_LOG_LENGTH)))
? ((int32_t)(strlen(l_s->mInfoLog)))
:
/* case ShaderParameter::GL_SHADER_SOURCE_LENGTH: */ (
((parameter) ==
(ShaderParameter::GL_SHADER_SOURCE_LENGTH)))
? ((int32_t)(strlen(l_s->mSource)))
:
/* default: */ 0 /* clang-format on */);
} while (false);
mEncoder->Uint16(57); // Type ID -- TODO: mEncoder->Id(GL_GET_SHADERIV_ID);
encodeObservations();
mEncoder->Uint32(shader);
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline int32_t GlesSpy::glGetUniformLocation(uint32_t program, char* name) {
GAPID_INFO("glGetUniformLocation()\n");
int32_t result = mImports.glGetUniformLocation(program, name);
do {
break;
} while (false);
mEncoder->Uint16(58); // Type ID -- TODO: mEncoder->Id(GL_GET_UNIFORM_LOCATION_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->String(name);
mEncoder->Int32(result);
return result;
}
inline uint32_t GlesSpy::glGetAttribLocation(uint32_t program, char* name) {
GAPID_INFO("glGetAttribLocation()\n");
uint32_t result = mImports.glGetAttribLocation(program, name);
do {
break;
} while (false);
mEncoder->Uint16(59); // Type ID -- TODO: mEncoder->Id(GL_GET_ATTRIB_LOCATION_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->String(name);
mEncoder->Uint32(result);
return result;
}
inline void GlesSpy::glPixelStorei(uint32_t parameter, int32_t value) {
GAPID_INFO("glPixelStorei()\n");
mImports.glPixelStorei(parameter, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_27_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_27_result;
l_ctx->mPixelStorage[parameter] = value;
} while (false);
mEncoder->Uint16(60); // Type ID -- TODO: mEncoder->Id(GL_PIXEL_STOREI_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Int32(value);
}
inline void GlesSpy::glTexParameteri(uint32_t target, uint32_t parameter, int32_t value) {
GAPID_INFO("glTexParameteri()\n");
mImports.glTexParameteri(target, parameter, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_28_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_28_result;
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit][target];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
switch (parameter) {
case TextureParameter::GL_TEXTURE_MAG_FILTER: {
l_t->mMagFilter = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_MIN_FILTER: {
l_t->mMinFilter = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_WRAP_S: {
l_t->mWrapS = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_WRAP_T: {
l_t->mWrapT = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_MAX_ANISOTROPY_EXT: {
l_t->mMaxAnisotropy = (float)(value);
break;
}
case TextureParameter::GL_TEXTURE_SWIZZLE_R: {
l_t->mSwizzleR = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_SWIZZLE_G: {
l_t->mSwizzleG = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_SWIZZLE_B: {
l_t->mSwizzleB = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_SWIZZLE_A: {
l_t->mSwizzleA = (uint32_t)(value);
break;
}
}
} while (false);
mEncoder->Uint16(61); // Type ID -- TODO: mEncoder->Id(GL_TEX_PARAMETERI_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Int32(value);
}
inline void GlesSpy::glTexParameterf(uint32_t target, uint32_t parameter, float value) {
GAPID_INFO("glTexParameterf()\n");
mImports.glTexParameterf(target, parameter, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_29_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_29_result;
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit][target];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
switch (parameter) {
case TextureParameter::GL_TEXTURE_MAG_FILTER: {
l_t->mMagFilter = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_MIN_FILTER: {
l_t->mMinFilter = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_WRAP_S: {
l_t->mWrapS = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_WRAP_T: {
l_t->mWrapT = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_MAX_ANISOTROPY_EXT: {
l_t->mMaxAnisotropy = value;
break;
}
case TextureParameter::GL_TEXTURE_SWIZZLE_R: {
l_t->mSwizzleR = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_SWIZZLE_G: {
l_t->mSwizzleG = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_SWIZZLE_B: {
l_t->mSwizzleB = (uint32_t)(value);
break;
}
case TextureParameter::GL_TEXTURE_SWIZZLE_A: {
l_t->mSwizzleA = (uint32_t)(value);
break;
}
}
} while (false);
mEncoder->Uint16(62); // Type ID -- TODO: mEncoder->Id(GL_TEX_PARAMETERF_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Float32(value);
}
inline void GlesSpy::glGetTexParameteriv(uint32_t target, uint32_t parameter, int32_t* values) {
GAPID_INFO("glGetTexParameteriv()\n");
mImports.glGetTexParameteriv(target, parameter, values);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_30_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_30_result;
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit][target];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
write(slice(values, 0, 1), 0, /* clang-format off */
/* switch(parameter) */
/* case TextureParameter::GL_TEXTURE_MAG_FILTER: */(((parameter) == (TextureParameter::GL_TEXTURE_MAG_FILTER))) ? ((int32_t)(l_t->mMagFilter)) :
/* case TextureParameter::GL_TEXTURE_MIN_FILTER: */(((parameter) == (TextureParameter::GL_TEXTURE_MIN_FILTER))) ? ((int32_t)(l_t->mMinFilter)) :
/* case TextureParameter::GL_TEXTURE_WRAP_S: */(((parameter) == (TextureParameter::GL_TEXTURE_WRAP_S))) ? ((int32_t)(l_t->mWrapS)) :
/* case TextureParameter::GL_TEXTURE_WRAP_T: */(((parameter) == (TextureParameter::GL_TEXTURE_WRAP_T))) ? ((int32_t)(l_t->mWrapT)) :
/* case TextureParameter::GL_TEXTURE_MAX_ANISOTROPY_EXT: */(((parameter) == (TextureParameter::GL_TEXTURE_MAX_ANISOTROPY_EXT))) ? ((int32_t)(l_t->mMaxAnisotropy)) :
/* case TextureParameter::GL_TEXTURE_SWIZZLE_R: */(((parameter) == (TextureParameter::GL_TEXTURE_SWIZZLE_R))) ? ((int32_t)(l_t->mSwizzleR)) :
/* case TextureParameter::GL_TEXTURE_SWIZZLE_G: */(((parameter) == (TextureParameter::GL_TEXTURE_SWIZZLE_G))) ? ((int32_t)(l_t->mSwizzleG)) :
/* case TextureParameter::GL_TEXTURE_SWIZZLE_B: */(((parameter) == (TextureParameter::GL_TEXTURE_SWIZZLE_B))) ? ((int32_t)(l_t->mSwizzleB)) :
/* case TextureParameter::GL_TEXTURE_SWIZZLE_A: */(((parameter) == (TextureParameter::GL_TEXTURE_SWIZZLE_A))) ? ((int32_t)(l_t->mSwizzleA)) :
/* default: */ 0 /* clang-format on */);
} while (false);
mEncoder->Uint16(63); // Type ID -- TODO: mEncoder->Id(GL_GET_TEX_PARAMETERIV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetTexParameterfv(uint32_t target, uint32_t parameter, float* values) {
GAPID_INFO("glGetTexParameterfv()\n");
mImports.glGetTexParameterfv(target, parameter, values);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_31_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_31_result;
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit][target];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
write(slice(values, 0, 1), 0, /* clang-format off */
/* switch(parameter) */
/* case TextureParameter::GL_TEXTURE_MAG_FILTER: */(((parameter) == (TextureParameter::GL_TEXTURE_MAG_FILTER))) ? ((float)(l_t->mMagFilter)) :
/* case TextureParameter::GL_TEXTURE_MIN_FILTER: */(((parameter) == (TextureParameter::GL_TEXTURE_MIN_FILTER))) ? ((float)(l_t->mMinFilter)) :
/* case TextureParameter::GL_TEXTURE_WRAP_S: */(((parameter) == (TextureParameter::GL_TEXTURE_WRAP_S))) ? ((float)(l_t->mWrapS)) :
/* case TextureParameter::GL_TEXTURE_WRAP_T: */(((parameter) == (TextureParameter::GL_TEXTURE_WRAP_T))) ? ((float)(l_t->mWrapT)) :
/* case TextureParameter::GL_TEXTURE_MAX_ANISOTROPY_EXT: */(((parameter) == (TextureParameter::GL_TEXTURE_MAX_ANISOTROPY_EXT))) ? (l_t->mMaxAnisotropy) :
/* case TextureParameter::GL_TEXTURE_SWIZZLE_R: */(((parameter) == (TextureParameter::GL_TEXTURE_SWIZZLE_R))) ? ((float)(l_t->mSwizzleR)) :
/* case TextureParameter::GL_TEXTURE_SWIZZLE_G: */(((parameter) == (TextureParameter::GL_TEXTURE_SWIZZLE_G))) ? ((float)(l_t->mSwizzleG)) :
/* case TextureParameter::GL_TEXTURE_SWIZZLE_B: */(((parameter) == (TextureParameter::GL_TEXTURE_SWIZZLE_B))) ? ((float)(l_t->mSwizzleB)) :
/* case TextureParameter::GL_TEXTURE_SWIZZLE_A: */(((parameter) == (TextureParameter::GL_TEXTURE_SWIZZLE_A))) ? ((float)(l_t->mSwizzleA)) :
/* default: */ 0 /* clang-format on */);
} while (false);
mEncoder->Uint16(64); // Type ID -- TODO: mEncoder->Id(GL_GET_TEX_PARAMETERFV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniform1i(int32_t location, int32_t value) {
GAPID_INFO("glUniform1i()\n");
mImports.glUniform1i(location, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_32_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_32_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_INT;
l_uniform.mValue.mS32 = value;
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(65); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM1I_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(value);
}
inline void GlesSpy::glUniform2i(int32_t location, int32_t value0, int32_t value1) {
GAPID_INFO("glUniform2i()\n");
mImports.glUniform2i(location, value0, value1);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_33_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_33_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_INT_VEC2;
l_uniform.mValue.mVec2i = Vec2i().SetX(value0).SetY(value1);
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(66); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM2I_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(value0);
mEncoder->Int32(value1);
}
inline void GlesSpy::glUniform3i(int32_t location, int32_t value0, int32_t value1, int32_t value2) {
GAPID_INFO("glUniform3i()\n");
mImports.glUniform3i(location, value0, value1, value2);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_34_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_34_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_INT_VEC3;
l_uniform.mValue.mVec3i = Vec3i().SetX(value0).SetY(value1).SetZ(value2);
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(67); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM3I_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(value0);
mEncoder->Int32(value1);
mEncoder->Int32(value2);
}
inline void GlesSpy::glUniform4i(int32_t location, int32_t value0, int32_t value1, int32_t value2,
int32_t value3) {
GAPID_INFO("glUniform4i()\n");
mImports.glUniform4i(location, value0, value1, value2, value3);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_35_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_35_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_INT_VEC4;
l_uniform.mValue.mVec4i = Vec4i().SetX(value0).SetY(value1).SetZ(value2).SetW(value3);
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(68); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM4I_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(value0);
mEncoder->Int32(value1);
mEncoder->Int32(value2);
mEncoder->Int32(value3);
}
inline void GlesSpy::glUniform1iv(int32_t location, int32_t count, int32_t* value) {
GAPID_INFO("glUniform1iv()\n");
mImports.glUniform1iv(location, count, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_36_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_36_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_INT;
l_uniform.mValue.mS32 = read(slice(value, 0, 1), 0);
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(69); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM1IV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniform2iv(int32_t location, int32_t count, int32_t* value) {
GAPID_INFO("glUniform2iv()\n");
mImports.glUniform2iv(location, count, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_37_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_37_result;
Slice<int32_t> l_v = slice(value, (uint64_t)(0), (uint64_t)(count * 2));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_INT_VEC2;
l_uniform.mValue.mVec2i = Vec2i().SetX(read(l_v, 0)).SetY(read(l_v, 1));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(70); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM2IV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniform3iv(int32_t location, int32_t count, int32_t* value) {
GAPID_INFO("glUniform3iv()\n");
mImports.glUniform3iv(location, count, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_38_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_38_result;
Slice<int32_t> l_v = slice(value, (uint64_t)(0), (uint64_t)(count * 3));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_INT_VEC3;
l_uniform.mValue.mVec3i = Vec3i().SetX(read(l_v, 0)).SetY(read(l_v, 1)).SetZ(read(l_v, 2));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(71); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM3IV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniform4iv(int32_t location, int32_t count, int32_t* value) {
GAPID_INFO("glUniform4iv()\n");
mImports.glUniform4iv(location, count, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_39_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_39_result;
Slice<int32_t> l_v = slice(value, (uint64_t)(0), (uint64_t)(count * 4));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_INT_VEC4;
l_uniform.mValue.mVec4i =
Vec4i().SetX(read(l_v, 0)).SetY(read(l_v, 1)).SetZ(read(l_v, 2)).SetW(read(l_v, 3));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(72); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM4IV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniform1f(int32_t location, float value) {
GAPID_INFO("glUniform1f()\n");
mImports.glUniform1f(location, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_40_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_40_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT;
l_uniform.mValue.mF32 = value;
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(73); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM1F_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Float32(value);
}
inline void GlesSpy::glUniform2f(int32_t location, float value0, float value1) {
GAPID_INFO("glUniform2f()\n");
mImports.glUniform2f(location, value0, value1);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_41_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_41_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT_VEC2;
l_uniform.mValue.mVec2f = Vec2f().SetX(value0).SetY(value1);
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(74); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM2F_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Float32(value0);
mEncoder->Float32(value1);
}
inline void GlesSpy::glUniform3f(int32_t location, float value0, float value1, float value2) {
GAPID_INFO("glUniform3f()\n");
mImports.glUniform3f(location, value0, value1, value2);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_42_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_42_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT_VEC3;
l_uniform.mValue.mVec3f = Vec3f().SetX(value0).SetY(value1).SetZ(value2);
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(75); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM3F_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Float32(value0);
mEncoder->Float32(value1);
mEncoder->Float32(value2);
}
inline void GlesSpy::glUniform4f(int32_t location, float value0, float value1, float value2,
float value3) {
GAPID_INFO("glUniform4f()\n");
mImports.glUniform4f(location, value0, value1, value2, value3);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_43_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_43_result;
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT_VEC4;
l_uniform.mValue.mVec4f = Vec4f().SetX(value0).SetY(value1).SetZ(value2).SetW(value3);
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(76); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM4F_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Float32(value0);
mEncoder->Float32(value1);
mEncoder->Float32(value2);
mEncoder->Float32(value3);
}
inline void GlesSpy::glUniform1fv(int32_t location, int32_t count, float* value) {
GAPID_INFO("glUniform1fv()\n");
mImports.glUniform1fv(location, count, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_44_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_44_result;
Slice<float> l_v = slice(value, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT;
l_uniform.mValue.mF32 = read(l_v, 0);
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(77); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM1FV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniform2fv(int32_t location, int32_t count, float* value) {
GAPID_INFO("glUniform2fv()\n");
mImports.glUniform2fv(location, count, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_45_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_45_result;
Slice<float> l_v = slice(value, (uint64_t)(0), (uint64_t)(count * 2));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT_VEC2;
l_uniform.mValue.mVec2f = Vec2f().SetX(read(l_v, 0)).SetY(read(l_v, 1));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(78); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM2FV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniform3fv(int32_t location, int32_t count, float* value) {
GAPID_INFO("glUniform3fv()\n");
mImports.glUniform3fv(location, count, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_46_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_46_result;
Slice<float> l_v = slice(value, (uint64_t)(0), (uint64_t)(count * 3));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT_VEC3;
l_uniform.mValue.mVec3f = Vec3f().SetX(read(l_v, 0)).SetY(read(l_v, 1)).SetZ(read(l_v, 2));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(79); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM3FV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniform4fv(int32_t location, int32_t count, float* value) {
GAPID_INFO("glUniform4fv()\n");
mImports.glUniform4fv(location, count, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_47_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_47_result;
Slice<float> l_v = slice(value, (uint64_t)(0), (uint64_t)(count * 4));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT_VEC4;
l_uniform.mValue.mVec4f =
Vec4f().SetX(read(l_v, 0)).SetY(read(l_v, 1)).SetZ(read(l_v, 2)).SetW(read(l_v, 3));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(80); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM4FV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniformMatrix2fv(int32_t location, int32_t count, bool transpose,
float* values) {
GAPID_INFO("glUniformMatrix2fv()\n");
mImports.glUniformMatrix2fv(location, count, transpose, values);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_48_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_48_result;
Slice<float> l_v = slice(values, (uint64_t)(0), (uint64_t)(count * 4));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT_MAT2;
l_uniform.mValue.mMat2f = Mat2f()
.SetCol0(Vec2f().SetX(read(l_v, 0)).SetY(read(l_v, 1)))
.SetCol1(Vec2f().SetX(read(l_v, 3)).SetY(read(l_v, 4)));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(81); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM_MATRIX2FV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Bool(transpose);
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniformMatrix3fv(int32_t location, int32_t count, bool transpose,
float* values) {
GAPID_INFO("glUniformMatrix3fv()\n");
mImports.glUniformMatrix3fv(location, count, transpose, values);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_49_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_49_result;
Slice<float> l_v = slice(values, (uint64_t)(0), (uint64_t)(count * 9));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mType = ShaderUniformType::GL_FLOAT_MAT3;
l_uniform.mValue.mMat3f =
Mat3f()
.SetCol0(Vec3f().SetX(read(l_v, 0)).SetY(read(l_v, 1)).SetZ(read(l_v, 2)))
.SetCol1(Vec3f().SetX(read(l_v, 3)).SetY(read(l_v, 4)).SetZ(read(l_v, 5)))
.SetCol2(Vec3f().SetX(read(l_v, 6)).SetY(read(l_v, 7)).SetZ(read(l_v, 8)));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(82); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM_MATRIX3FV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Bool(transpose);
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUniformMatrix4fv(int32_t location, int32_t count, bool transpose,
float* values) {
GAPID_INFO("glUniformMatrix4fv()\n");
mImports.glUniformMatrix4fv(location, count, transpose, values);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_50_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_50_result;
Slice<float> l_v = slice(values, (uint64_t)(0), (uint64_t)(count * 16));
std::shared_ptr<Program> l_program = l_ctx->mInstances.mPrograms[l_ctx->mBoundProgram];
Uniform l_uniform = l_program->mUniforms[location];
l_uniform.mValue.mMat4f =
Mat4f()
.SetCol0(Vec4f()
.SetX(read(l_v, 0))
.SetY(read(l_v, 1))
.SetZ(read(l_v, 2))
.SetW(read(l_v, 3)))
.SetCol1(Vec4f()
.SetX(read(l_v, 4))
.SetY(read(l_v, 5))
.SetZ(read(l_v, 6))
.SetW(read(l_v, 7)))
.SetCol2(Vec4f()
.SetX(read(l_v, 8))
.SetY(read(l_v, 9))
.SetZ(read(l_v, 10))
.SetW(read(l_v, 11)))
.SetCol3(Vec4f()
.SetX(read(l_v, 12))
.SetY(read(l_v, 13))
.SetZ(read(l_v, 14))
.SetW(read(l_v, 15)));
l_program->mUniforms[location] = l_uniform;
} while (false);
mEncoder->Uint16(83); // Type ID -- TODO: mEncoder->Id(GL_UNIFORM_MATRIX4FV_ID);
encodeObservations();
mEncoder->Int32(location);
mEncoder->Int32(count);
mEncoder->Bool(transpose);
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetUniformfv(uint32_t program, int32_t location, float* values) {
GAPID_INFO("glGetUniformfv()\n");
mImports.glGetUniformfv(program, location, values);
do {
} while (false);
mEncoder->Uint16(84); // Type ID -- TODO: mEncoder->Id(GL_GET_UNIFORMFV_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Int32(location);
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetUniformiv(uint32_t program, int32_t location, int32_t* values) {
GAPID_INFO("glGetUniformiv()\n");
mImports.glGetUniformiv(program, location, values);
do {
} while (false);
mEncoder->Uint16(85); // Type ID -- TODO: mEncoder->Id(GL_GET_UNIFORMIV_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Int32(location);
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glVertexAttrib1f(uint32_t location, float value0) {
GAPID_INFO("glVertexAttrib1f()\n");
mImports.glVertexAttrib1f(location, value0);
do {
} while (false);
mEncoder->Uint16(86); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB1F_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Float32(value0);
}
inline void GlesSpy::glVertexAttrib2f(uint32_t location, float value0, float value1) {
GAPID_INFO("glVertexAttrib2f()\n");
mImports.glVertexAttrib2f(location, value0, value1);
do {
} while (false);
mEncoder->Uint16(87); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB2F_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Float32(value0);
mEncoder->Float32(value1);
}
inline void GlesSpy::glVertexAttrib3f(uint32_t location, float value0, float value1, float value2) {
GAPID_INFO("glVertexAttrib3f()\n");
mImports.glVertexAttrib3f(location, value0, value1, value2);
do {
} while (false);
mEncoder->Uint16(88); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB3F_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Float32(value0);
mEncoder->Float32(value1);
mEncoder->Float32(value2);
}
inline void GlesSpy::glVertexAttrib4f(uint32_t location, float value0, float value1, float value2,
float value3) {
GAPID_INFO("glVertexAttrib4f()\n");
mImports.glVertexAttrib4f(location, value0, value1, value2, value3);
do {
} while (false);
mEncoder->Uint16(89); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB4F_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Float32(value0);
mEncoder->Float32(value1);
mEncoder->Float32(value2);
mEncoder->Float32(value3);
}
inline void GlesSpy::glVertexAttrib1fv(uint32_t location, float* value) {
GAPID_INFO("glVertexAttrib1fv()\n");
mImports.glVertexAttrib1fv(location, value);
do {
read(slice(value, 0, 1));
} while (false);
mEncoder->Uint16(90); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB1FV_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glVertexAttrib2fv(uint32_t location, float* value) {
GAPID_INFO("glVertexAttrib2fv()\n");
mImports.glVertexAttrib2fv(location, value);
do {
read(slice(value, 0, 2));
} while (false);
mEncoder->Uint16(91); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB2FV_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glVertexAttrib3fv(uint32_t location, float* value) {
GAPID_INFO("glVertexAttrib3fv()\n");
mImports.glVertexAttrib3fv(location, value);
do {
read(slice(value, 0, 3));
} while (false);
mEncoder->Uint16(92); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB3FV_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glVertexAttrib4fv(uint32_t location, float* value) {
GAPID_INFO("glVertexAttrib4fv()\n");
mImports.glVertexAttrib4fv(location, value);
do {
read(slice(value, 0, 4));
} while (false);
mEncoder->Uint16(93); // Type ID -- TODO: mEncoder->Id(GL_VERTEX_ATTRIB4FV_ID);
encodeObservations();
mEncoder->Uint32(location);
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetShaderPrecisionFormat(uint32_t shader_type, uint32_t precision_type,
int32_t* range, int32_t* precision) {
GAPID_INFO("glGetShaderPrecisionFormat()\n");
mImports.glGetShaderPrecisionFormat(shader_type, precision_type, range, precision);
do {
write(slice(range, 0, 2));
write(slice(precision, 0, 1), 0, read(slice(precision, 0, 1), 0));
} while (false);
mEncoder->Uint16(94); // Type ID -- TODO: mEncoder->Id(GL_GET_SHADER_PRECISION_FORMAT_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(shader_type));
mEncoder->Uint32(static_cast<uint32_t>(precision_type));
mEncoder->Uint64(reinterpret_cast<uint64_t>(range));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(precision));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glDepthMask(bool enabled) {
GAPID_INFO("glDepthMask()\n");
mImports.glDepthMask(enabled);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_51_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_51_result;
l_ctx->mRasterizing.mDepthMask = enabled;
} while (false);
mEncoder->Uint16(95); // Type ID -- TODO: mEncoder->Id(GL_DEPTH_MASK_ID);
encodeObservations();
mEncoder->Bool(enabled);
}
inline void GlesSpy::glDepthFunc(uint32_t function) {
GAPID_INFO("glDepthFunc()\n");
mImports.glDepthFunc(function);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_52_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_52_result;
l_ctx->mRasterizing.mDepthTestFunction = function;
} while (false);
mEncoder->Uint16(96); // Type ID -- TODO: mEncoder->Id(GL_DEPTH_FUNC_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(function));
}
inline void GlesSpy::glDepthRangef(float near, float far) {
GAPID_INFO("glDepthRangef()\n");
mImports.glDepthRangef(near, far);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_53_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_53_result;
l_ctx->mRasterizing.mDepthNear = near;
l_ctx->mRasterizing.mDepthFar = far;
} while (false);
mEncoder->Uint16(97); // Type ID -- TODO: mEncoder->Id(GL_DEPTH_RANGEF_ID);
encodeObservations();
mEncoder->Float32(near);
mEncoder->Float32(far);
}
inline void GlesSpy::glColorMask(bool red, bool green, bool blue, bool alpha) {
GAPID_INFO("glColorMask()\n");
mImports.glColorMask(red, green, blue, alpha);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_54_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_54_result;
l_ctx->mRasterizing.mColorMaskRed = red;
l_ctx->mRasterizing.mColorMaskGreen = green;
l_ctx->mRasterizing.mColorMaskBlue = blue;
l_ctx->mRasterizing.mColorMaskAlpha = alpha;
} while (false);
mEncoder->Uint16(98); // Type ID -- TODO: mEncoder->Id(GL_COLOR_MASK_ID);
encodeObservations();
mEncoder->Bool(red);
mEncoder->Bool(green);
mEncoder->Bool(blue);
mEncoder->Bool(alpha);
}
inline void GlesSpy::glStencilMask(uint32_t mask) {
GAPID_INFO("glStencilMask()\n");
mImports.glStencilMask(mask);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_55_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_55_result;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = mask;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = mask;
} while (false);
mEncoder->Uint16(99); // Type ID -- TODO: mEncoder->Id(GL_STENCIL_MASK_ID);
encodeObservations();
mEncoder->Uint32(mask);
}
inline void GlesSpy::glStencilMaskSeparate(uint32_t face, uint32_t mask) {
GAPID_INFO("glStencilMaskSeparate()\n");
mImports.glStencilMaskSeparate(face, mask);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_56_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_56_result;
switch (face) {
case FaceMode::GL_FRONT: {
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = mask;
break;
}
case FaceMode::GL_BACK: {
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = mask;
break;
}
case FaceMode::GL_FRONT_AND_BACK: {
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT] = mask;
l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK] = mask;
break;
}
}
} while (false);
mEncoder->Uint16(100); // Type ID -- TODO: mEncoder->Id(GL_STENCIL_MASK_SEPARATE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(face));
mEncoder->Uint32(mask);
}
inline void GlesSpy::glStencilFuncSeparate(uint32_t face, uint32_t function,
int32_t reference_value, int32_t mask) {
GAPID_INFO("glStencilFuncSeparate()\n");
mImports.glStencilFuncSeparate(face, function, reference_value, mask);
do {
} while (false);
mEncoder->Uint16(101); // Type ID -- TODO: mEncoder->Id(GL_STENCIL_FUNC_SEPARATE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(face));
mEncoder->Uint32(static_cast<uint32_t>(function));
mEncoder->Int32(reference_value);
mEncoder->Int32(mask);
}
inline void GlesSpy::glStencilOpSeparate(uint32_t face, uint32_t stencil_fail,
uint32_t stencil_pass_depth_fail,
uint32_t stencil_pass_depth_pass) {
GAPID_INFO("glStencilOpSeparate()\n");
mImports.glStencilOpSeparate(face, stencil_fail, stencil_pass_depth_fail,
stencil_pass_depth_pass);
do {
} while (false);
mEncoder->Uint16(102); // Type ID -- TODO: mEncoder->Id(GL_STENCIL_OP_SEPARATE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(face));
mEncoder->Uint32(static_cast<uint32_t>(stencil_fail));
mEncoder->Uint32(static_cast<uint32_t>(stencil_pass_depth_fail));
mEncoder->Uint32(static_cast<uint32_t>(stencil_pass_depth_pass));
}
inline void GlesSpy::glFrontFace(uint32_t orientation) {
GAPID_INFO("glFrontFace()\n");
mImports.glFrontFace(orientation);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_57_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_57_result;
l_ctx->mRasterizing.mFrontFace = orientation;
} while (false);
mEncoder->Uint16(103); // Type ID -- TODO: mEncoder->Id(GL_FRONT_FACE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(orientation));
}
inline void GlesSpy::glViewport(int32_t x, int32_t y, int32_t width, int32_t height) {
GAPID_INFO("glViewport()\n");
mImports.glViewport(x, y, width, height);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_58_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_58_result;
l_ctx->mRasterizing.mViewport = Rect().SetX(x).SetY(y).SetWidth(width).SetHeight(height);
} while (false);
mEncoder->Uint16(104); // Type ID -- TODO: mEncoder->Id(GL_VIEWPORT_ID);
encodeObservations();
mEncoder->Int32(x);
mEncoder->Int32(y);
mEncoder->Int32(width);
mEncoder->Int32(height);
}
inline void GlesSpy::glScissor(int32_t x, int32_t y, int32_t width, int32_t height) {
GAPID_INFO("glScissor()\n");
mImports.glScissor(x, y, width, height);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_59_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_59_result;
l_ctx->mRasterizing.mScissor = Rect().SetX(x).SetY(y).SetWidth(width).SetHeight(height);
} while (false);
mEncoder->Uint16(105); // Type ID -- TODO: mEncoder->Id(GL_SCISSOR_ID);
encodeObservations();
mEncoder->Int32(x);
mEncoder->Int32(y);
mEncoder->Int32(width);
mEncoder->Int32(height);
}
inline void GlesSpy::glActiveTexture(uint32_t unit) {
GAPID_INFO("glActiveTexture()\n");
mImports.glActiveTexture(unit);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_60_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_60_result;
l_ctx->mActiveTextureUnit = unit;
if (!(l_ctx->mTextureUnits.count(unit) > 0)) {
l_ctx->mTextureUnits[unit] = l_ctx->mTextureUnits[unit];
}
} while (false);
mEncoder->Uint16(106); // Type ID -- TODO: mEncoder->Id(GL_ACTIVE_TEXTURE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(unit));
}
inline void GlesSpy::glGenTextures(int32_t count, uint32_t* textures) {
GAPID_INFO("glGenTextures()\n");
mImports.glGenTextures(count, textures);
do {
Slice<TextureId> l_t = slice(textures, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_61_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_61_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
TextureId l_id = (TextureId)(
read(slice(textures, (uint64_t)(0), (uint64_t)(count)), (uint64_t)(l_i)));
l_ctx->mInstances.mTextures[l_id] = std::shared_ptr<Texture>((new Texture()));
write(l_t, (uint64_t)(l_i), l_id);
}
} while (false);
mEncoder->Uint16(107); // Type ID -- TODO: mEncoder->Id(GL_GEN_TEXTURES_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(textures));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glDeleteTextures(int32_t count, uint32_t* textures) {
GAPID_INFO("glDeleteTextures()\n");
mImports.glDeleteTextures(count, textures);
do {
Slice<TextureId> l_t = slice(textures, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_62_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_62_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
l_ctx->mInstances.mTextures[read(l_t, (uint64_t)(l_i))] = std::shared_ptr<Texture>();
}
} while (false);
mEncoder->Uint16(108); // Type ID -- TODO: mEncoder->Id(GL_DELETE_TEXTURES_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(textures));
mEncoder->Uint32(0); // PoolID
}
inline bool GlesSpy::glIsTexture(uint32_t texture) {
GAPID_INFO("glIsTexture()\n");
bool result = mImports.glIsTexture(texture);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_63_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_63_result;
break;
} while (false);
mEncoder->Uint16(109); // Type ID -- TODO: mEncoder->Id(GL_IS_TEXTURE_ID);
encodeObservations();
mEncoder->Uint32(texture);
mEncoder->Bool(result);
return result;
}
inline void GlesSpy::glBindTexture(uint32_t target, uint32_t texture) {
GAPID_INFO("glBindTexture()\n");
mImports.glBindTexture(target, texture);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_64_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_64_result;
if (!(l_ctx->mInstances.mTextures.count(texture) > 0)) {
l_ctx->mInstances.mTextures[texture] = std::shared_ptr<Texture>((new Texture()));
}
l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit][target] = texture;
} while (false);
mEncoder->Uint16(110); // Type ID -- TODO: mEncoder->Id(GL_BIND_TEXTURE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(texture);
}
inline void GlesSpy::glTexImage2D(uint32_t target, int32_t level, uint32_t internal_format,
int32_t width, int32_t height, int32_t border, uint32_t format,
uint32_t type, void* data) {
GAPID_INFO("glTexImage2D()\n");
mImports.glTexImage2D(target, level, internal_format, width, height, border, format, type,
data);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_65_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_65_result;
switch (target) {
case TextureImageTarget::GL_TEXTURE_2D: {
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit]
[TextureTarget::GL_TEXTURE_2D];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
Image l_l = Image()
.SetWidth(width)
.SetHeight(height)
.SetSize(imageSize((uint32_t)(width), (uint32_t)(height),
format, type))
.SetFormat((uint32_t)(format));
if (data != nullptr) {
if (l_ctx->mBoundBuffers[BufferTarget::GL_PIXEL_UNPACK_BUFFER] ==
(BufferId)(0)) {
l_l.mData = clone(
slice((uint8_t*)(data), (uint64_t)(0), (uint64_t)(l_l.mSize)));
}
} else {
l_l.mData = make<uint8_t>((uint64_t)(l_l.mSize));
}
l_t->mTexture2D[level] = l_l;
l_t->mKind = TextureKind::TEXTURE2D;
l_t->mFormat = (uint32_t)(format);
break;
}
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Y: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Z: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_X: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: {
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit]
[TextureTarget::GL_TEXTURE_CUBE_MAP];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
Image l_l = Image()
.SetWidth(width)
.SetHeight(height)
.SetSize(imageSize((uint32_t)(width), (uint32_t)(height),
format, type))
.SetFormat((uint32_t)(format));
if (data != nullptr) {
if (l_ctx->mBoundBuffers[BufferTarget::GL_PIXEL_UNPACK_BUFFER] ==
(BufferId)(0)) {
l_l.mData = clone(
slice((uint8_t*)(data), (uint64_t)(0), (uint64_t)(l_l.mSize)));
}
} else {
l_l.mData = make<uint8_t>((uint64_t)(l_l.mSize));
}
CubemapLevel l_cube = l_t->mCubemap[level];
l_cube.mFaces[(uint32_t)(target)] = l_l;
l_t->mCubemap[level] = l_cube;
l_t->mKind = TextureKind::CUBEMAP;
l_t->mFormat = (uint32_t)(format);
break;
}
}
} while (false);
mEncoder->Uint16(111); // Type ID -- TODO: mEncoder->Id(GL_TEX_IMAGE2D_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(level);
mEncoder->Uint32(static_cast<uint32_t>(internal_format));
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Int32(border);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Uint32(static_cast<uint32_t>(type));
mEncoder->Uint64(reinterpret_cast<uint64_t>(data));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glTexSubImage2D(uint32_t target, int32_t level, int32_t xoffset,
int32_t yoffset, int32_t width, int32_t height,
uint32_t format, uint32_t type, void* data) {
GAPID_INFO("glTexSubImage2D()\n");
mImports.glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, data);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_66_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_66_result;
switch (target) {
case TextureImageTarget::GL_TEXTURE_2D: {
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit]
[TextureTarget::GL_TEXTURE_2D];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
Image l_l = Image()
.SetWidth(width)
.SetHeight(height)
.SetSize(imageSize((uint32_t)(width), (uint32_t)(height),
format, type))
.SetFormat((uint32_t)(format));
if (l_ctx->mBoundBuffers[BufferTarget::GL_PIXEL_UNPACK_BUFFER] == (BufferId)(0) &&
data != nullptr) {
l_l.mData =
clone(slice((uint8_t*)(data), (uint64_t)(0), (uint64_t)(l_l.mSize)));
}
l_t->mTexture2D[level] = l_l;
l_t->mKind = TextureKind::TEXTURE2D;
l_t->mFormat = (uint32_t)(format);
break;
}
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Y: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Z: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_X: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: {
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit]
[TextureTarget::GL_TEXTURE_CUBE_MAP];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
Image l_l = Image()
.SetWidth(width)
.SetHeight(height)
.SetSize(imageSize((uint32_t)(width), (uint32_t)(height),
format, type))
.SetFormat((uint32_t)(format));
if (l_ctx->mBoundBuffers[BufferTarget::GL_PIXEL_UNPACK_BUFFER] == (BufferId)(0) &&
data != nullptr) {
l_l.mData =
clone(slice((uint8_t*)(data), (uint64_t)(0), (uint64_t)(l_l.mSize)));
}
CubemapLevel l_cube = l_t->mCubemap[level];
l_cube.mFaces[(uint32_t)(target)] = l_l;
l_t->mCubemap[level] = l_cube;
l_t->mKind = TextureKind::CUBEMAP;
l_t->mFormat = (uint32_t)(format);
break;
}
}
} while (false);
mEncoder->Uint16(112); // Type ID -- TODO: mEncoder->Id(GL_TEX_SUB_IMAGE2D_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(level);
mEncoder->Int32(xoffset);
mEncoder->Int32(yoffset);
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Uint32(static_cast<uint32_t>(type));
mEncoder->Uint64(reinterpret_cast<uint64_t>(data));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glCopyTexImage2D(uint32_t target, int32_t level, uint32_t format, int32_t x,
int32_t y, int32_t width, int32_t height, int32_t border) {
GAPID_INFO("glCopyTexImage2D()\n");
mImports.glCopyTexImage2D(target, level, format, x, y, width, height, border);
do {
} while (false);
mEncoder->Uint16(113); // Type ID -- TODO: mEncoder->Id(GL_COPY_TEX_IMAGE2D_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(level);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(x);
mEncoder->Int32(y);
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Int32(border);
}
inline void GlesSpy::glCopyTexSubImage2D(uint32_t target, int32_t level, int32_t xoffset,
int32_t yoffset, int32_t x, int32_t y, int32_t width,
int32_t height) {
GAPID_INFO("glCopyTexSubImage2D()\n");
mImports.glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
do {
} while (false);
mEncoder->Uint16(114); // Type ID -- TODO: mEncoder->Id(GL_COPY_TEX_SUB_IMAGE2D_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(level);
mEncoder->Int32(xoffset);
mEncoder->Int32(yoffset);
mEncoder->Int32(x);
mEncoder->Int32(y);
mEncoder->Int32(width);
mEncoder->Int32(height);
}
inline void GlesSpy::glCompressedTexImage2D(uint32_t target, int32_t level, uint32_t format,
int32_t width, int32_t height, int32_t border,
int32_t image_size, void* data) {
GAPID_INFO("glCompressedTexImage2D()\n");
mImports.glCompressedTexImage2D(target, level, format, width, height, border, image_size, data);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_67_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_67_result;
switch (target) {
case TextureImageTarget::GL_TEXTURE_2D: {
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit]
[TextureTarget::GL_TEXTURE_2D];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
Image l_l = Image()
.SetWidth(width)
.SetHeight(height)
.SetSize((uint32_t)(image_size))
.SetFormat((uint32_t)(format));
if (l_ctx->mBoundBuffers[BufferTarget::GL_PIXEL_UNPACK_BUFFER] == (BufferId)(0) &&
data != nullptr) {
l_l.mData =
clone(slice((uint8_t*)(data), (uint64_t)(0), (uint64_t)(l_l.mSize)));
}
l_t->mTexture2D[level] = l_l;
l_t->mKind = TextureKind::TEXTURE2D;
l_t->mFormat = (uint32_t)(format);
break;
}
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Y: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Z: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_X: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: // fall-through...
case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: {
TextureId l_id = l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit]
[TextureTarget::GL_TEXTURE_CUBE_MAP];
std::shared_ptr<Texture> l_t = l_ctx->mInstances.mTextures[l_id];
Image l_l = Image()
.SetWidth(width)
.SetHeight(height)
.SetSize((uint32_t)(image_size))
.SetFormat((uint32_t)(format));
if (l_ctx->mBoundBuffers[BufferTarget::GL_PIXEL_UNPACK_BUFFER] == (BufferId)(0) &&
data != nullptr) {
l_l.mData =
clone(slice((uint8_t*)(data), (uint64_t)(0), (uint64_t)(l_l.mSize)));
}
CubemapLevel l_cube = l_t->mCubemap[level];
l_cube.mFaces[(uint32_t)(target)] = l_l;
l_t->mCubemap[level] = l_cube;
l_t->mKind = TextureKind::CUBEMAP;
l_t->mFormat = (uint32_t)(format);
break;
}
}
} while (false);
mEncoder->Uint16(115); // Type ID -- TODO: mEncoder->Id(GL_COMPRESSED_TEX_IMAGE2D_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(level);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Int32(border);
mEncoder->Int32(image_size);
mEncoder->Uint64(reinterpret_cast<uint64_t>(data));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glCompressedTexSubImage2D(uint32_t target, int32_t level, int32_t xoffset,
int32_t yoffset, int32_t width, int32_t height,
uint32_t format, int32_t image_size, void* data) {
GAPID_INFO("glCompressedTexSubImage2D()\n");
mImports.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format,
image_size, data);
do {
} while (false);
mEncoder->Uint16(116); // Type ID -- TODO: mEncoder->Id(GL_COMPRESSED_TEX_SUB_IMAGE2D_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(level);
mEncoder->Int32(xoffset);
mEncoder->Int32(yoffset);
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(image_size);
mEncoder->Uint64(reinterpret_cast<uint64_t>(data));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGenerateMipmap(uint32_t target) {
GAPID_INFO("glGenerateMipmap()\n");
mImports.glGenerateMipmap(target);
do {
} while (false);
mEncoder->Uint16(117); // Type ID -- TODO: mEncoder->Id(GL_GENERATE_MIPMAP_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
}
inline void GlesSpy::glReadPixels(int32_t x, int32_t y, int32_t width, int32_t height,
uint32_t format, uint32_t type, void* data) {
GAPID_INFO("glReadPixels()\n");
mImports.glReadPixels(x, y, width, height, format, type, data);
do {
write(slice(data, (uint64_t)(0), (uint64_t)(imageSize((uint32_t)(width), (uint32_t)(height),
(uint32_t)(format), type))));
} while (false);
mEncoder->Uint16(118); // Type ID -- TODO: mEncoder->Id(GL_READ_PIXELS_ID);
encodeObservations();
mEncoder->Int32(x);
mEncoder->Int32(y);
mEncoder->Int32(width);
mEncoder->Int32(height);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Uint32(static_cast<uint32_t>(type));
mEncoder->Uint64(reinterpret_cast<uint64_t>(data));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGenFramebuffers(int32_t count, uint32_t* framebuffers) {
GAPID_INFO("glGenFramebuffers()\n");
mImports.glGenFramebuffers(count, framebuffers);
do {
Slice<FramebufferId> l_f = slice(framebuffers, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_68_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_68_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
FramebufferId l_id = (FramebufferId)(
read(slice(framebuffers, (uint64_t)(0), (uint64_t)(count)), (uint64_t)(l_i)));
l_ctx->mInstances.mFramebuffers[l_id] =
std::shared_ptr<Framebuffer>((new Framebuffer()));
write(l_f, (uint64_t)(l_i), l_id);
}
} while (false);
mEncoder->Uint16(119); // Type ID -- TODO: mEncoder->Id(GL_GEN_FRAMEBUFFERS_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(framebuffers));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glBindFramebuffer(uint32_t target, uint32_t framebuffer) {
GAPID_INFO("glBindFramebuffer()\n");
mImports.glBindFramebuffer(target, framebuffer);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_69_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_69_result;
if (!(l_ctx->mInstances.mFramebuffers.count(framebuffer) > 0)) {
l_ctx->mInstances.mFramebuffers[framebuffer] =
std::shared_ptr<Framebuffer>((new Framebuffer()));
}
if (target == FramebufferTarget::GL_FRAMEBUFFER) {
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_READ_FRAMEBUFFER] = framebuffer;
l_ctx->mBoundFramebuffers[FramebufferTarget::GL_DRAW_FRAMEBUFFER] = framebuffer;
} else {
l_ctx->mBoundFramebuffers[target] = framebuffer;
}
} while (false);
mEncoder->Uint16(120); // Type ID -- TODO: mEncoder->Id(GL_BIND_FRAMEBUFFER_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(framebuffer);
}
inline uint32_t GlesSpy::glCheckFramebufferStatus(uint32_t target) {
GAPID_INFO("glCheckFramebufferStatus()\n");
uint32_t result = mImports.glCheckFramebufferStatus(target);
do {
break;
} while (false);
mEncoder->Uint16(121); // Type ID -- TODO: mEncoder->Id(GL_CHECK_FRAMEBUFFER_STATUS_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(result));
return result;
}
inline void GlesSpy::glDeleteFramebuffers(int32_t count, uint32_t* framebuffers) {
GAPID_INFO("glDeleteFramebuffers()\n");
mImports.glDeleteFramebuffers(count, framebuffers);
do {
Slice<FramebufferId> l_f = slice(framebuffers, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_70_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_70_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
l_ctx->mInstances.mFramebuffers[read(l_f, (uint64_t)(l_i))] =
std::shared_ptr<Framebuffer>();
}
} while (false);
mEncoder->Uint16(122); // Type ID -- TODO: mEncoder->Id(GL_DELETE_FRAMEBUFFERS_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(framebuffers));
mEncoder->Uint32(0); // PoolID
}
inline bool GlesSpy::glIsFramebuffer(uint32_t framebuffer) {
GAPID_INFO("glIsFramebuffer()\n");
bool result = mImports.glIsFramebuffer(framebuffer);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_71_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_71_result;
break;
} while (false);
mEncoder->Uint16(123); // Type ID -- TODO: mEncoder->Id(GL_IS_FRAMEBUFFER_ID);
encodeObservations();
mEncoder->Uint32(framebuffer);
mEncoder->Bool(result);
return result;
}
inline void GlesSpy::glGenRenderbuffers(int32_t count, uint32_t* renderbuffers) {
GAPID_INFO("glGenRenderbuffers()\n");
mImports.glGenRenderbuffers(count, renderbuffers);
do {
Slice<RenderbufferId> l_r = slice(renderbuffers, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_72_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_72_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
RenderbufferId l_id = (RenderbufferId)(
read(slice(renderbuffers, (uint64_t)(0), (uint64_t)(count)), (uint64_t)(l_i)));
l_ctx->mInstances.mRenderbuffers[l_id] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
write(l_r, (uint64_t)(l_i), l_id);
}
} while (false);
mEncoder->Uint16(124); // Type ID -- TODO: mEncoder->Id(GL_GEN_RENDERBUFFERS_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(renderbuffers));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glBindRenderbuffer(uint32_t target, uint32_t renderbuffer) {
GAPID_INFO("glBindRenderbuffer()\n");
mImports.glBindRenderbuffer(target, renderbuffer);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_73_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_73_result;
if (!(l_ctx->mInstances.mRenderbuffers.count(renderbuffer) > 0)) {
l_ctx->mInstances.mRenderbuffers[renderbuffer] =
std::shared_ptr<Renderbuffer>((new Renderbuffer()));
}
l_ctx->mBoundRenderbuffers[target] = renderbuffer;
} while (false);
mEncoder->Uint16(125); // Type ID -- TODO: mEncoder->Id(GL_BIND_RENDERBUFFER_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(renderbuffer);
}
inline void GlesSpy::glRenderbufferStorage(uint32_t target, uint32_t format, int32_t width,
int32_t height) {
GAPID_INFO("glRenderbufferStorage()\n");
mImports.glRenderbufferStorage(target, format, width, height);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_74_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_74_result;
RenderbufferId l_id = l_ctx->mBoundRenderbuffers[target];
std::shared_ptr<Renderbuffer> l_rb = l_ctx->mInstances.mRenderbuffers[l_id];
l_rb->mFormat = format;
l_rb->mWidth = width;
l_rb->mHeight = height;
} while (false);
mEncoder->Uint16(126); // Type ID -- TODO: mEncoder->Id(GL_RENDERBUFFER_STORAGE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
mEncoder->Int32(height);
}
inline void GlesSpy::glDeleteRenderbuffers(int32_t count, uint32_t* renderbuffers) {
GAPID_INFO("glDeleteRenderbuffers()\n");
mImports.glDeleteRenderbuffers(count, renderbuffers);
do {
Slice<RenderbufferId> l_r = slice(renderbuffers, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_75_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_75_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
l_ctx->mInstances.mRenderbuffers[read(l_r, (uint64_t)(l_i))] =
std::shared_ptr<Renderbuffer>();
}
} while (false);
mEncoder->Uint16(127); // Type ID -- TODO: mEncoder->Id(GL_DELETE_RENDERBUFFERS_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(renderbuffers));
mEncoder->Uint32(0); // PoolID
}
inline bool GlesSpy::glIsRenderbuffer(uint32_t renderbuffer) {
GAPID_INFO("glIsRenderbuffer()\n");
bool result = mImports.glIsRenderbuffer(renderbuffer);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_76_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_76_result;
break;
} while (false);
mEncoder->Uint16(128); // Type ID -- TODO: mEncoder->Id(GL_IS_RENDERBUFFER_ID);
encodeObservations();
mEncoder->Uint32(renderbuffer);
mEncoder->Bool(result);
return result;
}
inline void GlesSpy::glGetRenderbufferParameteriv(uint32_t target, uint32_t parameter,
int32_t* values) {
GAPID_INFO("glGetRenderbufferParameteriv()\n");
mImports.glGetRenderbufferParameteriv(target, parameter, values);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_77_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_77_result;
RenderbufferId l_id = l_ctx->mBoundRenderbuffers[target];
std::shared_ptr<Renderbuffer> l_rb = l_ctx->mInstances.mRenderbuffers[l_id];
write(slice(values, 0, 1), 0, /* clang-format off */
/* switch(parameter) */
/* case RenderbufferParameter::GL_RENDERBUFFER_WIDTH: */(((parameter) == (RenderbufferParameter::GL_RENDERBUFFER_WIDTH))) ? (l_rb->mWidth) :
/* case RenderbufferParameter::GL_RENDERBUFFER_HEIGHT: */(((parameter) == (RenderbufferParameter::GL_RENDERBUFFER_HEIGHT))) ? (l_rb->mHeight) :
/* case RenderbufferParameter::GL_RENDERBUFFER_INTERNAL_FORMAT: */(((parameter) == (RenderbufferParameter::GL_RENDERBUFFER_INTERNAL_FORMAT))) ? ((int32_t)(l_rb->mFormat)) :
/* default: */ 0 /* clang-format on */);
} while (false);
mEncoder->Uint16(129); // Type ID -- TODO: mEncoder->Id(GL_GET_RENDERBUFFER_PARAMETERIV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGenBuffers(int32_t count, uint32_t* buffers) {
GAPID_INFO("glGenBuffers()\n");
mImports.glGenBuffers(count, buffers);
do {
Slice<BufferId> l_b = slice(buffers, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_78_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_78_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
BufferId l_id = (BufferId)(
read(slice(buffers, (uint64_t)(0), (uint64_t)(count)), (uint64_t)(l_i)));
l_ctx->mInstances.mBuffers[l_id] = std::shared_ptr<Buffer>((new Buffer()));
write(l_b, (uint64_t)(l_i), l_id);
}
} while (false);
mEncoder->Uint16(130); // Type ID -- TODO: mEncoder->Id(GL_GEN_BUFFERS_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(buffers));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glBindBuffer(uint32_t target, uint32_t buffer) {
GAPID_INFO("glBindBuffer()\n");
mImports.glBindBuffer(target, buffer);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_79_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_79_result;
if (!(l_ctx->mInstances.mBuffers.count(buffer) > 0)) {
l_ctx->mInstances.mBuffers[buffer] = std::shared_ptr<Buffer>((new Buffer()));
}
l_ctx->mBoundBuffers[target] = buffer;
} while (false);
mEncoder->Uint16(131); // Type ID -- TODO: mEncoder->Id(GL_BIND_BUFFER_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(buffer);
}
inline void GlesSpy::glBufferData(uint32_t target, int32_t size, void* data, uint32_t usage) {
GAPID_INFO("glBufferData()\n");
mImports.glBufferData(target, size, data, usage);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_80_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_80_result;
BufferId l_id = l_ctx->mBoundBuffers[target];
std::shared_ptr<Buffer> l_b = l_ctx->mInstances.mBuffers[l_id];
l_b->mData = /* clang-format off */
/* switch(data != nullptr) */
/* case true: */(((data != nullptr) == (true))) ? (clone(slice((uint8_t*)(data), (uint64_t)(0), (uint64_t)(size)))) :
/* case false: */(((data != nullptr) == (false))) ? (make<uint8_t>((uint64_t)(size))) :
/* default: */ Slice<uint8_t>() /* clang-format on */;
l_b->mSize = size;
l_b->mUsage = usage;
} while (false);
mEncoder->Uint16(132); // Type ID -- TODO: mEncoder->Id(GL_BUFFER_DATA_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(size);
mEncoder->Uint64(reinterpret_cast<uint64_t>(data));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint32(static_cast<uint32_t>(usage));
}
inline void GlesSpy::glBufferSubData(uint32_t target, int32_t offset, int32_t size, void* data) {
GAPID_INFO("glBufferSubData()\n");
mImports.glBufferSubData(target, offset, size, data);
do {
read(slice(data, (uint64_t)(0), (uint64_t)(size)));
} while (false);
mEncoder->Uint16(133); // Type ID -- TODO: mEncoder->Id(GL_BUFFER_SUB_DATA_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(offset);
mEncoder->Int32(size);
mEncoder->Uint64(reinterpret_cast<uint64_t>(data));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glDeleteBuffers(int32_t count, uint32_t* buffers) {
GAPID_INFO("glDeleteBuffers()\n");
mImports.glDeleteBuffers(count, buffers);
do {
Slice<BufferId> l_b = slice(buffers, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_81_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_81_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
l_ctx->mInstances.mBuffers[read(l_b, (uint64_t)(l_i))] = std::shared_ptr<Buffer>();
}
} while (false);
mEncoder->Uint16(134); // Type ID -- TODO: mEncoder->Id(GL_DELETE_BUFFERS_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(buffers));
mEncoder->Uint32(0); // PoolID
}
inline bool GlesSpy::glIsBuffer(uint32_t buffer) {
GAPID_INFO("glIsBuffer()\n");
bool result = mImports.glIsBuffer(buffer);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_82_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_82_result;
break;
} while (false);
mEncoder->Uint16(135); // Type ID -- TODO: mEncoder->Id(GL_IS_BUFFER_ID);
encodeObservations();
mEncoder->Uint32(buffer);
mEncoder->Bool(result);
return result;
}
inline void GlesSpy::glGetBufferParameteriv(uint32_t target, uint32_t parameter, int32_t* value) {
GAPID_INFO("glGetBufferParameteriv()\n");
mImports.glGetBufferParameteriv(target, parameter, value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_83_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_83_result;
BufferId l_id = l_ctx->mBoundBuffers[target];
std::shared_ptr<Buffer> l_b = l_ctx->mInstances.mBuffers[l_id];
write(slice(value, 0, 1), 0, /* clang-format off */
/* switch(parameter) */
/* case BufferParameter::GL_BUFFER_SIZE: */(((parameter) == (BufferParameter::GL_BUFFER_SIZE))) ? (l_b->mSize) :
/* case BufferParameter::GL_BUFFER_USAGE: */(((parameter) == (BufferParameter::GL_BUFFER_USAGE))) ? ((int32_t)(l_b->mUsage)) :
/* default: */ 0 /* clang-format on */);
} while (false);
mEncoder->Uint16(136); // Type ID -- TODO: mEncoder->Id(GL_GET_BUFFER_PARAMETERIV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline uint32_t GlesSpy::glCreateShader(uint32_t type) {
GAPID_INFO("glCreateShader()\n");
uint32_t result = mImports.glCreateShader(type);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_84_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_84_result;
ShaderId l_id = (ShaderId)(result);
l_ctx->mInstances.mShaders[l_id] = std::shared_ptr<Shader>((new Shader()));
std::shared_ptr<Shader> l_s = l_ctx->mInstances.mShaders[l_id];
l_s->mType = type;
break;
} while (false);
mEncoder->Uint16(137); // Type ID -- TODO: mEncoder->Id(GL_CREATE_SHADER_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(type));
mEncoder->Uint32(result);
return result;
}
inline void GlesSpy::glDeleteShader(uint32_t shader) {
GAPID_INFO("glDeleteShader()\n");
mImports.glDeleteShader(shader);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_85_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_85_result;
std::shared_ptr<Shader> l_s = l_ctx->mInstances.mShaders[shader];
l_s->mDeletable = true;
l_ctx->mInstances.mShaders[shader] = std::shared_ptr<Shader>();
} while (false);
mEncoder->Uint16(138); // Type ID -- TODO: mEncoder->Id(GL_DELETE_SHADER_ID);
encodeObservations();
mEncoder->Uint32(shader);
}
inline void GlesSpy::glShaderSource(uint32_t shader, int32_t count, char** source,
int32_t* length) {
GAPID_INFO("glShaderSource()\n");
mImports.glShaderSource(shader, count, source, length);
do {
Slice<char*> l_sources = slice(source, (uint64_t)(0), (uint64_t)(count));
Slice<int32_t> l_lengths = slice(length, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_86_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_86_result;
std::shared_ptr<Shader> l_s = l_ctx->mInstances.mShaders[shader];
for (int32_t l_i = 0; l_i < count; ++l_i) {
uint32_t l_l = /* clang-format off */
/* switch(length == nullptr || read(l_lengths, (uint64_t)(l_i)) < 0) */
/* case true: */(((length == nullptr || read(l_lengths, (uint64_t)(l_i)) < 0) == (true))) ? (strlen(read(l_sources, (uint64_t)(l_i)))) :
/* case false: */(((length == nullptr || read(l_lengths, (uint64_t)(l_i)) < 0) == (false))) ? ((uint32_t)(read(l_lengths, (uint64_t)(l_i)))) :
/* default: */ 0 /* clang-format on */;
l_s->mSource +=
string(slice(read(l_sources, (uint64_t)(l_i)), (uint64_t)(0), (uint64_t)(l_l)));
}
} while (false);
mEncoder->Uint16(139); // Type ID -- TODO: mEncoder->Id(GL_SHADER_SOURCE_ID);
encodeObservations();
mEncoder->Uint32(shader);
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(source));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(length));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glShaderBinary(int32_t count, uint32_t* shaders, uint32_t binary_format,
void* binary, int32_t binary_size) {
GAPID_INFO("glShaderBinary()\n");
mImports.glShaderBinary(count, shaders, binary_format, binary, binary_size);
do {
for (int32_t l_i = 0; l_i < count; ++l_i) {
}
} while (false);
mEncoder->Uint16(140); // Type ID -- TODO: mEncoder->Id(GL_SHADER_BINARY_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(shaders));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint32(binary_format);
mEncoder->Uint64(reinterpret_cast<uint64_t>(binary));
mEncoder->Uint32(0); // PoolID
mEncoder->Int32(binary_size);
}
inline void GlesSpy::glGetShaderInfoLog(uint32_t shader, int32_t buffer_length,
int32_t* string_length_written, char* info) {
GAPID_INFO("glGetShaderInfoLog()\n");
mImports.glGetShaderInfoLog(shader, buffer_length, string_length_written, info);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_87_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_87_result;
std::shared_ptr<Shader> l_s = l_ctx->mInstances.mShaders[shader];
int32_t l_min_88_a = buffer_length;
int32_t l_min_88_b = (int32_t)(strlen(l_s->mInfoLog));
int32_t l_min_88_result = /* clang-format off */
/* switch(l_min_88_a < l_min_88_b) */
/* case true: */(((l_min_88_a < l_min_88_b) == (true))) ? (l_min_88_a) :
/* case false: */(((l_min_88_a < l_min_88_b) == (false))) ? (l_min_88_b) :
/* default: */ 0 /* clang-format on */;
int32_t l_l = l_min_88_result;
write(slice(string_length_written, 0, 1), 0, l_l);
copy(slice(info, (uint64_t)(0), (uint64_t)(l_l)),
slice(l_s->mInfoLog, (uint64_t)(0), (uint64_t)(l_l)));
} while (false);
mEncoder->Uint16(141); // Type ID -- TODO: mEncoder->Id(GL_GET_SHADER_INFO_LOG_ID);
encodeObservations();
mEncoder->Uint32(shader);
mEncoder->Int32(buffer_length);
mEncoder->Uint64(reinterpret_cast<uint64_t>(string_length_written));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(info));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetShaderSource(uint32_t shader, int32_t buffer_length,
int32_t* string_length_written, char* source) {
GAPID_INFO("glGetShaderSource()\n");
mImports.glGetShaderSource(shader, buffer_length, string_length_written, source);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_89_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_89_result;
std::shared_ptr<Shader> l_s = l_ctx->mInstances.mShaders[shader];
int32_t l_min_90_a = buffer_length;
int32_t l_min_90_b = (int32_t)(strlen(l_s->mSource));
int32_t l_min_90_result = /* clang-format off */
/* switch(l_min_90_a < l_min_90_b) */
/* case true: */(((l_min_90_a < l_min_90_b) == (true))) ? (l_min_90_a) :
/* case false: */(((l_min_90_a < l_min_90_b) == (false))) ? (l_min_90_b) :
/* default: */ 0 /* clang-format on */;
int32_t l_l = l_min_90_result;
write(slice(string_length_written, 0, 1), 0, l_l);
copy(slice(source, (uint64_t)(0), (uint64_t)(l_l)),
slice(slice(l_s->mSource), (uint64_t)(0), (uint64_t)(l_l)));
} while (false);
mEncoder->Uint16(142); // Type ID -- TODO: mEncoder->Id(GL_GET_SHADER_SOURCE_ID);
encodeObservations();
mEncoder->Uint32(shader);
mEncoder->Int32(buffer_length);
mEncoder->Uint64(reinterpret_cast<uint64_t>(string_length_written));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(source));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glReleaseShaderCompiler() {
GAPID_INFO("glReleaseShaderCompiler()\n");
mImports.glReleaseShaderCompiler();
do {
} while (false);
mEncoder->Uint16(143); // Type ID -- TODO: mEncoder->Id(GL_RELEASE_SHADER_COMPILER_ID);
encodeObservations();
}
inline void GlesSpy::glCompileShader(uint32_t shader) {
GAPID_INFO("glCompileShader()\n");
mImports.glCompileShader(shader);
do {
} while (false);
mEncoder->Uint16(144); // Type ID -- TODO: mEncoder->Id(GL_COMPILE_SHADER_ID);
encodeObservations();
mEncoder->Uint32(shader);
}
inline bool GlesSpy::glIsShader(uint32_t shader) {
GAPID_INFO("glIsShader()\n");
bool result = mImports.glIsShader(shader);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_91_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_91_result;
break;
} while (false);
mEncoder->Uint16(145); // Type ID -- TODO: mEncoder->Id(GL_IS_SHADER_ID);
encodeObservations();
mEncoder->Uint32(shader);
mEncoder->Bool(result);
return result;
}
inline uint32_t GlesSpy::glCreateProgram() {
GAPID_INFO("glCreateProgram()\n");
uint32_t result = mImports.glCreateProgram();
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_92_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_92_result;
ProgramId l_id = (ProgramId)(result);
l_ctx->mInstances.mPrograms[l_id] = std::shared_ptr<Program>((new Program()));
break;
} while (false);
mEncoder->Uint16(146); // Type ID -- TODO: mEncoder->Id(GL_CREATE_PROGRAM_ID);
encodeObservations();
mEncoder->Uint32(result);
return result;
}
inline void GlesSpy::glDeleteProgram(uint32_t program) {
GAPID_INFO("glDeleteProgram()\n");
mImports.glDeleteProgram(program);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_93_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_93_result;
l_ctx->mInstances.mPrograms[program] = std::shared_ptr<Program>();
} while (false);
mEncoder->Uint16(147); // Type ID -- TODO: mEncoder->Id(GL_DELETE_PROGRAM_ID);
encodeObservations();
mEncoder->Uint32(program);
}
inline void GlesSpy::glAttachShader(uint32_t program, uint32_t shader) {
GAPID_INFO("glAttachShader()\n");
mImports.glAttachShader(program, shader);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_94_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_94_result;
std::shared_ptr<Program> l_p = l_ctx->mInstances.mPrograms[program];
std::shared_ptr<Shader> l_s = l_ctx->mInstances.mShaders[shader];
l_p->mShaders[l_s->mType] = shader;
} while (false);
mEncoder->Uint16(148); // Type ID -- TODO: mEncoder->Id(GL_ATTACH_SHADER_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Uint32(shader);
}
inline void GlesSpy::glDetachShader(uint32_t program, uint32_t shader) {
GAPID_INFO("glDetachShader()\n");
mImports.glDetachShader(program, shader);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_95_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_95_result;
std::shared_ptr<Program> l_p = l_ctx->mInstances.mPrograms[program];
std::shared_ptr<Shader> l_s = l_ctx->mInstances.mShaders[shader];
l_p->mShaders[l_s->mType] = 0;
} while (false);
mEncoder->Uint16(149); // Type ID -- TODO: mEncoder->Id(GL_DETACH_SHADER_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Uint32(shader);
}
inline void GlesSpy::glGetAttachedShaders(uint32_t program, int32_t buffer_length,
int32_t* shaders_length_written, uint32_t* shaders) {
GAPID_INFO("glGetAttachedShaders()\n");
mImports.glGetAttachedShaders(program, buffer_length, shaders_length_written, shaders);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_96_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_96_result;
std::shared_ptr<Program> l_p = l_ctx->mInstances.mPrograms[program];
int32_t l_min_97_a = buffer_length;
int32_t l_min_97_b = l_p->mShaders.size();
int32_t l_min_97_result = /* clang-format off */
/* switch(l_min_97_a < l_min_97_b) */
/* case true: */(((l_min_97_a < l_min_97_b) == (true))) ? (l_min_97_a) :
/* case false: */(((l_min_97_a < l_min_97_b) == (false))) ? (l_min_97_b) :
/* default: */ 0 /* clang-format on */;
int32_t l_l = l_min_97_result;
write(slice(shaders_length_written, 0, 1), 0, l_l);
} while (false);
mEncoder->Uint16(150); // Type ID -- TODO: mEncoder->Id(GL_GET_ATTACHED_SHADERS_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Int32(buffer_length);
mEncoder->Uint64(reinterpret_cast<uint64_t>(shaders_length_written));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(shaders));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glLinkProgram(uint32_t program) {
GAPID_INFO("glLinkProgram()\n");
mImports.glLinkProgram(program);
do {
} while (false);
mEncoder->Uint16(151); // Type ID -- TODO: mEncoder->Id(GL_LINK_PROGRAM_ID);
encodeObservations();
mEncoder->Uint32(program);
}
inline void GlesSpy::glGetProgramInfoLog(uint32_t program, int32_t buffer_length,
int32_t* string_length_written, char* info) {
GAPID_INFO("glGetProgramInfoLog()\n");
mImports.glGetProgramInfoLog(program, buffer_length, string_length_written, info);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_98_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_98_result;
std::shared_ptr<Program> l_p = l_ctx->mInstances.mPrograms[program];
int32_t l_min_99_a = buffer_length;
int32_t l_min_99_b = (int32_t)(strlen(l_p->mInfoLog));
int32_t l_min_99_result = /* clang-format off */
/* switch(l_min_99_a < l_min_99_b) */
/* case true: */(((l_min_99_a < l_min_99_b) == (true))) ? (l_min_99_a) :
/* case false: */(((l_min_99_a < l_min_99_b) == (false))) ? (l_min_99_b) :
/* default: */ 0 /* clang-format on */;
int32_t l_l = l_min_99_result;
write(slice(string_length_written, 0, 1), 0, l_l);
copy(slice(info, (uint64_t)(0), (uint64_t)(l_l)),
slice(l_p->mInfoLog, (uint64_t)(0), (uint64_t)(l_l)));
} while (false);
mEncoder->Uint16(152); // Type ID -- TODO: mEncoder->Id(GL_GET_PROGRAM_INFO_LOG_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Int32(buffer_length);
mEncoder->Uint64(reinterpret_cast<uint64_t>(string_length_written));
mEncoder->Uint32(0); // PoolID
mEncoder->Uint64(reinterpret_cast<uint64_t>(info));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glUseProgram(uint32_t program) {
GAPID_INFO("glUseProgram()\n");
mImports.glUseProgram(program);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_100_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_100_result;
l_ctx->mBoundProgram = program;
} while (false);
mEncoder->Uint16(153); // Type ID -- TODO: mEncoder->Id(GL_USE_PROGRAM_ID);
encodeObservations();
mEncoder->Uint32(program);
}
inline bool GlesSpy::glIsProgram(uint32_t program) {
GAPID_INFO("glIsProgram()\n");
bool result = mImports.glIsProgram(program);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_101_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_101_result;
break;
} while (false);
mEncoder->Uint16(154); // Type ID -- TODO: mEncoder->Id(GL_IS_PROGRAM_ID);
encodeObservations();
mEncoder->Uint32(program);
mEncoder->Bool(result);
return result;
}
inline void GlesSpy::glValidateProgram(uint32_t program) {
GAPID_INFO("glValidateProgram()\n");
mImports.glValidateProgram(program);
do {
} while (false);
mEncoder->Uint16(155); // Type ID -- TODO: mEncoder->Id(GL_VALIDATE_PROGRAM_ID);
encodeObservations();
mEncoder->Uint32(program);
}
inline void GlesSpy::glClearColor(float r, float g, float b, float a) {
GAPID_INFO("glClearColor()\n");
mImports.glClearColor(r, g, b, a);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_102_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_102_result;
l_ctx->mClearing.mClearColor = Color().SetRed(r).SetGreen(g).SetBlue(b).SetAlpha(a);
} while (false);
mEncoder->Uint16(156); // Type ID -- TODO: mEncoder->Id(GL_CLEAR_COLOR_ID);
encodeObservations();
mEncoder->Float32(r);
mEncoder->Float32(g);
mEncoder->Float32(b);
mEncoder->Float32(a);
}
inline void GlesSpy::glClearDepthf(float depth) {
GAPID_INFO("glClearDepthf()\n");
mImports.glClearDepthf(depth);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_103_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_103_result;
l_ctx->mClearing.mClearDepth = depth;
} while (false);
mEncoder->Uint16(157); // Type ID -- TODO: mEncoder->Id(GL_CLEAR_DEPTHF_ID);
encodeObservations();
mEncoder->Float32(depth);
}
inline void GlesSpy::glClearStencil(int32_t stencil) {
GAPID_INFO("glClearStencil()\n");
mImports.glClearStencil(stencil);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_104_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_104_result;
l_ctx->mClearing.mClearStencil = stencil;
} while (false);
mEncoder->Uint16(158); // Type ID -- TODO: mEncoder->Id(GL_CLEAR_STENCIL_ID);
encodeObservations();
mEncoder->Int32(stencil);
}
inline void GlesSpy::glClear(uint32_t mask) {
GAPID_INFO("glClear()\n");
mImports.glClear(mask);
do {
if ((mask & ClearMask::GL_COLOR_BUFFER_BIT) != 0) {
}
} while (false);
mEncoder->Uint16(159); // Type ID -- TODO: mEncoder->Id(GL_CLEAR_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(mask));
}
inline void GlesSpy::glCullFace(uint32_t mode) {
GAPID_INFO("glCullFace()\n");
mImports.glCullFace(mode);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_105_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_105_result;
l_ctx->mRasterizing.mCullFace = mode;
} while (false);
mEncoder->Uint16(160); // Type ID -- TODO: mEncoder->Id(GL_CULL_FACE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(mode));
}
inline void GlesSpy::glPolygonOffset(float scale_factor, float units) {
GAPID_INFO("glPolygonOffset()\n");
mImports.glPolygonOffset(scale_factor, units);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_106_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_106_result;
l_ctx->mRasterizing.mPolygonOffsetUnits = units;
l_ctx->mRasterizing.mPolygonOffsetFactor = scale_factor;
} while (false);
mEncoder->Uint16(161); // Type ID -- TODO: mEncoder->Id(GL_POLYGON_OFFSET_ID);
encodeObservations();
mEncoder->Float32(scale_factor);
mEncoder->Float32(units);
}
inline void GlesSpy::glLineWidth(float width) {
GAPID_INFO("glLineWidth()\n");
mImports.glLineWidth(width);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_107_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_107_result;
l_ctx->mRasterizing.mLineWidth = width;
} while (false);
mEncoder->Uint16(162); // Type ID -- TODO: mEncoder->Id(GL_LINE_WIDTH_ID);
encodeObservations();
mEncoder->Float32(width);
}
inline void GlesSpy::glSampleCoverage(float value, bool invert) {
GAPID_INFO("glSampleCoverage()\n");
mImports.glSampleCoverage(value, invert);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_108_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_108_result;
l_ctx->mRasterizing.mSampleCoverageValue = value;
l_ctx->mRasterizing.mSampleCoverageInvert = invert;
} while (false);
mEncoder->Uint16(163); // Type ID -- TODO: mEncoder->Id(GL_SAMPLE_COVERAGE_ID);
encodeObservations();
mEncoder->Float32(value);
mEncoder->Bool(invert);
}
inline void GlesSpy::glHint(uint32_t target, uint32_t mode) {
GAPID_INFO("glHint()\n");
mImports.glHint(target, mode);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_109_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_109_result;
l_ctx->mGenerateMipmapHint = mode;
} while (false);
mEncoder->Uint16(164); // Type ID -- TODO: mEncoder->Id(GL_HINT_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(mode));
}
inline void GlesSpy::glFramebufferRenderbuffer(uint32_t framebuffer_target,
uint32_t framebuffer_attachment,
uint32_t renderbuffer_target,
uint32_t renderbuffer) {
GAPID_INFO("glFramebufferRenderbuffer()\n");
mImports.glFramebufferRenderbuffer(framebuffer_target, framebuffer_attachment,
renderbuffer_target, renderbuffer);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_110_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_110_result;
uint32_t l_target = /* clang-format off */
/* switch(framebuffer_target) */
/* case FramebufferTarget::GL_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_FRAMEBUFFER))) ? (FramebufferTarget::GL_DRAW_FRAMEBUFFER) :
/* case FramebufferTarget::GL_DRAW_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_DRAW_FRAMEBUFFER))) ? (FramebufferTarget::GL_DRAW_FRAMEBUFFER) :
/* case FramebufferTarget::GL_READ_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_READ_FRAMEBUFFER))) ? (FramebufferTarget::GL_READ_FRAMEBUFFER) :
/* default: */ 0 /* clang-format on */;
FramebufferId l_framebufferId = l_ctx->mBoundFramebuffers[l_target];
std::shared_ptr<Framebuffer> l_framebuffer =
l_ctx->mInstances.mFramebuffers[l_framebufferId];
FramebufferAttachmentInfo l_attachment =
l_framebuffer->mAttachments[framebuffer_attachment];
if (renderbuffer == (RenderbufferId)(0)) {
l_attachment.mType = FramebufferAttachmentType::GL_NONE;
} else {
l_attachment.mType = FramebufferAttachmentType::GL_RENDERBUFFER;
}
l_attachment.mObject = (uint32_t)(renderbuffer);
l_attachment.mTextureLevel = 0;
l_attachment.mCubeMapFace = CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X;
l_framebuffer->mAttachments[framebuffer_attachment] = l_attachment;
} while (false);
mEncoder->Uint16(165); // Type ID -- TODO: mEncoder->Id(GL_FRAMEBUFFER_RENDERBUFFER_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(framebuffer_target));
mEncoder->Uint32(static_cast<uint32_t>(framebuffer_attachment));
mEncoder->Uint32(static_cast<uint32_t>(renderbuffer_target));
mEncoder->Uint32(renderbuffer);
}
inline void GlesSpy::glFramebufferTexture2D(uint32_t framebuffer_target,
uint32_t framebuffer_attachment,
uint32_t texture_target, uint32_t texture,
int32_t level) {
GAPID_INFO("glFramebufferTexture2D()\n");
mImports.glFramebufferTexture2D(framebuffer_target, framebuffer_attachment, texture_target,
texture, level);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_111_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_111_result;
uint32_t l_target = /* clang-format off */
/* switch(framebuffer_target) */
/* case FramebufferTarget::GL_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_FRAMEBUFFER))) ? (FramebufferTarget::GL_DRAW_FRAMEBUFFER) :
/* case FramebufferTarget::GL_DRAW_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_DRAW_FRAMEBUFFER))) ? (FramebufferTarget::GL_DRAW_FRAMEBUFFER) :
/* case FramebufferTarget::GL_READ_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_READ_FRAMEBUFFER))) ? (FramebufferTarget::GL_READ_FRAMEBUFFER) :
/* default: */ 0 /* clang-format on */;
FramebufferId l_framebufferId = l_ctx->mBoundFramebuffers[l_target];
std::shared_ptr<Framebuffer> l_framebuffer =
l_ctx->mInstances.mFramebuffers[l_framebufferId];
FramebufferAttachmentInfo l_attachment =
l_framebuffer->mAttachments[framebuffer_attachment];
if (texture == (TextureId)(0)) {
l_attachment.mType = FramebufferAttachmentType::GL_NONE;
l_attachment.mObject = 0;
l_attachment.mTextureLevel = 0;
l_attachment.mCubeMapFace = CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X;
} else {
l_attachment.mType = FramebufferAttachmentType::GL_TEXTURE;
l_attachment.mObject = (uint32_t)(texture);
l_attachment.mTextureLevel = level;
l_attachment.mCubeMapFace = /* clang-format off */
/* switch(texture_target) */
/* case TextureImageTarget::GL_TEXTURE_2D: */(((texture_target) == (TextureImageTarget::GL_TEXTURE_2D))) ? (CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X) :
/* case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X: */(((texture_target) == (TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X))) ? (CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_X) :
/* case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Y: */(((texture_target) == (TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Y))) ? (CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Y) :
/* case TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Z: */(((texture_target) == (TextureImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Z))) ? (CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_POSITIVE_Z) :
/* case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_X: */(((texture_target) == (TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_X))) ? (CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_X) :
/* case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: */(((texture_target) == (TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Y))) ? (CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Y) :
/* case TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: */(((texture_target) == (TextureImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Z))) ? (CubeMapImageTarget::GL_TEXTURE_CUBE_MAP_NEGATIVE_Z) :
/* default: */ 0 /* clang-format on */;
}
l_framebuffer->mAttachments[framebuffer_attachment] = l_attachment;
} while (false);
mEncoder->Uint16(166); // Type ID -- TODO: mEncoder->Id(GL_FRAMEBUFFER_TEXTURE2D_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(framebuffer_target));
mEncoder->Uint32(static_cast<uint32_t>(framebuffer_attachment));
mEncoder->Uint32(static_cast<uint32_t>(texture_target));
mEncoder->Uint32(texture);
mEncoder->Int32(level);
}
inline void GlesSpy::glGetFramebufferAttachmentParameteriv(uint32_t framebuffer_target,
uint32_t attachment, uint32_t parameter,
int32_t* value) {
GAPID_INFO("glGetFramebufferAttachmentParameteriv()\n");
mImports.glGetFramebufferAttachmentParameteriv(framebuffer_target, attachment, parameter,
value);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_112_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_112_result;
uint32_t l_target = /* clang-format off */
/* switch(framebuffer_target) */
/* case FramebufferTarget::GL_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_FRAMEBUFFER))) ? (FramebufferTarget::GL_DRAW_FRAMEBUFFER) :
/* case FramebufferTarget::GL_DRAW_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_DRAW_FRAMEBUFFER))) ? (FramebufferTarget::GL_DRAW_FRAMEBUFFER) :
/* case FramebufferTarget::GL_READ_FRAMEBUFFER: */(((framebuffer_target) == (FramebufferTarget::GL_READ_FRAMEBUFFER))) ? (FramebufferTarget::GL_READ_FRAMEBUFFER) :
/* default: */ 0 /* clang-format on */;
FramebufferId l_framebufferId = l_ctx->mBoundFramebuffers[l_target];
std::shared_ptr<Framebuffer> l_framebuffer =
l_ctx->mInstances.mFramebuffers[l_framebufferId];
FramebufferAttachmentInfo l_a = l_framebuffer->mAttachments[attachment];
write(slice(value, 0, 1), 0, /* clang-format off */
/* switch(parameter) */
/* case FramebufferAttachmentParameter::GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: */(((parameter) == (FramebufferAttachmentParameter::GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE))) ? ((int32_t)(l_a.mType)) :
/* case FramebufferAttachmentParameter::GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: */(((parameter) == (FramebufferAttachmentParameter::GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME))) ? ((int32_t)(l_a.mObject)) :
/* case FramebufferAttachmentParameter::GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: */(((parameter) == (FramebufferAttachmentParameter::GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL))) ? (l_a.mTextureLevel) :
/* case FramebufferAttachmentParameter::GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: */(((parameter) == (FramebufferAttachmentParameter::GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE))) ? ((int32_t)(l_a.mCubeMapFace)) :
/* default: */ 0 /* clang-format on */);
} while (false);
mEncoder->Uint16(
167); // Type ID -- TODO: mEncoder->Id(GL_GET_FRAMEBUFFER_ATTACHMENT_PARAMETERIV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(framebuffer_target));
mEncoder->Uint32(static_cast<uint32_t>(attachment));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glDrawElements(uint32_t draw_mode, int32_t element_count,
uint32_t indices_type, void* indices) {
GAPID_INFO("glDrawElements()\n");
mImports.glDrawElements(draw_mode, element_count, indices_type, indices);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_113_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_113_result;
uint32_t l_count = (uint32_t)(element_count);
BufferId l_id = l_ctx->mBoundBuffers[BufferTarget::GL_ELEMENT_ARRAY_BUFFER];
if (l_id != (BufferId)(0)) {
Slice<uint8_t> l_index_data = l_ctx->mInstances.mBuffers[l_id]->mData;
uint32_t l_offset = (uint32_t)((uint64_t)(indices));
uint32_t l_first = minIndex(l_index_data.begin(), indices_type, l_offset, l_count);
uint32_t l_last = maxIndex(l_index_data.begin(), indices_type, l_offset, l_count);
std::shared_ptr<Context> l_ReadVertexArrays_114_ctx = l_ctx;
uint32_t l_ReadVertexArrays_114_first_index = l_first;
uint32_t l_ReadVertexArrays_114_last_index = l_last;
for (int32_t l_i = 0; l_i < l_ReadVertexArrays_114_ctx->mVertexAttributeArrays.size();
++l_i) {
std::shared_ptr<VertexAttributeArray> l_arr =
l_ReadVertexArrays_114_ctx
->mVertexAttributeArrays[(AttributeLocation)(l_i)];
if (l_arr->mEnabled && l_arr->mBuffer == (BufferId)(0)) {
uint32_t l_vertexAttribTypeSize_115_t = l_arr->mType;
uint32_t l_vertexAttribTypeSize_115_result = /* clang-format off */
/* switch(l_vertexAttribTypeSize_115_t) */
/* case VertexAttribType::GL_BYTE: */(((l_vertexAttribTypeSize_115_t) == (VertexAttribType::GL_BYTE))) ? (1) :
/* case VertexAttribType::GL_UNSIGNED_BYTE: */(((l_vertexAttribTypeSize_115_t) == (VertexAttribType::GL_UNSIGNED_BYTE))) ? (1) :
/* case VertexAttribType::GL_SHORT: */(((l_vertexAttribTypeSize_115_t) == (VertexAttribType::GL_SHORT))) ? (2) :
/* case VertexAttribType::GL_UNSIGNED_SHORT: */(((l_vertexAttribTypeSize_115_t) == (VertexAttribType::GL_UNSIGNED_SHORT))) ? (2) :
/* case VertexAttribType::GL_FIXED: */(((l_vertexAttribTypeSize_115_t) == (VertexAttribType::GL_FIXED))) ? (4) :
/* case VertexAttribType::GL_FLOAT: */(((l_vertexAttribTypeSize_115_t) == (VertexAttribType::GL_FLOAT))) ? (4) :
/* case VertexAttribType::GL_ARB_half_float_vertex: */(((l_vertexAttribTypeSize_115_t) == (VertexAttribType::GL_ARB_half_float_vertex))) ? (2) :
/* case VertexAttribType::GL_HALF_FLOAT_OES: */(((l_vertexAttribTypeSize_115_t) == (VertexAttribType::GL_HALF_FLOAT_OES))) ? (2) :
/* default: */ 0 /* clang-format on */;
uint32_t l_elsize = l_vertexAttribTypeSize_115_result * l_arr->mSize;
uint32_t l_elstride = /* clang-format off */
/* switch(l_arr->mStride == 0) */
/* case true: */(((l_arr->mStride == 0) == (true))) ? (l_elsize) :
/* case false: */(((l_arr->mStride == 0) == (false))) ? ((uint32_t)(l_arr->mStride)) :
/* default: */ 0 /* clang-format on */;
for (uint32_t l_v = l_ReadVertexArrays_114_first_index;
l_v < l_ReadVertexArrays_114_last_index + 1; ++l_v) {
uint32_t l_offset = l_elstride * l_v;
read(slice(l_arr->mPointer, (uint64_t)(l_offset),
(uint64_t)(l_offset + l_elsize)));
}
}
}
} else {
uint8_t* l_index_data = (uint8_t*)(indices);
uint32_t l_first = minIndex(l_index_data, indices_type, 0, l_count);
uint32_t l_last = maxIndex(l_index_data, indices_type, 0, l_count);
std::shared_ptr<Context> l_ReadVertexArrays_116_ctx = l_ctx;
uint32_t l_ReadVertexArrays_116_first_index = l_first;
uint32_t l_ReadVertexArrays_116_last_index = l_last;
for (int32_t l_i = 0; l_i < l_ReadVertexArrays_116_ctx->mVertexAttributeArrays.size();
++l_i) {
std::shared_ptr<VertexAttributeArray> l_arr =
l_ReadVertexArrays_116_ctx
->mVertexAttributeArrays[(AttributeLocation)(l_i)];
if (l_arr->mEnabled && l_arr->mBuffer == (BufferId)(0)) {
uint32_t l_vertexAttribTypeSize_117_t = l_arr->mType;
uint32_t l_vertexAttribTypeSize_117_result = /* clang-format off */
/* switch(l_vertexAttribTypeSize_117_t) */
/* case VertexAttribType::GL_BYTE: */(((l_vertexAttribTypeSize_117_t) == (VertexAttribType::GL_BYTE))) ? (1) :
/* case VertexAttribType::GL_UNSIGNED_BYTE: */(((l_vertexAttribTypeSize_117_t) == (VertexAttribType::GL_UNSIGNED_BYTE))) ? (1) :
/* case VertexAttribType::GL_SHORT: */(((l_vertexAttribTypeSize_117_t) == (VertexAttribType::GL_SHORT))) ? (2) :
/* case VertexAttribType::GL_UNSIGNED_SHORT: */(((l_vertexAttribTypeSize_117_t) == (VertexAttribType::GL_UNSIGNED_SHORT))) ? (2) :
/* case VertexAttribType::GL_FIXED: */(((l_vertexAttribTypeSize_117_t) == (VertexAttribType::GL_FIXED))) ? (4) :
/* case VertexAttribType::GL_FLOAT: */(((l_vertexAttribTypeSize_117_t) == (VertexAttribType::GL_FLOAT))) ? (4) :
/* case VertexAttribType::GL_ARB_half_float_vertex: */(((l_vertexAttribTypeSize_117_t) == (VertexAttribType::GL_ARB_half_float_vertex))) ? (2) :
/* case VertexAttribType::GL_HALF_FLOAT_OES: */(((l_vertexAttribTypeSize_117_t) == (VertexAttribType::GL_HALF_FLOAT_OES))) ? (2) :
/* default: */ 0 /* clang-format on */;
uint32_t l_elsize = l_vertexAttribTypeSize_117_result * l_arr->mSize;
uint32_t l_elstride = /* clang-format off */
/* switch(l_arr->mStride == 0) */
/* case true: */(((l_arr->mStride == 0) == (true))) ? (l_elsize) :
/* case false: */(((l_arr->mStride == 0) == (false))) ? ((uint32_t)(l_arr->mStride)) :
/* default: */ 0 /* clang-format on */;
for (uint32_t l_v = l_ReadVertexArrays_116_first_index;
l_v < l_ReadVertexArrays_116_last_index + 1; ++l_v) {
uint32_t l_offset = l_elstride * l_v;
read(slice(l_arr->mPointer, (uint64_t)(l_offset),
(uint64_t)(l_offset + l_elsize)));
}
}
}
uint32_t l_IndexSize_118_indices_type = indices_type;
uint32_t l_IndexSize_118_result = /* clang-format off */
/* switch(l_IndexSize_118_indices_type) */
/* case IndicesType::GL_UNSIGNED_BYTE: */(((l_IndexSize_118_indices_type) == (IndicesType::GL_UNSIGNED_BYTE))) ? (1) :
/* case IndicesType::GL_UNSIGNED_SHORT: */(((l_IndexSize_118_indices_type) == (IndicesType::GL_UNSIGNED_SHORT))) ? (2) :
/* case IndicesType::GL_UNSIGNED_INT: */(((l_IndexSize_118_indices_type) == (IndicesType::GL_UNSIGNED_INT))) ? (4) :
/* default: */ 0 /* clang-format on */;
read(slice(l_index_data, (uint64_t)(0),
(uint64_t)((uint32_t)(element_count)*l_IndexSize_118_result)));
}
} while (false);
mEncoder->Uint16(168); // Type ID -- TODO: mEncoder->Id(GL_DRAW_ELEMENTS_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(draw_mode));
mEncoder->Int32(element_count);
mEncoder->Uint32(static_cast<uint32_t>(indices_type));
mEncoder->Uint64(reinterpret_cast<uint64_t>(indices));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glDrawArrays(uint32_t draw_mode, int32_t first_index, int32_t index_count) {
GAPID_INFO("glDrawArrays()\n");
mImports.glDrawArrays(draw_mode, first_index, index_count);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_119_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_119_result;
int32_t l_last_index = first_index + index_count - 1;
std::shared_ptr<Context> l_ReadVertexArrays_120_ctx = l_ctx;
uint32_t l_ReadVertexArrays_120_first_index = (uint32_t)(first_index);
uint32_t l_ReadVertexArrays_120_last_index = (uint32_t)(l_last_index);
for (int32_t l_i = 0; l_i < l_ReadVertexArrays_120_ctx->mVertexAttributeArrays.size();
++l_i) {
std::shared_ptr<VertexAttributeArray> l_arr =
l_ReadVertexArrays_120_ctx->mVertexAttributeArrays[(AttributeLocation)(l_i)];
if (l_arr->mEnabled && l_arr->mBuffer == (BufferId)(0)) {
uint32_t l_vertexAttribTypeSize_121_t = l_arr->mType;
uint32_t l_vertexAttribTypeSize_121_result = /* clang-format off */
/* switch(l_vertexAttribTypeSize_121_t) */
/* case VertexAttribType::GL_BYTE: */(((l_vertexAttribTypeSize_121_t) == (VertexAttribType::GL_BYTE))) ? (1) :
/* case VertexAttribType::GL_UNSIGNED_BYTE: */(((l_vertexAttribTypeSize_121_t) == (VertexAttribType::GL_UNSIGNED_BYTE))) ? (1) :
/* case VertexAttribType::GL_SHORT: */(((l_vertexAttribTypeSize_121_t) == (VertexAttribType::GL_SHORT))) ? (2) :
/* case VertexAttribType::GL_UNSIGNED_SHORT: */(((l_vertexAttribTypeSize_121_t) == (VertexAttribType::GL_UNSIGNED_SHORT))) ? (2) :
/* case VertexAttribType::GL_FIXED: */(((l_vertexAttribTypeSize_121_t) == (VertexAttribType::GL_FIXED))) ? (4) :
/* case VertexAttribType::GL_FLOAT: */(((l_vertexAttribTypeSize_121_t) == (VertexAttribType::GL_FLOAT))) ? (4) :
/* case VertexAttribType::GL_ARB_half_float_vertex: */(((l_vertexAttribTypeSize_121_t) == (VertexAttribType::GL_ARB_half_float_vertex))) ? (2) :
/* case VertexAttribType::GL_HALF_FLOAT_OES: */(((l_vertexAttribTypeSize_121_t) == (VertexAttribType::GL_HALF_FLOAT_OES))) ? (2) :
/* default: */ 0 /* clang-format on */;
uint32_t l_elsize = l_vertexAttribTypeSize_121_result * l_arr->mSize;
uint32_t l_elstride = /* clang-format off */
/* switch(l_arr->mStride == 0) */
/* case true: */(((l_arr->mStride == 0) == (true))) ? (l_elsize) :
/* case false: */(((l_arr->mStride == 0) == (false))) ? ((uint32_t)(l_arr->mStride)) :
/* default: */ 0 /* clang-format on */;
for (uint32_t l_v = l_ReadVertexArrays_120_first_index;
l_v < l_ReadVertexArrays_120_last_index + 1; ++l_v) {
uint32_t l_offset = l_elstride * l_v;
read(slice(l_arr->mPointer, (uint64_t)(l_offset),
(uint64_t)(l_offset + l_elsize)));
}
}
}
} while (false);
mEncoder->Uint16(169); // Type ID -- TODO: mEncoder->Id(GL_DRAW_ARRAYS_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(draw_mode));
mEncoder->Int32(first_index);
mEncoder->Int32(index_count);
}
inline void GlesSpy::glFlush() {
GAPID_INFO("glFlush()\n");
mImports.glFlush();
do {
} while (false);
mEncoder->Uint16(170); // Type ID -- TODO: mEncoder->Id(GL_FLUSH_ID);
encodeObservations();
}
inline void GlesSpy::glFinish() {
GAPID_INFO("glFinish()\n");
mImports.glFinish();
do {
} while (false);
mEncoder->Uint16(171); // Type ID -- TODO: mEncoder->Id(GL_FINISH_ID);
encodeObservations();
}
inline void GlesSpy::glGetBooleanv(uint32_t param, bool* values) {
GAPID_INFO("glGetBooleanv()\n");
mImports.glGetBooleanv(param, values);
do {
Slice<bool> l_v = slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param)));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_122_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_122_result;
switch (param) {
case StateVariable::GL_BLEND: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_BLEND]);
break;
}
case StateVariable::GL_CULL_FACE: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_CULL_FACE]);
break;
}
case StateVariable::GL_DEPTH_TEST: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_DEPTH_TEST]);
break;
}
case StateVariable::GL_DITHER: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_DITHER]);
break;
}
case StateVariable::GL_POLYGON_OFFSET_FILL: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_POLYGON_OFFSET_FILL]);
break;
}
case StateVariable::GL_SAMPLE_ALPHA_TO_COVERAGE: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_SAMPLE_ALPHA_TO_COVERAGE]);
break;
}
case StateVariable::GL_SAMPLE_COVERAGE: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_SAMPLE_COVERAGE]);
break;
}
case StateVariable::GL_SCISSOR_TEST: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_SCISSOR_TEST]);
break;
}
case StateVariable::GL_STENCIL_TEST: {
write(l_v, 0, l_ctx->mCapabilities[Capability::GL_STENCIL_TEST]);
break;
}
case StateVariable::GL_DEPTH_WRITEMASK: {
write(l_v, 0, l_ctx->mRasterizing.mDepthMask);
break;
}
case StateVariable::GL_COLOR_WRITEMASK: {
write(l_v, 0, l_ctx->mRasterizing.mColorMaskRed);
write(l_v, 1, l_ctx->mRasterizing.mColorMaskGreen);
write(l_v, 2, l_ctx->mRasterizing.mColorMaskBlue);
write(l_v, 3, l_ctx->mRasterizing.mColorMaskAlpha);
break;
}
case StateVariable::GL_SAMPLE_COVERAGE_INVERT: {
write(l_v, 0, l_ctx->mRasterizing.mSampleCoverageInvert);
break;
}
case StateVariable::GL_SHADER_COMPILER: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
}
} while (false);
mEncoder->Uint16(172); // Type ID -- TODO: mEncoder->Id(GL_GET_BOOLEANV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(param));
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetFloatv(uint32_t param, float* values) {
GAPID_INFO("glGetFloatv()\n");
mImports.glGetFloatv(param, values);
do {
Slice<float> l_v = slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param)));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_123_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_123_result;
switch (param) {
case StateVariable::GL_DEPTH_RANGE: {
write(l_v, 0, l_ctx->mRasterizing.mDepthNear);
write(l_v, 1, l_ctx->mRasterizing.mDepthFar);
break;
}
case StateVariable::GL_LINE_WIDTH: {
write(l_v, 0, l_ctx->mRasterizing.mLineWidth);
break;
}
case StateVariable::GL_POLYGON_OFFSET_FACTOR: {
write(l_v, 0, l_ctx->mRasterizing.mPolygonOffsetFactor);
break;
}
case StateVariable::GL_POLYGON_OFFSET_UNITS: {
write(l_v, 0, l_ctx->mRasterizing.mPolygonOffsetUnits);
break;
}
case StateVariable::GL_SAMPLE_COVERAGE_VALUE: {
write(l_v, 0, l_ctx->mRasterizing.mSampleCoverageValue);
break;
}
case StateVariable::GL_COLOR_CLEAR_VALUE: {
write(l_v, 0, l_ctx->mClearing.mClearColor.mRed);
write(l_v, 1, l_ctx->mClearing.mClearColor.mGreen);
write(l_v, 2, l_ctx->mClearing.mClearColor.mBlue);
write(l_v, 3, l_ctx->mClearing.mClearColor.mAlpha);
break;
}
case StateVariable::GL_DEPTH_CLEAR_VALUE: {
write(l_v, 0, l_ctx->mClearing.mClearDepth);
break;
}
case StateVariable::GL_ALIASED_LINE_WIDTH_RANGE: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
write(l_v, 1,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 1));
break;
}
case StateVariable::GL_ALIASED_POINT_SIZE_RANGE: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
write(l_v, 1,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 1));
break;
}
case StateVariable::GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
}
} while (false);
mEncoder->Uint16(173); // Type ID -- TODO: mEncoder->Id(GL_GET_FLOATV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(param));
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetIntegerv(uint32_t param, int32_t* values) {
GAPID_INFO("glGetIntegerv()\n");
mImports.glGetIntegerv(param, values);
do {
Slice<int32_t> l_v = slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param)));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_124_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_124_result;
switch (param) {
case StateVariable::GL_ACTIVE_TEXTURE: {
write(l_v, 0, (int32_t)(l_ctx->mActiveTextureUnit));
break;
}
case StateVariable::GL_ARRAY_BUFFER_BINDING: {
write(l_v, 0, (int32_t)(l_ctx->mBoundBuffers[BufferTarget::GL_ARRAY_BUFFER]));
break;
}
case StateVariable::GL_ELEMENT_ARRAY_BUFFER_BINDING: {
write(l_v, 0,
(int32_t)(l_ctx->mBoundBuffers[BufferTarget::GL_ELEMENT_ARRAY_BUFFER]));
break;
}
case StateVariable::GL_BLEND_SRC_ALPHA: {
write(l_v, 0, (int32_t)(l_ctx->mBlending.mSrcAlphaBlendFactor));
break;
}
case StateVariable::GL_BLEND_SRC_RGB: {
write(l_v, 0, (int32_t)(l_ctx->mBlending.mSrcRgbBlendFactor));
break;
}
case StateVariable::GL_BLEND_DST_ALPHA: {
write(l_v, 0, (int32_t)(l_ctx->mBlending.mDstAlphaBlendFactor));
break;
}
case StateVariable::GL_BLEND_DST_RGB: {
write(l_v, 0, (int32_t)(l_ctx->mBlending.mDstRgbBlendFactor));
break;
}
case StateVariable::GL_BLEND_EQUATION_RGB: {
write(l_v, 0, (int32_t)(l_ctx->mBlending.mBlendEquationRgb));
break;
}
case StateVariable::GL_BLEND_EQUATION_ALPHA: {
write(l_v, 0, (int32_t)(l_ctx->mBlending.mBlendEquationAlpha));
break;
}
case StateVariable::GL_BLEND_COLOR: {
write(l_v, 0, (int32_t)(l_ctx->mBlending.mBlendColor.mRed));
write(l_v, 1, (int32_t)(l_ctx->mBlending.mBlendColor.mGreen));
write(l_v, 2, (int32_t)(l_ctx->mBlending.mBlendColor.mBlue));
write(l_v, 3, (int32_t)(l_ctx->mBlending.mBlendColor.mAlpha));
break;
}
case StateVariable::GL_DEPTH_FUNC: {
write(l_v, 0, (int32_t)(l_ctx->mRasterizing.mDepthTestFunction));
break;
}
case StateVariable::GL_DEPTH_CLEAR_VALUE: {
write(l_v, 0, (int32_t)(l_ctx->mClearing.mClearDepth));
break;
}
case StateVariable::GL_STENCIL_WRITEMASK: {
write(l_v, 0, (int32_t)(l_ctx->mRasterizing.mStencilMask[FaceMode::GL_FRONT]));
break;
}
case StateVariable::GL_STENCIL_BACK_WRITEMASK: {
write(l_v, 0, (int32_t)(l_ctx->mRasterizing.mStencilMask[FaceMode::GL_BACK]));
break;
}
case StateVariable::GL_VIEWPORT: {
write(l_v, 0, l_ctx->mRasterizing.mViewport.mX);
write(l_v, 1, l_ctx->mRasterizing.mViewport.mY);
write(l_v, 2, l_ctx->mRasterizing.mViewport.mWidth);
write(l_v, 3, l_ctx->mRasterizing.mViewport.mHeight);
break;
}
case StateVariable::GL_SCISSOR_BOX: {
write(l_v, 0, l_ctx->mRasterizing.mScissor.mX);
write(l_v, 1, l_ctx->mRasterizing.mScissor.mY);
write(l_v, 2, l_ctx->mRasterizing.mScissor.mWidth);
write(l_v, 3, l_ctx->mRasterizing.mScissor.mHeight);
break;
}
case StateVariable::GL_FRONT_FACE: {
write(l_v, 0, (int32_t)(l_ctx->mRasterizing.mFrontFace));
break;
}
case StateVariable::GL_CULL_FACE_MODE: {
write(l_v, 0, (int32_t)(l_ctx->mRasterizing.mCullFace));
break;
}
case StateVariable::GL_STENCIL_CLEAR_VALUE: {
write(l_v, 0, l_ctx->mClearing.mClearStencil);
break;
}
case StateVariable::GL_FRAMEBUFFER_BINDING: {
write(l_v, 0,
(int32_t)(l_ctx->mBoundFramebuffers[FramebufferTarget::GL_FRAMEBUFFER]));
break;
}
case StateVariable::GL_READ_FRAMEBUFFER_BINDING: {
write(l_v, 0,
(int32_t)(l_ctx->mBoundFramebuffers[FramebufferTarget::GL_READ_FRAMEBUFFER]));
break;
}
case StateVariable::GL_RENDERBUFFER_BINDING: {
write(l_v, 0,
(int32_t)(l_ctx->mBoundRenderbuffers[RenderbufferTarget::GL_RENDERBUFFER]));
break;
}
case StateVariable::GL_CURRENT_PROGRAM: {
write(l_v, 0, (int32_t)(l_ctx->mBoundProgram));
break;
}
case StateVariable::GL_TEXTURE_BINDING_2D: {
write(l_v, 0, (int32_t)(l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit]
[TextureTarget::GL_TEXTURE_2D]));
break;
}
case StateVariable::GL_TEXTURE_BINDING_CUBE_MAP: {
write(l_v, 0, (int32_t)(l_ctx->mTextureUnits[l_ctx->mActiveTextureUnit]
[TextureTarget::GL_TEXTURE_CUBE_MAP]));
break;
}
case StateVariable::GL_GENERATE_MIPMAP_HINT: {
write(l_v, 0, (int32_t)(l_ctx->mGenerateMipmapHint));
break;
}
case StateVariable::GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_CUBE_MAP_TEXTURE_SIZE: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_FRAGMENT_UNIFORM_VECTORS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_RENDERBUFFER_SIZE: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_TEXTURE_IMAGE_UNITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_TEXTURE_SIZE: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_VARYING_VECTORS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_VERTEX_ATTRIBS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_VERTEX_UNIFORM_VECTORS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_VIEWPORT_DIMS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
write(l_v, 1,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 1));
break;
}
case StateVariable::GL_NUM_COMPRESSED_TEXTURE_FORMATS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_NUM_SHADER_BINARY_FORMATS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_PACK_ALIGNMENT: {
write(l_v, 0, l_ctx->mPixelStorage[PixelStoreParameter::GL_PACK_ALIGNMENT]);
break;
}
case StateVariable::GL_UNPACK_ALIGNMENT: {
write(l_v, 0, l_ctx->mPixelStorage[PixelStoreParameter::GL_UNPACK_ALIGNMENT]);
break;
}
case StateVariable::GL_ALPHA_BITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_BLUE_BITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_GREEN_BITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_RED_BITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_DEPTH_BITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_SAMPLE_BUFFERS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_SAMPLES: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_STENCIL_BITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_SUBPIXEL_BITS: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_IMPLEMENTATION_COLOR_READ_FORMAT: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_IMPLEMENTATION_COLOR_READ_TYPE: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
case StateVariable::GL_GPU_DISJOINT_EXT: {
write(l_v, 0,
read(slice(values, (uint64_t)(0), (uint64_t)(stateVariableSize(param))), 0));
break;
}
}
} while (false);
mEncoder->Uint16(174); // Type ID -- TODO: mEncoder->Id(GL_GET_INTEGERV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(param));
mEncoder->Uint64(reinterpret_cast<uint64_t>(values));
mEncoder->Uint32(0); // PoolID
}
inline char* GlesSpy::glGetString(uint32_t param) {
GAPID_INFO("glGetString()\n");
char* result = mImports.glGetString(param);
do {
break;
} while (false);
mEncoder->Uint16(175); // Type ID -- TODO: mEncoder->Id(GL_GET_STRING_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(param));
mEncoder->Uint64(reinterpret_cast<uint64_t>(result));
mEncoder->Uint32(0); // PoolID
return result;
}
inline void GlesSpy::glEnable(uint32_t capability) {
GAPID_INFO("glEnable()\n");
mImports.glEnable(capability);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_125_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_125_result;
l_ctx->mCapabilities[capability] = true;
} while (false);
mEncoder->Uint16(176); // Type ID -- TODO: mEncoder->Id(GL_ENABLE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(capability));
}
inline void GlesSpy::glDisable(uint32_t capability) {
GAPID_INFO("glDisable()\n");
mImports.glDisable(capability);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_126_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_126_result;
l_ctx->mCapabilities[capability] = false;
} while (false);
mEncoder->Uint16(177); // Type ID -- TODO: mEncoder->Id(GL_DISABLE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(capability));
}
inline bool GlesSpy::glIsEnabled(uint32_t capability) {
GAPID_INFO("glIsEnabled()\n");
bool result = mImports.glIsEnabled(capability);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_127_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_127_result;
break;
} while (false);
mEncoder->Uint16(178); // Type ID -- TODO: mEncoder->Id(GL_IS_ENABLED_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(capability));
mEncoder->Bool(result);
return result;
}
inline void* GlesSpy::glMapBufferRange(uint32_t target, int32_t offset, int32_t length,
uint32_t access) {
GAPID_INFO("glMapBufferRange()\n");
void* result = mImports.glMapBufferRange(target, offset, length, access);
do {
break;
} while (false);
mEncoder->Uint16(179); // Type ID -- TODO: mEncoder->Id(GL_MAP_BUFFER_RANGE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(offset);
mEncoder->Int32(length);
mEncoder->Uint32(static_cast<uint32_t>(access));
mEncoder->Uint64(reinterpret_cast<uint64_t>(result));
mEncoder->Uint32(0); // PoolID
return result;
}
inline void GlesSpy::glUnmapBuffer(uint32_t target) {
GAPID_INFO("glUnmapBuffer()\n");
mImports.glUnmapBuffer(target);
do {
} while (false);
mEncoder->Uint16(180); // Type ID -- TODO: mEncoder->Id(GL_UNMAP_BUFFER_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
}
inline void GlesSpy::glInvalidateFramebuffer(uint32_t target, int32_t count,
uint32_t* attachments) {
GAPID_INFO("glInvalidateFramebuffer()\n");
mImports.glInvalidateFramebuffer(target, count, attachments);
do {
} while (false);
mEncoder->Uint16(181); // Type ID -- TODO: mEncoder->Id(GL_INVALIDATE_FRAMEBUFFER_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(attachments));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glRenderbufferStorageMultisample(uint32_t target, int32_t samples,
uint32_t format, int32_t width,
int32_t height) {
GAPID_INFO("glRenderbufferStorageMultisample()\n");
mImports.glRenderbufferStorageMultisample(target, samples, format, width, height);
do {
} while (false);
mEncoder->Uint16(
182); // Type ID -- TODO: mEncoder->Id(GL_RENDERBUFFER_STORAGE_MULTISAMPLE_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Int32(samples);
mEncoder->Uint32(static_cast<uint32_t>(format));
mEncoder->Int32(width);
mEncoder->Int32(height);
}
inline void GlesSpy::glBlitFramebuffer(int32_t srcX0, int32_t srcY0, int32_t srcX1, int32_t srcY1,
int32_t dstX0, int32_t dstY0, int32_t dstX1, int32_t dstY1,
uint32_t mask, uint32_t filter) {
GAPID_INFO("glBlitFramebuffer()\n");
mImports.glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask,
filter);
do {
} while (false);
mEncoder->Uint16(183); // Type ID -- TODO: mEncoder->Id(GL_BLIT_FRAMEBUFFER_ID);
encodeObservations();
mEncoder->Int32(srcX0);
mEncoder->Int32(srcY0);
mEncoder->Int32(srcX1);
mEncoder->Int32(srcY1);
mEncoder->Int32(dstX0);
mEncoder->Int32(dstY0);
mEncoder->Int32(dstX1);
mEncoder->Int32(dstY1);
mEncoder->Uint32(static_cast<uint32_t>(mask));
mEncoder->Uint32(static_cast<uint32_t>(filter));
}
inline void GlesSpy::glGenQueries(int32_t count, uint32_t* queries) {
GAPID_INFO("glGenQueries()\n");
mImports.glGenQueries(count, queries);
do {
Slice<QueryId> l_q = slice(queries, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_128_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_128_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
QueryId l_id = (QueryId)(
read(slice(queries, (uint64_t)(0), (uint64_t)(count)), (uint64_t)(l_i)));
l_ctx->mInstances.mQueries[l_id] = std::shared_ptr<Query>((new Query()));
write(l_q, (uint64_t)(l_i), l_id);
}
} while (false);
mEncoder->Uint16(184); // Type ID -- TODO: mEncoder->Id(GL_GEN_QUERIES_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(queries));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glBeginQuery(uint32_t target, uint32_t query) {
GAPID_INFO("glBeginQuery()\n");
mImports.glBeginQuery(target, query);
do {
} while (false);
mEncoder->Uint16(185); // Type ID -- TODO: mEncoder->Id(GL_BEGIN_QUERY_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(query);
}
inline void GlesSpy::glEndQuery(uint32_t target) {
GAPID_INFO("glEndQuery()\n");
mImports.glEndQuery(target);
do {
} while (false);
mEncoder->Uint16(186); // Type ID -- TODO: mEncoder->Id(GL_END_QUERY_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
}
inline void GlesSpy::glDeleteQueries(int32_t count, uint32_t* queries) {
GAPID_INFO("glDeleteQueries()\n");
mImports.glDeleteQueries(count, queries);
do {
Slice<QueryId> l_q = slice(queries, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_129_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_129_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
l_ctx->mInstances.mQueries[read(l_q, (uint64_t)(l_i))] = std::shared_ptr<Query>();
}
} while (false);
mEncoder->Uint16(187); // Type ID -- TODO: mEncoder->Id(GL_DELETE_QUERIES_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(queries));
mEncoder->Uint32(0); // PoolID
}
inline bool GlesSpy::glIsQuery(uint32_t query) {
GAPID_INFO("glIsQuery()\n");
bool result = mImports.glIsQuery(query);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_130_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_130_result;
break;
} while (false);
mEncoder->Uint16(188); // Type ID -- TODO: mEncoder->Id(GL_IS_QUERY_ID);
encodeObservations();
mEncoder->Uint32(query);
mEncoder->Bool(result);
return result;
}
inline void GlesSpy::glGetQueryiv(uint32_t target, uint32_t parameter, int32_t* value) {
GAPID_INFO("glGetQueryiv()\n");
mImports.glGetQueryiv(target, parameter, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
} while (false);
mEncoder->Uint16(189); // Type ID -- TODO: mEncoder->Id(GL_GET_QUERYIV_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetQueryObjectuiv(uint32_t query, uint32_t parameter, uint32_t* value) {
GAPID_INFO("glGetQueryObjectuiv()\n");
mImports.glGetQueryObjectuiv(query, parameter, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
} while (false);
mEncoder->Uint16(190); // Type ID -- TODO: mEncoder->Id(GL_GET_QUERY_OBJECTUIV_ID);
encodeObservations();
mEncoder->Uint32(query);
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGenQueriesEXT(int32_t count, uint32_t* queries) {
GAPID_INFO("glGenQueriesEXT()\n");
mImports.glGenQueriesEXT(count, queries);
do {
Slice<QueryId> l_q = slice(queries, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_131_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_131_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
QueryId l_id = (QueryId)(
read(slice(queries, (uint64_t)(0), (uint64_t)(count)), (uint64_t)(l_i)));
l_ctx->mInstances.mQueries[l_id] = std::shared_ptr<Query>((new Query()));
write(l_q, (uint64_t)(l_i), l_id);
}
} while (false);
mEncoder->Uint16(191); // Type ID -- TODO: mEncoder->Id(GL_GEN_QUERIES_E_X_T_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(queries));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glBeginQueryEXT(uint32_t target, uint32_t query) {
GAPID_INFO("glBeginQueryEXT()\n");
mImports.glBeginQueryEXT(target, query);
do {
} while (false);
mEncoder->Uint16(192); // Type ID -- TODO: mEncoder->Id(GL_BEGIN_QUERY_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(query);
}
inline void GlesSpy::glEndQueryEXT(uint32_t target) {
GAPID_INFO("glEndQueryEXT()\n");
mImports.glEndQueryEXT(target);
do {
} while (false);
mEncoder->Uint16(193); // Type ID -- TODO: mEncoder->Id(GL_END_QUERY_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
}
inline void GlesSpy::glDeleteQueriesEXT(int32_t count, uint32_t* queries) {
GAPID_INFO("glDeleteQueriesEXT()\n");
mImports.glDeleteQueriesEXT(count, queries);
do {
Slice<QueryId> l_q = slice(queries, (uint64_t)(0), (uint64_t)(count));
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_132_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_132_result;
for (int32_t l_i = 0; l_i < count; ++l_i) {
l_ctx->mInstances.mQueries[read(l_q, (uint64_t)(l_i))] = std::shared_ptr<Query>();
}
} while (false);
mEncoder->Uint16(194); // Type ID -- TODO: mEncoder->Id(GL_DELETE_QUERIES_E_X_T_ID);
encodeObservations();
mEncoder->Int32(count);
mEncoder->Uint64(reinterpret_cast<uint64_t>(queries));
mEncoder->Uint32(0); // PoolID
}
inline bool GlesSpy::glIsQueryEXT(uint32_t query) {
GAPID_INFO("glIsQueryEXT()\n");
bool result = mImports.glIsQueryEXT(query);
do {
std::shared_ptr<Context> l_context = this->Contexts[this->CurrentThread];
std::shared_ptr<Context> l_GetContext_133_result = l_context;
std::shared_ptr<Context> l_ctx = l_GetContext_133_result;
break;
} while (false);
mEncoder->Uint16(195); // Type ID -- TODO: mEncoder->Id(GL_IS_QUERY_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(query);
mEncoder->Bool(result);
return result;
}
inline void GlesSpy::glQueryCounterEXT(uint32_t query, uint32_t target) {
GAPID_INFO("glQueryCounterEXT()\n");
mImports.glQueryCounterEXT(query, target);
do {
} while (false);
mEncoder->Uint16(196); // Type ID -- TODO: mEncoder->Id(GL_QUERY_COUNTER_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(query);
mEncoder->Uint32(static_cast<uint32_t>(target));
}
inline void GlesSpy::glGetQueryivEXT(uint32_t target, uint32_t parameter, int32_t* value) {
GAPID_INFO("glGetQueryivEXT()\n");
mImports.glGetQueryivEXT(target, parameter, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
} while (false);
mEncoder->Uint16(197); // Type ID -- TODO: mEncoder->Id(GL_GET_QUERYIV_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(static_cast<uint32_t>(target));
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetQueryObjectivEXT(uint32_t query, uint32_t parameter, int32_t* value) {
GAPID_INFO("glGetQueryObjectivEXT()\n");
mImports.glGetQueryObjectivEXT(query, parameter, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
} while (false);
mEncoder->Uint16(198); // Type ID -- TODO: mEncoder->Id(GL_GET_QUERY_OBJECTIV_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(query);
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetQueryObjectuivEXT(uint32_t query, uint32_t parameter, uint32_t* value) {
GAPID_INFO("glGetQueryObjectuivEXT()\n");
mImports.glGetQueryObjectuivEXT(query, parameter, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
} while (false);
mEncoder->Uint16(199); // Type ID -- TODO: mEncoder->Id(GL_GET_QUERY_OBJECTUIV_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(query);
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetQueryObjecti64vEXT(uint32_t query, uint32_t parameter, int64_t* value) {
GAPID_INFO("glGetQueryObjecti64vEXT()\n");
mImports.glGetQueryObjecti64vEXT(query, parameter, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
} while (false);
mEncoder->Uint16(200); // Type ID -- TODO: mEncoder->Id(GL_GET_QUERY_OBJECTI64V_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(query);
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
inline void GlesSpy::glGetQueryObjectui64vEXT(uint32_t query, uint32_t parameter, uint64_t* value) {
GAPID_INFO("glGetQueryObjectui64vEXT()\n");
mImports.glGetQueryObjectui64vEXT(query, parameter, value);
do {
write(slice(value, 0, 1), 0, read(slice(value, 0, 1), 0));
} while (false);
mEncoder->Uint16(201); // Type ID -- TODO: mEncoder->Id(GL_GET_QUERY_OBJECTUI64V_E_X_T_ID);
encodeObservations();
mEncoder->Uint32(query);
mEncoder->Uint32(static_cast<uint32_t>(parameter));
mEncoder->Uint64(reinterpret_cast<uint64_t>(value));
mEncoder->Uint32(0); // PoolID
}
} // namespace gapii
#endif // GAPII_GLES_SPY_H