blob: b496e8979d132c5bb2c53902dec433e56ec0564d [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
// Automatically generated file. Do not modify!
////////////////////////////////////////////////////////////////////////////////
#include "gles_gfx_api.h"
#include "interpreter.h"
#include "stack.h"
#include <gapic/get_gles_proc_address.h>
#include <gapic/log.h>
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
namespace gapir {
const char* Gles::ID = "Gles";
uint8_t Gles::INDEX = 1;
Gles::Gles() {
using namespace std::placeholders;
mFunctions.insert(0, std::bind(&Gles::callGlBlendBarrierKHR, this, _1, _2));
mFunctions.insert(1, std::bind(&Gles::callGlBlendEquationSeparateiEXT, this, _1, _2));
mFunctions.insert(2, std::bind(&Gles::callGlBlendEquationiEXT, this, _1, _2));
mFunctions.insert(3, std::bind(&Gles::callGlBlendFuncSeparateiEXT, this, _1, _2));
mFunctions.insert(4, std::bind(&Gles::callGlBlendFunciEXT, this, _1, _2));
mFunctions.insert(5, std::bind(&Gles::callGlColorMaskiEXT, this, _1, _2));
mFunctions.insert(6, std::bind(&Gles::callGlCopyImageSubDataEXT, this, _1, _2));
mFunctions.insert(7, std::bind(&Gles::callGlDebugMessageCallbackKHR, this, _1, _2));
mFunctions.insert(8, std::bind(&Gles::callGlDebugMessageControlKHR, this, _1, _2));
mFunctions.insert(9, std::bind(&Gles::callGlDebugMessageInsertKHR, this, _1, _2));
mFunctions.insert(10, std::bind(&Gles::callGlDisableiEXT, this, _1, _2));
mFunctions.insert(11, std::bind(&Gles::callGlEnableiEXT, this, _1, _2));
mFunctions.insert(12, std::bind(&Gles::callGlFramebufferTextureEXT, this, _1, _2));
mFunctions.insert(13, std::bind(&Gles::callGlGetDebugMessageLogKHR, this, _1, _2));
mFunctions.insert(14, std::bind(&Gles::callGlGetObjectLabelKHR, this, _1, _2));
mFunctions.insert(15, std::bind(&Gles::callGlGetObjectPtrLabelKHR, this, _1, _2));
mFunctions.insert(16, std::bind(&Gles::callGlGetPointervKHR, this, _1, _2));
mFunctions.insert(17, std::bind(&Gles::callGlGetSamplerParameterIivEXT, this, _1, _2));
mFunctions.insert(18, std::bind(&Gles::callGlGetSamplerParameterIuivEXT, this, _1, _2));
mFunctions.insert(19, std::bind(&Gles::callGlGetTexParameterIivEXT, this, _1, _2));
mFunctions.insert(20, std::bind(&Gles::callGlGetTexParameterIuivEXT, this, _1, _2));
mFunctions.insert(21, std::bind(&Gles::callGlIsEnablediEXT, this, _1, _2));
mFunctions.insert(22, std::bind(&Gles::callGlMinSampleShadingOES, this, _1, _2));
mFunctions.insert(23, std::bind(&Gles::callGlObjectLabelKHR, this, _1, _2));
mFunctions.insert(24, std::bind(&Gles::callGlObjectPtrLabelKHR, this, _1, _2));
mFunctions.insert(25, std::bind(&Gles::callGlPatchParameteriEXT, this, _1, _2));
mFunctions.insert(26, std::bind(&Gles::callGlPopDebugGroupKHR, this, _1, _2));
mFunctions.insert(27, std::bind(&Gles::callGlPrimitiveBoundingBoxEXT, this, _1, _2));
mFunctions.insert(28, std::bind(&Gles::callGlPushDebugGroupKHR, this, _1, _2));
mFunctions.insert(29, std::bind(&Gles::callGlSamplerParameterIivEXT, this, _1, _2));
mFunctions.insert(30, std::bind(&Gles::callGlSamplerParameterIuivEXT, this, _1, _2));
mFunctions.insert(31, std::bind(&Gles::callGlTexBufferEXT, this, _1, _2));
mFunctions.insert(32, std::bind(&Gles::callGlTexBufferRangeEXT, this, _1, _2));
mFunctions.insert(33, std::bind(&Gles::callGlTexParameterIivEXT, this, _1, _2));
mFunctions.insert(34, std::bind(&Gles::callGlTexParameterIuivEXT, this, _1, _2));
mFunctions.insert(35, std::bind(&Gles::callGlTexStorage3DMultisampleOES, this, _1, _2));
mFunctions.insert(36, std::bind(&Gles::callGlBeginQuery, this, _1, _2));
mFunctions.insert(37, std::bind(&Gles::callGlDeleteQueries, this, _1, _2));
mFunctions.insert(38, std::bind(&Gles::callGlEndQuery, this, _1, _2));
mFunctions.insert(39, std::bind(&Gles::callGlGenQueries, this, _1, _2));
mFunctions.insert(40, std::bind(&Gles::callGlGetQueryObjectuiv, this, _1, _2));
mFunctions.insert(41, std::bind(&Gles::callGlGetQueryiv, this, _1, _2));
mFunctions.insert(42, std::bind(&Gles::callGlIsQuery, this, _1, _2));
mFunctions.insert(43, std::bind(&Gles::callGlBindBuffer, this, _1, _2));
mFunctions.insert(44, std::bind(&Gles::callGlBindBufferBase, this, _1, _2));
mFunctions.insert(45, std::bind(&Gles::callGlBindBufferRange, this, _1, _2));
mFunctions.insert(46, std::bind(&Gles::callGlBufferData, this, _1, _2));
mFunctions.insert(47, std::bind(&Gles::callGlBufferSubData, this, _1, _2));
mFunctions.insert(48, std::bind(&Gles::callGlCopyBufferSubData, this, _1, _2));
mFunctions.insert(49, std::bind(&Gles::callGlDeleteBuffers, this, _1, _2));
mFunctions.insert(50, std::bind(&Gles::callGlGenBuffers, this, _1, _2));
mFunctions.insert(51, std::bind(&Gles::callGlGetBufferParameteri64v, this, _1, _2));
mFunctions.insert(52, std::bind(&Gles::callGlGetBufferParameteriv, this, _1, _2));
mFunctions.insert(53, std::bind(&Gles::callGlGetBufferPointerv, this, _1, _2));
mFunctions.insert(54, std::bind(&Gles::callGlIsBuffer, this, _1, _2));
mFunctions.insert(55, std::bind(&Gles::callGlMapBuffer, this, _1, _2));
mFunctions.insert(56, std::bind(&Gles::callGlMapBufferRange, this, _1, _2));
mFunctions.insert(57, std::bind(&Gles::callGlUnmapBuffer, this, _1, _2));
mFunctions.insert(58, std::bind(&Gles::callGlFlushMappedBufferRange, this, _1, _2));
mFunctions.insert(59, std::bind(&Gles::callGlDebugMessageCallback, this, _1, _2));
mFunctions.insert(60, std::bind(&Gles::callGlDebugMessageControl, this, _1, _2));
mFunctions.insert(61, std::bind(&Gles::callGlDebugMessageInsert, this, _1, _2));
mFunctions.insert(62, std::bind(&Gles::callGlGetDebugMessageLog, this, _1, _2));
mFunctions.insert(63, std::bind(&Gles::callGlGetObjectLabel, this, _1, _2));
mFunctions.insert(64, std::bind(&Gles::callGlGetObjectPtrLabel, this, _1, _2));
mFunctions.insert(65, std::bind(&Gles::callGlGetPointerv, this, _1, _2));
mFunctions.insert(66, std::bind(&Gles::callGlObjectLabel, this, _1, _2));
mFunctions.insert(67, std::bind(&Gles::callGlObjectPtrLabel, this, _1, _2));
mFunctions.insert(68, std::bind(&Gles::callGlPopDebugGroup, this, _1, _2));
mFunctions.insert(69, std::bind(&Gles::callGlPushDebugGroup, this, _1, _2));
mFunctions.insert(70, std::bind(&Gles::callGlDrawArrays, this, _1, _2));
mFunctions.insert(71, std::bind(&Gles::callGlDrawArraysIndirect, this, _1, _2));
mFunctions.insert(72, std::bind(&Gles::callGlDrawArraysInstanced, this, _1, _2));
mFunctions.insert(73, std::bind(&Gles::callGlDrawElements, this, _1, _2));
mFunctions.insert(74, std::bind(&Gles::callGlDrawElementsBaseVertex, this, _1, _2));
mFunctions.insert(75, std::bind(&Gles::callGlDrawElementsIndirect, this, _1, _2));
mFunctions.insert(76, std::bind(&Gles::callGlDrawElementsInstanced, this, _1, _2));
mFunctions.insert(77, std::bind(&Gles::callGlDrawElementsInstancedBaseVertex, this, _1, _2));
mFunctions.insert(78, std::bind(&Gles::callGlDrawRangeElements, this, _1, _2));
mFunctions.insert(79, std::bind(&Gles::callGlDrawRangeElementsBaseVertex, this, _1, _2));
mFunctions.insert(80, std::bind(&Gles::callGlPatchParameteri, this, _1, _2));
mFunctions.insert(81, std::bind(&Gles::callGlPrimitiveBoundingBox, this, _1, _2));
mFunctions.insert(82, std::bind(&Gles::callEglGetConfigAttrib, this, _1, _2));
mFunctions.insert(83, std::bind(&Gles::callEglBindAPI, this, _1, _2));
mFunctions.insert(84, std::bind(&Gles::callEglBindTexImage, this, _1, _2));
mFunctions.insert(85, std::bind(&Gles::callEglChooseConfig, this, _1, _2));
mFunctions.insert(86, std::bind(&Gles::callEglClientWaitSyncKHR, this, _1, _2));
mFunctions.insert(87, std::bind(&Gles::callEglCopyBuffers, this, _1, _2));
mFunctions.insert(88, std::bind(&Gles::callEglCreateContext, this, _1, _2));
mFunctions.insert(89, std::bind(&Gles::callEglCreatePbufferFromClientBuffer, this, _1, _2));
mFunctions.insert(90, std::bind(&Gles::callEglCreatePbufferSurface, this, _1, _2));
mFunctions.insert(91, std::bind(&Gles::callEglCreatePixmapSurface, this, _1, _2));
mFunctions.insert(92, std::bind(&Gles::callEglCreateSyncKHR, this, _1, _2));
mFunctions.insert(93, std::bind(&Gles::callEglCreateWindowSurface, this, _1, _2));
mFunctions.insert(94, std::bind(&Gles::callEglDestroyContext, this, _1, _2));
mFunctions.insert(95, std::bind(&Gles::callEglDestroySurface, this, _1, _2));
mFunctions.insert(96, std::bind(&Gles::callEglDestroySyncKHR, this, _1, _2));
mFunctions.insert(97, std::bind(&Gles::callEglGetConfigs, this, _1, _2));
mFunctions.insert(98, std::bind(&Gles::callEglGetCurrentContext, this, _1, _2));
mFunctions.insert(99, std::bind(&Gles::callEglGetCurrentDisplay, this, _1, _2));
mFunctions.insert(100, std::bind(&Gles::callEglGetCurrentSurface, this, _1, _2));
mFunctions.insert(101, std::bind(&Gles::callEglGetDisplay, this, _1, _2));
mFunctions.insert(102, std::bind(&Gles::callEglGetError, this, _1, _2));
mFunctions.insert(103, std::bind(&Gles::callEglGetSyncAttribKHR, this, _1, _2));
mFunctions.insert(104, std::bind(&Gles::callEglInitialize, this, _1, _2));
mFunctions.insert(105, std::bind(&Gles::callEglMakeCurrent, this, _1, _2));
mFunctions.insert(106, std::bind(&Gles::callEglQueryAPI, this, _1, _2));
mFunctions.insert(107, std::bind(&Gles::callEglQueryContext, this, _1, _2));
mFunctions.insert(108, std::bind(&Gles::callEglQuerySurface, this, _1, _2));
mFunctions.insert(109, std::bind(&Gles::callEglQueryString, this, _1, _2));
mFunctions.insert(110, std::bind(&Gles::callEglReleaseTexImage, this, _1, _2));
mFunctions.insert(111, std::bind(&Gles::callEglReleaseThread, this, _1, _2));
mFunctions.insert(112, std::bind(&Gles::callEglSignalSyncKHR, this, _1, _2));
mFunctions.insert(113, std::bind(&Gles::callEglSurfaceAttrib, this, _1, _2));
mFunctions.insert(114, std::bind(&Gles::callEglSwapBuffers, this, _1, _2));
mFunctions.insert(115, std::bind(&Gles::callEglSwapBuffersWithDamageKHR, this, _1, _2));
mFunctions.insert(116, std::bind(&Gles::callEglSwapInterval, this, _1, _2));
mFunctions.insert(117, std::bind(&Gles::callEglTerminate, this, _1, _2));
mFunctions.insert(118, std::bind(&Gles::callEglWaitClient, this, _1, _2));
mFunctions.insert(119, std::bind(&Gles::callEglWaitGL, this, _1, _2));
mFunctions.insert(120, std::bind(&Gles::callEglWaitNative, this, _1, _2));
mFunctions.insert(121, std::bind(&Gles::callEglCreateImageKHR, this, _1, _2));
mFunctions.insert(122, std::bind(&Gles::callEglDestroyImageKHR, this, _1, _2));
mFunctions.insert(123, std::bind(&Gles::callEglCreateNativeClientBufferANDROID, this, _1, _2));
mFunctions.insert(124, std::bind(&Gles::callGlActiveShaderProgramEXT, this, _1, _2));
mFunctions.insert(125, std::bind(&Gles::callGlAlphaFuncQCOM, this, _1, _2));
mFunctions.insert(126, std::bind(&Gles::callGlApplyFramebufferAttachmentCMAAINTEL, this, _1, _2));
mFunctions.insert(127, std::bind(&Gles::callGlBeginConditionalRenderNV, this, _1, _2));
mFunctions.insert(128, std::bind(&Gles::callGlBeginPerfMonitorAMD, this, _1, _2));
mFunctions.insert(129, std::bind(&Gles::callGlBeginPerfQueryINTEL, this, _1, _2));
mFunctions.insert(130, std::bind(&Gles::callGlBeginQueryEXT, this, _1, _2));
mFunctions.insert(131, std::bind(&Gles::callGlBindFragDataLocationEXT, this, _1, _2));
mFunctions.insert(132, std::bind(&Gles::callGlBindFragDataLocationIndexedEXT, this, _1, _2));
mFunctions.insert(133, std::bind(&Gles::callGlBindProgramPipelineEXT, this, _1, _2));
mFunctions.insert(134, std::bind(&Gles::callGlBindVertexArrayOES, this, _1, _2));
mFunctions.insert(135, std::bind(&Gles::callGlBlendBarrierNV, this, _1, _2));
mFunctions.insert(136, std::bind(&Gles::callGlBlendEquationSeparateiOES, this, _1, _2));
mFunctions.insert(137, std::bind(&Gles::callGlBlendEquationiOES, this, _1, _2));
mFunctions.insert(138, std::bind(&Gles::callGlBlendFuncSeparateiOES, this, _1, _2));
mFunctions.insert(139, std::bind(&Gles::callGlBlendFunciOES, this, _1, _2));
mFunctions.insert(140, std::bind(&Gles::callGlBlendParameteriNV, this, _1, _2));
mFunctions.insert(141, std::bind(&Gles::callGlBlitFramebufferANGLE, this, _1, _2));
mFunctions.insert(142, std::bind(&Gles::callGlBlitFramebufferNV, this, _1, _2));
mFunctions.insert(143, std::bind(&Gles::callGlBufferStorageEXT, this, _1, _2));
mFunctions.insert(144, std::bind(&Gles::callGlClientWaitSyncAPPLE, this, _1, _2));
mFunctions.insert(145, std::bind(&Gles::callGlColorMaskiOES, this, _1, _2));
mFunctions.insert(146, std::bind(&Gles::callGlCompressedTexImage3DOES, this, _1, _2));
mFunctions.insert(147, std::bind(&Gles::callGlCompressedTexSubImage3DOES, this, _1, _2));
mFunctions.insert(148, std::bind(&Gles::callGlCopyBufferSubDataNV, this, _1, _2));
mFunctions.insert(149, std::bind(&Gles::callGlCopyImageSubDataOES, this, _1, _2));
mFunctions.insert(150, std::bind(&Gles::callGlCopyPathNV, this, _1, _2));
mFunctions.insert(151, std::bind(&Gles::callGlCopyTexSubImage3DOES, this, _1, _2));
mFunctions.insert(152, std::bind(&Gles::callGlCopyTextureLevelsAPPLE, this, _1, _2));
mFunctions.insert(153, std::bind(&Gles::callGlCoverFillPathInstancedNV, this, _1, _2));
mFunctions.insert(154, std::bind(&Gles::callGlCoverFillPathNV, this, _1, _2));
mFunctions.insert(155, std::bind(&Gles::callGlCoverStrokePathInstancedNV, this, _1, _2));
mFunctions.insert(156, std::bind(&Gles::callGlCoverStrokePathNV, this, _1, _2));
mFunctions.insert(157, std::bind(&Gles::callGlCoverageMaskNV, this, _1, _2));
mFunctions.insert(158, std::bind(&Gles::callGlCoverageModulationNV, this, _1, _2));
mFunctions.insert(159, std::bind(&Gles::callGlCoverageModulationTableNV, this, _1, _2));
mFunctions.insert(160, std::bind(&Gles::callGlCoverageOperationNV, this, _1, _2));
mFunctions.insert(161, std::bind(&Gles::callGlCreatePerfQueryINTEL, this, _1, _2));
mFunctions.insert(162, std::bind(&Gles::callGlCreateShaderProgramvEXT, this, _1, _2));
mFunctions.insert(163, std::bind(&Gles::callGlDeleteFencesNV, this, _1, _2));
mFunctions.insert(164, std::bind(&Gles::callGlDeletePathsNV, this, _1, _2));
mFunctions.insert(165, std::bind(&Gles::callGlDeletePerfMonitorsAMD, this, _1, _2));
mFunctions.insert(166, std::bind(&Gles::callGlDeletePerfQueryINTEL, this, _1, _2));
mFunctions.insert(167, std::bind(&Gles::callGlDeleteProgramPipelinesEXT, this, _1, _2));
mFunctions.insert(168, std::bind(&Gles::callGlDeleteQueriesEXT, this, _1, _2));
mFunctions.insert(169, std::bind(&Gles::callGlDeleteSyncAPPLE, this, _1, _2));
mFunctions.insert(170, std::bind(&Gles::callGlDeleteVertexArraysOES, this, _1, _2));
mFunctions.insert(171, std::bind(&Gles::callGlDepthRangeArrayfvNV, this, _1, _2));
mFunctions.insert(172, std::bind(&Gles::callGlDepthRangeIndexedfNV, this, _1, _2));
mFunctions.insert(173, std::bind(&Gles::callGlDisableDriverControlQCOM, this, _1, _2));
mFunctions.insert(174, std::bind(&Gles::callGlDisableiNV, this, _1, _2));
mFunctions.insert(175, std::bind(&Gles::callGlDisableiOES, this, _1, _2));
mFunctions.insert(176, std::bind(&Gles::callGlDiscardFramebufferEXT, this, _1, _2));
mFunctions.insert(177, std::bind(&Gles::callGlDrawArraysInstancedANGLE, this, _1, _2));
mFunctions.insert(178, std::bind(&Gles::callGlDrawArraysInstancedBaseInstanceEXT, this, _1, _2));
mFunctions.insert(179, std::bind(&Gles::callGlDrawArraysInstancedEXT, this, _1, _2));
mFunctions.insert(180, std::bind(&Gles::callGlDrawArraysInstancedNV, this, _1, _2));
mFunctions.insert(181, std::bind(&Gles::callGlDrawBuffersEXT, this, _1, _2));
mFunctions.insert(182, std::bind(&Gles::callGlDrawBuffersIndexedEXT, this, _1, _2));
mFunctions.insert(183, std::bind(&Gles::callGlDrawBuffersNV, this, _1, _2));
mFunctions.insert(184, std::bind(&Gles::callGlDrawElementsBaseVertexEXT, this, _1, _2));
mFunctions.insert(185, std::bind(&Gles::callGlDrawElementsBaseVertexOES, this, _1, _2));
mFunctions.insert(186, std::bind(&Gles::callGlDrawElementsInstancedANGLE, this, _1, _2));
mFunctions.insert(187, std::bind(&Gles::callGlDrawElementsInstancedBaseInstanceEXT, this, _1, _2));
mFunctions.insert(188, std::bind(&Gles::callGlDrawElementsInstancedBaseVertexBaseInstanceEXT, this, _1, _2));
mFunctions.insert(189, std::bind(&Gles::callGlDrawElementsInstancedBaseVertexEXT, this, _1, _2));
mFunctions.insert(190, std::bind(&Gles::callGlDrawElementsInstancedBaseVertexOES, this, _1, _2));
mFunctions.insert(191, std::bind(&Gles::callGlDrawElementsInstancedEXT, this, _1, _2));
mFunctions.insert(192, std::bind(&Gles::callGlDrawElementsInstancedNV, this, _1, _2));
mFunctions.insert(193, std::bind(&Gles::callGlDrawRangeElementsBaseVertexEXT, this, _1, _2));
mFunctions.insert(194, std::bind(&Gles::callGlDrawRangeElementsBaseVertexOES, this, _1, _2));
mFunctions.insert(195, std::bind(&Gles::callGlEGLImageTargetRenderbufferStorageOES, this, _1, _2));
mFunctions.insert(196, std::bind(&Gles::callGlEGLImageTargetTexture2DOES, this, _1, _2));
mFunctions.insert(197, std::bind(&Gles::callGlEnableDriverControlQCOM, this, _1, _2));
mFunctions.insert(198, std::bind(&Gles::callGlEnableiNV, this, _1, _2));
mFunctions.insert(199, std::bind(&Gles::callGlEnableiOES, this, _1, _2));
mFunctions.insert(200, std::bind(&Gles::callGlEndConditionalRenderNV, this, _1, _2));
mFunctions.insert(201, std::bind(&Gles::callGlEndPerfMonitorAMD, this, _1, _2));
mFunctions.insert(202, std::bind(&Gles::callGlEndPerfQueryINTEL, this, _1, _2));
mFunctions.insert(203, std::bind(&Gles::callGlEndQueryEXT, this, _1, _2));
mFunctions.insert(204, std::bind(&Gles::callGlEndTilingQCOM, this, _1, _2));
mFunctions.insert(205, std::bind(&Gles::callGlExtGetBufferPointervQCOM, this, _1, _2));
mFunctions.insert(206, std::bind(&Gles::callGlExtGetBuffersQCOM, this, _1, _2));
mFunctions.insert(207, std::bind(&Gles::callGlExtGetFramebuffersQCOM, this, _1, _2));
mFunctions.insert(208, std::bind(&Gles::callGlExtGetProgramBinarySourceQCOM, this, _1, _2));
mFunctions.insert(209, std::bind(&Gles::callGlExtGetProgramsQCOM, this, _1, _2));
mFunctions.insert(210, std::bind(&Gles::callGlExtGetRenderbuffersQCOM, this, _1, _2));
mFunctions.insert(211, std::bind(&Gles::callGlExtGetShadersQCOM, this, _1, _2));
mFunctions.insert(212, std::bind(&Gles::callGlExtGetTexLevelParameterivQCOM, this, _1, _2));
mFunctions.insert(213, std::bind(&Gles::callGlExtGetTexSubImageQCOM, this, _1, _2));
mFunctions.insert(214, std::bind(&Gles::callGlExtGetTexturesQCOM, this, _1, _2));
mFunctions.insert(215, std::bind(&Gles::callGlExtIsProgramBinaryQCOM, this, _1, _2));
mFunctions.insert(216, std::bind(&Gles::callGlExtTexObjectStateOverrideiQCOM, this, _1, _2));
mFunctions.insert(217, std::bind(&Gles::callGlFenceSyncAPPLE, this, _1, _2));
mFunctions.insert(218, std::bind(&Gles::callGlFinishFenceNV, this, _1, _2));
mFunctions.insert(219, std::bind(&Gles::callGlFlushMappedBufferRangeEXT, this, _1, _2));
mFunctions.insert(220, std::bind(&Gles::callGlFragmentCoverageColorNV, this, _1, _2));
mFunctions.insert(221, std::bind(&Gles::callGlFramebufferSampleLocationsfvNV, this, _1, _2));
mFunctions.insert(222, std::bind(&Gles::callGlFramebufferTexture2DMultisampleEXT, this, _1, _2));
mFunctions.insert(223, std::bind(&Gles::callGlFramebufferTexture2DMultisampleIMG, this, _1, _2));
mFunctions.insert(224, std::bind(&Gles::callGlFramebufferTexture3DOES, this, _1, _2));
mFunctions.insert(225, std::bind(&Gles::callGlFramebufferTextureMultiviewOVR, this, _1, _2));
mFunctions.insert(226, std::bind(&Gles::callGlFramebufferTextureOES, this, _1, _2));
mFunctions.insert(227, std::bind(&Gles::callGlGenFencesNV, this, _1, _2));
mFunctions.insert(228, std::bind(&Gles::callGlGenPathsNV, this, _1, _2));
mFunctions.insert(229, std::bind(&Gles::callGlGenPerfMonitorsAMD, this, _1, _2));
mFunctions.insert(230, std::bind(&Gles::callGlGenProgramPipelinesEXT, this, _1, _2));
mFunctions.insert(231, std::bind(&Gles::callGlGenQueriesEXT, this, _1, _2));
mFunctions.insert(232, std::bind(&Gles::callGlGenVertexArraysOES, this, _1, _2));
mFunctions.insert(233, std::bind(&Gles::callGlGetBufferPointervOES, this, _1, _2));
mFunctions.insert(234, std::bind(&Gles::callGlGetCoverageModulationTableNV, this, _1, _2));
mFunctions.insert(235, std::bind(&Gles::callGlGetDriverControlStringQCOM, this, _1, _2));
mFunctions.insert(236, std::bind(&Gles::callGlGetDriverControlsQCOM, this, _1, _2));
mFunctions.insert(237, std::bind(&Gles::callGlGetFenceivNV, this, _1, _2));
mFunctions.insert(238, std::bind(&Gles::callGlGetFirstPerfQueryIdINTEL, this, _1, _2));
mFunctions.insert(239, std::bind(&Gles::callGlGetFloatiVNV, this, _1, _2));
mFunctions.insert(240, std::bind(&Gles::callGlGetFragDataIndexEXT, this, _1, _2));
mFunctions.insert(241, std::bind(&Gles::callGlGetGraphicsResetStatusEXT, this, _1, _2));
mFunctions.insert(242, std::bind(&Gles::callGlGetGraphicsResetStatusKHR, this, _1, _2));
mFunctions.insert(243, std::bind(&Gles::callGlGetImageHandleNV, this, _1, _2));
mFunctions.insert(244, std::bind(&Gles::callGlGetInteger64vAPPLE, this, _1, _2));
mFunctions.insert(245, std::bind(&Gles::callGlGetIntegeriVEXT, this, _1, _2));
mFunctions.insert(246, std::bind(&Gles::callGlGetInternalformatSampleivNV, this, _1, _2));
mFunctions.insert(247, std::bind(&Gles::callGlGetNextPerfQueryIdINTEL, this, _1, _2));
mFunctions.insert(248, std::bind(&Gles::callGlGetObjectLabelEXT, this, _1, _2));
mFunctions.insert(249, std::bind(&Gles::callGlGetPathCommandsNV, this, _1, _2));
mFunctions.insert(250, std::bind(&Gles::callGlGetPathCoordsNV, this, _1, _2));
mFunctions.insert(251, std::bind(&Gles::callGlGetPathDashArrayNV, this, _1, _2));
mFunctions.insert(252, std::bind(&Gles::callGlGetPathLengthNV, this, _1, _2));
mFunctions.insert(253, std::bind(&Gles::callGlGetPathMetricRangeNV, this, _1, _2));
mFunctions.insert(254, std::bind(&Gles::callGlGetPathMetricsNV, this, _1, _2));
mFunctions.insert(255, std::bind(&Gles::callGlGetPathParameterfvNV, this, _1, _2));
mFunctions.insert(256, std::bind(&Gles::callGlGetPathParameterivNV, this, _1, _2));
mFunctions.insert(257, std::bind(&Gles::callGlGetPathSpacingNV, this, _1, _2));
mFunctions.insert(258, std::bind(&Gles::callGlGetPerfCounterInfoINTEL, this, _1, _2));
mFunctions.insert(259, std::bind(&Gles::callGlGetPerfMonitorCounterDataAMD, this, _1, _2));
mFunctions.insert(260, std::bind(&Gles::callGlGetPerfMonitorCounterInfoAMD, this, _1, _2));
mFunctions.insert(261, std::bind(&Gles::callGlGetPerfMonitorCounterStringAMD, this, _1, _2));
mFunctions.insert(262, std::bind(&Gles::callGlGetPerfMonitorCountersAMD, this, _1, _2));
mFunctions.insert(263, std::bind(&Gles::callGlGetPerfMonitorGroupStringAMD, this, _1, _2));
mFunctions.insert(264, std::bind(&Gles::callGlGetPerfMonitorGroupsAMD, this, _1, _2));
mFunctions.insert(265, std::bind(&Gles::callGlGetPerfQueryDataINTEL, this, _1, _2));
mFunctions.insert(266, std::bind(&Gles::callGlGetPerfQueryIdByNameINTEL, this, _1, _2));
mFunctions.insert(267, std::bind(&Gles::callGlGetPerfQueryInfoINTEL, this, _1, _2));
mFunctions.insert(268, std::bind(&Gles::callGlGetProgramBinaryOES, this, _1, _2));
mFunctions.insert(269, std::bind(&Gles::callGlGetProgramPipelineInfoLogEXT, this, _1, _2));
mFunctions.insert(270, std::bind(&Gles::callGlGetProgramPipelineivEXT, this, _1, _2));
mFunctions.insert(271, std::bind(&Gles::callGlGetProgramResourceLocationIndexEXT, this, _1, _2));
mFunctions.insert(272, std::bind(&Gles::callGlGetProgramResourcefvNV, this, _1, _2));
mFunctions.insert(273, std::bind(&Gles::callGlGetQueryObjecti64vEXT, this, _1, _2));
mFunctions.insert(274, std::bind(&Gles::callGlGetQueryObjectivEXT, this, _1, _2));
mFunctions.insert(275, std::bind(&Gles::callGlGetQueryObjectui64vEXT, this, _1, _2));
mFunctions.insert(276, std::bind(&Gles::callGlGetQueryObjectuivEXT, this, _1, _2));
mFunctions.insert(277, std::bind(&Gles::callGlGetQueryivEXT, this, _1, _2));
mFunctions.insert(278, std::bind(&Gles::callGlGetSamplerParameterIivOES, this, _1, _2));
mFunctions.insert(279, std::bind(&Gles::callGlGetSamplerParameterIuivOES, this, _1, _2));
mFunctions.insert(280, std::bind(&Gles::callGlGetSyncivAPPLE, this, _1, _2));
mFunctions.insert(281, std::bind(&Gles::callGlGetTexParameterIivOES, this, _1, _2));
mFunctions.insert(282, std::bind(&Gles::callGlGetTexParameterIuivOES, this, _1, _2));
mFunctions.insert(283, std::bind(&Gles::callGlGetTextureHandleNV, this, _1, _2));
mFunctions.insert(284, std::bind(&Gles::callGlGetTextureSamplerHandleNV, this, _1, _2));
mFunctions.insert(285, std::bind(&Gles::callGlGetTranslatedShaderSourceANGLE, this, _1, _2));
mFunctions.insert(286, std::bind(&Gles::callGlGetnUniformfvEXT, this, _1, _2));
mFunctions.insert(287, std::bind(&Gles::callGlGetnUniformfvKHR, this, _1, _2));
mFunctions.insert(288, std::bind(&Gles::callGlGetnUniformivEXT, this, _1, _2));
mFunctions.insert(289, std::bind(&Gles::callGlGetnUniformivKHR, this, _1, _2));
mFunctions.insert(290, std::bind(&Gles::callGlGetnUniformuivKHR, this, _1, _2));
mFunctions.insert(291, std::bind(&Gles::callGlInsertEventMarkerEXT, this, _1, _2));
mFunctions.insert(292, std::bind(&Gles::callGlInterpolatePathsNV, this, _1, _2));
mFunctions.insert(293, std::bind(&Gles::callGlIsEnablediNV, this, _1, _2));
mFunctions.insert(294, std::bind(&Gles::callGlIsEnablediOES, this, _1, _2));
mFunctions.insert(295, std::bind(&Gles::callGlIsFenceNV, this, _1, _2));
mFunctions.insert(296, std::bind(&Gles::callGlIsImageHandleResidentNV, this, _1, _2));
mFunctions.insert(297, std::bind(&Gles::callGlIsPathNV, this, _1, _2));
mFunctions.insert(298, std::bind(&Gles::callGlIsPointInFillPathNV, this, _1, _2));
mFunctions.insert(299, std::bind(&Gles::callGlIsPointInStrokePathNV, this, _1, _2));
mFunctions.insert(300, std::bind(&Gles::callGlIsProgramPipelineEXT, this, _1, _2));
mFunctions.insert(301, std::bind(&Gles::callGlIsQueryEXT, this, _1, _2));
mFunctions.insert(302, std::bind(&Gles::callGlIsSyncAPPLE, this, _1, _2));
mFunctions.insert(303, std::bind(&Gles::callGlIsTextureHandleResidentNV, this, _1, _2));
mFunctions.insert(304, std::bind(&Gles::callGlIsVertexArrayOES, this, _1, _2));
mFunctions.insert(305, std::bind(&Gles::callGlLabelObjectEXT, this, _1, _2));
mFunctions.insert(306, std::bind(&Gles::callGlMakeImageHandleNonResidentNV, this, _1, _2));
mFunctions.insert(307, std::bind(&Gles::callGlMakeImageHandleResidentNV, this, _1, _2));
mFunctions.insert(308, std::bind(&Gles::callGlMakeTextureHandleNonResidentNV, this, _1, _2));
mFunctions.insert(309, std::bind(&Gles::callGlMakeTextureHandleResidentNV, this, _1, _2));
mFunctions.insert(310, std::bind(&Gles::callGlMapBufferOES, this, _1, _2));
mFunctions.insert(311, std::bind(&Gles::callGlMapBufferRangeEXT, this, _1, _2));
mFunctions.insert(312, std::bind(&Gles::callGlMatrixLoad3x2fNV, this, _1, _2));
mFunctions.insert(313, std::bind(&Gles::callGlMatrixLoad3x3fNV, this, _1, _2));
mFunctions.insert(314, std::bind(&Gles::callGlMatrixLoadTranspose3x3fNV, this, _1, _2));
mFunctions.insert(315, std::bind(&Gles::callGlMatrixMult3x2fNV, this, _1, _2));
mFunctions.insert(316, std::bind(&Gles::callGlMatrixMult3x3fNV, this, _1, _2));
mFunctions.insert(317, std::bind(&Gles::callGlMatrixMultTranspose3x3fNV, this, _1, _2));
mFunctions.insert(318, std::bind(&Gles::callGlMultiDrawArraysEXT, this, _1, _2));
mFunctions.insert(319, std::bind(&Gles::callGlMultiDrawArraysIndirectEXT, this, _1, _2));
mFunctions.insert(320, std::bind(&Gles::callGlMultiDrawElementsBaseVertexEXT, this, _1, _2));
mFunctions.insert(321, std::bind(&Gles::callGlMultiDrawElementsBaseVertexOES, this, _1, _2));
mFunctions.insert(322, std::bind(&Gles::callGlMultiDrawElementsEXT, this, _1, _2));
mFunctions.insert(323, std::bind(&Gles::callGlMultiDrawElementsIndirectEXT, this, _1, _2));
mFunctions.insert(324, std::bind(&Gles::callGlNamedFramebufferSampleLocationsfvNV, this, _1, _2));
mFunctions.insert(325, std::bind(&Gles::callGlPatchParameteriOES, this, _1, _2));
mFunctions.insert(326, std::bind(&Gles::callGlPathCommandsNV, this, _1, _2));
mFunctions.insert(327, std::bind(&Gles::callGlPathCoordsNV, this, _1, _2));
mFunctions.insert(328, std::bind(&Gles::callGlPathCoverDepthFuncNV, this, _1, _2));
mFunctions.insert(329, std::bind(&Gles::callGlPathDashArrayNV, this, _1, _2));
mFunctions.insert(330, std::bind(&Gles::callGlPathGlyphIndexArrayNV, this, _1, _2));
mFunctions.insert(331, std::bind(&Gles::callGlPathGlyphIndexRangeNV, this, _1, _2));
mFunctions.insert(332, std::bind(&Gles::callGlPathGlyphRangeNV, this, _1, _2));
mFunctions.insert(333, std::bind(&Gles::callGlPathGlyphsNV, this, _1, _2));
mFunctions.insert(334, std::bind(&Gles::callGlPathMemoryGlyphIndexArrayNV, this, _1, _2));
mFunctions.insert(335, std::bind(&Gles::callGlPathParameterfNV, this, _1, _2));
mFunctions.insert(336, std::bind(&Gles::callGlPathParameterfvNV, this, _1, _2));
mFunctions.insert(337, std::bind(&Gles::callGlPathParameteriNV, this, _1, _2));
mFunctions.insert(338, std::bind(&Gles::callGlPathParameterivNV, this, _1, _2));
mFunctions.insert(339, std::bind(&Gles::callGlPathStencilDepthOffsetNV, this, _1, _2));
mFunctions.insert(340, std::bind(&Gles::callGlPathStencilFuncNV, this, _1, _2));
mFunctions.insert(341, std::bind(&Gles::callGlPathStringNV, this, _1, _2));
mFunctions.insert(342, std::bind(&Gles::callGlPathSubCommandsNV, this, _1, _2));
mFunctions.insert(343, std::bind(&Gles::callGlPathSubCoordsNV, this, _1, _2));
mFunctions.insert(344, std::bind(&Gles::callGlPointAlongPathNV, this, _1, _2));
mFunctions.insert(345, std::bind(&Gles::callGlPolygonModeNV, this, _1, _2));
mFunctions.insert(346, std::bind(&Gles::callGlPopGroupMarkerEXT, this, _1, _2));
mFunctions.insert(347, std::bind(&Gles::callGlPrimitiveBoundingBoxOES, this, _1, _2));
mFunctions.insert(348, std::bind(&Gles::callGlProgramBinaryOES, this, _1, _2));
mFunctions.insert(349, std::bind(&Gles::callGlProgramParameteriEXT, this, _1, _2));
mFunctions.insert(350, std::bind(&Gles::callGlProgramPathFragmentInputGenNV, this, _1, _2));
mFunctions.insert(351, std::bind(&Gles::callGlProgramUniform1fEXT, this, _1, _2));
mFunctions.insert(352, std::bind(&Gles::callGlProgramUniform1fvEXT, this, _1, _2));
mFunctions.insert(353, std::bind(&Gles::callGlProgramUniform1iEXT, this, _1, _2));
mFunctions.insert(354, std::bind(&Gles::callGlProgramUniform1ivEXT, this, _1, _2));
mFunctions.insert(355, std::bind(&Gles::callGlProgramUniform1uiEXT, this, _1, _2));
mFunctions.insert(356, std::bind(&Gles::callGlProgramUniform1uivEXT, this, _1, _2));
mFunctions.insert(357, std::bind(&Gles::callGlProgramUniform2fEXT, this, _1, _2));
mFunctions.insert(358, std::bind(&Gles::callGlProgramUniform2fvEXT, this, _1, _2));
mFunctions.insert(359, std::bind(&Gles::callGlProgramUniform2iEXT, this, _1, _2));
mFunctions.insert(360, std::bind(&Gles::callGlProgramUniform2ivEXT, this, _1, _2));
mFunctions.insert(361, std::bind(&Gles::callGlProgramUniform2uiEXT, this, _1, _2));
mFunctions.insert(362, std::bind(&Gles::callGlProgramUniform2uivEXT, this, _1, _2));
mFunctions.insert(363, std::bind(&Gles::callGlProgramUniform3fEXT, this, _1, _2));
mFunctions.insert(364, std::bind(&Gles::callGlProgramUniform3fvEXT, this, _1, _2));
mFunctions.insert(365, std::bind(&Gles::callGlProgramUniform3iEXT, this, _1, _2));
mFunctions.insert(366, std::bind(&Gles::callGlProgramUniform3ivEXT, this, _1, _2));
mFunctions.insert(367, std::bind(&Gles::callGlProgramUniform3uiEXT, this, _1, _2));
mFunctions.insert(368, std::bind(&Gles::callGlProgramUniform3uivEXT, this, _1, _2));
mFunctions.insert(369, std::bind(&Gles::callGlProgramUniform4fEXT, this, _1, _2));
mFunctions.insert(370, std::bind(&Gles::callGlProgramUniform4fvEXT, this, _1, _2));
mFunctions.insert(371, std::bind(&Gles::callGlProgramUniform4iEXT, this, _1, _2));
mFunctions.insert(372, std::bind(&Gles::callGlProgramUniform4ivEXT, this, _1, _2));
mFunctions.insert(373, std::bind(&Gles::callGlProgramUniform4uiEXT, this, _1, _2));
mFunctions.insert(374, std::bind(&Gles::callGlProgramUniform4uivEXT, this, _1, _2));
mFunctions.insert(375, std::bind(&Gles::callGlProgramUniformHandleui64NV, this, _1, _2));
mFunctions.insert(376, std::bind(&Gles::callGlProgramUniformHandleui64vNV, this, _1, _2));
mFunctions.insert(377, std::bind(&Gles::callGlProgramUniformMatrix2fvEXT, this, _1, _2));
mFunctions.insert(378, std::bind(&Gles::callGlProgramUniformMatrix2x3fvEXT, this, _1, _2));
mFunctions.insert(379, std::bind(&Gles::callGlProgramUniformMatrix2x4fvEXT, this, _1, _2));
mFunctions.insert(380, std::bind(&Gles::callGlProgramUniformMatrix3fvEXT, this, _1, _2));
mFunctions.insert(381, std::bind(&Gles::callGlProgramUniformMatrix3x2fvEXT, this, _1, _2));
mFunctions.insert(382, std::bind(&Gles::callGlProgramUniformMatrix3x4fvEXT, this, _1, _2));
mFunctions.insert(383, std::bind(&Gles::callGlProgramUniformMatrix4fvEXT, this, _1, _2));
mFunctions.insert(384, std::bind(&Gles::callGlProgramUniformMatrix4x2fvEXT, this, _1, _2));
mFunctions.insert(385, std::bind(&Gles::callGlProgramUniformMatrix4x3fvEXT, this, _1, _2));
mFunctions.insert(386, std::bind(&Gles::callGlPushGroupMarkerEXT, this, _1, _2));
mFunctions.insert(387, std::bind(&Gles::callGlQueryCounterEXT, this, _1, _2));
mFunctions.insert(388, std::bind(&Gles::callGlRasterSamplesEXT, this, _1, _2));
mFunctions.insert(389, std::bind(&Gles::callGlReadBufferIndexedEXT, this, _1, _2));
mFunctions.insert(390, std::bind(&Gles::callGlReadBufferNV, this, _1, _2));
mFunctions.insert(391, std::bind(&Gles::callGlReadnPixelsEXT, this, _1, _2));
mFunctions.insert(392, std::bind(&Gles::callGlReadnPixelsKHR, this, _1, _2));
mFunctions.insert(393, std::bind(&Gles::callGlRenderbufferStorageMultisampleANGLE, this, _1, _2));
mFunctions.insert(394, std::bind(&Gles::callGlRenderbufferStorageMultisampleAPPLE, this, _1, _2));
mFunctions.insert(395, std::bind(&Gles::callGlRenderbufferStorageMultisampleEXT, this, _1, _2));
mFunctions.insert(396, std::bind(&Gles::callGlRenderbufferStorageMultisampleIMG, this, _1, _2));
mFunctions.insert(397, std::bind(&Gles::callGlRenderbufferStorageMultisampleNV, this, _1, _2));
mFunctions.insert(398, std::bind(&Gles::callGlResolveDepthValuesNV, this, _1, _2));
mFunctions.insert(399, std::bind(&Gles::callGlResolveMultisampleFramebufferAPPLE, this, _1, _2));
mFunctions.insert(400, std::bind(&Gles::callGlSamplerParameterIivOES, this, _1, _2));
mFunctions.insert(401, std::bind(&Gles::callGlSamplerParameterIuivOES, this, _1, _2));
mFunctions.insert(402, std::bind(&Gles::callGlScissorArrayvNV, this, _1, _2));
mFunctions.insert(403, std::bind(&Gles::callGlScissorIndexedNV, this, _1, _2));
mFunctions.insert(404, std::bind(&Gles::callGlScissorIndexedvNV, this, _1, _2));
mFunctions.insert(405, std::bind(&Gles::callGlSelectPerfMonitorCountersAMD, this, _1, _2));
mFunctions.insert(406, std::bind(&Gles::callGlSetFenceNV, this, _1, _2));
mFunctions.insert(407, std::bind(&Gles::callGlStartTilingQCOM, this, _1, _2));
mFunctions.insert(408, std::bind(&Gles::callGlStencilFillPathInstancedNV, this, _1, _2));
mFunctions.insert(409, std::bind(&Gles::callGlStencilFillPathNV, this, _1, _2));
mFunctions.insert(410, std::bind(&Gles::callGlStencilStrokePathInstancedNV, this, _1, _2));
mFunctions.insert(411, std::bind(&Gles::callGlStencilStrokePathNV, this, _1, _2));
mFunctions.insert(412, std::bind(&Gles::callGlStencilThenCoverFillPathInstancedNV, this, _1, _2));
mFunctions.insert(413, std::bind(&Gles::callGlStencilThenCoverFillPathNV, this, _1, _2));
mFunctions.insert(414, std::bind(&Gles::callGlStencilThenCoverStrokePathInstancedNV, this, _1, _2));
mFunctions.insert(415, std::bind(&Gles::callGlStencilThenCoverStrokePathNV, this, _1, _2));
mFunctions.insert(416, std::bind(&Gles::callGlSubpixelPrecisionBiasNV, this, _1, _2));
mFunctions.insert(417, std::bind(&Gles::callGlTestFenceNV, this, _1, _2));
mFunctions.insert(418, std::bind(&Gles::callGlTexBufferOES, this, _1, _2));
mFunctions.insert(419, std::bind(&Gles::callGlTexBufferRangeOES, this, _1, _2));
mFunctions.insert(420, std::bind(&Gles::callGlTexImage3DOES, this, _1, _2));
mFunctions.insert(421, std::bind(&Gles::callGlTexPageCommitmentEXT, this, _1, _2));
mFunctions.insert(422, std::bind(&Gles::callGlTexParameterIivOES, this, _1, _2));
mFunctions.insert(423, std::bind(&Gles::callGlTexParameterIuivOES, this, _1, _2));
mFunctions.insert(424, std::bind(&Gles::callGlTexStorage1DEXT, this, _1, _2));
mFunctions.insert(425, std::bind(&Gles::callGlTexStorage2DEXT, this, _1, _2));
mFunctions.insert(426, std::bind(&Gles::callGlTexStorage3DEXT, this, _1, _2));
mFunctions.insert(427, std::bind(&Gles::callGlTexSubImage3DOES, this, _1, _2));
mFunctions.insert(428, std::bind(&Gles::callGlTextureStorage1DEXT, this, _1, _2));
mFunctions.insert(429, std::bind(&Gles::callGlTextureStorage2DEXT, this, _1, _2));
mFunctions.insert(430, std::bind(&Gles::callGlTextureStorage3DEXT, this, _1, _2));
mFunctions.insert(431, std::bind(&Gles::callGlTextureViewEXT, this, _1, _2));
mFunctions.insert(432, std::bind(&Gles::callGlTextureViewOES, this, _1, _2));
mFunctions.insert(433, std::bind(&Gles::callGlTransformPathNV, this, _1, _2));
mFunctions.insert(434, std::bind(&Gles::callGlUniformHandleui64NV, this, _1, _2));
mFunctions.insert(435, std::bind(&Gles::callGlUniformHandleui64vNV, this, _1, _2));
mFunctions.insert(436, std::bind(&Gles::callGlUniformMatrix2x3fvNV, this, _1, _2));
mFunctions.insert(437, std::bind(&Gles::callGlUniformMatrix2x4fvNV, this, _1, _2));
mFunctions.insert(438, std::bind(&Gles::callGlUniformMatrix3x2fvNV, this, _1, _2));
mFunctions.insert(439, std::bind(&Gles::callGlUniformMatrix3x4fvNV, this, _1, _2));
mFunctions.insert(440, std::bind(&Gles::callGlUniformMatrix4x2fvNV, this, _1, _2));
mFunctions.insert(441, std::bind(&Gles::callGlUniformMatrix4x3fvNV, this, _1, _2));
mFunctions.insert(442, std::bind(&Gles::callGlUnmapBufferOES, this, _1, _2));
mFunctions.insert(443, std::bind(&Gles::callGlUseProgramStagesEXT, this, _1, _2));
mFunctions.insert(444, std::bind(&Gles::callGlValidateProgramPipelineEXT, this, _1, _2));
mFunctions.insert(445, std::bind(&Gles::callGlVertexAttribDivisorANGLE, this, _1, _2));
mFunctions.insert(446, std::bind(&Gles::callGlVertexAttribDivisorEXT, this, _1, _2));
mFunctions.insert(447, std::bind(&Gles::callGlVertexAttribDivisorNV, this, _1, _2));
mFunctions.insert(448, std::bind(&Gles::callGlViewportArrayvNV, this, _1, _2));
mFunctions.insert(449, std::bind(&Gles::callGlViewportIndexedfNV, this, _1, _2));
mFunctions.insert(450, std::bind(&Gles::callGlViewportIndexedfvNV, this, _1, _2));
mFunctions.insert(451, std::bind(&Gles::callGlWaitSyncAPPLE, this, _1, _2));
mFunctions.insert(452, std::bind(&Gles::callGlWeightPathsNV, this, _1, _2));
mFunctions.insert(453, std::bind(&Gles::callGlClearPixelLocalStorageuiEXT, this, _1, _2));
mFunctions.insert(454, std::bind(&Gles::callGlClearTexImageEXT, this, _1, _2));
mFunctions.insert(455, std::bind(&Gles::callGlClearTexSubImageEXT, this, _1, _2));
mFunctions.insert(456, std::bind(&Gles::callGlConservativeRasterParameteriNV, this, _1, _2));
mFunctions.insert(457, std::bind(&Gles::callGlDepthRangeArrayfvOES, this, _1, _2));
mFunctions.insert(458, std::bind(&Gles::callGlDepthRangeIndexedfOES, this, _1, _2));
mFunctions.insert(459, std::bind(&Gles::callGlDrawTransformFeedbackEXT, this, _1, _2));
mFunctions.insert(460, std::bind(&Gles::callGlDrawTransformFeedbackInstancedEXT, this, _1, _2));
mFunctions.insert(461, std::bind(&Gles::callGlFramebufferPixelLocalStorageSizeEXT, this, _1, _2));
mFunctions.insert(462, std::bind(&Gles::callGlFramebufferTexture2DDownsampleIMG, this, _1, _2));
mFunctions.insert(463, std::bind(&Gles::callGlFramebufferTextureLayerDownsampleIMG, this, _1, _2));
mFunctions.insert(464, std::bind(&Gles::callGlFramebufferTextureMultisampleMultiviewOVR, this, _1, _2));
mFunctions.insert(465, std::bind(&Gles::callGlGetFloatiVOES, this, _1, _2));
mFunctions.insert(466, std::bind(&Gles::callGlGetFramebufferPixelLocalStorageSizeEXT, this, _1, _2));
mFunctions.insert(467, std::bind(&Gles::callGlGetTextureHandleIMG, this, _1, _2));
mFunctions.insert(468, std::bind(&Gles::callGlGetTextureSamplerHandleIMG, this, _1, _2));
mFunctions.insert(469, std::bind(&Gles::callGlGetUniformi64vNV, this, _1, _2));
mFunctions.insert(470, std::bind(&Gles::callGlPolygonOffsetClampEXT, this, _1, _2));
mFunctions.insert(471, std::bind(&Gles::callGlProgramUniform1i64NV, this, _1, _2));
mFunctions.insert(472, std::bind(&Gles::callGlProgramUniform1i64vNV, this, _1, _2));
mFunctions.insert(473, std::bind(&Gles::callGlProgramUniform1ui64NV, this, _1, _2));
mFunctions.insert(474, std::bind(&Gles::callGlProgramUniform1ui64vNV, this, _1, _2));
mFunctions.insert(475, std::bind(&Gles::callGlProgramUniform2i64NV, this, _1, _2));
mFunctions.insert(476, std::bind(&Gles::callGlProgramUniform2i64vNV, this, _1, _2));
mFunctions.insert(477, std::bind(&Gles::callGlProgramUniform2ui64NV, this, _1, _2));
mFunctions.insert(478, std::bind(&Gles::callGlProgramUniform2ui64vNV, this, _1, _2));
mFunctions.insert(479, std::bind(&Gles::callGlProgramUniform3i64NV, this, _1, _2));
mFunctions.insert(480, std::bind(&Gles::callGlProgramUniform3i64vNV, this, _1, _2));
mFunctions.insert(481, std::bind(&Gles::callGlProgramUniform3ui64NV, this, _1, _2));
mFunctions.insert(482, std::bind(&Gles::callGlProgramUniform3ui64vNV, this, _1, _2));
mFunctions.insert(483, std::bind(&Gles::callGlProgramUniform4i64NV, this, _1, _2));
mFunctions.insert(484, std::bind(&Gles::callGlProgramUniform4i64vNV, this, _1, _2));
mFunctions.insert(485, std::bind(&Gles::callGlProgramUniform4ui64NV, this, _1, _2));
mFunctions.insert(486, std::bind(&Gles::callGlProgramUniform4ui64vNV, this, _1, _2));
mFunctions.insert(487, std::bind(&Gles::callGlProgramUniformHandleui64IMG, this, _1, _2));
mFunctions.insert(488, std::bind(&Gles::callGlProgramUniformHandleui64vIMG, this, _1, _2));
mFunctions.insert(489, std::bind(&Gles::callGlScissorArrayvOES, this, _1, _2));
mFunctions.insert(490, std::bind(&Gles::callGlScissorIndexedOES, this, _1, _2));
mFunctions.insert(491, std::bind(&Gles::callGlScissorIndexedvOES, this, _1, _2));
mFunctions.insert(492, std::bind(&Gles::callGlUniform1i64NV, this, _1, _2));
mFunctions.insert(493, std::bind(&Gles::callGlUniform1i64vNV, this, _1, _2));
mFunctions.insert(494, std::bind(&Gles::callGlUniform1ui64NV, this, _1, _2));
mFunctions.insert(495, std::bind(&Gles::callGlUniform1ui64vNV, this, _1, _2));
mFunctions.insert(496, std::bind(&Gles::callGlUniform2i64NV, this, _1, _2));
mFunctions.insert(497, std::bind(&Gles::callGlUniform2i64vNV, this, _1, _2));
mFunctions.insert(498, std::bind(&Gles::callGlUniform2ui64NV, this, _1, _2));
mFunctions.insert(499, std::bind(&Gles::callGlUniform2ui64vNV, this, _1, _2));
mFunctions.insert(500, std::bind(&Gles::callGlUniform3i64NV, this, _1, _2));
mFunctions.insert(501, std::bind(&Gles::callGlUniform3i64vNV, this, _1, _2));
mFunctions.insert(502, std::bind(&Gles::callGlUniform3ui64NV, this, _1, _2));
mFunctions.insert(503, std::bind(&Gles::callGlUniform3ui64vNV, this, _1, _2));
mFunctions.insert(504, std::bind(&Gles::callGlUniform4i64NV, this, _1, _2));
mFunctions.insert(505, std::bind(&Gles::callGlUniform4i64vNV, this, _1, _2));
mFunctions.insert(506, std::bind(&Gles::callGlUniform4ui64NV, this, _1, _2));
mFunctions.insert(507, std::bind(&Gles::callGlUniform4ui64vNV, this, _1, _2));
mFunctions.insert(508, std::bind(&Gles::callGlUniformHandleui64IMG, this, _1, _2));
mFunctions.insert(509, std::bind(&Gles::callGlUniformHandleui64vIMG, this, _1, _2));
mFunctions.insert(510, std::bind(&Gles::callGlViewportArrayvOES, this, _1, _2));
mFunctions.insert(511, std::bind(&Gles::callGlViewportIndexedfOES, this, _1, _2));
mFunctions.insert(512, std::bind(&Gles::callGlViewportIndexedfvOES, this, _1, _2));
mFunctions.insert(513, std::bind(&Gles::callGlViewportSwizzleNV, this, _1, _2));
mFunctions.insert(514, std::bind(&Gles::callGlWindowRectanglesEXT, this, _1, _2));
mFunctions.insert(515, std::bind(&Gles::callGlBlendBarrier, this, _1, _2));
mFunctions.insert(516, std::bind(&Gles::callGlBlendColor, this, _1, _2));
mFunctions.insert(517, std::bind(&Gles::callGlBlendEquation, this, _1, _2));
mFunctions.insert(518, std::bind(&Gles::callGlBlendEquationSeparate, this, _1, _2));
mFunctions.insert(519, std::bind(&Gles::callGlBlendEquationSeparatei, this, _1, _2));
mFunctions.insert(520, std::bind(&Gles::callGlBlendEquationi, this, _1, _2));
mFunctions.insert(521, std::bind(&Gles::callGlBlendFunc, this, _1, _2));
mFunctions.insert(522, std::bind(&Gles::callGlBlendFuncSeparate, this, _1, _2));
mFunctions.insert(523, std::bind(&Gles::callGlBlendFuncSeparatei, this, _1, _2));
mFunctions.insert(524, std::bind(&Gles::callGlBlendFunci, this, _1, _2));
mFunctions.insert(525, std::bind(&Gles::callGlDepthFunc, this, _1, _2));
mFunctions.insert(526, std::bind(&Gles::callGlSampleCoverage, this, _1, _2));
mFunctions.insert(527, std::bind(&Gles::callGlSampleMaski, this, _1, _2));
mFunctions.insert(528, std::bind(&Gles::callGlScissor, this, _1, _2));
mFunctions.insert(529, std::bind(&Gles::callGlStencilFunc, this, _1, _2));
mFunctions.insert(530, std::bind(&Gles::callGlStencilFuncSeparate, this, _1, _2));
mFunctions.insert(531, std::bind(&Gles::callGlStencilOp, this, _1, _2));
mFunctions.insert(532, std::bind(&Gles::callGlStencilOpSeparate, this, _1, _2));
mFunctions.insert(533, std::bind(&Gles::callGlBindFramebuffer, this, _1, _2));
mFunctions.insert(534, std::bind(&Gles::callGlBindRenderbuffer, this, _1, _2));
mFunctions.insert(535, std::bind(&Gles::callGlBlitFramebuffer, this, _1, _2));
mFunctions.insert(536, std::bind(&Gles::callGlCheckFramebufferStatus, this, _1, _2));
mFunctions.insert(537, std::bind(&Gles::callGlClear, this, _1, _2));
mFunctions.insert(538, std::bind(&Gles::callGlClearBufferfi, this, _1, _2));
mFunctions.insert(539, std::bind(&Gles::callGlClearBufferfv, this, _1, _2));
mFunctions.insert(540, std::bind(&Gles::callGlClearBufferiv, this, _1, _2));
mFunctions.insert(541, std::bind(&Gles::callGlClearBufferuiv, this, _1, _2));
mFunctions.insert(542, std::bind(&Gles::callGlClearColor, this, _1, _2));
mFunctions.insert(543, std::bind(&Gles::callGlClearDepthf, this, _1, _2));
mFunctions.insert(544, std::bind(&Gles::callGlClearStencil, this, _1, _2));
mFunctions.insert(545, std::bind(&Gles::callGlColorMask, this, _1, _2));
mFunctions.insert(546, std::bind(&Gles::callGlColorMaski, this, _1, _2));
mFunctions.insert(547, std::bind(&Gles::callGlDeleteFramebuffers, this, _1, _2));
mFunctions.insert(548, std::bind(&Gles::callGlDeleteRenderbuffers, this, _1, _2));
mFunctions.insert(549, std::bind(&Gles::callGlDepthMask, this, _1, _2));
mFunctions.insert(550, std::bind(&Gles::callGlDrawBuffers, this, _1, _2));
mFunctions.insert(551, std::bind(&Gles::callGlFramebufferParameteri, this, _1, _2));
mFunctions.insert(552, std::bind(&Gles::callGlFramebufferRenderbuffer, this, _1, _2));
mFunctions.insert(553, std::bind(&Gles::callGlFramebufferTexture, this, _1, _2));
mFunctions.insert(554, std::bind(&Gles::callGlFramebufferTexture2D, this, _1, _2));
mFunctions.insert(555, std::bind(&Gles::callGlFramebufferTextureLayer, this, _1, _2));
mFunctions.insert(556, std::bind(&Gles::callGlGenFramebuffers, this, _1, _2));
mFunctions.insert(557, std::bind(&Gles::callGlGenRenderbuffers, this, _1, _2));
mFunctions.insert(558, std::bind(&Gles::callGlGetFramebufferAttachmentParameteriv, this, _1, _2));
mFunctions.insert(559, std::bind(&Gles::callGlGetFramebufferParameteriv, this, _1, _2));
mFunctions.insert(560, std::bind(&Gles::callGlGetRenderbufferParameteriv, this, _1, _2));
mFunctions.insert(561, std::bind(&Gles::callGlInvalidateFramebuffer, this, _1, _2));
mFunctions.insert(562, std::bind(&Gles::callGlInvalidateSubFramebuffer, this, _1, _2));
mFunctions.insert(563, std::bind(&Gles::callGlIsFramebuffer, this, _1, _2));
mFunctions.insert(564, std::bind(&Gles::callGlIsRenderbuffer, this, _1, _2));
mFunctions.insert(565, std::bind(&Gles::callGlReadBuffer, this, _1, _2));
mFunctions.insert(566, std::bind(&Gles::callGlReadPixels, this, _1, _2));
mFunctions.insert(567, std::bind(&Gles::callGlReadnPixels, this, _1, _2));
mFunctions.insert(568, std::bind(&Gles::callGlRenderbufferStorage, this, _1, _2));
mFunctions.insert(569, std::bind(&Gles::callGlRenderbufferStorageMultisample, this, _1, _2));
mFunctions.insert(570, std::bind(&Gles::callGlStencilMask, this, _1, _2));
mFunctions.insert(571, std::bind(&Gles::callGlStencilMaskSeparate, this, _1, _2));
mFunctions.insert(572, std::bind(&Gles::callGlDisable, this, _1, _2));
mFunctions.insert(573, std::bind(&Gles::callGlDisablei, this, _1, _2));
mFunctions.insert(574, std::bind(&Gles::callGlEnable, this, _1, _2));
mFunctions.insert(575, std::bind(&Gles::callGlEnablei, this, _1, _2));
mFunctions.insert(576, std::bind(&Gles::callGlFinish, this, _1, _2));
mFunctions.insert(577, std::bind(&Gles::callGlFlush, this, _1, _2));
mFunctions.insert(578, std::bind(&Gles::callGlGetError, this, _1, _2));
mFunctions.insert(579, std::bind(&Gles::callGlGetGraphicsResetStatus, this, _1, _2));
mFunctions.insert(580, std::bind(&Gles::callGlHint, this, _1, _2));
mFunctions.insert(581, std::bind(&Gles::callGlActiveShaderProgram, this, _1, _2));
mFunctions.insert(582, std::bind(&Gles::callGlAttachShader, this, _1, _2));
mFunctions.insert(583, std::bind(&Gles::callGlBindAttribLocation, this, _1, _2));
mFunctions.insert(584, std::bind(&Gles::callGlBindProgramPipeline, this, _1, _2));
mFunctions.insert(585, std::bind(&Gles::callGlCompileShader, this, _1, _2));
mFunctions.insert(586, std::bind(&Gles::callGlCreateProgram, this, _1, _2));
mFunctions.insert(587, std::bind(&Gles::callGlCreateShader, this, _1, _2));
mFunctions.insert(588, std::bind(&Gles::callGlCreateShaderProgramv, this, _1, _2));
mFunctions.insert(589, std::bind(&Gles::callGlDeleteProgram, this, _1, _2));
mFunctions.insert(590, std::bind(&Gles::callGlDeleteProgramPipelines, this, _1, _2));
mFunctions.insert(591, std::bind(&Gles::callGlDeleteShader, this, _1, _2));
mFunctions.insert(592, std::bind(&Gles::callGlDetachShader, this, _1, _2));
mFunctions.insert(593, std::bind(&Gles::callGlDispatchCompute, this, _1, _2));
mFunctions.insert(594, std::bind(&Gles::callGlDispatchComputeIndirect, this, _1, _2));
mFunctions.insert(595, std::bind(&Gles::callGlGenProgramPipelines, this, _1, _2));
mFunctions.insert(596, std::bind(&Gles::callGlGetActiveAttrib, this, _1, _2));
mFunctions.insert(597, std::bind(&Gles::callGlGetActiveUniform, this, _1, _2));
mFunctions.insert(598, std::bind(&Gles::callGlGetActiveUniformBlockName, this, _1, _2));
mFunctions.insert(599, std::bind(&Gles::callGlGetActiveUniformBlockiv, this, _1, _2));
mFunctions.insert(600, std::bind(&Gles::callGlGetActiveUniformsiv, this, _1, _2));
mFunctions.insert(601, std::bind(&Gles::callGlGetAttachedShaders, this, _1, _2));
mFunctions.insert(602, std::bind(&Gles::callGlGetAttribLocation, this, _1, _2));
mFunctions.insert(603, std::bind(&Gles::callGlGetFragDataLocation, this, _1, _2));
mFunctions.insert(604, std::bind(&Gles::callGlGetProgramBinary, this, _1, _2));
mFunctions.insert(605, std::bind(&Gles::callGlGetProgramInfoLog, this, _1, _2));
mFunctions.insert(606, std::bind(&Gles::callGlGetProgramInterfaceiv, this, _1, _2));
mFunctions.insert(607, std::bind(&Gles::callGlGetProgramPipelineInfoLog, this, _1, _2));
mFunctions.insert(608, std::bind(&Gles::callGlGetProgramPipelineiv, this, _1, _2));
mFunctions.insert(609, std::bind(&Gles::callGlGetProgramResourceIndex, this, _1, _2));
mFunctions.insert(610, std::bind(&Gles::callGlGetProgramResourceLocation, this, _1, _2));
mFunctions.insert(611, std::bind(&Gles::callGlGetProgramResourceName, this, _1, _2));
mFunctions.insert(612, std::bind(&Gles::callGlGetProgramResourceiv, this, _1, _2));
mFunctions.insert(613, std::bind(&Gles::callGlGetProgramiv, this, _1, _2));
mFunctions.insert(614, std::bind(&Gles::callGlGetShaderInfoLog, this, _1, _2));
mFunctions.insert(615, std::bind(&Gles::callGlGetShaderPrecisionFormat, this, _1, _2));
mFunctions.insert(616, std::bind(&Gles::callGlGetShaderSource, this, _1, _2));
mFunctions.insert(617, std::bind(&Gles::callGlGetShaderiv, this, _1, _2));
mFunctions.insert(618, std::bind(&Gles::callGlGetUniformBlockIndex, this, _1, _2));
mFunctions.insert(619, std::bind(&Gles::callGlGetUniformIndices, this, _1, _2));
mFunctions.insert(620, std::bind(&Gles::callGlGetUniformLocation, this, _1, _2));
mFunctions.insert(621, std::bind(&Gles::callGlGetUniformfv, this, _1, _2));
mFunctions.insert(622, std::bind(&Gles::callGlGetUniformiv, this, _1, _2));
mFunctions.insert(623, std::bind(&Gles::callGlGetUniformuiv, this, _1, _2));
mFunctions.insert(624, std::bind(&Gles::callGlGetnUniformfv, this, _1, _2));
mFunctions.insert(625, std::bind(&Gles::callGlGetnUniformiv, this, _1, _2));
mFunctions.insert(626, std::bind(&Gles::callGlGetnUniformuiv, this, _1, _2));
mFunctions.insert(627, std::bind(&Gles::callGlIsProgram, this, _1, _2));
mFunctions.insert(628, std::bind(&Gles::callGlIsProgramPipeline, this, _1, _2));
mFunctions.insert(629, std::bind(&Gles::callGlIsShader, this, _1, _2));
mFunctions.insert(630, std::bind(&Gles::callGlLinkProgram, this, _1, _2));
mFunctions.insert(631, std::bind(&Gles::callGlMemoryBarrier, this, _1, _2));
mFunctions.insert(632, std::bind(&Gles::callGlMemoryBarrierByRegion, this, _1, _2));
mFunctions.insert(633, std::bind(&Gles::callGlProgramBinary, this, _1, _2));
mFunctions.insert(634, std::bind(&Gles::callGlProgramParameteri, this, _1, _2));
mFunctions.insert(635, std::bind(&Gles::callGlProgramUniform1f, this, _1, _2));
mFunctions.insert(636, std::bind(&Gles::callGlProgramUniform1fv, this, _1, _2));
mFunctions.insert(637, std::bind(&Gles::callGlProgramUniform1i, this, _1, _2));
mFunctions.insert(638, std::bind(&Gles::callGlProgramUniform1iv, this, _1, _2));
mFunctions.insert(639, std::bind(&Gles::callGlProgramUniform1ui, this, _1, _2));
mFunctions.insert(640, std::bind(&Gles::callGlProgramUniform1uiv, this, _1, _2));
mFunctions.insert(641, std::bind(&Gles::callGlProgramUniform2f, this, _1, _2));
mFunctions.insert(642, std::bind(&Gles::callGlProgramUniform2fv, this, _1, _2));
mFunctions.insert(643, std::bind(&Gles::callGlProgramUniform2i, this, _1, _2));
mFunctions.insert(644, std::bind(&Gles::callGlProgramUniform2iv, this, _1, _2));
mFunctions.insert(645, std::bind(&Gles::callGlProgramUniform2ui, this, _1, _2));
mFunctions.insert(646, std::bind(&Gles::callGlProgramUniform2uiv, this, _1, _2));
mFunctions.insert(647, std::bind(&Gles::callGlProgramUniform3f, this, _1, _2));
mFunctions.insert(648, std::bind(&Gles::callGlProgramUniform3fv, this, _1, _2));
mFunctions.insert(649, std::bind(&Gles::callGlProgramUniform3i, this, _1, _2));
mFunctions.insert(650, std::bind(&Gles::callGlProgramUniform3iv, this, _1, _2));
mFunctions.insert(651, std::bind(&Gles::callGlProgramUniform3ui, this, _1, _2));
mFunctions.insert(652, std::bind(&Gles::callGlProgramUniform3uiv, this, _1, _2));
mFunctions.insert(653, std::bind(&Gles::callGlProgramUniform4f, this, _1, _2));
mFunctions.insert(654, std::bind(&Gles::callGlProgramUniform4fv, this, _1, _2));
mFunctions.insert(655, std::bind(&Gles::callGlProgramUniform4i, this, _1, _2));
mFunctions.insert(656, std::bind(&Gles::callGlProgramUniform4iv, this, _1, _2));
mFunctions.insert(657, std::bind(&Gles::callGlProgramUniform4ui, this, _1, _2));
mFunctions.insert(658, std::bind(&Gles::callGlProgramUniform4uiv, this, _1, _2));
mFunctions.insert(659, std::bind(&Gles::callGlProgramUniformMatrix2fv, this, _1, _2));
mFunctions.insert(660, std::bind(&Gles::callGlProgramUniformMatrix2x3fv, this, _1, _2));
mFunctions.insert(661, std::bind(&Gles::callGlProgramUniformMatrix2x4fv, this, _1, _2));
mFunctions.insert(662, std::bind(&Gles::callGlProgramUniformMatrix3fv, this, _1, _2));
mFunctions.insert(663, std::bind(&Gles::callGlProgramUniformMatrix3x2fv, this, _1, _2));
mFunctions.insert(664, std::bind(&Gles::callGlProgramUniformMatrix3x4fv, this, _1, _2));
mFunctions.insert(665, std::bind(&Gles::callGlProgramUniformMatrix4fv, this, _1, _2));
mFunctions.insert(666, std::bind(&Gles::callGlProgramUniformMatrix4x2fv, this, _1, _2));
mFunctions.insert(667, std::bind(&Gles::callGlProgramUniformMatrix4x3fv, this, _1, _2));
mFunctions.insert(668, std::bind(&Gles::callGlReleaseShaderCompiler, this, _1, _2));
mFunctions.insert(669, std::bind(&Gles::callGlShaderBinary, this, _1, _2));
mFunctions.insert(670, std::bind(&Gles::callGlShaderSource, this, _1, _2));
mFunctions.insert(671, std::bind(&Gles::callGlUniform1f, this, _1, _2));
mFunctions.insert(672, std::bind(&Gles::callGlUniform1fv, this, _1, _2));
mFunctions.insert(673, std::bind(&Gles::callGlUniform1i, this, _1, _2));
mFunctions.insert(674, std::bind(&Gles::callGlUniform1iv, this, _1, _2));
mFunctions.insert(675, std::bind(&Gles::callGlUniform1ui, this, _1, _2));
mFunctions.insert(676, std::bind(&Gles::callGlUniform1uiv, this, _1, _2));
mFunctions.insert(677, std::bind(&Gles::callGlUniform2f, this, _1, _2));
mFunctions.insert(678, std::bind(&Gles::callGlUniform2fv, this, _1, _2));
mFunctions.insert(679, std::bind(&Gles::callGlUniform2i, this, _1, _2));
mFunctions.insert(680, std::bind(&Gles::callGlUniform2iv, this, _1, _2));
mFunctions.insert(681, std::bind(&Gles::callGlUniform2ui, this, _1, _2));
mFunctions.insert(682, std::bind(&Gles::callGlUniform2uiv, this, _1, _2));
mFunctions.insert(683, std::bind(&Gles::callGlUniform3f, this, _1, _2));
mFunctions.insert(684, std::bind(&Gles::callGlUniform3fv, this, _1, _2));
mFunctions.insert(685, std::bind(&Gles::callGlUniform3i, this, _1, _2));
mFunctions.insert(686, std::bind(&Gles::callGlUniform3iv, this, _1, _2));
mFunctions.insert(687, std::bind(&Gles::callGlUniform3ui, this, _1, _2));
mFunctions.insert(688, std::bind(&Gles::callGlUniform3uiv, this, _1, _2));
mFunctions.insert(689, std::bind(&Gles::callGlUniform4f, this, _1, _2));
mFunctions.insert(690, std::bind(&Gles::callGlUniform4fv, this, _1, _2));
mFunctions.insert(691, std::bind(&Gles::callGlUniform4i, this, _1, _2));
mFunctions.insert(692, std::bind(&Gles::callGlUniform4iv, this, _1, _2));
mFunctions.insert(693, std::bind(&Gles::callGlUniform4ui, this, _1, _2));
mFunctions.insert(694, std::bind(&Gles::callGlUniform4uiv, this, _1, _2));
mFunctions.insert(695, std::bind(&Gles::callGlUniformBlockBinding, this, _1, _2));
mFunctions.insert(696, std::bind(&Gles::callGlUniformMatrix2fv, this, _1, _2));
mFunctions.insert(697, std::bind(&Gles::callGlUniformMatrix2x3fv, this, _1, _2));
mFunctions.insert(698, std::bind(&Gles::callGlUniformMatrix2x4fv, this, _1, _2));
mFunctions.insert(699, std::bind(&Gles::callGlUniformMatrix3fv, this, _1, _2));
mFunctions.insert(700, std::bind(&Gles::callGlUniformMatrix3x2fv, this, _1, _2));
mFunctions.insert(701, std::bind(&Gles::callGlUniformMatrix3x4fv, this, _1, _2));
mFunctions.insert(702, std::bind(&Gles::callGlUniformMatrix4fv, this, _1, _2));
mFunctions.insert(703, std::bind(&Gles::callGlUniformMatrix4x2fv, this, _1, _2));
mFunctions.insert(704, std::bind(&Gles::callGlUniformMatrix4x3fv, this, _1, _2));
mFunctions.insert(705, std::bind(&Gles::callGlUseProgram, this, _1, _2));
mFunctions.insert(706, std::bind(&Gles::callGlUseProgramStages, this, _1, _2));
mFunctions.insert(707, std::bind(&Gles::callGlValidateProgram, this, _1, _2));
mFunctions.insert(708, std::bind(&Gles::callGlValidateProgramPipeline, this, _1, _2));
mFunctions.insert(709, std::bind(&Gles::callGlCullFace, this, _1, _2));
mFunctions.insert(710, std::bind(&Gles::callGlDepthRangef, this, _1, _2));
mFunctions.insert(711, std::bind(&Gles::callGlFrontFace, this, _1, _2));
mFunctions.insert(712, std::bind(&Gles::callGlGetMultisamplefv, this, _1, _2));
mFunctions.insert(713, std::bind(&Gles::callGlLineWidth, this, _1, _2));
mFunctions.insert(714, std::bind(&Gles::callGlMinSampleShading, this, _1, _2));
mFunctions.insert(715, std::bind(&Gles::callGlPolygonOffset, this, _1, _2));
mFunctions.insert(716, std::bind(&Gles::callGlViewport, this, _1, _2));
mFunctions.insert(717, std::bind(&Gles::callGlGetBooleaniV, this, _1, _2));
mFunctions.insert(718, std::bind(&Gles::callGlGetBooleanv, this, _1, _2));
mFunctions.insert(719, std::bind(&Gles::callGlGetFloatv, this, _1, _2));
mFunctions.insert(720, std::bind(&Gles::callGlGetInteger64iV, this, _1, _2));
mFunctions.insert(721, std::bind(&Gles::callGlGetInteger64v, this, _1, _2));
mFunctions.insert(722, std::bind(&Gles::callGlGetIntegeriV, this, _1, _2));
mFunctions.insert(723, std::bind(&Gles::callGlGetIntegerv, this, _1, _2));
mFunctions.insert(724, std::bind(&Gles::callGlGetInternalformativ, this, _1, _2));
mFunctions.insert(725, std::bind(&Gles::callGlGetString, this, _1, _2));
mFunctions.insert(726, std::bind(&Gles::callGlGetStringi, this, _1, _2));
mFunctions.insert(727, std::bind(&Gles::callGlIsEnabled, this, _1, _2));
mFunctions.insert(728, std::bind(&Gles::callGlIsEnabledi, this, _1, _2));
mFunctions.insert(729, std::bind(&Gles::callGlClientWaitSync, this, _1, _2));
mFunctions.insert(730, std::bind(&Gles::callGlDeleteSync, this, _1, _2));
mFunctions.insert(731, std::bind(&Gles::callGlFenceSync, this, _1, _2));
mFunctions.insert(732, std::bind(&Gles::callGlGetSynciv, this, _1, _2));
mFunctions.insert(733, std::bind(&Gles::callGlIsSync, this, _1, _2));
mFunctions.insert(734, std::bind(&Gles::callGlWaitSync, this, _1, _2));
mFunctions.insert(735, std::bind(&Gles::callGlActiveTexture, this, _1, _2));
mFunctions.insert(736, std::bind(&Gles::callGlBindImageTexture, this, _1, _2));
mFunctions.insert(737, std::bind(&Gles::callGlBindSampler, this, _1, _2));
mFunctions.insert(738, std::bind(&Gles::callGlBindTexture, this, _1, _2));
mFunctions.insert(739, std::bind(&Gles::callGlCompressedTexImage2D, this, _1, _2));
mFunctions.insert(740, std::bind(&Gles::callGlCompressedTexImage3D, this, _1, _2));
mFunctions.insert(741, std::bind(&Gles::callGlCompressedTexSubImage2D, this, _1, _2));
mFunctions.insert(742, std::bind(&Gles::callGlCompressedTexSubImage3D, this, _1, _2));
mFunctions.insert(743, std::bind(&Gles::callGlCopyImageSubData, this, _1, _2));
mFunctions.insert(744, std::bind(&Gles::callGlCopyTexImage2D, this, _1, _2));
mFunctions.insert(745, std::bind(&Gles::callGlCopyTexSubImage2D, this, _1, _2));
mFunctions.insert(746, std::bind(&Gles::callGlCopyTexSubImage3D, this, _1, _2));
mFunctions.insert(747, std::bind(&Gles::callGlDeleteSamplers, this, _1, _2));
mFunctions.insert(748, std::bind(&Gles::callGlDeleteTextures, this, _1, _2));
mFunctions.insert(749, std::bind(&Gles::callGlGenSamplers, this, _1, _2));
mFunctions.insert(750, std::bind(&Gles::callGlGenTextures, this, _1, _2));
mFunctions.insert(751, std::bind(&Gles::callGlGenerateMipmap, this, _1, _2));
mFunctions.insert(752, std::bind(&Gles::callGlGetSamplerParameterIiv, this, _1, _2));
mFunctions.insert(753, std::bind(&Gles::callGlGetSamplerParameterIuiv, this, _1, _2));
mFunctions.insert(754, std::bind(&Gles::callGlGetSamplerParameterfv, this, _1, _2));
mFunctions.insert(755, std::bind(&Gles::callGlGetSamplerParameteriv, this, _1, _2));
mFunctions.insert(756, std::bind(&Gles::callGlGetTexLevelParameterfv, this, _1, _2));
mFunctions.insert(757, std::bind(&Gles::callGlGetTexLevelParameteriv, this, _1, _2));
mFunctions.insert(758, std::bind(&Gles::callGlGetTexParameterIiv, this, _1, _2));
mFunctions.insert(759, std::bind(&Gles::callGlGetTexParameterIuiv, this, _1, _2));
mFunctions.insert(760, std::bind(&Gles::callGlGetTexParameterfv, this, _1, _2));
mFunctions.insert(761, std::bind(&Gles::callGlGetTexParameteriv, this, _1, _2));
mFunctions.insert(762, std::bind(&Gles::callGlIsSampler, this, _1, _2));
mFunctions.insert(763, std::bind(&Gles::callGlIsTexture, this, _1, _2));
mFunctions.insert(764, std::bind(&Gles::callGlPixelStorei, this, _1, _2));
mFunctions.insert(765, std::bind(&Gles::callGlSamplerParameterIiv, this, _1, _2));
mFunctions.insert(766, std::bind(&Gles::callGlSamplerParameterIuiv, this, _1, _2));
mFunctions.insert(767, std::bind(&Gles::callGlSamplerParameterf, this, _1, _2));
mFunctions.insert(768, std::bind(&Gles::callGlSamplerParameterfv, this, _1, _2));
mFunctions.insert(769, std::bind(&Gles::callGlSamplerParameteri, this, _1, _2));
mFunctions.insert(770, std::bind(&Gles::callGlSamplerParameteriv, this, _1, _2));
mFunctions.insert(771, std::bind(&Gles::callGlTexBuffer, this, _1, _2));
mFunctions.insert(772, std::bind(&Gles::callGlTexBufferRange, this, _1, _2));
mFunctions.insert(773, std::bind(&Gles::callGlTexImage2D, this, _1, _2));
mFunctions.insert(774, std::bind(&Gles::callGlTexImage3D, this, _1, _2));
mFunctions.insert(775, std::bind(&Gles::callGlTexParameterIiv, this, _1, _2));
mFunctions.insert(776, std::bind(&Gles::callGlTexParameterIuiv, this, _1, _2));
mFunctions.insert(777, std::bind(&Gles::callGlTexParameterf, this, _1, _2));
mFunctions.insert(778, std::bind(&Gles::callGlTexParameterfv, this, _1, _2));
mFunctions.insert(779, std::bind(&Gles::callGlTexParameteri, this, _1, _2));
mFunctions.insert(780, std::bind(&Gles::callGlTexParameteriv, this, _1, _2));
mFunctions.insert(781, std::bind(&Gles::callGlTexStorage2D, this, _1, _2));
mFunctions.insert(782, std::bind(&Gles::callGlTexStorage2DMultisample, this, _1, _2));
mFunctions.insert(783, std::bind(&Gles::callGlTexStorage3D, this, _1, _2));
mFunctions.insert(784, std::bind(&Gles::callGlTexStorage3DMultisample, this, _1, _2));
mFunctions.insert(785, std::bind(&Gles::callGlTexSubImage2D, this, _1, _2));
mFunctions.insert(786, std::bind(&Gles::callGlTexSubImage3D, this, _1, _2));
mFunctions.insert(787, std::bind(&Gles::callGlBeginTransformFeedback, this, _1, _2));
mFunctions.insert(788, std::bind(&Gles::callGlBindTransformFeedback, this, _1, _2));
mFunctions.insert(789, std::bind(&Gles::callGlDeleteTransformFeedbacks, this, _1, _2));
mFunctions.insert(790, std::bind(&Gles::callGlEndTransformFeedback, this, _1, _2));
mFunctions.insert(791, std::bind(&Gles::callGlGenTransformFeedbacks, this, _1, _2));
mFunctions.insert(792, std::bind(&Gles::callGlGetTransformFeedbackVarying, this, _1, _2));
mFunctions.insert(793, std::bind(&Gles::callGlIsTransformFeedback, this, _1, _2));
mFunctions.insert(794, std::bind(&Gles::callGlPauseTransformFeedback, this, _1, _2));
mFunctions.insert(795, std::bind(&Gles::callGlResumeTransformFeedback, this, _1, _2));
mFunctions.insert(796, std::bind(&Gles::callGlTransformFeedbackVaryings, this, _1, _2));
mFunctions.insert(797, std::bind(&Gles::callGlBindVertexArray, this, _1, _2));
mFunctions.insert(798, std::bind(&Gles::callGlBindVertexBuffer, this, _1, _2));
mFunctions.insert(799, std::bind(&Gles::callGlDeleteVertexArrays, this, _1, _2));
mFunctions.insert(800, std::bind(&Gles::callGlDisableVertexAttribArray, this, _1, _2));
mFunctions.insert(801, std::bind(&Gles::callGlEnableVertexAttribArray, this, _1, _2));
mFunctions.insert(802, std::bind(&Gles::callGlGenVertexArrays, this, _1, _2));
mFunctions.insert(803, std::bind(&Gles::callGlGetVertexAttribIiv, this, _1, _2));
mFunctions.insert(804, std::bind(&Gles::callGlGetVertexAttribIuiv, this, _1, _2));
mFunctions.insert(805, std::bind(&Gles::callGlGetVertexAttribPointerv, this, _1, _2));
mFunctions.insert(806, std::bind(&Gles::callGlGetVertexAttribfv, this, _1, _2));
mFunctions.insert(807, std::bind(&Gles::callGlGetVertexAttribiv, this, _1, _2));
mFunctions.insert(808, std::bind(&Gles::callGlIsVertexArray, this, _1, _2));
mFunctions.insert(809, std::bind(&Gles::callGlVertexAttrib1f, this, _1, _2));
mFunctions.insert(810, std::bind(&Gles::callGlVertexAttrib1fv, this, _1, _2));
mFunctions.insert(811, std::bind(&Gles::callGlVertexAttrib2f, this, _1, _2));
mFunctions.insert(812, std::bind(&Gles::callGlVertexAttrib2fv, this, _1, _2));
mFunctions.insert(813, std::bind(&Gles::callGlVertexAttrib3f, this, _1, _2));
mFunctions.insert(814, std::bind(&Gles::callGlVertexAttrib3fv, this, _1, _2));
mFunctions.insert(815, std::bind(&Gles::callGlVertexAttrib4f, this, _1, _2));
mFunctions.insert(816, std::bind(&Gles::callGlVertexAttrib4fv, this, _1, _2));
mFunctions.insert(817, std::bind(&Gles::callGlVertexAttribBinding, this, _1, _2));
mFunctions.insert(818, std::bind(&Gles::callGlVertexAttribDivisor, this, _1, _2));
mFunctions.insert(819, std::bind(&Gles::callGlVertexAttribFormat, this, _1, _2));
mFunctions.insert(820, std::bind(&Gles::callGlVertexAttribI4i, this, _1, _2));
mFunctions.insert(821, std::bind(&Gles::callGlVertexAttribI4iv, this, _1, _2));
mFunctions.insert(822, std::bind(&Gles::callGlVertexAttribI4ui, this, _1, _2));
mFunctions.insert(823, std::bind(&Gles::callGlVertexAttribI4uiv, this, _1, _2));
mFunctions.insert(824, std::bind(&Gles::callGlVertexAttribIFormat, this, _1, _2));
mFunctions.insert(825, std::bind(&Gles::callGlVertexAttribIPointer, this, _1, _2));
mFunctions.insert(826, std::bind(&Gles::callGlVertexAttribPointer, this, _1, _2));
mFunctions.insert(827, std::bind(&Gles::callGlVertexBindingDivisor, this, _1, _2));
mFunctions.insert(828, std::bind(&Gles::callGlXCreateContext, this, _1, _2));
mFunctions.insert(829, std::bind(&Gles::callGlXCreateNewContext, this, _1, _2));
mFunctions.insert(830, std::bind(&Gles::callGlXMakeContextCurrent, this, _1, _2));
mFunctions.insert(831, std::bind(&Gles::callGlXMakeCurrent, this, _1, _2));
mFunctions.insert(832, std::bind(&Gles::callGlXSwapBuffers, this, _1, _2));
mFunctions.insert(833, std::bind(&Gles::callGlXQueryDrawable, this, _1, _2));
mFunctions.insert(834, std::bind(&Gles::callWglCreateContext, this, _1, _2));
mFunctions.insert(835, std::bind(&Gles::callWglCreateContextAttribsARB, this, _1, _2));
mFunctions.insert(836, std::bind(&Gles::callWglMakeCurrent, this, _1, _2));
mFunctions.insert(837, std::bind(&Gles::callWglSwapBuffers, this, _1, _2));
mFunctions.insert(838, std::bind(&Gles::callCGLCreateContext, this, _1, _2));
mFunctions.insert(839, std::bind(&Gles::callCGLSetCurrentContext, this, _1, _2));
mFunctions.insert(840, std::bind(&Gles::callCGLGetSurface, this, _1, _2));
mFunctions.insert(841, std::bind(&Gles::callCGSGetSurfaceBounds, this, _1, _2));
mFunctions.insert(842, std::bind(&Gles::callCGLFlushDrawable, this, _1, _2));
mFunctions.insert(843, std::bind(&Gles::callGlGetQueryObjecti64v, this, _1, _2));
mFunctions.insert(844, std::bind(&Gles::callGlGetQueryObjectui64v, this, _1, _2));
mFunctions.insert(845, std::bind(&Gles::callGlTexStorage1D, this, _1, _2));
mFunctions.insert(846, std::bind(&Gles::callGlBindFragDataLocation, this, _1, _2));
mFunctions.insert(847, std::bind(&Gles::callGlAlphaFunc, this, _1, _2));
mFunctions.insert(848, std::bind(&Gles::callGlAlphaFuncx, this, _1, _2));
mFunctions.insert(849, std::bind(&Gles::callGlAlphaFuncxOES, this, _1, _2));
mFunctions.insert(850, std::bind(&Gles::callGlBindFramebufferOES, this, _1, _2));
mFunctions.insert(851, std::bind(&Gles::callGlBindRenderbufferOES, this, _1, _2));
mFunctions.insert(852, std::bind(&Gles::callGlBlendEquationOES, this, _1, _2));
mFunctions.insert(853, std::bind(&Gles::callGlBlendEquationSeparateOES, this, _1, _2));
mFunctions.insert(854, std::bind(&Gles::callGlBlendFuncSeparateOES, this, _1, _2));
mFunctions.insert(855, std::bind(&Gles::callGlCheckFramebufferStatusOES, this, _1, _2));
mFunctions.insert(856, std::bind(&Gles::callGlClearColorx, this, _1, _2));
mFunctions.insert(857, std::bind(&Gles::callGlClearColorxOES, this, _1, _2));
mFunctions.insert(858, std::bind(&Gles::callGlClearDepthfOES, this, _1, _2));
mFunctions.insert(859, std::bind(&Gles::callGlClearDepthx, this, _1, _2));
mFunctions.insert(860, std::bind(&Gles::callGlClearDepthxOES, this, _1, _2));
mFunctions.insert(861, std::bind(&Gles::callGlClientActiveTexture, this, _1, _2));
mFunctions.insert(862, std::bind(&Gles::callGlClipPlanef, this, _1, _2));
mFunctions.insert(863, std::bind(&Gles::callGlClipPlanefIMG, this, _1, _2));
mFunctions.insert(864, std::bind(&Gles::callGlClipPlanefOES, this, _1, _2));
mFunctions.insert(865, std::bind(&Gles::callGlClipPlanex, this, _1, _2));
mFunctions.insert(866, std::bind(&Gles::callGlClipPlanexIMG, this, _1, _2));
mFunctions.insert(867, std::bind(&Gles::callGlClipPlanexOES, this, _1, _2));
mFunctions.insert(868, std::bind(&Gles::callGlColor4f, this, _1, _2));
mFunctions.insert(869, std::bind(&Gles::callGlColor4ub, this, _1, _2));
mFunctions.insert(870, std::bind(&Gles::callGlColor4x, this, _1, _2));
mFunctions.insert(871, std::bind(&Gles::callGlColor4xOES, this, _1, _2));
mFunctions.insert(872, std::bind(&Gles::callGlColorPointer, this, _1, _2));
mFunctions.insert(873, std::bind(&Gles::callGlCurrentPaletteMatrixOES, this, _1, _2));
mFunctions.insert(874, std::bind(&Gles::callGlDeleteFramebuffersOES, this, _1, _2));
mFunctions.insert(875, std::bind(&Gles::callGlDeleteRenderbuffersOES, this, _1, _2));
mFunctions.insert(876, std::bind(&Gles::callGlDepthRangefOES, this, _1, _2));
mFunctions.insert(877, std::bind(&Gles::callGlDepthRangex, this, _1, _2));
mFunctions.insert(878, std::bind(&Gles::callGlDepthRangexOES, this, _1, _2));
mFunctions.insert(879, std::bind(&Gles::callGlDisableClientState, this, _1, _2));
mFunctions.insert(880, std::bind(&Gles::callGlDrawTexfOES, this, _1, _2));
mFunctions.insert(881, std::bind(&Gles::callGlDrawTexfvOES, this, _1, _2));
mFunctions.insert(882, std::bind(&Gles::callGlDrawTexiOES, this, _1, _2));
mFunctions.insert(883, std::bind(&Gles::callGlDrawTexivOES, this, _1, _2));
mFunctions.insert(884, std::bind(&Gles::callGlDrawTexsOES, this, _1, _2));
mFunctions.insert(885, std::bind(&Gles::callGlDrawTexsvOES, this, _1, _2));
mFunctions.insert(886, std::bind(&Gles::callGlDrawTexxOES, this, _1, _2));
mFunctions.insert(887, std::bind(&Gles::callGlDrawTexxvOES, this, _1, _2));
mFunctions.insert(888, std::bind(&Gles::callGlEnableClientState, this, _1, _2));
mFunctions.insert(889, std::bind(&Gles::callGlFogf, this, _1, _2));
mFunctions.insert(890, std::bind(&Gles::callGlFogfv, this, _1, _2));
mFunctions.insert(891, std::bind(&Gles::callGlFogx, this, _1, _2));
mFunctions.insert(892, std::bind(&Gles::callGlFogxOES, this, _1, _2));
mFunctions.insert(893, std::bind(&Gles::callGlFogxv, this, _1, _2));
mFunctions.insert(894, std::bind(&Gles::callGlFogxvOES, this, _1, _2));
mFunctions.insert(895, std::bind(&Gles::callGlFramebufferRenderbufferOES, this, _1, _2));
mFunctions.insert(896, std::bind(&Gles::callGlFramebufferTexture2DOES, this, _1, _2));
mFunctions.insert(897, std::bind(&Gles::callGlFrustumf, this, _1, _2));
mFunctions.insert(898, std::bind(&Gles::callGlFrustumfOES, this, _1, _2));
mFunctions.insert(899, std::bind(&Gles::callGlFrustumx, this, _1, _2));
mFunctions.insert(900, std::bind(&Gles::callGlFrustumxOES, this, _1, _2));
mFunctions.insert(901, std::bind(&Gles::callGlGenFramebuffersOES, this, _1, _2));
mFunctions.insert(902, std::bind(&Gles::callGlGenRenderbuffersOES, this, _1, _2));
mFunctions.insert(903, std::bind(&Gles::callGlGenerateMipmapOES, this, _1, _2));
mFunctions.insert(904, std::bind(&Gles::callGlGetClipPlanef, this, _1, _2));
mFunctions.insert(905, std::bind(&Gles::callGlGetClipPlanefOES, this, _1, _2));
mFunctions.insert(906, std::bind(&Gles::callGlGetClipPlanex, this, _1, _2));
mFunctions.insert(907, std::bind(&Gles::callGlGetClipPlanexOES, this, _1, _2));
mFunctions.insert(908, std::bind(&Gles::callGlGetFixedv, this, _1, _2));
mFunctions.insert(909, std::bind(&Gles::callGlGetFixedvOES, this, _1, _2));
mFunctions.insert(910, std::bind(&Gles::callGlGetFramebufferAttachmentParameterivOES, this, _1, _2));
mFunctions.insert(911, std::bind(&Gles::callGlGetLightfv, this, _1, _2));
mFunctions.insert(912, std::bind(&Gles::callGlGetLightxv, this, _1, _2));
mFunctions.insert(913, std::bind(&Gles::callGlGetLightxvOES, this, _1, _2));
mFunctions.insert(914, std::bind(&Gles::callGlGetMaterialfv, this, _1, _2));
mFunctions.insert(915, std::bind(&Gles::callGlGetMaterialxv, this, _1, _2));
mFunctions.insert(916, std::bind(&Gles::callGlGetMaterialxvOES, this, _1, _2));
mFunctions.insert(917, std::bind(&Gles::callGlGetRenderbufferParameterivOES, this, _1, _2));
mFunctions.insert(918, std::bind(&Gles::callGlGetTexEnvfv, this, _1, _2));
mFunctions.insert(919, std::bind(&Gles::callGlGetTexEnviv, this, _1, _2));
mFunctions.insert(920, std::bind(&Gles::callGlGetTexEnvxv, this, _1, _2));
mFunctions.insert(921, std::bind(&Gles::callGlGetTexEnvxvOES, this, _1, _2));
mFunctions.insert(922, std::bind(&Gles::callGlGetTexGenfvOES, this, _1, _2));
mFunctions.insert(923, std::bind(&Gles::callGlGetTexGenivOES, this, _1, _2));
mFunctions.insert(924, std::bind(&Gles::callGlGetTexGenxvOES, this, _1, _2));
mFunctions.insert(925, std::bind(&Gles::callGlGetTexParameterxv, this, _1, _2));
mFunctions.insert(926, std::bind(&Gles::callGlGetTexParameterxvOES, this, _1, _2));
mFunctions.insert(927, std::bind(&Gles::callGlIsFramebufferOES, this, _1, _2));
mFunctions.insert(928, std::bind(&Gles::callGlIsRenderbufferOES, this, _1, _2));
mFunctions.insert(929, std::bind(&Gles::callGlLightModelf, this, _1, _2));
mFunctions.insert(930, std::bind(&Gles::callGlLightModelfv, this, _1, _2));
mFunctions.insert(931, std::bind(&Gles::callGlLightModelx, this, _1, _2));
mFunctions.insert(932, std::bind(&Gles::callGlLightModelxOES, this, _1, _2));
mFunctions.insert(933, std::bind(&Gles::callGlLightModelxv, this, _1, _2));
mFunctions.insert(934, std::bind(&Gles::callGlLightModelxvOES, this, _1, _2));
mFunctions.insert(935, std::bind(&Gles::callGlLightf, this, _1, _2));
mFunctions.insert(936, std::bind(&Gles::callGlLightfv, this, _1, _2));
mFunctions.insert(937, std::bind(&Gles::callGlLightx, this, _1, _2));
mFunctions.insert(938, std::bind(&Gles::callGlLightxOES, this, _1, _2));
mFunctions.insert(939, std::bind(&Gles::callGlLightxv, this, _1, _2));
mFunctions.insert(940, std::bind(&Gles::callGlLightxvOES, this, _1, _2));
mFunctions.insert(941, std::bind(&Gles::callGlLineWidthx, this, _1, _2));
mFunctions.insert(942, std::bind(&Gles::callGlLineWidthxOES, this, _1, _2));
mFunctions.insert(943, std::bind(&Gles::callGlLoadIdentity, this, _1, _2));
mFunctions.insert(944, std::bind(&Gles::callGlLoadMatrixf, this, _1, _2));
mFunctions.insert(945, std::bind(&Gles::callGlLoadMatrixx, this, _1, _2));
mFunctions.insert(946, std::bind(&Gles::callGlLoadMatrixxOES, this, _1, _2));
mFunctions.insert(947, std::bind(&Gles::callGlLoadPaletteFromModelViewMatrixOES, this, _1, _2));
mFunctions.insert(948, std::bind(&Gles::callGlLogicOp, this, _1, _2));
mFunctions.insert(949, std::bind(&Gles::callGlMaterialf, this, _1, _2));
mFunctions.insert(950, std::bind(&Gles::callGlMaterialfv, this, _1, _2));
mFunctions.insert(951, std::bind(&Gles::callGlMaterialx, this, _1, _2));
mFunctions.insert(952, std::bind(&Gles::callGlMaterialxOES, this, _1, _2));
mFunctions.insert(953, std::bind(&Gles::callGlMaterialxv, this, _1, _2));
mFunctions.insert(954, std::bind(&Gles::callGlMaterialxvOES, this, _1, _2));
mFunctions.insert(955, std::bind(&Gles::callGlMatrixIndexPointerOES, this, _1, _2));
mFunctions.insert(956, std::bind(&Gles::callGlMatrixMode, this, _1, _2));
mFunctions.insert(957, std::bind(&Gles::callGlMultMatrixf, this, _1, _2));
mFunctions.insert(958, std::bind(&Gles::callGlMultMatrixx, this, _1, _2));
mFunctions.insert(959, std::bind(&Gles::callGlMultMatrixxOES, this, _1, _2));
mFunctions.insert(960, std::bind(&Gles::callGlMultiTexCoord4f, this, _1, _2));
mFunctions.insert(961, std::bind(&Gles::callGlMultiTexCoord4x, this, _1, _2));
mFunctions.insert(962, std::bind(&Gles::callGlMultiTexCoord4xOES, this, _1, _2));
mFunctions.insert(963, std::bind(&Gles::callGlNormal3f, this, _1, _2));
mFunctions.insert(964, std::bind(&Gles::callGlNormal3x, this, _1, _2));
mFunctions.insert(965, std::bind(&Gles::callGlNormal3xOES, this, _1, _2));
mFunctions.insert(966, std::bind(&Gles::callGlNormalPointer, this, _1, _2));
mFunctions.insert(967, std::bind(&Gles::callGlOrthof, this, _1, _2));
mFunctions.insert(968, std::bind(&Gles::callGlOrthofOES, this, _1, _2));
mFunctions.insert(969, std::bind(&Gles::callGlOrthox, this, _1, _2));
mFunctions.insert(970, std::bind(&Gles::callGlOrthoxOES, this, _1, _2));
mFunctions.insert(971, std::bind(&Gles::callGlPointParameterf, this, _1, _2));
mFunctions.insert(972, std::bind(&Gles::callGlPointParameterfv, this, _1, _2));
mFunctions.insert(973, std::bind(&Gles::callGlPointParameterx, this, _1, _2));
mFunctions.insert(974, std::bind(&Gles::callGlPointParameterxOES, this, _1, _2));
mFunctions.insert(975, std::bind(&Gles::callGlPointParameterxv, this, _1, _2));
mFunctions.insert(976, std::bind(&Gles::callGlPointParameterxvOES, this, _1, _2));
mFunctions.insert(977, std::bind(&Gles::callGlPointSize, this, _1, _2));
mFunctions.insert(978, std::bind(&Gles::callGlPointSizePointerOES, this, _1, _2));
mFunctions.insert(979, std::bind(&Gles::callGlPointSizex, this, _1, _2));
mFunctions.insert(980, std::bind(&Gles::callGlPointSizexOES, this, _1, _2));
mFunctions.insert(981, std::bind(&Gles::callGlPolygonOffsetx, this, _1, _2));
mFunctions.insert(982, std::bind(&Gles::callGlPolygonOffsetxOES, this, _1, _2));
mFunctions.insert(983, std::bind(&Gles::callGlPopMatrix, this, _1, _2));
mFunctions.insert(984, std::bind(&Gles::callGlPushMatrix, this, _1, _2));
mFunctions.insert(985, std::bind(&Gles::callGlQueryMatrixxOES, this, _1, _2));
mFunctions.insert(986, std::bind(&Gles::callGlRenderbufferStorageOES, this, _1, _2));
mFunctions.insert(987, std::bind(&Gles::callGlRotatef, this, _1, _2));
mFunctions.insert(988, std::bind(&Gles::callGlRotatex, this, _1, _2));
mFunctions.insert(989, std::bind(&Gles::callGlRotatexOES, this, _1, _2));
mFunctions.insert(990, std::bind(&Gles::callGlSampleCoveragex, this, _1, _2));
mFunctions.insert(991, std::bind(&Gles::callGlSampleCoveragexOES, this, _1, _2));
mFunctions.insert(992, std::bind(&Gles::callGlScalef, this, _1, _2));
mFunctions.insert(993, std::bind(&Gles::callGlScalex, this, _1, _2));
mFunctions.insert(994, std::bind(&Gles::callGlScalexOES, this, _1, _2));
mFunctions.insert(995, std::bind(&Gles::callGlShadeModel, this, _1, _2));
mFunctions.insert(996, std::bind(&Gles::callGlTexCoordPointer, this, _1, _2));
mFunctions.insert(997, std::bind(&Gles::callGlTexEnvf, this, _1, _2));
mFunctions.insert(998, std::bind(&Gles::callGlTexEnvfv, this, _1, _2));
mFunctions.insert(999, std::bind(&Gles::callGlTexEnvi, this, _1, _2));
mFunctions.insert(1000, std::bind(&Gles::callGlTexEnviv, this, _1, _2));
mFunctions.insert(1001, std::bind(&Gles::callGlTexEnvx, this, _1, _2));
mFunctions.insert(1002, std::bind(&Gles::callGlTexEnvxOES, this, _1, _2));
mFunctions.insert(1003, std::bind(&Gles::callGlTexEnvxv, this, _1, _2));
mFunctions.insert(1004, std::bind(&Gles::callGlTexEnvxvOES, this, _1, _2));
mFunctions.insert(1005, std::bind(&Gles::callGlTexGenfOES, this, _1, _2));
mFunctions.insert(1006, std::bind(&Gles::callGlTexGenfvOES, this, _1, _2));
mFunctions.insert(1007, std::bind(&Gles::callGlTexGeniOES, this, _1, _2));
mFunctions.insert(1008, std::bind(&Gles::callGlTexGenivOES, this, _1, _2));
mFunctions.insert(1009, std::bind(&Gles::callGlTexGenxOES, this, _1, _2));
mFunctions.insert(1010, std::bind(&Gles::callGlTexGenxvOES, this, _1, _2));
mFunctions.insert(1011, std::bind(&Gles::callGlTexParameterx, this, _1, _2));
mFunctions.insert(1012, std::bind(&Gles::callGlTexParameterxOES, this, _1, _2));
mFunctions.insert(1013, std::bind(&Gles::callGlTexParameterxv, this, _1, _2));
mFunctions.insert(1014, std::bind(&Gles::callGlTexParameterxvOES, this, _1, _2));
mFunctions.insert(1015, std::bind(&Gles::callGlTranslatef, this, _1, _2));
mFunctions.insert(1016, std::bind(&Gles::callGlTranslatex, this, _1, _2));
mFunctions.insert(1017, std::bind(&Gles::callGlTranslatexOES, this, _1, _2));
mFunctions.insert(1018, std::bind(&Gles::callGlVertexPointer, this, _1, _2));
mFunctions.insert(1019, std::bind(&Gles::callGlWeightPointerOES, this, _1, _2));
mFunctions.insert(1020, std::bind(&Gles::callGlColorPointerBounds, this, _1, _2));
mFunctions.insert(1021, std::bind(&Gles::callGlNormalPointerBounds, this, _1, _2));
mFunctions.insert(1022, std::bind(&Gles::callGlTexCoordPointerBounds, this, _1, _2));
mFunctions.insert(1023, std::bind(&Gles::callGlVertexPointerBounds, this, _1, _2));
mFunctions.insert(1024, std::bind(&Gles::callGlPointSizePointerOESBounds, this, _1, _2));
mFunctions.insert(1025, std::bind(&Gles::callGlMatrixIndexPointerOESBounds, this, _1, _2));
mFunctions.insert(1026, std::bind(&Gles::callGlWeightPointerOESBounds, this, _1, _2));
}
void Gles::resolve() {
mFunctionStubs.glBlendBarrierKHR = reinterpret_cast<PFNGLBLENDBARRIERKHR>(gapic::GetGlesProcAddress("glBlendBarrierKHR", false));
mFunctionStubs.glBlendEquationSeparateiEXT = reinterpret_cast<PFNGLBLENDEQUATIONSEPARATEIEXT>(gapic::GetGlesProcAddress("glBlendEquationSeparateiEXT", false));
mFunctionStubs.glBlendEquationiEXT = reinterpret_cast<PFNGLBLENDEQUATIONIEXT>(gapic::GetGlesProcAddress("glBlendEquationiEXT", false));
mFunctionStubs.glBlendFuncSeparateiEXT = reinterpret_cast<PFNGLBLENDFUNCSEPARATEIEXT>(gapic::GetGlesProcAddress("glBlendFuncSeparateiEXT", false));
mFunctionStubs.glBlendFunciEXT = reinterpret_cast<PFNGLBLENDFUNCIEXT>(gapic::GetGlesProcAddress("glBlendFunciEXT", false));
mFunctionStubs.glColorMaskiEXT = reinterpret_cast<PFNGLCOLORMASKIEXT>(gapic::GetGlesProcAddress("glColorMaskiEXT", false));
mFunctionStubs.glCopyImageSubDataEXT = reinterpret_cast<PFNGLCOPYIMAGESUBDATAEXT>(gapic::GetGlesProcAddress("glCopyImageSubDataEXT", false));
mFunctionStubs.glDebugMessageCallbackKHR = reinterpret_cast<PFNGLDEBUGMESSAGECALLBACKKHR>(gapic::GetGlesProcAddress("glDebugMessageCallbackKHR", false));
mFunctionStubs.glDebugMessageControlKHR = reinterpret_cast<PFNGLDEBUGMESSAGECONTROLKHR>(gapic::GetGlesProcAddress("glDebugMessageControlKHR", false));
mFunctionStubs.glDebugMessageInsertKHR = reinterpret_cast<PFNGLDEBUGMESSAGEINSERTKHR>(gapic::GetGlesProcAddress("glDebugMessageInsertKHR", false));
mFunctionStubs.glDisableiEXT = reinterpret_cast<PFNGLDISABLEIEXT>(gapic::GetGlesProcAddress("glDisableiEXT", false));
mFunctionStubs.glEnableiEXT = reinterpret_cast<PFNGLENABLEIEXT>(gapic::GetGlesProcAddress("glEnableiEXT", false));
mFunctionStubs.glFramebufferTextureEXT = reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREEXT>(gapic::GetGlesProcAddress("glFramebufferTextureEXT", false));
mFunctionStubs.glGetDebugMessageLogKHR = reinterpret_cast<PFNGLGETDEBUGMESSAGELOGKHR>(gapic::GetGlesProcAddress("glGetDebugMessageLogKHR", false));
mFunctionStubs.glGetObjectLabelKHR = reinterpret_cast<PFNGLGETOBJECTLABELKHR>(gapic::GetGlesProcAddress("glGetObjectLabelKHR", false));
mFunctionStubs.glGetObjectPtrLabelKHR = reinterpret_cast<PFNGLGETOBJECTPTRLABELKHR>(gapic::GetGlesProcAddress("glGetObjectPtrLabelKHR", false));
mFunctionStubs.glGetPointervKHR = reinterpret_cast<PFNGLGETPOINTERVKHR>(gapic::GetGlesProcAddress("glGetPointervKHR", false));
mFunctionStubs.glGetSamplerParameterIivEXT = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIIVEXT>(gapic::GetGlesProcAddress("glGetSamplerParameterIivEXT", false));
mFunctionStubs.glGetSamplerParameterIuivEXT = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIUIVEXT>(gapic::GetGlesProcAddress("glGetSamplerParameterIuivEXT", false));
mFunctionStubs.glGetTexParameterIivEXT = reinterpret_cast<PFNGLGETTEXPARAMETERIIVEXT>(gapic::GetGlesProcAddress("glGetTexParameterIivEXT", false));
mFunctionStubs.glGetTexParameterIuivEXT = reinterpret_cast<PFNGLGETTEXPARAMETERIUIVEXT>(gapic::GetGlesProcAddress("glGetTexParameterIuivEXT", false));
mFunctionStubs.glIsEnablediEXT = reinterpret_cast<PFNGLISENABLEDIEXT>(gapic::GetGlesProcAddress("glIsEnablediEXT", false));
mFunctionStubs.glMinSampleShadingOES = reinterpret_cast<PFNGLMINSAMPLESHADINGOES>(gapic::GetGlesProcAddress("glMinSampleShadingOES", false));
mFunctionStubs.glObjectLabelKHR = reinterpret_cast<PFNGLOBJECTLABELKHR>(gapic::GetGlesProcAddress("glObjectLabelKHR", false));
mFunctionStubs.glObjectPtrLabelKHR = reinterpret_cast<PFNGLOBJECTPTRLABELKHR>(gapic::GetGlesProcAddress("glObjectPtrLabelKHR", false));
mFunctionStubs.glPatchParameteriEXT = reinterpret_cast<PFNGLPATCHPARAMETERIEXT>(gapic::GetGlesProcAddress("glPatchParameteriEXT", false));
mFunctionStubs.glPopDebugGroupKHR = reinterpret_cast<PFNGLPOPDEBUGGROUPKHR>(gapic::GetGlesProcAddress("glPopDebugGroupKHR", false));
mFunctionStubs.glPrimitiveBoundingBoxEXT = reinterpret_cast<PFNGLPRIMITIVEBOUNDINGBOXEXT>(gapic::GetGlesProcAddress("glPrimitiveBoundingBoxEXT", false));
mFunctionStubs.glPushDebugGroupKHR = reinterpret_cast<PFNGLPUSHDEBUGGROUPKHR>(gapic::GetGlesProcAddress("glPushDebugGroupKHR", false));
mFunctionStubs.glSamplerParameterIivEXT = reinterpret_cast<PFNGLSAMPLERPARAMETERIIVEXT>(gapic::GetGlesProcAddress("glSamplerParameterIivEXT", false));
mFunctionStubs.glSamplerParameterIuivEXT = reinterpret_cast<PFNGLSAMPLERPARAMETERIUIVEXT>(gapic::GetGlesProcAddress("glSamplerParameterIuivEXT", false));
mFunctionStubs.glTexBufferEXT = reinterpret_cast<PFNGLTEXBUFFEREXT>(gapic::GetGlesProcAddress("glTexBufferEXT", false));
mFunctionStubs.glTexBufferRangeEXT = reinterpret_cast<PFNGLTEXBUFFERRANGEEXT>(gapic::GetGlesProcAddress("glTexBufferRangeEXT", false));
mFunctionStubs.glTexParameterIivEXT = reinterpret_cast<PFNGLTEXPARAMETERIIVEXT>(gapic::GetGlesProcAddress("glTexParameterIivEXT", false));
mFunctionStubs.glTexParameterIuivEXT = reinterpret_cast<PFNGLTEXPARAMETERIUIVEXT>(gapic::GetGlesProcAddress("glTexParameterIuivEXT", false));
mFunctionStubs.glTexStorage3DMultisampleOES = reinterpret_cast<PFNGLTEXSTORAGE3DMULTISAMPLEOES>(gapic::GetGlesProcAddress("glTexStorage3DMultisampleOES", false));
mFunctionStubs.glBeginQuery = reinterpret_cast<PFNGLBEGINQUERY>(gapic::GetGlesProcAddress("glBeginQuery", false));
mFunctionStubs.glDeleteQueries = reinterpret_cast<PFNGLDELETEQUERIES>(gapic::GetGlesProcAddress("glDeleteQueries", false));
mFunctionStubs.glEndQuery = reinterpret_cast<PFNGLENDQUERY>(gapic::GetGlesProcAddress("glEndQuery", false));
mFunctionStubs.glGenQueries = reinterpret_cast<PFNGLGENQUERIES>(gapic::GetGlesProcAddress("glGenQueries", false));
mFunctionStubs.glGetQueryObjectuiv = reinterpret_cast<PFNGLGETQUERYOBJECTUIV>(gapic::GetGlesProcAddress("glGetQueryObjectuiv", false));
mFunctionStubs.glGetQueryiv = reinterpret_cast<PFNGLGETQUERYIV>(gapic::GetGlesProcAddress("glGetQueryiv", false));
mFunctionStubs.glIsQuery = reinterpret_cast<PFNGLISQUERY>(gapic::GetGlesProcAddress("glIsQuery", false));
mFunctionStubs.glBindBuffer = reinterpret_cast<PFNGLBINDBUFFER>(gapic::GetGlesProcAddress("glBindBuffer", false));
mFunctionStubs.glBindBufferBase = reinterpret_cast<PFNGLBINDBUFFERBASE>(gapic::GetGlesProcAddress("glBindBufferBase", false));
mFunctionStubs.glBindBufferRange = reinterpret_cast<PFNGLBINDBUFFERRANGE>(gapic::GetGlesProcAddress("glBindBufferRange", false));
mFunctionStubs.glBufferData = reinterpret_cast<PFNGLBUFFERDATA>(gapic::GetGlesProcAddress("glBufferData", false));
mFunctionStubs.glBufferSubData = reinterpret_cast<PFNGLBUFFERSUBDATA>(gapic::GetGlesProcAddress("glBufferSubData", false));
mFunctionStubs.glCopyBufferSubData = reinterpret_cast<PFNGLCOPYBUFFERSUBDATA>(gapic::GetGlesProcAddress("glCopyBufferSubData", false));
mFunctionStubs.glDeleteBuffers = reinterpret_cast<PFNGLDELETEBUFFERS>(gapic::GetGlesProcAddress("glDeleteBuffers", false));
mFunctionStubs.glGenBuffers = reinterpret_cast<PFNGLGENBUFFERS>(gapic::GetGlesProcAddress("glGenBuffers", false));
mFunctionStubs.glGetBufferParameteri64v = reinterpret_cast<PFNGLGETBUFFERPARAMETERI64V>(gapic::GetGlesProcAddress("glGetBufferParameteri64v", false));
mFunctionStubs.glGetBufferParameteriv = reinterpret_cast<PFNGLGETBUFFERPARAMETERIV>(gapic::GetGlesProcAddress("glGetBufferParameteriv", false));
mFunctionStubs.glGetBufferPointerv = reinterpret_cast<PFNGLGETBUFFERPOINTERV>(gapic::GetGlesProcAddress("glGetBufferPointerv", false));
mFunctionStubs.glIsBuffer = reinterpret_cast<PFNGLISBUFFER>(gapic::GetGlesProcAddress("glIsBuffer", false));
mFunctionStubs.glMapBuffer = reinterpret_cast<PFNGLMAPBUFFER>(gapic::GetGlesProcAddress("glMapBuffer", false));
mFunctionStubs.glMapBufferRange = reinterpret_cast<PFNGLMAPBUFFERRANGE>(gapic::GetGlesProcAddress("glMapBufferRange", false));
mFunctionStubs.glUnmapBuffer = reinterpret_cast<PFNGLUNMAPBUFFER>(gapic::GetGlesProcAddress("glUnmapBuffer", false));
mFunctionStubs.glFlushMappedBufferRange = reinterpret_cast<PFNGLFLUSHMAPPEDBUFFERRANGE>(gapic::GetGlesProcAddress("glFlushMappedBufferRange", false));
mFunctionStubs.glDebugMessageCallback = reinterpret_cast<PFNGLDEBUGMESSAGECALLBACK>(gapic::GetGlesProcAddress("glDebugMessageCallback", false));
mFunctionStubs.glDebugMessageControl = reinterpret_cast<PFNGLDEBUGMESSAGECONTROL>(gapic::GetGlesProcAddress("glDebugMessageControl", false));
mFunctionStubs.glDebugMessageInsert = reinterpret_cast<PFNGLDEBUGMESSAGEINSERT>(gapic::GetGlesProcAddress("glDebugMessageInsert", false));
mFunctionStubs.glGetDebugMessageLog = reinterpret_cast<PFNGLGETDEBUGMESSAGELOG>(gapic::GetGlesProcAddress("glGetDebugMessageLog", false));
mFunctionStubs.glGetObjectLabel = reinterpret_cast<PFNGLGETOBJECTLABEL>(gapic::GetGlesProcAddress("glGetObjectLabel", false));
mFunctionStubs.glGetObjectPtrLabel = reinterpret_cast<PFNGLGETOBJECTPTRLABEL>(gapic::GetGlesProcAddress("glGetObjectPtrLabel", false));
mFunctionStubs.glGetPointerv = reinterpret_cast<PFNGLGETPOINTERV>(gapic::GetGlesProcAddress("glGetPointerv", false));
mFunctionStubs.glObjectLabel = reinterpret_cast<PFNGLOBJECTLABEL>(gapic::GetGlesProcAddress("glObjectLabel", false));
mFunctionStubs.glObjectPtrLabel = reinterpret_cast<PFNGLOBJECTPTRLABEL>(gapic::GetGlesProcAddress("glObjectPtrLabel", false));
mFunctionStubs.glPopDebugGroup = reinterpret_cast<PFNGLPOPDEBUGGROUP>(gapic::GetGlesProcAddress("glPopDebugGroup", false));
mFunctionStubs.glPushDebugGroup = reinterpret_cast<PFNGLPUSHDEBUGGROUP>(gapic::GetGlesProcAddress("glPushDebugGroup", false));
mFunctionStubs.glDrawArrays = reinterpret_cast<PFNGLDRAWARRAYS>(gapic::GetGlesProcAddress("glDrawArrays", false));
mFunctionStubs.glDrawArraysIndirect = reinterpret_cast<PFNGLDRAWARRAYSINDIRECT>(gapic::GetGlesProcAddress("glDrawArraysIndirect", false));
mFunctionStubs.glDrawArraysInstanced = reinterpret_cast<PFNGLDRAWARRAYSINSTANCED>(gapic::GetGlesProcAddress("glDrawArraysInstanced", false));
mFunctionStubs.glDrawElements = reinterpret_cast<PFNGLDRAWELEMENTS>(gapic::GetGlesProcAddress("glDrawElements", false));
mFunctionStubs.glDrawElementsBaseVertex = reinterpret_cast<PFNGLDRAWELEMENTSBASEVERTEX>(gapic::GetGlesProcAddress("glDrawElementsBaseVertex", false));
mFunctionStubs.glDrawElementsIndirect = reinterpret_cast<PFNGLDRAWELEMENTSINDIRECT>(gapic::GetGlesProcAddress("glDrawElementsIndirect", false));
mFunctionStubs.glDrawElementsInstanced = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCED>(gapic::GetGlesProcAddress("glDrawElementsInstanced", false));
mFunctionStubs.glDrawElementsInstancedBaseVertex = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEVERTEX>(gapic::GetGlesProcAddress("glDrawElementsInstancedBaseVertex", false));
mFunctionStubs.glDrawRangeElements = reinterpret_cast<PFNGLDRAWRANGEELEMENTS>(gapic::GetGlesProcAddress("glDrawRangeElements", false));
mFunctionStubs.glDrawRangeElementsBaseVertex = reinterpret_cast<PFNGLDRAWRANGEELEMENTSBASEVERTEX>(gapic::GetGlesProcAddress("glDrawRangeElementsBaseVertex", false));
mFunctionStubs.glPatchParameteri = reinterpret_cast<PFNGLPATCHPARAMETERI>(gapic::GetGlesProcAddress("glPatchParameteri", false));
mFunctionStubs.glPrimitiveBoundingBox = reinterpret_cast<PFNGLPRIMITIVEBOUNDINGBOX>(gapic::GetGlesProcAddress("glPrimitiveBoundingBox", false));
mFunctionStubs.eglGetConfigAttrib = reinterpret_cast<PFNEGLGETCONFIGATTRIB>(gapic::GetGlesProcAddress("eglGetConfigAttrib", false));
mFunctionStubs.eglBindAPI = reinterpret_cast<PFNEGLBINDAPI>(gapic::GetGlesProcAddress("eglBindAPI", false));
mFunctionStubs.eglBindTexImage = reinterpret_cast<PFNEGLBINDTEXIMAGE>(gapic::GetGlesProcAddress("eglBindTexImage", false));
mFunctionStubs.eglChooseConfig = reinterpret_cast<PFNEGLCHOOSECONFIG>(gapic::GetGlesProcAddress("eglChooseConfig", false));
mFunctionStubs.eglClientWaitSyncKHR = reinterpret_cast<PFNEGLCLIENTWAITSYNCKHR>(gapic::GetGlesProcAddress("eglClientWaitSyncKHR", false));
mFunctionStubs.eglCopyBuffers = reinterpret_cast<PFNEGLCOPYBUFFERS>(gapic::GetGlesProcAddress("eglCopyBuffers", false));
mFunctionStubs.eglCreateContext = reinterpret_cast<PFNEGLCREATECONTEXT>(gapic::GetGlesProcAddress("eglCreateContext", false));
mFunctionStubs.eglCreatePbufferFromClientBuffer = reinterpret_cast<PFNEGLCREATEPBUFFERFROMCLIENTBUFFER>(gapic::GetGlesProcAddress("eglCreatePbufferFromClientBuffer", false));
mFunctionStubs.eglCreatePbufferSurface = reinterpret_cast<PFNEGLCREATEPBUFFERSURFACE>(gapic::GetGlesProcAddress("eglCreatePbufferSurface", false));
mFunctionStubs.eglCreatePixmapSurface = reinterpret_cast<PFNEGLCREATEPIXMAPSURFACE>(gapic::GetGlesProcAddress("eglCreatePixmapSurface", false));
mFunctionStubs.eglCreateSyncKHR = reinterpret_cast<PFNEGLCREATESYNCKHR>(gapic::GetGlesProcAddress("eglCreateSyncKHR", false));
mFunctionStubs.eglCreateWindowSurface = reinterpret_cast<PFNEGLCREATEWINDOWSURFACE>(gapic::GetGlesProcAddress("eglCreateWindowSurface", false));
mFunctionStubs.eglDestroyContext = reinterpret_cast<PFNEGLDESTROYCONTEXT>(gapic::GetGlesProcAddress("eglDestroyContext", false));
mFunctionStubs.eglDestroySurface = reinterpret_cast<PFNEGLDESTROYSURFACE>(gapic::GetGlesProcAddress("eglDestroySurface", false));
mFunctionStubs.eglDestroySyncKHR = reinterpret_cast<PFNEGLDESTROYSYNCKHR>(gapic::GetGlesProcAddress("eglDestroySyncKHR", false));
mFunctionStubs.eglGetConfigs = reinterpret_cast<PFNEGLGETCONFIGS>(gapic::GetGlesProcAddress("eglGetConfigs", false));
mFunctionStubs.eglGetCurrentContext = reinterpret_cast<PFNEGLGETCURRENTCONTEXT>(gapic::GetGlesProcAddress("eglGetCurrentContext", false));
mFunctionStubs.eglGetCurrentDisplay = reinterpret_cast<PFNEGLGETCURRENTDISPLAY>(gapic::GetGlesProcAddress("eglGetCurrentDisplay", false));
mFunctionStubs.eglGetCurrentSurface = reinterpret_cast<PFNEGLGETCURRENTSURFACE>(gapic::GetGlesProcAddress("eglGetCurrentSurface", false));
mFunctionStubs.eglGetDisplay = reinterpret_cast<PFNEGLGETDISPLAY>(gapic::GetGlesProcAddress("eglGetDisplay", false));
mFunctionStubs.eglGetError = reinterpret_cast<PFNEGLGETERROR>(gapic::GetGlesProcAddress("eglGetError", false));
mFunctionStubs.eglGetSyncAttribKHR = reinterpret_cast<PFNEGLGETSYNCATTRIBKHR>(gapic::GetGlesProcAddress("eglGetSyncAttribKHR", false));
mFunctionStubs.eglInitialize = reinterpret_cast<PFNEGLINITIALIZE>(gapic::GetGlesProcAddress("eglInitialize", false));
mFunctionStubs.eglMakeCurrent = reinterpret_cast<PFNEGLMAKECURRENT>(gapic::GetGlesProcAddress("eglMakeCurrent", false));
mFunctionStubs.eglQueryAPI = reinterpret_cast<PFNEGLQUERYAPI>(gapic::GetGlesProcAddress("eglQueryAPI", false));
mFunctionStubs.eglQueryContext = reinterpret_cast<PFNEGLQUERYCONTEXT>(gapic::GetGlesProcAddress("eglQueryContext", false));
mFunctionStubs.eglQuerySurface = reinterpret_cast<PFNEGLQUERYSURFACE>(gapic::GetGlesProcAddress("eglQuerySurface", false));
mFunctionStubs.eglQueryString = reinterpret_cast<PFNEGLQUERYSTRING>(gapic::GetGlesProcAddress("eglQueryString", false));
mFunctionStubs.eglReleaseTexImage = reinterpret_cast<PFNEGLRELEASETEXIMAGE>(gapic::GetGlesProcAddress("eglReleaseTexImage", false));
mFunctionStubs.eglReleaseThread = reinterpret_cast<PFNEGLRELEASETHREAD>(gapic::GetGlesProcAddress("eglReleaseThread", false));
mFunctionStubs.eglSignalSyncKHR = reinterpret_cast<PFNEGLSIGNALSYNCKHR>(gapic::GetGlesProcAddress("eglSignalSyncKHR", false));
mFunctionStubs.eglSurfaceAttrib = reinterpret_cast<PFNEGLSURFACEATTRIB>(gapic::GetGlesProcAddress("eglSurfaceAttrib", false));
mFunctionStubs.eglSwapBuffers = reinterpret_cast<PFNEGLSWAPBUFFERS>(gapic::GetGlesProcAddress("eglSwapBuffers", false));
mFunctionStubs.eglSwapBuffersWithDamageKHR = reinterpret_cast<PFNEGLSWAPBUFFERSWITHDAMAGEKHR>(gapic::GetGlesProcAddress("eglSwapBuffersWithDamageKHR", false));
mFunctionStubs.eglSwapInterval = reinterpret_cast<PFNEGLSWAPINTERVAL>(gapic::GetGlesProcAddress("eglSwapInterval", false));
mFunctionStubs.eglTerminate = reinterpret_cast<PFNEGLTERMINATE>(gapic::GetGlesProcAddress("eglTerminate", false));
mFunctionStubs.eglWaitClient = reinterpret_cast<PFNEGLWAITCLIENT>(gapic::GetGlesProcAddress("eglWaitClient", false));
mFunctionStubs.eglWaitGL = reinterpret_cast<PFNEGLWAITGL>(gapic::GetGlesProcAddress("eglWaitGL", false));
mFunctionStubs.eglWaitNative = reinterpret_cast<PFNEGLWAITNATIVE>(gapic::GetGlesProcAddress("eglWaitNative", false));
mFunctionStubs.eglCreateImageKHR = reinterpret_cast<PFNEGLCREATEIMAGEKHR>(gapic::GetGlesProcAddress("eglCreateImageKHR", false));
mFunctionStubs.eglDestroyImageKHR = reinterpret_cast<PFNEGLDESTROYIMAGEKHR>(gapic::GetGlesProcAddress("eglDestroyImageKHR", false));
mFunctionStubs.eglCreateNativeClientBufferANDROID = reinterpret_cast<PFNEGLCREATENATIVECLIENTBUFFERANDROID>(gapic::GetGlesProcAddress("eglCreateNativeClientBufferANDROID", false));
mFunctionStubs.glActiveShaderProgramEXT = reinterpret_cast<PFNGLACTIVESHADERPROGRAMEXT>(gapic::GetGlesProcAddress("glActiveShaderProgramEXT", false));
mFunctionStubs.glAlphaFuncQCOM = reinterpret_cast<PFNGLALPHAFUNCQCOM>(gapic::GetGlesProcAddress("glAlphaFuncQCOM", false));
mFunctionStubs.glApplyFramebufferAttachmentCMAAINTEL = reinterpret_cast<PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTEL>(gapic::GetGlesProcAddress("glApplyFramebufferAttachmentCMAAINTEL", false));
mFunctionStubs.glBeginConditionalRenderNV = reinterpret_cast<PFNGLBEGINCONDITIONALRENDERNV>(gapic::GetGlesProcAddress("glBeginConditionalRenderNV", false));
mFunctionStubs.glBeginPerfMonitorAMD = reinterpret_cast<PFNGLBEGINPERFMONITORAMD>(gapic::GetGlesProcAddress("glBeginPerfMonitorAMD", false));
mFunctionStubs.glBeginPerfQueryINTEL = reinterpret_cast<PFNGLBEGINPERFQUERYINTEL>(gapic::GetGlesProcAddress("glBeginPerfQueryINTEL", false));
mFunctionStubs.glBeginQueryEXT = reinterpret_cast<PFNGLBEGINQUERYEXT>(gapic::GetGlesProcAddress("glBeginQueryEXT", false));
mFunctionStubs.glBindFragDataLocationEXT = reinterpret_cast<PFNGLBINDFRAGDATALOCATIONEXT>(gapic::GetGlesProcAddress("glBindFragDataLocationEXT", false));
mFunctionStubs.glBindFragDataLocationIndexedEXT = reinterpret_cast<PFNGLBINDFRAGDATALOCATIONINDEXEDEXT>(gapic::GetGlesProcAddress("glBindFragDataLocationIndexedEXT", false));
mFunctionStubs.glBindProgramPipelineEXT = reinterpret_cast<PFNGLBINDPROGRAMPIPELINEEXT>(gapic::GetGlesProcAddress("glBindProgramPipelineEXT", false));
mFunctionStubs.glBindVertexArrayOES = reinterpret_cast<PFNGLBINDVERTEXARRAYOES>(gapic::GetGlesProcAddress("glBindVertexArrayOES", false));
mFunctionStubs.glBlendBarrierNV = reinterpret_cast<PFNGLBLENDBARRIERNV>(gapic::GetGlesProcAddress("glBlendBarrierNV", false));
mFunctionStubs.glBlendEquationSeparateiOES = reinterpret_cast<PFNGLBLENDEQUATIONSEPARATEIOES>(gapic::GetGlesProcAddress("glBlendEquationSeparateiOES", false));
mFunctionStubs.glBlendEquationiOES = reinterpret_cast<PFNGLBLENDEQUATIONIOES>(gapic::GetGlesProcAddress("glBlendEquationiOES", false));
mFunctionStubs.glBlendFuncSeparateiOES = reinterpret_cast<PFNGLBLENDFUNCSEPARATEIOES>(gapic::GetGlesProcAddress("glBlendFuncSeparateiOES", false));
mFunctionStubs.glBlendFunciOES = reinterpret_cast<PFNGLBLENDFUNCIOES>(gapic::GetGlesProcAddress("glBlendFunciOES", false));
mFunctionStubs.glBlendParameteriNV = reinterpret_cast<PFNGLBLENDPARAMETERINV>(gapic::GetGlesProcAddress("glBlendParameteriNV", false));
mFunctionStubs.glBlitFramebufferANGLE = reinterpret_cast<PFNGLBLITFRAMEBUFFERANGLE>(gapic::GetGlesProcAddress("glBlitFramebufferANGLE", false));
mFunctionStubs.glBlitFramebufferNV = reinterpret_cast<PFNGLBLITFRAMEBUFFERNV>(gapic::GetGlesProcAddress("glBlitFramebufferNV", false));
mFunctionStubs.glBufferStorageEXT = reinterpret_cast<PFNGLBUFFERSTORAGEEXT>(gapic::GetGlesProcAddress("glBufferStorageEXT", false));
mFunctionStubs.glClientWaitSyncAPPLE = reinterpret_cast<PFNGLCLIENTWAITSYNCAPPLE>(gapic::GetGlesProcAddress("glClientWaitSyncAPPLE", false));
mFunctionStubs.glColorMaskiOES = reinterpret_cast<PFNGLCOLORMASKIOES>(gapic::GetGlesProcAddress("glColorMaskiOES", false));
mFunctionStubs.glCompressedTexImage3DOES = reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE3DOES>(gapic::GetGlesProcAddress("glCompressedTexImage3DOES", false));
mFunctionStubs.glCompressedTexSubImage3DOES = reinterpret_cast<PFNGLCOMPRESSEDTEXSUBIMAGE3DOES>(gapic::GetGlesProcAddress("glCompressedTexSubImage3DOES", false));
mFunctionStubs.glCopyBufferSubDataNV = reinterpret_cast<PFNGLCOPYBUFFERSUBDATANV>(gapic::GetGlesProcAddress("glCopyBufferSubDataNV", false));
mFunctionStubs.glCopyImageSubDataOES = reinterpret_cast<PFNGLCOPYIMAGESUBDATAOES>(gapic::GetGlesProcAddress("glCopyImageSubDataOES", false));
mFunctionStubs.glCopyPathNV = reinterpret_cast<PFNGLCOPYPATHNV>(gapic::GetGlesProcAddress("glCopyPathNV", false));
mFunctionStubs.glCopyTexSubImage3DOES = reinterpret_cast<PFNGLCOPYTEXSUBIMAGE3DOES>(gapic::GetGlesProcAddress("glCopyTexSubImage3DOES", false));
mFunctionStubs.glCopyTextureLevelsAPPLE = reinterpret_cast<PFNGLCOPYTEXTURELEVELSAPPLE>(gapic::GetGlesProcAddress("glCopyTextureLevelsAPPLE", false));
mFunctionStubs.glCoverFillPathInstancedNV = reinterpret_cast<PFNGLCOVERFILLPATHINSTANCEDNV>(gapic::GetGlesProcAddress("glCoverFillPathInstancedNV", false));
mFunctionStubs.glCoverFillPathNV = reinterpret_cast<PFNGLCOVERFILLPATHNV>(gapic::GetGlesProcAddress("glCoverFillPathNV", false));
mFunctionStubs.glCoverStrokePathInstancedNV = reinterpret_cast<PFNGLCOVERSTROKEPATHINSTANCEDNV>(gapic::GetGlesProcAddress("glCoverStrokePathInstancedNV", false));
mFunctionStubs.glCoverStrokePathNV = reinterpret_cast<PFNGLCOVERSTROKEPATHNV>(gapic::GetGlesProcAddress("glCoverStrokePathNV", false));
mFunctionStubs.glCoverageMaskNV = reinterpret_cast<PFNGLCOVERAGEMASKNV>(gapic::GetGlesProcAddress("glCoverageMaskNV", false));
mFunctionStubs.glCoverageModulationNV = reinterpret_cast<PFNGLCOVERAGEMODULATIONNV>(gapic::GetGlesProcAddress("glCoverageModulationNV", false));
mFunctionStubs.glCoverageModulationTableNV = reinterpret_cast<PFNGLCOVERAGEMODULATIONTABLENV>(gapic::GetGlesProcAddress("glCoverageModulationTableNV", false));
mFunctionStubs.glCoverageOperationNV = reinterpret_cast<PFNGLCOVERAGEOPERATIONNV>(gapic::GetGlesProcAddress("glCoverageOperationNV", false));
mFunctionStubs.glCreatePerfQueryINTEL = reinterpret_cast<PFNGLCREATEPERFQUERYINTEL>(gapic::GetGlesProcAddress("glCreatePerfQueryINTEL", false));
mFunctionStubs.glCreateShaderProgramvEXT = reinterpret_cast<PFNGLCREATESHADERPROGRAMVEXT>(gapic::GetGlesProcAddress("glCreateShaderProgramvEXT", false));
mFunctionStubs.glDeleteFencesNV = reinterpret_cast<PFNGLDELETEFENCESNV>(gapic::GetGlesProcAddress("glDeleteFencesNV", false));
mFunctionStubs.glDeletePathsNV = reinterpret_cast<PFNGLDELETEPATHSNV>(gapic::GetGlesProcAddress("glDeletePathsNV", false));
mFunctionStubs.glDeletePerfMonitorsAMD = reinterpret_cast<PFNGLDELETEPERFMONITORSAMD>(gapic::GetGlesProcAddress("glDeletePerfMonitorsAMD", false));
mFunctionStubs.glDeletePerfQueryINTEL = reinterpret_cast<PFNGLDELETEPERFQUERYINTEL>(gapic::GetGlesProcAddress("glDeletePerfQueryINTEL", false));
mFunctionStubs.glDeleteProgramPipelinesEXT = reinterpret_cast<PFNGLDELETEPROGRAMPIPELINESEXT>(gapic::GetGlesProcAddress("glDeleteProgramPipelinesEXT", false));
mFunctionStubs.glDeleteQueriesEXT = reinterpret_cast<PFNGLDELETEQUERIESEXT>(gapic::GetGlesProcAddress("glDeleteQueriesEXT", false));
mFunctionStubs.glDeleteSyncAPPLE = reinterpret_cast<PFNGLDELETESYNCAPPLE>(gapic::GetGlesProcAddress("glDeleteSyncAPPLE", false));
mFunctionStubs.glDeleteVertexArraysOES = reinterpret_cast<PFNGLDELETEVERTEXARRAYSOES>(gapic::GetGlesProcAddress("glDeleteVertexArraysOES", false));
mFunctionStubs.glDepthRangeArrayfvNV = reinterpret_cast<PFNGLDEPTHRANGEARRAYFVNV>(gapic::GetGlesProcAddress("glDepthRangeArrayfvNV", false));
mFunctionStubs.glDepthRangeIndexedfNV = reinterpret_cast<PFNGLDEPTHRANGEINDEXEDFNV>(gapic::GetGlesProcAddress("glDepthRangeIndexedfNV", false));
mFunctionStubs.glDisableDriverControlQCOM = reinterpret_cast<PFNGLDISABLEDRIVERCONTROLQCOM>(gapic::GetGlesProcAddress("glDisableDriverControlQCOM", false));
mFunctionStubs.glDisableiNV = reinterpret_cast<PFNGLDISABLEINV>(gapic::GetGlesProcAddress("glDisableiNV", false));
mFunctionStubs.glDisableiOES = reinterpret_cast<PFNGLDISABLEIOES>(gapic::GetGlesProcAddress("glDisableiOES", false));
mFunctionStubs.glDiscardFramebufferEXT = reinterpret_cast<PFNGLDISCARDFRAMEBUFFEREXT>(gapic::GetGlesProcAddress("glDiscardFramebufferEXT", false));
mFunctionStubs.glDrawArraysInstancedANGLE = reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDANGLE>(gapic::GetGlesProcAddress("glDrawArraysInstancedANGLE", false));
mFunctionStubs.glDrawArraysInstancedBaseInstanceEXT = reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXT>(gapic::GetGlesProcAddress("glDrawArraysInstancedBaseInstanceEXT", false));
mFunctionStubs.glDrawArraysInstancedEXT = reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDEXT>(gapic::GetGlesProcAddress("glDrawArraysInstancedEXT", false));
mFunctionStubs.glDrawArraysInstancedNV = reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDNV>(gapic::GetGlesProcAddress("glDrawArraysInstancedNV", false));
mFunctionStubs.glDrawBuffersEXT = reinterpret_cast<PFNGLDRAWBUFFERSEXT>(gapic::GetGlesProcAddress("glDrawBuffersEXT", false));
mFunctionStubs.glDrawBuffersIndexedEXT = reinterpret_cast<PFNGLDRAWBUFFERSINDEXEDEXT>(gapic::GetGlesProcAddress("glDrawBuffersIndexedEXT", false));
mFunctionStubs.glDrawBuffersNV = reinterpret_cast<PFNGLDRAWBUFFERSNV>(gapic::GetGlesProcAddress("glDrawBuffersNV", false));
mFunctionStubs.glDrawElementsBaseVertexEXT = reinterpret_cast<PFNGLDRAWELEMENTSBASEVERTEXEXT>(gapic::GetGlesProcAddress("glDrawElementsBaseVertexEXT", false));
mFunctionStubs.glDrawElementsBaseVertexOES = reinterpret_cast<PFNGLDRAWELEMENTSBASEVERTEXOES>(gapic::GetGlesProcAddress("glDrawElementsBaseVertexOES", false));
mFunctionStubs.glDrawElementsInstancedANGLE = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDANGLE>(gapic::GetGlesProcAddress("glDrawElementsInstancedANGLE", false));
mFunctionStubs.glDrawElementsInstancedBaseInstanceEXT = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXT>(gapic::GetGlesProcAddress("glDrawElementsInstancedBaseInstanceEXT", false));
mFunctionStubs.glDrawElementsInstancedBaseVertexBaseInstanceEXT = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXT>(gapic::GetGlesProcAddress("glDrawElementsInstancedBaseVertexBaseInstanceEXT", false));
mFunctionStubs.glDrawElementsInstancedBaseVertexEXT = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXT>(gapic::GetGlesProcAddress("glDrawElementsInstancedBaseVertexEXT", false));
mFunctionStubs.glDrawElementsInstancedBaseVertexOES = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOES>(gapic::GetGlesProcAddress("glDrawElementsInstancedBaseVertexOES", false));
mFunctionStubs.glDrawElementsInstancedEXT = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDEXT>(gapic::GetGlesProcAddress("glDrawElementsInstancedEXT", false));
mFunctionStubs.glDrawElementsInstancedNV = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDNV>(gapic::GetGlesProcAddress("glDrawElementsInstancedNV", false));
mFunctionStubs.glDrawRangeElementsBaseVertexEXT = reinterpret_cast<PFNGLDRAWRANGEELEMENTSBASEVERTEXEXT>(gapic::GetGlesProcAddress("glDrawRangeElementsBaseVertexEXT", false));
mFunctionStubs.glDrawRangeElementsBaseVertexOES = reinterpret_cast<PFNGLDRAWRANGEELEMENTSBASEVERTEXOES>(gapic::GetGlesProcAddress("glDrawRangeElementsBaseVertexOES", false));
mFunctionStubs.glEGLImageTargetRenderbufferStorageOES = reinterpret_cast<PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOES>(gapic::GetGlesProcAddress("glEGLImageTargetRenderbufferStorageOES", false));
mFunctionStubs.glEGLImageTargetTexture2DOES = reinterpret_cast<PFNGLEGLIMAGETARGETTEXTURE2DOES>(gapic::GetGlesProcAddress("glEGLImageTargetTexture2DOES", false));
mFunctionStubs.glEnableDriverControlQCOM = reinterpret_cast<PFNGLENABLEDRIVERCONTROLQCOM>(gapic::GetGlesProcAddress("glEnableDriverControlQCOM", false));
mFunctionStubs.glEnableiNV = reinterpret_cast<PFNGLENABLEINV>(gapic::GetGlesProcAddress("glEnableiNV", false));
mFunctionStubs.glEnableiOES = reinterpret_cast<PFNGLENABLEIOES>(gapic::GetGlesProcAddress("glEnableiOES", false));
mFunctionStubs.glEndConditionalRenderNV = reinterpret_cast<PFNGLENDCONDITIONALRENDERNV>(gapic::GetGlesProcAddress("glEndConditionalRenderNV", false));
mFunctionStubs.glEndPerfMonitorAMD = reinterpret_cast<PFNGLENDPERFMONITORAMD>(gapic::GetGlesProcAddress("glEndPerfMonitorAMD", false));
mFunctionStubs.glEndPerfQueryINTEL = reinterpret_cast<PFNGLENDPERFQUERYINTEL>(gapic::GetGlesProcAddress("glEndPerfQueryINTEL", false));
mFunctionStubs.glEndQueryEXT = reinterpret_cast<PFNGLENDQUERYEXT>(gapic::GetGlesProcAddress("glEndQueryEXT", false));
mFunctionStubs.glEndTilingQCOM = reinterpret_cast<PFNGLENDTILINGQCOM>(gapic::GetGlesProcAddress("glEndTilingQCOM", false));
mFunctionStubs.glExtGetBufferPointervQCOM = reinterpret_cast<PFNGLEXTGETBUFFERPOINTERVQCOM>(gapic::GetGlesProcAddress("glExtGetBufferPointervQCOM", false));
mFunctionStubs.glExtGetBuffersQCOM = reinterpret_cast<PFNGLEXTGETBUFFERSQCOM>(gapic::GetGlesProcAddress("glExtGetBuffersQCOM", false));
mFunctionStubs.glExtGetFramebuffersQCOM = reinterpret_cast<PFNGLEXTGETFRAMEBUFFERSQCOM>(gapic::GetGlesProcAddress("glExtGetFramebuffersQCOM", false));
mFunctionStubs.glExtGetProgramBinarySourceQCOM = reinterpret_cast<PFNGLEXTGETPROGRAMBINARYSOURCEQCOM>(gapic::GetGlesProcAddress("glExtGetProgramBinarySourceQCOM", false));
mFunctionStubs.glExtGetProgramsQCOM = reinterpret_cast<PFNGLEXTGETPROGRAMSQCOM>(gapic::GetGlesProcAddress("glExtGetProgramsQCOM", false));
mFunctionStubs.glExtGetRenderbuffersQCOM = reinterpret_cast<PFNGLEXTGETRENDERBUFFERSQCOM>(gapic::GetGlesProcAddress("glExtGetRenderbuffersQCOM", false));
mFunctionStubs.glExtGetShadersQCOM = reinterpret_cast<PFNGLEXTGETSHADERSQCOM>(gapic::GetGlesProcAddress("glExtGetShadersQCOM", false));
mFunctionStubs.glExtGetTexLevelParameterivQCOM = reinterpret_cast<PFNGLEXTGETTEXLEVELPARAMETERIVQCOM>(gapic::GetGlesProcAddress("glExtGetTexLevelParameterivQCOM", false));
mFunctionStubs.glExtGetTexSubImageQCOM = reinterpret_cast<PFNGLEXTGETTEXSUBIMAGEQCOM>(gapic::GetGlesProcAddress("glExtGetTexSubImageQCOM", false));
mFunctionStubs.glExtGetTexturesQCOM = reinterpret_cast<PFNGLEXTGETTEXTURESQCOM>(gapic::GetGlesProcAddress("glExtGetTexturesQCOM", false));
mFunctionStubs.glExtIsProgramBinaryQCOM = reinterpret_cast<PFNGLEXTISPROGRAMBINARYQCOM>(gapic::GetGlesProcAddress("glExtIsProgramBinaryQCOM", false));
mFunctionStubs.glExtTexObjectStateOverrideiQCOM = reinterpret_cast<PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOM>(gapic::GetGlesProcAddress("glExtTexObjectStateOverrideiQCOM", false));
mFunctionStubs.glFenceSyncAPPLE = reinterpret_cast<PFNGLFENCESYNCAPPLE>(gapic::GetGlesProcAddress("glFenceSyncAPPLE", false));
mFunctionStubs.glFinishFenceNV = reinterpret_cast<PFNGLFINISHFENCENV>(gapic::GetGlesProcAddress("glFinishFenceNV", false));
mFunctionStubs.glFlushMappedBufferRangeEXT = reinterpret_cast<PFNGLFLUSHMAPPEDBUFFERRANGEEXT>(gapic::GetGlesProcAddress("glFlushMappedBufferRangeEXT", false));
mFunctionStubs.glFragmentCoverageColorNV = reinterpret_cast<PFNGLFRAGMENTCOVERAGECOLORNV>(gapic::GetGlesProcAddress("glFragmentCoverageColorNV", false));
mFunctionStubs.glFramebufferSampleLocationsfvNV = reinterpret_cast<PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNV>(gapic::GetGlesProcAddress("glFramebufferSampleLocationsfvNV", false));
mFunctionStubs.glFramebufferTexture2DMultisampleEXT = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT>(gapic::GetGlesProcAddress("glFramebufferTexture2DMultisampleEXT", false));
mFunctionStubs.glFramebufferTexture2DMultisampleIMG = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG>(gapic::GetGlesProcAddress("glFramebufferTexture2DMultisampleIMG", false));
mFunctionStubs.glFramebufferTexture3DOES = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE3DOES>(gapic::GetGlesProcAddress("glFramebufferTexture3DOES", false));
mFunctionStubs.glFramebufferTextureMultiviewOVR = reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVR>(gapic::GetGlesProcAddress("glFramebufferTextureMultiviewOVR", false));
mFunctionStubs.glFramebufferTextureOES = reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREOES>(gapic::GetGlesProcAddress("glFramebufferTextureOES", false));
mFunctionStubs.glGenFencesNV = reinterpret_cast<PFNGLGENFENCESNV>(gapic::GetGlesProcAddress("glGenFencesNV", false));
mFunctionStubs.glGenPathsNV = reinterpret_cast<PFNGLGENPATHSNV>(gapic::GetGlesProcAddress("glGenPathsNV", false));
mFunctionStubs.glGenPerfMonitorsAMD = reinterpret_cast<PFNGLGENPERFMONITORSAMD>(gapic::GetGlesProcAddress("glGenPerfMonitorsAMD", false));
mFunctionStubs.glGenProgramPipelinesEXT = reinterpret_cast<PFNGLGENPROGRAMPIPELINESEXT>(gapic::GetGlesProcAddress("glGenProgramPipelinesEXT", false));
mFunctionStubs.glGenQueriesEXT = reinterpret_cast<PFNGLGENQUERIESEXT>(gapic::GetGlesProcAddress("glGenQueriesEXT", false));
mFunctionStubs.glGenVertexArraysOES = reinterpret_cast<PFNGLGENVERTEXARRAYSOES>(gapic::GetGlesProcAddress("glGenVertexArraysOES", false));
mFunctionStubs.glGetBufferPointervOES = reinterpret_cast<PFNGLGETBUFFERPOINTERVOES>(gapic::GetGlesProcAddress("glGetBufferPointervOES", false));
mFunctionStubs.glGetCoverageModulationTableNV = reinterpret_cast<PFNGLGETCOVERAGEMODULATIONTABLENV>(gapic::GetGlesProcAddress("glGetCoverageModulationTableNV", false));
mFunctionStubs.glGetDriverControlStringQCOM = reinterpret_cast<PFNGLGETDRIVERCONTROLSTRINGQCOM>(gapic::GetGlesProcAddress("glGetDriverControlStringQCOM", false));
mFunctionStubs.glGetDriverControlsQCOM = reinterpret_cast<PFNGLGETDRIVERCONTROLSQCOM>(gapic::GetGlesProcAddress("glGetDriverControlsQCOM", false));
mFunctionStubs.glGetFenceivNV = reinterpret_cast<PFNGLGETFENCEIVNV>(gapic::GetGlesProcAddress("glGetFenceivNV", false));
mFunctionStubs.glGetFirstPerfQueryIdINTEL = reinterpret_cast<PFNGLGETFIRSTPERFQUERYIDINTEL>(gapic::GetGlesProcAddress("glGetFirstPerfQueryIdINTEL", false));
mFunctionStubs.glGetFloati_vNV = reinterpret_cast<PFNGLGETFLOATI_VNV>(gapic::GetGlesProcAddress("glGetFloati_vNV", false));
mFunctionStubs.glGetFragDataIndexEXT = reinterpret_cast<PFNGLGETFRAGDATAINDEXEXT>(gapic::GetGlesProcAddress("glGetFragDataIndexEXT", false));
mFunctionStubs.glGetGraphicsResetStatusEXT = reinterpret_cast<PFNGLGETGRAPHICSRESETSTATUSEXT>(gapic::GetGlesProcAddress("glGetGraphicsResetStatusEXT", false));
mFunctionStubs.glGetGraphicsResetStatusKHR = reinterpret_cast<PFNGLGETGRAPHICSRESETSTATUSKHR>(gapic::GetGlesProcAddress("glGetGraphicsResetStatusKHR", false));
mFunctionStubs.glGetImageHandleNV = reinterpret_cast<PFNGLGETIMAGEHANDLENV>(gapic::GetGlesProcAddress("glGetImageHandleNV", false));
mFunctionStubs.glGetInteger64vAPPLE = reinterpret_cast<PFNGLGETINTEGER64VAPPLE>(gapic::GetGlesProcAddress("glGetInteger64vAPPLE", false));
mFunctionStubs.glGetIntegeri_vEXT = reinterpret_cast<PFNGLGETINTEGERI_VEXT>(gapic::GetGlesProcAddress("glGetIntegeri_vEXT", false));
mFunctionStubs.glGetInternalformatSampleivNV = reinterpret_cast<PFNGLGETINTERNALFORMATSAMPLEIVNV>(gapic::GetGlesProcAddress("glGetInternalformatSampleivNV", false));
mFunctionStubs.glGetNextPerfQueryIdINTEL = reinterpret_cast<PFNGLGETNEXTPERFQUERYIDINTEL>(gapic::GetGlesProcAddress("glGetNextPerfQueryIdINTEL", false));
mFunctionStubs.glGetObjectLabelEXT = reinterpret_cast<PFNGLGETOBJECTLABELEXT>(gapic::GetGlesProcAddress("glGetObjectLabelEXT", false));
mFunctionStubs.glGetPathCommandsNV = reinterpret_cast<PFNGLGETPATHCOMMANDSNV>(gapic::GetGlesProcAddress("glGetPathCommandsNV", false));
mFunctionStubs.glGetPathCoordsNV = reinterpret_cast<PFNGLGETPATHCOORDSNV>(gapic::GetGlesProcAddress("glGetPathCoordsNV", false));
mFunctionStubs.glGetPathDashArrayNV = reinterpret_cast<PFNGLGETPATHDASHARRAYNV>(gapic::GetGlesProcAddress("glGetPathDashArrayNV", false));
mFunctionStubs.glGetPathLengthNV = reinterpret_cast<PFNGLGETPATHLENGTHNV>(gapic::GetGlesProcAddress("glGetPathLengthNV", false));
mFunctionStubs.glGetPathMetricRangeNV = reinterpret_cast<PFNGLGETPATHMETRICRANGENV>(gapic::GetGlesProcAddress("glGetPathMetricRangeNV", false));
mFunctionStubs.glGetPathMetricsNV = reinterpret_cast<PFNGLGETPATHMETRICSNV>(gapic::GetGlesProcAddress("glGetPathMetricsNV", false));
mFunctionStubs.glGetPathParameterfvNV = reinterpret_cast<PFNGLGETPATHPARAMETERFVNV>(gapic::GetGlesProcAddress("glGetPathParameterfvNV", false));
mFunctionStubs.glGetPathParameterivNV = reinterpret_cast<PFNGLGETPATHPARAMETERIVNV>(gapic::GetGlesProcAddress("glGetPathParameterivNV", false));
mFunctionStubs.glGetPathSpacingNV = reinterpret_cast<PFNGLGETPATHSPACINGNV>(gapic::GetGlesProcAddress("glGetPathSpacingNV", false));
mFunctionStubs.glGetPerfCounterInfoINTEL = reinterpret_cast<PFNGLGETPERFCOUNTERINFOINTEL>(gapic::GetGlesProcAddress("glGetPerfCounterInfoINTEL", false));
mFunctionStubs.glGetPerfMonitorCounterDataAMD = reinterpret_cast<PFNGLGETPERFMONITORCOUNTERDATAAMD>(gapic::GetGlesProcAddress("glGetPerfMonitorCounterDataAMD", false));
mFunctionStubs.glGetPerfMonitorCounterInfoAMD = reinterpret_cast<PFNGLGETPERFMONITORCOUNTERINFOAMD>(gapic::GetGlesProcAddress("glGetPerfMonitorCounterInfoAMD", false));
mFunctionStubs.glGetPerfMonitorCounterStringAMD = reinterpret_cast<PFNGLGETPERFMONITORCOUNTERSTRINGAMD>(gapic::GetGlesProcAddress("glGetPerfMonitorCounterStringAMD", false));
mFunctionStubs.glGetPerfMonitorCountersAMD = reinterpret_cast<PFNGLGETPERFMONITORCOUNTERSAMD>(gapic::GetGlesProcAddress("glGetPerfMonitorCountersAMD", false));
mFunctionStubs.glGetPerfMonitorGroupStringAMD = reinterpret_cast<PFNGLGETPERFMONITORGROUPSTRINGAMD>(gapic::GetGlesProcAddress("glGetPerfMonitorGroupStringAMD", false));
mFunctionStubs.glGetPerfMonitorGroupsAMD = reinterpret_cast<PFNGLGETPERFMONITORGROUPSAMD>(gapic::GetGlesProcAddress("glGetPerfMonitorGroupsAMD", false));
mFunctionStubs.glGetPerfQueryDataINTEL = reinterpret_cast<PFNGLGETPERFQUERYDATAINTEL>(gapic::GetGlesProcAddress("glGetPerfQueryDataINTEL", false));
mFunctionStubs.glGetPerfQueryIdByNameINTEL = reinterpret_cast<PFNGLGETPERFQUERYIDBYNAMEINTEL>(gapic::GetGlesProcAddress("glGetPerfQueryIdByNameINTEL", false));
mFunctionStubs.glGetPerfQueryInfoINTEL = reinterpret_cast<PFNGLGETPERFQUERYINFOINTEL>(gapic::GetGlesProcAddress("glGetPerfQueryInfoINTEL", false));
mFunctionStubs.glGetProgramBinaryOES = reinterpret_cast<PFNGLGETPROGRAMBINARYOES>(gapic::GetGlesProcAddress("glGetProgramBinaryOES", false));
mFunctionStubs.glGetProgramPipelineInfoLogEXT = reinterpret_cast<PFNGLGETPROGRAMPIPELINEINFOLOGEXT>(gapic::GetGlesProcAddress("glGetProgramPipelineInfoLogEXT", false));
mFunctionStubs.glGetProgramPipelineivEXT = reinterpret_cast<PFNGLGETPROGRAMPIPELINEIVEXT>(gapic::GetGlesProcAddress("glGetProgramPipelineivEXT", false));
mFunctionStubs.glGetProgramResourceLocationIndexEXT = reinterpret_cast<PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXT>(gapic::GetGlesProcAddress("glGetProgramResourceLocationIndexEXT", false));
mFunctionStubs.glGetProgramResourcefvNV = reinterpret_cast<PFNGLGETPROGRAMRESOURCEFVNV>(gapic::GetGlesProcAddress("glGetProgramResourcefvNV", false));
mFunctionStubs.glGetQueryObjecti64vEXT = reinterpret_cast<PFNGLGETQUERYOBJECTI64VEXT>(gapic::GetGlesProcAddress("glGetQueryObjecti64vEXT", false));
mFunctionStubs.glGetQueryObjectivEXT = reinterpret_cast<PFNGLGETQUERYOBJECTIVEXT>(gapic::GetGlesProcAddress("glGetQueryObjectivEXT", false));
mFunctionStubs.glGetQueryObjectui64vEXT = reinterpret_cast<PFNGLGETQUERYOBJECTUI64VEXT>(gapic::GetGlesProcAddress("glGetQueryObjectui64vEXT", false));
mFunctionStubs.glGetQueryObjectuivEXT = reinterpret_cast<PFNGLGETQUERYOBJECTUIVEXT>(gapic::GetGlesProcAddress("glGetQueryObjectuivEXT", false));
mFunctionStubs.glGetQueryivEXT = reinterpret_cast<PFNGLGETQUERYIVEXT>(gapic::GetGlesProcAddress("glGetQueryivEXT", false));
mFunctionStubs.glGetSamplerParameterIivOES = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIIVOES>(gapic::GetGlesProcAddress("glGetSamplerParameterIivOES", false));
mFunctionStubs.glGetSamplerParameterIuivOES = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIUIVOES>(gapic::GetGlesProcAddress("glGetSamplerParameterIuivOES", false));
mFunctionStubs.glGetSyncivAPPLE = reinterpret_cast<PFNGLGETSYNCIVAPPLE>(gapic::GetGlesProcAddress("glGetSyncivAPPLE", false));
mFunctionStubs.glGetTexParameterIivOES = reinterpret_cast<PFNGLGETTEXPARAMETERIIVOES>(gapic::GetGlesProcAddress("glGetTexParameterIivOES", false));
mFunctionStubs.glGetTexParameterIuivOES = reinterpret_cast<PFNGLGETTEXPARAMETERIUIVOES>(gapic::GetGlesProcAddress("glGetTexParameterIuivOES", false));
mFunctionStubs.glGetTextureHandleNV = reinterpret_cast<PFNGLGETTEXTUREHANDLENV>(gapic::GetGlesProcAddress("glGetTextureHandleNV", false));
mFunctionStubs.glGetTextureSamplerHandleNV = reinterpret_cast<PFNGLGETTEXTURESAMPLERHANDLENV>(gapic::GetGlesProcAddress("glGetTextureSamplerHandleNV", false));
mFunctionStubs.glGetTranslatedShaderSourceANGLE = reinterpret_cast<PFNGLGETTRANSLATEDSHADERSOURCEANGLE>(gapic::GetGlesProcAddress("glGetTranslatedShaderSourceANGLE", false));
mFunctionStubs.glGetnUniformfvEXT = reinterpret_cast<PFNGLGETNUNIFORMFVEXT>(gapic::GetGlesProcAddress("glGetnUniformfvEXT", false));
mFunctionStubs.glGetnUniformfvKHR = reinterpret_cast<PFNGLGETNUNIFORMFVKHR>(gapic::GetGlesProcAddress("glGetnUniformfvKHR", false));
mFunctionStubs.glGetnUniformivEXT = reinterpret_cast<PFNGLGETNUNIFORMIVEXT>(gapic::GetGlesProcAddress("glGetnUniformivEXT", false));
mFunctionStubs.glGetnUniformivKHR = reinterpret_cast<PFNGLGETNUNIFORMIVKHR>(gapic::GetGlesProcAddress("glGetnUniformivKHR", false));
mFunctionStubs.glGetnUniformuivKHR = reinterpret_cast<PFNGLGETNUNIFORMUIVKHR>(gapic::GetGlesProcAddress("glGetnUniformuivKHR", false));
mFunctionStubs.glInsertEventMarkerEXT = reinterpret_cast<PFNGLINSERTEVENTMARKEREXT>(gapic::GetGlesProcAddress("glInsertEventMarkerEXT", false));
mFunctionStubs.glInterpolatePathsNV = reinterpret_cast<PFNGLINTERPOLATEPATHSNV>(gapic::GetGlesProcAddress("glInterpolatePathsNV", false));
mFunctionStubs.glIsEnablediNV = reinterpret_cast<PFNGLISENABLEDINV>(gapic::GetGlesProcAddress("glIsEnablediNV", false));
mFunctionStubs.glIsEnablediOES = reinterpret_cast<PFNGLISENABLEDIOES>(gapic::GetGlesProcAddress("glIsEnablediOES", false));
mFunctionStubs.glIsFenceNV = reinterpret_cast<PFNGLISFENCENV>(gapic::GetGlesProcAddress("glIsFenceNV", false));
mFunctionStubs.glIsImageHandleResidentNV = reinterpret_cast<PFNGLISIMAGEHANDLERESIDENTNV>(gapic::GetGlesProcAddress("glIsImageHandleResidentNV", false));
mFunctionStubs.glIsPathNV = reinterpret_cast<PFNGLISPATHNV>(gapic::GetGlesProcAddress("glIsPathNV", false));
mFunctionStubs.glIsPointInFillPathNV = reinterpret_cast<PFNGLISPOINTINFILLPATHNV>(gapic::GetGlesProcAddress("glIsPointInFillPathNV", false));
mFunctionStubs.glIsPointInStrokePathNV = reinterpret_cast<PFNGLISPOINTINSTROKEPATHNV>(gapic::GetGlesProcAddress("glIsPointInStrokePathNV", false));
mFunctionStubs.glIsProgramPipelineEXT = reinterpret_cast<PFNGLISPROGRAMPIPELINEEXT>(gapic::GetGlesProcAddress("glIsProgramPipelineEXT", false));
mFunctionStubs.glIsQueryEXT = reinterpret_cast<PFNGLISQUERYEXT>(gapic::GetGlesProcAddress("glIsQueryEXT", false));
mFunctionStubs.glIsSyncAPPLE = reinterpret_cast<PFNGLISSYNCAPPLE>(gapic::GetGlesProcAddress("glIsSyncAPPLE", false));
mFunctionStubs.glIsTextureHandleResidentNV = reinterpret_cast<PFNGLISTEXTUREHANDLERESIDENTNV>(gapic::GetGlesProcAddress("glIsTextureHandleResidentNV", false));
mFunctionStubs.glIsVertexArrayOES = reinterpret_cast<PFNGLISVERTEXARRAYOES>(gapic::GetGlesProcAddress("glIsVertexArrayOES", false));
mFunctionStubs.glLabelObjectEXT = reinterpret_cast<PFNGLLABELOBJECTEXT>(gapic::GetGlesProcAddress("glLabelObjectEXT", false));
mFunctionStubs.glMakeImageHandleNonResidentNV = reinterpret_cast<PFNGLMAKEIMAGEHANDLENONRESIDENTNV>(gapic::GetGlesProcAddress("glMakeImageHandleNonResidentNV", false));
mFunctionStubs.glMakeImageHandleResidentNV = reinterpret_cast<PFNGLMAKEIMAGEHANDLERESIDENTNV>(gapic::GetGlesProcAddress("glMakeImageHandleResidentNV", false));
mFunctionStubs.glMakeTextureHandleNonResidentNV = reinterpret_cast<PFNGLMAKETEXTUREHANDLENONRESIDENTNV>(gapic::GetGlesProcAddress("glMakeTextureHandleNonResidentNV", false));
mFunctionStubs.glMakeTextureHandleResidentNV = reinterpret_cast<PFNGLMAKETEXTUREHANDLERESIDENTNV>(gapic::GetGlesProcAddress("glMakeTextureHandleResidentNV", false));
mFunctionStubs.glMapBufferOES = reinterpret_cast<PFNGLMAPBUFFEROES>(gapic::GetGlesProcAddress("glMapBufferOES", false));
mFunctionStubs.glMapBufferRangeEXT = reinterpret_cast<PFNGLMAPBUFFERRANGEEXT>(gapic::GetGlesProcAddress("glMapBufferRangeEXT", false));
mFunctionStubs.glMatrixLoad3x2fNV = reinterpret_cast<PFNGLMATRIXLOAD3X2FNV>(gapic::GetGlesProcAddress("glMatrixLoad3x2fNV", false));
mFunctionStubs.glMatrixLoad3x3fNV = reinterpret_cast<PFNGLMATRIXLOAD3X3FNV>(gapic::GetGlesProcAddress("glMatrixLoad3x3fNV", false));
mFunctionStubs.glMatrixLoadTranspose3x3fNV = reinterpret_cast<PFNGLMATRIXLOADTRANSPOSE3X3FNV>(gapic::GetGlesProcAddress("glMatrixLoadTranspose3x3fNV", false));
mFunctionStubs.glMatrixMult3x2fNV = reinterpret_cast<PFNGLMATRIXMULT3X2FNV>(gapic::GetGlesProcAddress("glMatrixMult3x2fNV", false));
mFunctionStubs.glMatrixMult3x3fNV = reinterpret_cast<PFNGLMATRIXMULT3X3FNV>(gapic::GetGlesProcAddress("glMatrixMult3x3fNV", false));
mFunctionStubs.glMatrixMultTranspose3x3fNV = reinterpret_cast<PFNGLMATRIXMULTTRANSPOSE3X3FNV>(gapic::GetGlesProcAddress("glMatrixMultTranspose3x3fNV", false));
mFunctionStubs.glMultiDrawArraysEXT = reinterpret_cast<PFNGLMULTIDRAWARRAYSEXT>(gapic::GetGlesProcAddress("glMultiDrawArraysEXT", false));
mFunctionStubs.glMultiDrawArraysIndirectEXT = reinterpret_cast<PFNGLMULTIDRAWARRAYSINDIRECTEXT>(gapic::GetGlesProcAddress("glMultiDrawArraysIndirectEXT", false));
mFunctionStubs.glMultiDrawElementsBaseVertexEXT = reinterpret_cast<PFNGLMULTIDRAWELEMENTSBASEVERTEXEXT>(gapic::GetGlesProcAddress("glMultiDrawElementsBaseVertexEXT", false));
mFunctionStubs.glMultiDrawElementsBaseVertexOES = reinterpret_cast<PFNGLMULTIDRAWELEMENTSBASEVERTEXOES>(gapic::GetGlesProcAddress("glMultiDrawElementsBaseVertexOES", false));
mFunctionStubs.glMultiDrawElementsEXT = reinterpret_cast<PFNGLMULTIDRAWELEMENTSEXT>(gapic::GetGlesProcAddress("glMultiDrawElementsEXT", false));
mFunctionStubs.glMultiDrawElementsIndirectEXT = reinterpret_cast<PFNGLMULTIDRAWELEMENTSINDIRECTEXT>(gapic::GetGlesProcAddress("glMultiDrawElementsIndirectEXT", false));
mFunctionStubs.glNamedFramebufferSampleLocationsfvNV = reinterpret_cast<PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNV>(gapic::GetGlesProcAddress("glNamedFramebufferSampleLocationsfvNV", false));
mFunctionStubs.glPatchParameteriOES = reinterpret_cast<PFNGLPATCHPARAMETERIOES>(gapic::GetGlesProcAddress("glPatchParameteriOES", false));
mFunctionStubs.glPathCommandsNV = reinterpret_cast<PFNGLPATHCOMMANDSNV>(gapic::GetGlesProcAddress("glPathCommandsNV", false));
mFunctionStubs.glPathCoordsNV = reinterpret_cast<PFNGLPATHCOORDSNV>(gapic::GetGlesProcAddress("glPathCoordsNV", false));
mFunctionStubs.glPathCoverDepthFuncNV = reinterpret_cast<PFNGLPATHCOVERDEPTHFUNCNV>(gapic::GetGlesProcAddress("glPathCoverDepthFuncNV", false));
mFunctionStubs.glPathDashArrayNV = reinterpret_cast<PFNGLPATHDASHARRAYNV>(gapic::GetGlesProcAddress("glPathDashArrayNV", false));
mFunctionStubs.glPathGlyphIndexArrayNV = reinterpret_cast<PFNGLPATHGLYPHINDEXARRAYNV>(gapic::GetGlesProcAddress("glPathGlyphIndexArrayNV", false));
mFunctionStubs.glPathGlyphIndexRangeNV = reinterpret_cast<PFNGLPATHGLYPHINDEXRANGENV>(gapic::GetGlesProcAddress("glPathGlyphIndexRangeNV", false));
mFunctionStubs.glPathGlyphRangeNV = reinterpret_cast<PFNGLPATHGLYPHRANGENV>(gapic::GetGlesProcAddress("glPathGlyphRangeNV", false));
mFunctionStubs.glPathGlyphsNV = reinterpret_cast<PFNGLPATHGLYPHSNV>(gapic::GetGlesProcAddress("glPathGlyphsNV", false));
mFunctionStubs.glPathMemoryGlyphIndexArrayNV = reinterpret_cast<PFNGLPATHMEMORYGLYPHINDEXARRAYNV>(gapic::GetGlesProcAddress("glPathMemoryGlyphIndexArrayNV", false));
mFunctionStubs.glPathParameterfNV = reinterpret_cast<PFNGLPATHPARAMETERFNV>(gapic::GetGlesProcAddress("glPathParameterfNV", false));
mFunctionStubs.glPathParameterfvNV = reinterpret_cast<PFNGLPATHPARAMETERFVNV>(gapic::GetGlesProcAddress("glPathParameterfvNV", false));
mFunctionStubs.glPathParameteriNV = reinterpret_cast<PFNGLPATHPARAMETERINV>(gapic::GetGlesProcAddress("glPathParameteriNV", false));
mFunctionStubs.glPathParameterivNV = reinterpret_cast<PFNGLPATHPARAMETERIVNV>(gapic::GetGlesProcAddress("glPathParameterivNV", false));
mFunctionStubs.glPathStencilDepthOffsetNV = reinterpret_cast<PFNGLPATHSTENCILDEPTHOFFSETNV>(gapic::GetGlesProcAddress("glPathStencilDepthOffsetNV", false));
mFunctionStubs.glPathStencilFuncNV = reinterpret_cast<PFNGLPATHSTENCILFUNCNV>(gapic::GetGlesProcAddress("glPathStencilFuncNV", false));
mFunctionStubs.glPathStringNV = reinterpret_cast<PFNGLPATHSTRINGNV>(gapic::GetGlesProcAddress("glPathStringNV", false));
mFunctionStubs.glPathSubCommandsNV = reinterpret_cast<PFNGLPATHSUBCOMMANDSNV>(gapic::GetGlesProcAddress("glPathSubCommandsNV", false));
mFunctionStubs.glPathSubCoordsNV = reinterpret_cast<PFNGLPATHSUBCOORDSNV>(gapic::GetGlesProcAddress("glPathSubCoordsNV", false));
mFunctionStubs.glPointAlongPathNV = reinterpret_cast<PFNGLPOINTALONGPATHNV>(gapic::GetGlesProcAddress("glPointAlongPathNV", false));
mFunctionStubs.glPolygonModeNV = reinterpret_cast<PFNGLPOLYGONMODENV>(gapic::GetGlesProcAddress("glPolygonModeNV", false));
mFunctionStubs.glPopGroupMarkerEXT = reinterpret_cast<PFNGLPOPGROUPMARKEREXT>(gapic::GetGlesProcAddress("glPopGroupMarkerEXT", false));
mFunctionStubs.glPrimitiveBoundingBoxOES = reinterpret_cast<PFNGLPRIMITIVEBOUNDINGBOXOES>(gapic::GetGlesProcAddress("glPrimitiveBoundingBoxOES", false));
mFunctionStubs.glProgramBinaryOES = reinterpret_cast<PFNGLPROGRAMBINARYOES>(gapic::GetGlesProcAddress("glProgramBinaryOES", false));
mFunctionStubs.glProgramParameteriEXT = reinterpret_cast<PFNGLPROGRAMPARAMETERIEXT>(gapic::GetGlesProcAddress("glProgramParameteriEXT", false));
mFunctionStubs.glProgramPathFragmentInputGenNV = reinterpret_cast<PFNGLPROGRAMPATHFRAGMENTINPUTGENNV>(gapic::GetGlesProcAddress("glProgramPathFragmentInputGenNV", false));
mFunctionStubs.glProgramUniform1fEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM1FEXT>(gapic::GetGlesProcAddress("glProgramUniform1fEXT", false));
mFunctionStubs.glProgramUniform1fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM1FVEXT>(gapic::GetGlesProcAddress("glProgramUniform1fvEXT", false));
mFunctionStubs.glProgramUniform1iEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM1IEXT>(gapic::GetGlesProcAddress("glProgramUniform1iEXT", false));
mFunctionStubs.glProgramUniform1ivEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM1IVEXT>(gapic::GetGlesProcAddress("glProgramUniform1ivEXT", false));
mFunctionStubs.glProgramUniform1uiEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM1UIEXT>(gapic::GetGlesProcAddress("glProgramUniform1uiEXT", false));
mFunctionStubs.glProgramUniform1uivEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM1UIVEXT>(gapic::GetGlesProcAddress("glProgramUniform1uivEXT", false));
mFunctionStubs.glProgramUniform2fEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM2FEXT>(gapic::GetGlesProcAddress("glProgramUniform2fEXT", false));
mFunctionStubs.glProgramUniform2fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM2FVEXT>(gapic::GetGlesProcAddress("glProgramUniform2fvEXT", false));
mFunctionStubs.glProgramUniform2iEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM2IEXT>(gapic::GetGlesProcAddress("glProgramUniform2iEXT", false));
mFunctionStubs.glProgramUniform2ivEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM2IVEXT>(gapic::GetGlesProcAddress("glProgramUniform2ivEXT", false));
mFunctionStubs.glProgramUniform2uiEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM2UIEXT>(gapic::GetGlesProcAddress("glProgramUniform2uiEXT", false));
mFunctionStubs.glProgramUniform2uivEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM2UIVEXT>(gapic::GetGlesProcAddress("glProgramUniform2uivEXT", false));
mFunctionStubs.glProgramUniform3fEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM3FEXT>(gapic::GetGlesProcAddress("glProgramUniform3fEXT", false));
mFunctionStubs.glProgramUniform3fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM3FVEXT>(gapic::GetGlesProcAddress("glProgramUniform3fvEXT", false));
mFunctionStubs.glProgramUniform3iEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM3IEXT>(gapic::GetGlesProcAddress("glProgramUniform3iEXT", false));
mFunctionStubs.glProgramUniform3ivEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM3IVEXT>(gapic::GetGlesProcAddress("glProgramUniform3ivEXT", false));
mFunctionStubs.glProgramUniform3uiEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM3UIEXT>(gapic::GetGlesProcAddress("glProgramUniform3uiEXT", false));
mFunctionStubs.glProgramUniform3uivEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM3UIVEXT>(gapic::GetGlesProcAddress("glProgramUniform3uivEXT", false));
mFunctionStubs.glProgramUniform4fEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM4FEXT>(gapic::GetGlesProcAddress("glProgramUniform4fEXT", false));
mFunctionStubs.glProgramUniform4fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM4FVEXT>(gapic::GetGlesProcAddress("glProgramUniform4fvEXT", false));
mFunctionStubs.glProgramUniform4iEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM4IEXT>(gapic::GetGlesProcAddress("glProgramUniform4iEXT", false));
mFunctionStubs.glProgramUniform4ivEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM4IVEXT>(gapic::GetGlesProcAddress("glProgramUniform4ivEXT", false));
mFunctionStubs.glProgramUniform4uiEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM4UIEXT>(gapic::GetGlesProcAddress("glProgramUniform4uiEXT", false));
mFunctionStubs.glProgramUniform4uivEXT = reinterpret_cast<PFNGLPROGRAMUNIFORM4UIVEXT>(gapic::GetGlesProcAddress("glProgramUniform4uivEXT", false));
mFunctionStubs.glProgramUniformHandleui64NV = reinterpret_cast<PFNGLPROGRAMUNIFORMHANDLEUI64NV>(gapic::GetGlesProcAddress("glProgramUniformHandleui64NV", false));
mFunctionStubs.glProgramUniformHandleui64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORMHANDLEUI64VNV>(gapic::GetGlesProcAddress("glProgramUniformHandleui64vNV", false));
mFunctionStubs.glProgramUniformMatrix2fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix2fvEXT", false));
mFunctionStubs.glProgramUniformMatrix2x3fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X3FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix2x3fvEXT", false));
mFunctionStubs.glProgramUniformMatrix2x4fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X4FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix2x4fvEXT", false));
mFunctionStubs.glProgramUniformMatrix3fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix3fvEXT", false));
mFunctionStubs.glProgramUniformMatrix3x2fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X2FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix3x2fvEXT", false));
mFunctionStubs.glProgramUniformMatrix3x4fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X4FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix3x4fvEXT", false));
mFunctionStubs.glProgramUniformMatrix4fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix4fvEXT", false));
mFunctionStubs.glProgramUniformMatrix4x2fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X2FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix4x2fvEXT", false));
mFunctionStubs.glProgramUniformMatrix4x3fvEXT = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X3FVEXT>(gapic::GetGlesProcAddress("glProgramUniformMatrix4x3fvEXT", false));
mFunctionStubs.glPushGroupMarkerEXT = reinterpret_cast<PFNGLPUSHGROUPMARKEREXT>(gapic::GetGlesProcAddress("glPushGroupMarkerEXT", false));
mFunctionStubs.glQueryCounterEXT = reinterpret_cast<PFNGLQUERYCOUNTEREXT>(gapic::GetGlesProcAddress("glQueryCounterEXT", false));
mFunctionStubs.glRasterSamplesEXT = reinterpret_cast<PFNGLRASTERSAMPLESEXT>(gapic::GetGlesProcAddress("glRasterSamplesEXT", false));
mFunctionStubs.glReadBufferIndexedEXT = reinterpret_cast<PFNGLREADBUFFERINDEXEDEXT>(gapic::GetGlesProcAddress("glReadBufferIndexedEXT", false));
mFunctionStubs.glReadBufferNV = reinterpret_cast<PFNGLREADBUFFERNV>(gapic::GetGlesProcAddress("glReadBufferNV", false));
mFunctionStubs.glReadnPixelsEXT = reinterpret_cast<PFNGLREADNPIXELSEXT>(gapic::GetGlesProcAddress("glReadnPixelsEXT", false));
mFunctionStubs.glReadnPixelsKHR = reinterpret_cast<PFNGLREADNPIXELSKHR>(gapic::GetGlesProcAddress("glReadnPixelsKHR", false));
mFunctionStubs.glRenderbufferStorageMultisampleANGLE = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLE>(gapic::GetGlesProcAddress("glRenderbufferStorageMultisampleANGLE", false));
mFunctionStubs.glRenderbufferStorageMultisampleAPPLE = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLE>(gapic::GetGlesProcAddress("glRenderbufferStorageMultisampleAPPLE", false));
mFunctionStubs.glRenderbufferStorageMultisampleEXT = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXT>(gapic::GetGlesProcAddress("glRenderbufferStorageMultisampleEXT", false));
mFunctionStubs.glRenderbufferStorageMultisampleIMG = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG>(gapic::GetGlesProcAddress("glRenderbufferStorageMultisampleIMG", false));
mFunctionStubs.glRenderbufferStorageMultisampleNV = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLENV>(gapic::GetGlesProcAddress("glRenderbufferStorageMultisampleNV", false));
mFunctionStubs.glResolveDepthValuesNV = reinterpret_cast<PFNGLRESOLVEDEPTHVALUESNV>(gapic::GetGlesProcAddress("glResolveDepthValuesNV", false));
mFunctionStubs.glResolveMultisampleFramebufferAPPLE = reinterpret_cast<PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLE>(gapic::GetGlesProcAddress("glResolveMultisampleFramebufferAPPLE", false));
mFunctionStubs.glSamplerParameterIivOES = reinterpret_cast<PFNGLSAMPLERPARAMETERIIVOES>(gapic::GetGlesProcAddress("glSamplerParameterIivOES", false));
mFunctionStubs.glSamplerParameterIuivOES = reinterpret_cast<PFNGLSAMPLERPARAMETERIUIVOES>(gapic::GetGlesProcAddress("glSamplerParameterIuivOES", false));
mFunctionStubs.glScissorArrayvNV = reinterpret_cast<PFNGLSCISSORARRAYVNV>(gapic::GetGlesProcAddress("glScissorArrayvNV", false));
mFunctionStubs.glScissorIndexedNV = reinterpret_cast<PFNGLSCISSORINDEXEDNV>(gapic::GetGlesProcAddress("glScissorIndexedNV", false));
mFunctionStubs.glScissorIndexedvNV = reinterpret_cast<PFNGLSCISSORINDEXEDVNV>(gapic::GetGlesProcAddress("glScissorIndexedvNV", false));
mFunctionStubs.glSelectPerfMonitorCountersAMD = reinterpret_cast<PFNGLSELECTPERFMONITORCOUNTERSAMD>(gapic::GetGlesProcAddress("glSelectPerfMonitorCountersAMD", false));
mFunctionStubs.glSetFenceNV = reinterpret_cast<PFNGLSETFENCENV>(gapic::GetGlesProcAddress("glSetFenceNV", false));
mFunctionStubs.glStartTilingQCOM = reinterpret_cast<PFNGLSTARTTILINGQCOM>(gapic::GetGlesProcAddress("glStartTilingQCOM", false));
mFunctionStubs.glStencilFillPathInstancedNV = reinterpret_cast<PFNGLSTENCILFILLPATHINSTANCEDNV>(gapic::GetGlesProcAddress("glStencilFillPathInstancedNV", false));
mFunctionStubs.glStencilFillPathNV = reinterpret_cast<PFNGLSTENCILFILLPATHNV>(gapic::GetGlesProcAddress("glStencilFillPathNV", false));
mFunctionStubs.glStencilStrokePathInstancedNV = reinterpret_cast<PFNGLSTENCILSTROKEPATHINSTANCEDNV>(gapic::GetGlesProcAddress("glStencilStrokePathInstancedNV", false));
mFunctionStubs.glStencilStrokePathNV = reinterpret_cast<PFNGLSTENCILSTROKEPATHNV>(gapic::GetGlesProcAddress("glStencilStrokePathNV", false));
mFunctionStubs.glStencilThenCoverFillPathInstancedNV = reinterpret_cast<PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNV>(gapic::GetGlesProcAddress("glStencilThenCoverFillPathInstancedNV", false));
mFunctionStubs.glStencilThenCoverFillPathNV = reinterpret_cast<PFNGLSTENCILTHENCOVERFILLPATHNV>(gapic::GetGlesProcAddress("glStencilThenCoverFillPathNV", false));
mFunctionStubs.glStencilThenCoverStrokePathInstancedNV = reinterpret_cast<PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNV>(gapic::GetGlesProcAddress("glStencilThenCoverStrokePathInstancedNV", false));
mFunctionStubs.glStencilThenCoverStrokePathNV = reinterpret_cast<PFNGLSTENCILTHENCOVERSTROKEPATHNV>(gapic::GetGlesProcAddress("glStencilThenCoverStrokePathNV", false));
mFunctionStubs.glSubpixelPrecisionBiasNV = reinterpret_cast<PFNGLSUBPIXELPRECISIONBIASNV>(gapic::GetGlesProcAddress("glSubpixelPrecisionBiasNV", false));
mFunctionStubs.glTestFenceNV = reinterpret_cast<PFNGLTESTFENCENV>(gapic::GetGlesProcAddress("glTestFenceNV", false));
mFunctionStubs.glTexBufferOES = reinterpret_cast<PFNGLTEXBUFFEROES>(gapic::GetGlesProcAddress("glTexBufferOES", false));
mFunctionStubs.glTexBufferRangeOES = reinterpret_cast<PFNGLTEXBUFFERRANGEOES>(gapic::GetGlesProcAddress("glTexBufferRangeOES", false));
mFunctionStubs.glTexImage3DOES = reinterpret_cast<PFNGLTEXIMAGE3DOES>(gapic::GetGlesProcAddress("glTexImage3DOES", false));
mFunctionStubs.glTexPageCommitmentEXT = reinterpret_cast<PFNGLTEXPAGECOMMITMENTEXT>(gapic::GetGlesProcAddress("glTexPageCommitmentEXT", false));
mFunctionStubs.glTexParameterIivOES = reinterpret_cast<PFNGLTEXPARAMETERIIVOES>(gapic::GetGlesProcAddress("glTexParameterIivOES", false));
mFunctionStubs.glTexParameterIuivOES = reinterpret_cast<PFNGLTEXPARAMETERIUIVOES>(gapic::GetGlesProcAddress("glTexParameterIuivOES", false));
mFunctionStubs.glTexStorage1DEXT = reinterpret_cast<PFNGLTEXSTORAGE1DEXT>(gapic::GetGlesProcAddress("glTexStorage1DEXT", false));
mFunctionStubs.glTexStorage2DEXT = reinterpret_cast<PFNGLTEXSTORAGE2DEXT>(gapic::GetGlesProcAddress("glTexStorage2DEXT", false));
mFunctionStubs.glTexStorage3DEXT = reinterpret_cast<PFNGLTEXSTORAGE3DEXT>(gapic::GetGlesProcAddress("glTexStorage3DEXT", false));
mFunctionStubs.glTexSubImage3DOES = reinterpret_cast<PFNGLTEXSUBIMAGE3DOES>(gapic::GetGlesProcAddress("glTexSubImage3DOES", false));
mFunctionStubs.glTextureStorage1DEXT = reinterpret_cast<PFNGLTEXTURESTORAGE1DEXT>(gapic::GetGlesProcAddress("glTextureStorage1DEXT", false));
mFunctionStubs.glTextureStorage2DEXT = reinterpret_cast<PFNGLTEXTURESTORAGE2DEXT>(gapic::GetGlesProcAddress("glTextureStorage2DEXT", false));
mFunctionStubs.glTextureStorage3DEXT = reinterpret_cast<PFNGLTEXTURESTORAGE3DEXT>(gapic::GetGlesProcAddress("glTextureStorage3DEXT", false));
mFunctionStubs.glTextureViewEXT = reinterpret_cast<PFNGLTEXTUREVIEWEXT>(gapic::GetGlesProcAddress("glTextureViewEXT", false));
mFunctionStubs.glTextureViewOES = reinterpret_cast<PFNGLTEXTUREVIEWOES>(gapic::GetGlesProcAddress("glTextureViewOES", false));
mFunctionStubs.glTransformPathNV = reinterpret_cast<PFNGLTRANSFORMPATHNV>(gapic::GetGlesProcAddress("glTransformPathNV", false));
mFunctionStubs.glUniformHandleui64NV = reinterpret_cast<PFNGLUNIFORMHANDLEUI64NV>(gapic::GetGlesProcAddress("glUniformHandleui64NV", false));
mFunctionStubs.glUniformHandleui64vNV = reinterpret_cast<PFNGLUNIFORMHANDLEUI64VNV>(gapic::GetGlesProcAddress("glUniformHandleui64vNV", false));
mFunctionStubs.glUniformMatrix2x3fvNV = reinterpret_cast<PFNGLUNIFORMMATRIX2X3FVNV>(gapic::GetGlesProcAddress("glUniformMatrix2x3fvNV", false));
mFunctionStubs.glUniformMatrix2x4fvNV = reinterpret_cast<PFNGLUNIFORMMATRIX2X4FVNV>(gapic::GetGlesProcAddress("glUniformMatrix2x4fvNV", false));
mFunctionStubs.glUniformMatrix3x2fvNV = reinterpret_cast<PFNGLUNIFORMMATRIX3X2FVNV>(gapic::GetGlesProcAddress("glUniformMatrix3x2fvNV", false));
mFunctionStubs.glUniformMatrix3x4fvNV = reinterpret_cast<PFNGLUNIFORMMATRIX3X4FVNV>(gapic::GetGlesProcAddress("glUniformMatrix3x4fvNV", false));
mFunctionStubs.glUniformMatrix4x2fvNV = reinterpret_cast<PFNGLUNIFORMMATRIX4X2FVNV>(gapic::GetGlesProcAddress("glUniformMatrix4x2fvNV", false));
mFunctionStubs.glUniformMatrix4x3fvNV = reinterpret_cast<PFNGLUNIFORMMATRIX4X3FVNV>(gapic::GetGlesProcAddress("glUniformMatrix4x3fvNV", false));
mFunctionStubs.glUnmapBufferOES = reinterpret_cast<PFNGLUNMAPBUFFEROES>(gapic::GetGlesProcAddress("glUnmapBufferOES", false));
mFunctionStubs.glUseProgramStagesEXT = reinterpret_cast<PFNGLUSEPROGRAMSTAGESEXT>(gapic::GetGlesProcAddress("glUseProgramStagesEXT", false));
mFunctionStubs.glValidateProgramPipelineEXT = reinterpret_cast<PFNGLVALIDATEPROGRAMPIPELINEEXT>(gapic::GetGlesProcAddress("glValidateProgramPipelineEXT", false));
mFunctionStubs.glVertexAttribDivisorANGLE = reinterpret_cast<PFNGLVERTEXATTRIBDIVISORANGLE>(gapic::GetGlesProcAddress("glVertexAttribDivisorANGLE", false));
mFunctionStubs.glVertexAttribDivisorEXT = reinterpret_cast<PFNGLVERTEXATTRIBDIVISOREXT>(gapic::GetGlesProcAddress("glVertexAttribDivisorEXT", false));
mFunctionStubs.glVertexAttribDivisorNV = reinterpret_cast<PFNGLVERTEXATTRIBDIVISORNV>(gapic::GetGlesProcAddress("glVertexAttribDivisorNV", false));
mFunctionStubs.glViewportArrayvNV = reinterpret_cast<PFNGLVIEWPORTARRAYVNV>(gapic::GetGlesProcAddress("glViewportArrayvNV", false));
mFunctionStubs.glViewportIndexedfNV = reinterpret_cast<PFNGLVIEWPORTINDEXEDFNV>(gapic::GetGlesProcAddress("glViewportIndexedfNV", false));
mFunctionStubs.glViewportIndexedfvNV = reinterpret_cast<PFNGLVIEWPORTINDEXEDFVNV>(gapic::GetGlesProcAddress("glViewportIndexedfvNV", false));
mFunctionStubs.glWaitSyncAPPLE = reinterpret_cast<PFNGLWAITSYNCAPPLE>(gapic::GetGlesProcAddress("glWaitSyncAPPLE", false));
mFunctionStubs.glWeightPathsNV = reinterpret_cast<PFNGLWEIGHTPATHSNV>(gapic::GetGlesProcAddress("glWeightPathsNV", false));
mFunctionStubs.glClearPixelLocalStorageuiEXT = reinterpret_cast<PFNGLCLEARPIXELLOCALSTORAGEUIEXT>(gapic::GetGlesProcAddress("glClearPixelLocalStorageuiEXT", false));
mFunctionStubs.glClearTexImageEXT = reinterpret_cast<PFNGLCLEARTEXIMAGEEXT>(gapic::GetGlesProcAddress("glClearTexImageEXT", false));
mFunctionStubs.glClearTexSubImageEXT = reinterpret_cast<PFNGLCLEARTEXSUBIMAGEEXT>(gapic::GetGlesProcAddress("glClearTexSubImageEXT", false));
mFunctionStubs.glConservativeRasterParameteriNV = reinterpret_cast<PFNGLCONSERVATIVERASTERPARAMETERINV>(gapic::GetGlesProcAddress("glConservativeRasterParameteriNV", false));
mFunctionStubs.glDepthRangeArrayfvOES = reinterpret_cast<PFNGLDEPTHRANGEARRAYFVOES>(gapic::GetGlesProcAddress("glDepthRangeArrayfvOES", false));
mFunctionStubs.glDepthRangeIndexedfOES = reinterpret_cast<PFNGLDEPTHRANGEINDEXEDFOES>(gapic::GetGlesProcAddress("glDepthRangeIndexedfOES", false));
mFunctionStubs.glDrawTransformFeedbackEXT = reinterpret_cast<PFNGLDRAWTRANSFORMFEEDBACKEXT>(gapic::GetGlesProcAddress("glDrawTransformFeedbackEXT", false));
mFunctionStubs.glDrawTransformFeedbackInstancedEXT = reinterpret_cast<PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXT>(gapic::GetGlesProcAddress("glDrawTransformFeedbackInstancedEXT", false));
mFunctionStubs.glFramebufferPixelLocalStorageSizeEXT = reinterpret_cast<PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXT>(gapic::GetGlesProcAddress("glFramebufferPixelLocalStorageSizeEXT", false));
mFunctionStubs.glFramebufferTexture2DDownsampleIMG = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMG>(gapic::GetGlesProcAddress("glFramebufferTexture2DDownsampleIMG", false));
mFunctionStubs.glFramebufferTextureLayerDownsampleIMG = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMG>(gapic::GetGlesProcAddress("glFramebufferTextureLayerDownsampleIMG", false));
mFunctionStubs.glFramebufferTextureMultisampleMultiviewOVR = reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVR>(gapic::GetGlesProcAddress("glFramebufferTextureMultisampleMultiviewOVR", false));
mFunctionStubs.glGetFloati_vOES = reinterpret_cast<PFNGLGETFLOATI_VOES>(gapic::GetGlesProcAddress("glGetFloati_vOES", false));
mFunctionStubs.glGetFramebufferPixelLocalStorageSizeEXT = reinterpret_cast<PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXT>(gapic::GetGlesProcAddress("glGetFramebufferPixelLocalStorageSizeEXT", false));
mFunctionStubs.glGetTextureHandleIMG = reinterpret_cast<PFNGLGETTEXTUREHANDLEIMG>(gapic::GetGlesProcAddress("glGetTextureHandleIMG", false));
mFunctionStubs.glGetTextureSamplerHandleIMG = reinterpret_cast<PFNGLGETTEXTURESAMPLERHANDLEIMG>(gapic::GetGlesProcAddress("glGetTextureSamplerHandleIMG", false));
mFunctionStubs.glGetUniformi64vNV = reinterpret_cast<PFNGLGETUNIFORMI64VNV>(gapic::GetGlesProcAddress("glGetUniformi64vNV", false));
mFunctionStubs.glPolygonOffsetClampEXT = reinterpret_cast<PFNGLPOLYGONOFFSETCLAMPEXT>(gapic::GetGlesProcAddress("glPolygonOffsetClampEXT", false));
mFunctionStubs.glProgramUniform1i64NV = reinterpret_cast<PFNGLPROGRAMUNIFORM1I64NV>(gapic::GetGlesProcAddress("glProgramUniform1i64NV", false));
mFunctionStubs.glProgramUniform1i64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORM1I64VNV>(gapic::GetGlesProcAddress("glProgramUniform1i64vNV", false));
mFunctionStubs.glProgramUniform1ui64NV = reinterpret_cast<PFNGLPROGRAMUNIFORM1UI64NV>(gapic::GetGlesProcAddress("glProgramUniform1ui64NV", false));
mFunctionStubs.glProgramUniform1ui64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORM1UI64VNV>(gapic::GetGlesProcAddress("glProgramUniform1ui64vNV", false));
mFunctionStubs.glProgramUniform2i64NV = reinterpret_cast<PFNGLPROGRAMUNIFORM2I64NV>(gapic::GetGlesProcAddress("glProgramUniform2i64NV", false));
mFunctionStubs.glProgramUniform2i64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORM2I64VNV>(gapic::GetGlesProcAddress("glProgramUniform2i64vNV", false));
mFunctionStubs.glProgramUniform2ui64NV = reinterpret_cast<PFNGLPROGRAMUNIFORM2UI64NV>(gapic::GetGlesProcAddress("glProgramUniform2ui64NV", false));
mFunctionStubs.glProgramUniform2ui64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORM2UI64VNV>(gapic::GetGlesProcAddress("glProgramUniform2ui64vNV", false));
mFunctionStubs.glProgramUniform3i64NV = reinterpret_cast<PFNGLPROGRAMUNIFORM3I64NV>(gapic::GetGlesProcAddress("glProgramUniform3i64NV", false));
mFunctionStubs.glProgramUniform3i64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORM3I64VNV>(gapic::GetGlesProcAddress("glProgramUniform3i64vNV", false));
mFunctionStubs.glProgramUniform3ui64NV = reinterpret_cast<PFNGLPROGRAMUNIFORM3UI64NV>(gapic::GetGlesProcAddress("glProgramUniform3ui64NV", false));
mFunctionStubs.glProgramUniform3ui64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORM3UI64VNV>(gapic::GetGlesProcAddress("glProgramUniform3ui64vNV", false));
mFunctionStubs.glProgramUniform4i64NV = reinterpret_cast<PFNGLPROGRAMUNIFORM4I64NV>(gapic::GetGlesProcAddress("glProgramUniform4i64NV", false));
mFunctionStubs.glProgramUniform4i64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORM4I64VNV>(gapic::GetGlesProcAddress("glProgramUniform4i64vNV", false));
mFunctionStubs.glProgramUniform4ui64NV = reinterpret_cast<PFNGLPROGRAMUNIFORM4UI64NV>(gapic::GetGlesProcAddress("glProgramUniform4ui64NV", false));
mFunctionStubs.glProgramUniform4ui64vNV = reinterpret_cast<PFNGLPROGRAMUNIFORM4UI64VNV>(gapic::GetGlesProcAddress("glProgramUniform4ui64vNV", false));
mFunctionStubs.glProgramUniformHandleui64IMG = reinterpret_cast<PFNGLPROGRAMUNIFORMHANDLEUI64IMG>(gapic::GetGlesProcAddress("glProgramUniformHandleui64IMG", false));
mFunctionStubs.glProgramUniformHandleui64vIMG = reinterpret_cast<PFNGLPROGRAMUNIFORMHANDLEUI64VIMG>(gapic::GetGlesProcAddress("glProgramUniformHandleui64vIMG", false));
mFunctionStubs.glScissorArrayvOES = reinterpret_cast<PFNGLSCISSORARRAYVOES>(gapic::GetGlesProcAddress("glScissorArrayvOES", false));
mFunctionStubs.glScissorIndexedOES = reinterpret_cast<PFNGLSCISSORINDEXEDOES>(gapic::GetGlesProcAddress("glScissorIndexedOES", false));
mFunctionStubs.glScissorIndexedvOES = reinterpret_cast<PFNGLSCISSORINDEXEDVOES>(gapic::GetGlesProcAddress("glScissorIndexedvOES", false));
mFunctionStubs.glUniform1i64NV = reinterpret_cast<PFNGLUNIFORM1I64NV>(gapic::GetGlesProcAddress("glUniform1i64NV", false));
mFunctionStubs.glUniform1i64vNV = reinterpret_cast<PFNGLUNIFORM1I64VNV>(gapic::GetGlesProcAddress("glUniform1i64vNV", false));
mFunctionStubs.glUniform1ui64NV = reinterpret_cast<PFNGLUNIFORM1UI64NV>(gapic::GetGlesProcAddress("glUniform1ui64NV", false));
mFunctionStubs.glUniform1ui64vNV = reinterpret_cast<PFNGLUNIFORM1UI64VNV>(gapic::GetGlesProcAddress("glUniform1ui64vNV", false));
mFunctionStubs.glUniform2i64NV = reinterpret_cast<PFNGLUNIFORM2I64NV>(gapic::GetGlesProcAddress("glUniform2i64NV", false));
mFunctionStubs.glUniform2i64vNV = reinterpret_cast<PFNGLUNIFORM2I64VNV>(gapic::GetGlesProcAddress("glUniform2i64vNV", false));
mFunctionStubs.glUniform2ui64NV = reinterpret_cast<PFNGLUNIFORM2UI64NV>(gapic::GetGlesProcAddress("glUniform2ui64NV", false));
mFunctionStubs.glUniform2ui64vNV = reinterpret_cast<PFNGLUNIFORM2UI64VNV>(gapic::GetGlesProcAddress("glUniform2ui64vNV", false));
mFunctionStubs.glUniform3i64NV = reinterpret_cast<PFNGLUNIFORM3I64NV>(gapic::GetGlesProcAddress("glUniform3i64NV", false));
mFunctionStubs.glUniform3i64vNV = reinterpret_cast<PFNGLUNIFORM3I64VNV>(gapic::GetGlesProcAddress("glUniform3i64vNV", false));
mFunctionStubs.glUniform3ui64NV = reinterpret_cast<PFNGLUNIFORM3UI64NV>(gapic::GetGlesProcAddress("glUniform3ui64NV", false));
mFunctionStubs.glUniform3ui64vNV = reinterpret_cast<PFNGLUNIFORM3UI64VNV>(gapic::GetGlesProcAddress("glUniform3ui64vNV", false));
mFunctionStubs.glUniform4i64NV = reinterpret_cast<PFNGLUNIFORM4I64NV>(gapic::GetGlesProcAddress("glUniform4i64NV", false));
mFunctionStubs.glUniform4i64vNV = reinterpret_cast<PFNGLUNIFORM4I64VNV>(gapic::GetGlesProcAddress("glUniform4i64vNV", false));
mFunctionStubs.glUniform4ui64NV = reinterpret_cast<PFNGLUNIFORM4UI64NV>(gapic::GetGlesProcAddress("glUniform4ui64NV", false));
mFunctionStubs.glUniform4ui64vNV = reinterpret_cast<PFNGLUNIFORM4UI64VNV>(gapic::GetGlesProcAddress("glUniform4ui64vNV", false));
mFunctionStubs.glUniformHandleui64IMG = reinterpret_cast<PFNGLUNIFORMHANDLEUI64IMG>(gapic::GetGlesProcAddress("glUniformHandleui64IMG", false));
mFunctionStubs.glUniformHandleui64vIMG = reinterpret_cast<PFNGLUNIFORMHANDLEUI64VIMG>(gapic::GetGlesProcAddress("glUniformHandleui64vIMG", false));
mFunctionStubs.glViewportArrayvOES = reinterpret_cast<PFNGLVIEWPORTARRAYVOES>(gapic::GetGlesProcAddress("glViewportArrayvOES", false));
mFunctionStubs.glViewportIndexedfOES = reinterpret_cast<PFNGLVIEWPORTINDEXEDFOES>(gapic::GetGlesProcAddress("glViewportIndexedfOES", false));
mFunctionStubs.glViewportIndexedfvOES = reinterpret_cast<PFNGLVIEWPORTINDEXEDFVOES>(gapic::GetGlesProcAddress("glViewportIndexedfvOES", false));
mFunctionStubs.glViewportSwizzleNV = reinterpret_cast<PFNGLVIEWPORTSWIZZLENV>(gapic::GetGlesProcAddress("glViewportSwizzleNV", false));
mFunctionStubs.glWindowRectanglesEXT = reinterpret_cast<PFNGLWINDOWRECTANGLESEXT>(gapic::GetGlesProcAddress("glWindowRectanglesEXT", false));
mFunctionStubs.glBlendBarrier = reinterpret_cast<PFNGLBLENDBARRIER>(gapic::GetGlesProcAddress("glBlendBarrier", false));
mFunctionStubs.glBlendColor = reinterpret_cast<PFNGLBLENDCOLOR>(gapic::GetGlesProcAddress("glBlendColor", false));
mFunctionStubs.glBlendEquation = reinterpret_cast<PFNGLBLENDEQUATION>(gapic::GetGlesProcAddress("glBlendEquation", false));
mFunctionStubs.glBlendEquationSeparate = reinterpret_cast<PFNGLBLENDEQUATIONSEPARATE>(gapic::GetGlesProcAddress("glBlendEquationSeparate", false));
mFunctionStubs.glBlendEquationSeparatei = reinterpret_cast<PFNGLBLENDEQUATIONSEPARATEI>(gapic::GetGlesProcAddress("glBlendEquationSeparatei", false));
mFunctionStubs.glBlendEquationi = reinterpret_cast<PFNGLBLENDEQUATIONI>(gapic::GetGlesProcAddress("glBlendEquationi", false));
mFunctionStubs.glBlendFunc = reinterpret_cast<PFNGLBLENDFUNC>(gapic::GetGlesProcAddress("glBlendFunc", false));
mFunctionStubs.glBlendFuncSeparate = reinterpret_cast<PFNGLBLENDFUNCSEPARATE>(gapic::GetGlesProcAddress("glBlendFuncSeparate", false));
mFunctionStubs.glBlendFuncSeparatei = reinterpret_cast<PFNGLBLENDFUNCSEPARATEI>(gapic::GetGlesProcAddress("glBlendFuncSeparatei", false));
mFunctionStubs.glBlendFunci = reinterpret_cast<PFNGLBLENDFUNCI>(gapic::GetGlesProcAddress("glBlendFunci", false));
mFunctionStubs.glDepthFunc = reinterpret_cast<PFNGLDEPTHFUNC>(gapic::GetGlesProcAddress("glDepthFunc", false));
mFunctionStubs.glSampleCoverage = reinterpret_cast<PFNGLSAMPLECOVERAGE>(gapic::GetGlesProcAddress("glSampleCoverage", false));
mFunctionStubs.glSampleMaski = reinterpret_cast<PFNGLSAMPLEMASKI>(gapic::GetGlesProcAddress("glSampleMaski", false));
mFunctionStubs.glScissor = reinterpret_cast<PFNGLSCISSOR>(gapic::GetGlesProcAddress("glScissor", false));
mFunctionStubs.glStencilFunc = reinterpret_cast<PFNGLSTENCILFUNC>(gapic::GetGlesProcAddress("glStencilFunc", false));
mFunctionStubs.glStencilFuncSeparate = reinterpret_cast<PFNGLSTENCILFUNCSEPARATE>(gapic::GetGlesProcAddress("glStencilFuncSeparate", false));
mFunctionStubs.glStencilOp = reinterpret_cast<PFNGLSTENCILOP>(gapic::GetGlesProcAddress("glStencilOp", false));
mFunctionStubs.glStencilOpSeparate = reinterpret_cast<PFNGLSTENCILOPSEPARATE>(gapic::GetGlesProcAddress("glStencilOpSeparate", false));
mFunctionStubs.glBindFramebuffer = reinterpret_cast<PFNGLBINDFRAMEBUFFER>(gapic::GetGlesProcAddress("glBindFramebuffer", false));
mFunctionStubs.glBindRenderbuffer = reinterpret_cast<PFNGLBINDRENDERBUFFER>(gapic::GetGlesProcAddress("glBindRenderbuffer", false));
mFunctionStubs.glBlitFramebuffer = reinterpret_cast<PFNGLBLITFRAMEBUFFER>(gapic::GetGlesProcAddress("glBlitFramebuffer", false));
mFunctionStubs.glCheckFramebufferStatus = reinterpret_cast<PFNGLCHECKFRAMEBUFFERSTATUS>(gapic::GetGlesProcAddress("glCheckFramebufferStatus", false));
mFunctionStubs.glClear = reinterpret_cast<PFNGLCLEAR>(gapic::GetGlesProcAddress("glClear", false));
mFunctionStubs.glClearBufferfi = reinterpret_cast<PFNGLCLEARBUFFERFI>(gapic::GetGlesProcAddress("glClearBufferfi", false));
mFunctionStubs.glClearBufferfv = reinterpret_cast<PFNGLCLEARBUFFERFV>(gapic::GetGlesProcAddress("glClearBufferfv", false));
mFunctionStubs.glClearBufferiv = reinterpret_cast<PFNGLCLEARBUFFERIV>(gapic::GetGlesProcAddress("glClearBufferiv", false));
mFunctionStubs.glClearBufferuiv = reinterpret_cast<PFNGLCLEARBUFFERUIV>(gapic::GetGlesProcAddress("glClearBufferuiv", false));
mFunctionStubs.glClearColor = reinterpret_cast<PFNGLCLEARCOLOR>(gapic::GetGlesProcAddress("glClearColor", false));
mFunctionStubs.glClearDepthf = reinterpret_cast<PFNGLCLEARDEPTHF>(gapic::GetGlesProcAddress("glClearDepthf", false));
mFunctionStubs.glClearStencil = reinterpret_cast<PFNGLCLEARSTENCIL>(gapic::GetGlesProcAddress("glClearStencil", false));
mFunctionStubs.glColorMask = reinterpret_cast<PFNGLCOLORMASK>(gapic::GetGlesProcAddress("glColorMask", false));
mFunctionStubs.glColorMaski = reinterpret_cast<PFNGLCOLORMASKI>(gapic::GetGlesProcAddress("glColorMaski", false));
mFunctionStubs.glDeleteFramebuffers = reinterpret_cast<PFNGLDELETEFRAMEBUFFERS>(gapic::GetGlesProcAddress("glDeleteFramebuffers", false));
mFunctionStubs.glDeleteRenderbuffers = reinterpret_cast<PFNGLDELETERENDERBUFFERS>(gapic::GetGlesProcAddress("glDeleteRenderbuffers", false));
mFunctionStubs.glDepthMask = reinterpret_cast<PFNGLDEPTHMASK>(gapic::GetGlesProcAddress("glDepthMask", false));
mFunctionStubs.glDrawBuffers = reinterpret_cast<PFNGLDRAWBUFFERS>(gapic::GetGlesProcAddress("glDrawBuffers", false));
mFunctionStubs.glFramebufferParameteri = reinterpret_cast<PFNGLFRAMEBUFFERPARAMETERI>(gapic::GetGlesProcAddress("glFramebufferParameteri", false));
mFunctionStubs.glFramebufferRenderbuffer = reinterpret_cast<PFNGLFRAMEBUFFERRENDERBUFFER>(gapic::GetGlesProcAddress("glFramebufferRenderbuffer", false));
mFunctionStubs.glFramebufferTexture = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE>(gapic::GetGlesProcAddress("glFramebufferTexture", false));
mFunctionStubs.glFramebufferTexture2D = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE2D>(gapic::GetGlesProcAddress("glFramebufferTexture2D", false));
mFunctionStubs.glFramebufferTextureLayer = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURELAYER>(gapic::GetGlesProcAddress("glFramebufferTextureLayer", false));
mFunctionStubs.glGenFramebuffers = reinterpret_cast<PFNGLGENFRAMEBUFFERS>(gapic::GetGlesProcAddress("glGenFramebuffers", false));
mFunctionStubs.glGenRenderbuffers = reinterpret_cast<PFNGLGENRENDERBUFFERS>(gapic::GetGlesProcAddress("glGenRenderbuffers", false));
mFunctionStubs.glGetFramebufferAttachmentParameteriv = reinterpret_cast<PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV>(gapic::GetGlesProcAddress("glGetFramebufferAttachmentParameteriv", false));
mFunctionStubs.glGetFramebufferParameteriv = reinterpret_cast<PFNGLGETFRAMEBUFFERPARAMETERIV>(gapic::GetGlesProcAddress("glGetFramebufferParameteriv", false));
mFunctionStubs.glGetRenderbufferParameteriv = reinterpret_cast<PFNGLGETRENDERBUFFERPARAMETERIV>(gapic::GetGlesProcAddress("glGetRenderbufferParameteriv", false));
mFunctionStubs.glInvalidateFramebuffer = reinterpret_cast<PFNGLINVALIDATEFRAMEBUFFER>(gapic::GetGlesProcAddress("glInvalidateFramebuffer", false));
mFunctionStubs.glInvalidateSubFramebuffer = reinterpret_cast<PFNGLINVALIDATESUBFRAMEBUFFER>(gapic::GetGlesProcAddress("glInvalidateSubFramebuffer", false));
mFunctionStubs.glIsFramebuffer = reinterpret_cast<PFNGLISFRAMEBUFFER>(gapic::GetGlesProcAddress("glIsFramebuffer", false));
mFunctionStubs.glIsRenderbuffer = reinterpret_cast<PFNGLISRENDERBUFFER>(gapic::GetGlesProcAddress("glIsRenderbuffer", false));
mFunctionStubs.glReadBuffer = reinterpret_cast<PFNGLREADBUFFER>(gapic::GetGlesProcAddress("glReadBuffer", false));
mFunctionStubs.glReadPixels = reinterpret_cast<PFNGLREADPIXELS>(gapic::GetGlesProcAddress("glReadPixels", false));
mFunctionStubs.glReadnPixels = reinterpret_cast<PFNGLREADNPIXELS>(gapic::GetGlesProcAddress("glReadnPixels", false));
mFunctionStubs.glRenderbufferStorage = reinterpret_cast<PFNGLRENDERBUFFERSTORAGE>(gapic::GetGlesProcAddress("glRenderbufferStorage", false));
mFunctionStubs.glRenderbufferStorageMultisample = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLE>(gapic::GetGlesProcAddress("glRenderbufferStorageMultisample", false));
mFunctionStubs.glStencilMask = reinterpret_cast<PFNGLSTENCILMASK>(gapic::GetGlesProcAddress("glStencilMask", false));
mFunctionStubs.glStencilMaskSeparate = reinterpret_cast<PFNGLSTENCILMASKSEPARATE>(gapic::GetGlesProcAddress("glStencilMaskSeparate", false));
mFunctionStubs.glDisable = reinterpret_cast<PFNGLDISABLE>(gapic::GetGlesProcAddress("glDisable", false));
mFunctionStubs.glDisablei = reinterpret_cast<PFNGLDISABLEI>(gapic::GetGlesProcAddress("glDisablei", false));
mFunctionStubs.glEnable = reinterpret_cast<PFNGLENABLE>(gapic::GetGlesProcAddress("glEnable", false));
mFunctionStubs.glEnablei = reinterpret_cast<PFNGLENABLEI>(gapic::GetGlesProcAddress("glEnablei", false));
mFunctionStubs.glFinish = reinterpret_cast<PFNGLFINISH>(gapic::GetGlesProcAddress("glFinish", false));
mFunctionStubs.glFlush = reinterpret_cast<PFNGLFLUSH>(gapic::GetGlesProcAddress("glFlush", false));
mFunctionStubs.glGetError = reinterpret_cast<PFNGLGETERROR>(gapic::GetGlesProcAddress("glGetError", false));
mFunctionStubs.glGetGraphicsResetStatus = reinterpret_cast<PFNGLGETGRAPHICSRESETSTATUS>(gapic::GetGlesProcAddress("glGetGraphicsResetStatus", false));
mFunctionStubs.glHint = reinterpret_cast<PFNGLHINT>(gapic::GetGlesProcAddress("glHint", false));
mFunctionStubs.glActiveShaderProgram = reinterpret_cast<PFNGLACTIVESHADERPROGRAM>(gapic::GetGlesProcAddress("glActiveShaderProgram", false));
mFunctionStubs.glAttachShader = reinterpret_cast<PFNGLATTACHSHADER>(gapic::GetGlesProcAddress("glAttachShader", false));
mFunctionStubs.glBindAttribLocation = reinterpret_cast<PFNGLBINDATTRIBLOCATION>(gapic::GetGlesProcAddress("glBindAttribLocation", false));
mFunctionStubs.glBindProgramPipeline = reinterpret_cast<PFNGLBINDPROGRAMPIPELINE>(gapic::GetGlesProcAddress("glBindProgramPipeline", false));
mFunctionStubs.glCompileShader = reinterpret_cast<PFNGLCOMPILESHADER>(gapic::GetGlesProcAddress("glCompileShader", false));
mFunctionStubs.glCreateProgram = reinterpret_cast<PFNGLCREATEPROGRAM>(gapic::GetGlesProcAddress("glCreateProgram", false));
mFunctionStubs.glCreateShader = reinterpret_cast<PFNGLCREATESHADER>(gapic::GetGlesProcAddress("glCreateShader", false));
mFunctionStubs.glCreateShaderProgramv = reinterpret_cast<PFNGLCREATESHADERPROGRAMV>(gapic::GetGlesProcAddress("glCreateShaderProgramv", false));
mFunctionStubs.glDeleteProgram = reinterpret_cast<PFNGLDELETEPROGRAM>(gapic::GetGlesProcAddress("glDeleteProgram", false));
mFunctionStubs.glDeleteProgramPipelines = reinterpret_cast<PFNGLDELETEPROGRAMPIPELINES>(gapic::GetGlesProcAddress("glDeleteProgramPipelines", false));
mFunctionStubs.glDeleteShader = reinterpret_cast<PFNGLDELETESHADER>(gapic::GetGlesProcAddress("glDeleteShader", false));
mFunctionStubs.glDetachShader = reinterpret_cast<PFNGLDETACHSHADER>(gapic::GetGlesProcAddress("glDetachShader", false));
mFunctionStubs.glDispatchCompute = reinterpret_cast<PFNGLDISPATCHCOMPUTE>(gapic::GetGlesProcAddress("glDispatchCompute", false));
mFunctionStubs.glDispatchComputeIndirect = reinterpret_cast<PFNGLDISPATCHCOMPUTEINDIRECT>(gapic::GetGlesProcAddress("glDispatchComputeIndirect", false));
mFunctionStubs.glGenProgramPipelines = reinterpret_cast<PFNGLGENPROGRAMPIPELINES>(gapic::GetGlesProcAddress("glGenProgramPipelines", false));
mFunctionStubs.glGetActiveAttrib = reinterpret_cast<PFNGLGETACTIVEATTRIB>(gapic::GetGlesProcAddress("glGetActiveAttrib", false));
mFunctionStubs.glGetActiveUniform = reinterpret_cast<PFNGLGETACTIVEUNIFORM>(gapic::GetGlesProcAddress("glGetActiveUniform", false));
mFunctionStubs.glGetActiveUniformBlockName = reinterpret_cast<PFNGLGETACTIVEUNIFORMBLOCKNAME>(gapic::GetGlesProcAddress("glGetActiveUniformBlockName", false));
mFunctionStubs.glGetActiveUniformBlockiv = reinterpret_cast<PFNGLGETACTIVEUNIFORMBLOCKIV>(gapic::GetGlesProcAddress("glGetActiveUniformBlockiv", false));
mFunctionStubs.glGetActiveUniformsiv = reinterpret_cast<PFNGLGETACTIVEUNIFORMSIV>(gapic::GetGlesProcAddress("glGetActiveUniformsiv", false));
mFunctionStubs.glGetAttachedShaders = reinterpret_cast<PFNGLGETATTACHEDSHADERS>(gapic::GetGlesProcAddress("glGetAttachedShaders", false));
mFunctionStubs.glGetAttribLocation = reinterpret_cast<PFNGLGETATTRIBLOCATION>(gapic::GetGlesProcAddress("glGetAttribLocation", false));
mFunctionStubs.glGetFragDataLocation = reinterpret_cast<PFNGLGETFRAGDATALOCATION>(gapic::GetGlesProcAddress("glGetFragDataLocation", false));
mFunctionStubs.glGetProgramBinary = reinterpret_cast<PFNGLGETPROGRAMBINARY>(gapic::GetGlesProcAddress("glGetProgramBinary", false));
mFunctionStubs.glGetProgramInfoLog = reinterpret_cast<PFNGLGETPROGRAMINFOLOG>(gapic::GetGlesProcAddress("glGetProgramInfoLog", false));
mFunctionStubs.glGetProgramInterfaceiv = reinterpret_cast<PFNGLGETPROGRAMINTERFACEIV>(gapic::GetGlesProcAddress("glGetProgramInterfaceiv", false));
mFunctionStubs.glGetProgramPipelineInfoLog = reinterpret_cast<PFNGLGETPROGRAMPIPELINEINFOLOG>(gapic::GetGlesProcAddress("glGetProgramPipelineInfoLog", false));
mFunctionStubs.glGetProgramPipelineiv = reinterpret_cast<PFNGLGETPROGRAMPIPELINEIV>(gapic::GetGlesProcAddress("glGetProgramPipelineiv", false));
mFunctionStubs.glGetProgramResourceIndex = reinterpret_cast<PFNGLGETPROGRAMRESOURCEINDEX>(gapic::GetGlesProcAddress("glGetProgramResourceIndex", false));
mFunctionStubs.glGetProgramResourceLocation = reinterpret_cast<PFNGLGETPROGRAMRESOURCELOCATION>(gapic::GetGlesProcAddress("glGetProgramResourceLocation", false));
mFunctionStubs.glGetProgramResourceName = reinterpret_cast<PFNGLGETPROGRAMRESOURCENAME>(gapic::GetGlesProcAddress("glGetProgramResourceName", false));
mFunctionStubs.glGetProgramResourceiv = reinterpret_cast<PFNGLGETPROGRAMRESOURCEIV>(gapic::GetGlesProcAddress("glGetProgramResourceiv", false));
mFunctionStubs.glGetProgramiv = reinterpret_cast<PFNGLGETPROGRAMIV>(gapic::GetGlesProcAddress("glGetProgramiv", false));
mFunctionStubs.glGetShaderInfoLog = reinterpret_cast<PFNGLGETSHADERINFOLOG>(gapic::GetGlesProcAddress("glGetShaderInfoLog", false));
mFunctionStubs.glGetShaderPrecisionFormat = reinterpret_cast<PFNGLGETSHADERPRECISIONFORMAT>(gapic::GetGlesProcAddress("glGetShaderPrecisionFormat", false));
mFunctionStubs.glGetShaderSource = reinterpret_cast<PFNGLGETSHADERSOURCE>(gapic::GetGlesProcAddress("glGetShaderSource", false));
mFunctionStubs.glGetShaderiv = reinterpret_cast<PFNGLGETSHADERIV>(gapic::GetGlesProcAddress("glGetShaderiv", false));
mFunctionStubs.glGetUniformBlockIndex = reinterpret_cast<PFNGLGETUNIFORMBLOCKINDEX>(gapic::GetGlesProcAddress("glGetUniformBlockIndex", false));
mFunctionStubs.glGetUniformIndices = reinterpret_cast<PFNGLGETUNIFORMINDICES>(gapic::GetGlesProcAddress("glGetUniformIndices", false));
mFunctionStubs.glGetUniformLocation = reinterpret_cast<PFNGLGETUNIFORMLOCATION>(gapic::GetGlesProcAddress("glGetUniformLocation", false));
mFunctionStubs.glGetUniformfv = reinterpret_cast<PFNGLGETUNIFORMFV>(gapic::GetGlesProcAddress("glGetUniformfv", false));
mFunctionStubs.glGetUniformiv = reinterpret_cast<PFNGLGETUNIFORMIV>(gapic::GetGlesProcAddress("glGetUniformiv", false));
mFunctionStubs.glGetUniformuiv = reinterpret_cast<PFNGLGETUNIFORMUIV>(gapic::GetGlesProcAddress("glGetUniformuiv", false));
mFunctionStubs.glGetnUniformfv = reinterpret_cast<PFNGLGETNUNIFORMFV>(gapic::GetGlesProcAddress("glGetnUniformfv", false));
mFunctionStubs.glGetnUniformiv = reinterpret_cast<PFNGLGETNUNIFORMIV>(gapic::GetGlesProcAddress("glGetnUniformiv", false));
mFunctionStubs.glGetnUniformuiv = reinterpret_cast<PFNGLGETNUNIFORMUIV>(gapic::GetGlesProcAddress("glGetnUniformuiv", false));
mFunctionStubs.glIsProgram = reinterpret_cast<PFNGLISPROGRAM>(gapic::GetGlesProcAddress("glIsProgram", false));
mFunctionStubs.glIsProgramPipeline = reinterpret_cast<PFNGLISPROGRAMPIPELINE>(gapic::GetGlesProcAddress("glIsProgramPipeline", false));
mFunctionStubs.glIsShader = reinterpret_cast<PFNGLISSHADER>(gapic::GetGlesProcAddress("glIsShader", false));
mFunctionStubs.glLinkProgram = reinterpret_cast<PFNGLLINKPROGRAM>(gapic::GetGlesProcAddress("glLinkProgram", false));
mFunctionStubs.glMemoryBarrier = reinterpret_cast<PFNGLMEMORYBARRIER>(gapic::GetGlesProcAddress("glMemoryBarrier", false));
mFunctionStubs.glMemoryBarrierByRegion = reinterpret_cast<PFNGLMEMORYBARRIERBYREGION>(gapic::GetGlesProcAddress("glMemoryBarrierByRegion", false));
mFunctionStubs.glProgramBinary = reinterpret_cast<PFNGLPROGRAMBINARY>(gapic::GetGlesProcAddress("glProgramBinary", false));
mFunctionStubs.glProgramParameteri = reinterpret_cast<PFNGLPROGRAMPARAMETERI>(gapic::GetGlesProcAddress("glProgramParameteri", false));
mFunctionStubs.glProgramUniform1f = reinterpret_cast<PFNGLPROGRAMUNIFORM1F>(gapic::GetGlesProcAddress("glProgramUniform1f", false));
mFunctionStubs.glProgramUniform1fv = reinterpret_cast<PFNGLPROGRAMUNIFORM1FV>(gapic::GetGlesProcAddress("glProgramUniform1fv", false));
mFunctionStubs.glProgramUniform1i = reinterpret_cast<PFNGLPROGRAMUNIFORM1I>(gapic::GetGlesProcAddress("glProgramUniform1i", false));
mFunctionStubs.glProgramUniform1iv = reinterpret_cast<PFNGLPROGRAMUNIFORM1IV>(gapic::GetGlesProcAddress("glProgramUniform1iv", false));
mFunctionStubs.glProgramUniform1ui = reinterpret_cast<PFNGLPROGRAMUNIFORM1UI>(gapic::GetGlesProcAddress("glProgramUniform1ui", false));
mFunctionStubs.glProgramUniform1uiv = reinterpret_cast<PFNGLPROGRAMUNIFORM1UIV>(gapic::GetGlesProcAddress("glProgramUniform1uiv", false));
mFunctionStubs.glProgramUniform2f = reinterpret_cast<PFNGLPROGRAMUNIFORM2F>(gapic::GetGlesProcAddress("glProgramUniform2f", false));
mFunctionStubs.glProgramUniform2fv = reinterpret_cast<PFNGLPROGRAMUNIFORM2FV>(gapic::GetGlesProcAddress("glProgramUniform2fv", false));
mFunctionStubs.glProgramUniform2i = reinterpret_cast<PFNGLPROGRAMUNIFORM2I>(gapic::GetGlesProcAddress("glProgramUniform2i", false));
mFunctionStubs.glProgramUniform2iv = reinterpret_cast<PFNGLPROGRAMUNIFORM2IV>(gapic::GetGlesProcAddress("glProgramUniform2iv", false));
mFunctionStubs.glProgramUniform2ui = reinterpret_cast<PFNGLPROGRAMUNIFORM2UI>(gapic::GetGlesProcAddress("glProgramUniform2ui", false));
mFunctionStubs.glProgramUniform2uiv = reinterpret_cast<PFNGLPROGRAMUNIFORM2UIV>(gapic::GetGlesProcAddress("glProgramUniform2uiv", false));
mFunctionStubs.glProgramUniform3f = reinterpret_cast<PFNGLPROGRAMUNIFORM3F>(gapic::GetGlesProcAddress("glProgramUniform3f", false));
mFunctionStubs.glProgramUniform3fv = reinterpret_cast<PFNGLPROGRAMUNIFORM3FV>(gapic::GetGlesProcAddress("glProgramUniform3fv", false));
mFunctionStubs.glProgramUniform3i = reinterpret_cast<PFNGLPROGRAMUNIFORM3I>(gapic::GetGlesProcAddress("glProgramUniform3i", false));
mFunctionStubs.glProgramUniform3iv = reinterpret_cast<PFNGLPROGRAMUNIFORM3IV>(gapic::GetGlesProcAddress("glProgramUniform3iv", false));
mFunctionStubs.glProgramUniform3ui = reinterpret_cast<PFNGLPROGRAMUNIFORM3UI>(gapic::GetGlesProcAddress("glProgramUniform3ui", false));
mFunctionStubs.glProgramUniform3uiv = reinterpret_cast<PFNGLPROGRAMUNIFORM3UIV>(gapic::GetGlesProcAddress("glProgramUniform3uiv", false));
mFunctionStubs.glProgramUniform4f = reinterpret_cast<PFNGLPROGRAMUNIFORM4F>(gapic::GetGlesProcAddress("glProgramUniform4f", false));
mFunctionStubs.glProgramUniform4fv = reinterpret_cast<PFNGLPROGRAMUNIFORM4FV>(gapic::GetGlesProcAddress("glProgramUniform4fv", false));
mFunctionStubs.glProgramUniform4i = reinterpret_cast<PFNGLPROGRAMUNIFORM4I>(gapic::GetGlesProcAddress("glProgramUniform4i", false));
mFunctionStubs.glProgramUniform4iv = reinterpret_cast<PFNGLPROGRAMUNIFORM4IV>(gapic::GetGlesProcAddress("glProgramUniform4iv", false));
mFunctionStubs.glProgramUniform4ui = reinterpret_cast<PFNGLPROGRAMUNIFORM4UI>(gapic::GetGlesProcAddress("glProgramUniform4ui", false));
mFunctionStubs.glProgramUniform4uiv = reinterpret_cast<PFNGLPROGRAMUNIFORM4UIV>(gapic::GetGlesProcAddress("glProgramUniform4uiv", false));
mFunctionStubs.glProgramUniformMatrix2fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix2fv", false));
mFunctionStubs.glProgramUniformMatrix2x3fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X3FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix2x3fv", false));
mFunctionStubs.glProgramUniformMatrix2x4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X4FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix2x4fv", false));
mFunctionStubs.glProgramUniformMatrix3fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix3fv", false));
mFunctionStubs.glProgramUniformMatrix3x2fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X2FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix3x2fv", false));
mFunctionStubs.glProgramUniformMatrix3x4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X4FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix3x4fv", false));
mFunctionStubs.glProgramUniformMatrix4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix4fv", false));
mFunctionStubs.glProgramUniformMatrix4x2fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X2FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix4x2fv", false));
mFunctionStubs.glProgramUniformMatrix4x3fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X3FV>(gapic::GetGlesProcAddress("glProgramUniformMatrix4x3fv", false));
mFunctionStubs.glReleaseShaderCompiler = reinterpret_cast<PFNGLRELEASESHADERCOMPILER>(gapic::GetGlesProcAddress("glReleaseShaderCompiler", false));
mFunctionStubs.glShaderBinary = reinterpret_cast<PFNGLSHADERBINARY>(gapic::GetGlesProcAddress("glShaderBinary", false));
mFunctionStubs.glShaderSource = reinterpret_cast<PFNGLSHADERSOURCE>(gapic::GetGlesProcAddress("glShaderSource", false));
mFunctionStubs.glUniform1f = reinterpret_cast<PFNGLUNIFORM1F>(gapic::GetGlesProcAddress("glUniform1f", false));
mFunctionStubs.glUniform1fv = reinterpret_cast<PFNGLUNIFORM1FV>(gapic::GetGlesProcAddress("glUniform1fv", false));
mFunctionStubs.glUniform1i = reinterpret_cast<PFNGLUNIFORM1I>(gapic::GetGlesProcAddress("glUniform1i", false));
mFunctionStubs.glUniform1iv = reinterpret_cast<PFNGLUNIFORM1IV>(gapic::GetGlesProcAddress("glUniform1iv", false));
mFunctionStubs.glUniform1ui = reinterpret_cast<PFNGLUNIFORM1UI>(gapic::GetGlesProcAddress("glUniform1ui", false));
mFunctionStubs.glUniform1uiv = reinterpret_cast<PFNGLUNIFORM1UIV>(gapic::GetGlesProcAddress("glUniform1uiv", false));
mFunctionStubs.glUniform2f = reinterpret_cast<PFNGLUNIFORM2F>(gapic::GetGlesProcAddress("glUniform2f", false));
mFunctionStubs.glUniform2fv = reinterpret_cast<PFNGLUNIFORM2FV>(gapic::GetGlesProcAddress("glUniform2fv", false));
mFunctionStubs.glUniform2i = reinterpret_cast<PFNGLUNIFORM2I>(gapic::GetGlesProcAddress("glUniform2i", false));
mFunctionStubs.glUniform2iv = reinterpret_cast<PFNGLUNIFORM2IV>(gapic::GetGlesProcAddress("glUniform2iv", false));
mFunctionStubs.glUniform2ui = reinterpret_cast<PFNGLUNIFORM2UI>(gapic::GetGlesProcAddress("glUniform2ui", false));
mFunctionStubs.glUniform2uiv = reinterpret_cast<PFNGLUNIFORM2UIV>(gapic::GetGlesProcAddress("glUniform2uiv", false));
mFunctionStubs.glUniform3f = reinterpret_cast<PFNGLUNIFORM3F>(gapic::GetGlesProcAddress("glUniform3f", false));
mFunctionStubs.glUniform3fv = reinterpret_cast<PFNGLUNIFORM3FV>(gapic::GetGlesProcAddress("glUniform3fv", false));
mFunctionStubs.glUniform3i = reinterpret_cast<PFNGLUNIFORM3I>(gapic::GetGlesProcAddress("glUniform3i", false));
mFunctionStubs.glUniform3iv = reinterpret_cast<PFNGLUNIFORM3IV>(gapic::GetGlesProcAddress("glUniform3iv", false));
mFunctionStubs.glUniform3ui = reinterpret_cast<PFNGLUNIFORM3UI>(gapic::GetGlesProcAddress("glUniform3ui", false));
mFunctionStubs.glUniform3uiv = reinterpret_cast<PFNGLUNIFORM3UIV>(gapic::GetGlesProcAddress("glUniform3uiv", false));
mFunctionStubs.glUniform4f = reinterpret_cast<PFNGLUNIFORM4F>(gapic::GetGlesProcAddress("glUniform4f", false));
mFunctionStubs.glUniform4fv = reinterpret_cast<PFNGLUNIFORM4FV>(gapic::GetGlesProcAddress("glUniform4fv", false));
mFunctionStubs.glUniform4i = reinterpret_cast<PFNGLUNIFORM4I>(gapic::GetGlesProcAddress("glUniform4i", false));
mFunctionStubs.glUniform4iv = reinterpret_cast<PFNGLUNIFORM4IV>(gapic::GetGlesProcAddress("glUniform4iv", false));
mFunctionStubs.glUniform4ui = reinterpret_cast<PFNGLUNIFORM4UI>(gapic::GetGlesProcAddress("glUniform4ui", false));
mFunctionStubs.glUniform4uiv = reinterpret_cast<PFNGLUNIFORM4UIV>(gapic::GetGlesProcAddress("glUniform4uiv", false));
mFunctionStubs.glUniformBlockBinding = reinterpret_cast<PFNGLUNIFORMBLOCKBINDING>(gapic::GetGlesProcAddress("glUniformBlockBinding", false));
mFunctionStubs.glUniformMatrix2fv = reinterpret_cast<PFNGLUNIFORMMATRIX2FV>(gapic::GetGlesProcAddress("glUniformMatrix2fv", false));
mFunctionStubs.glUniformMatrix2x3fv = reinterpret_cast<PFNGLUNIFORMMATRIX2X3FV>(gapic::GetGlesProcAddress("glUniformMatrix2x3fv", false));
mFunctionStubs.glUniformMatrix2x4fv = reinterpret_cast<PFNGLUNIFORMMATRIX2X4FV>(gapic::GetGlesProcAddress("glUniformMatrix2x4fv", false));
mFunctionStubs.glUniformMatrix3fv = reinterpret_cast<PFNGLUNIFORMMATRIX3FV>(gapic::GetGlesProcAddress("glUniformMatrix3fv", false));
mFunctionStubs.glUniformMatrix3x2fv = reinterpret_cast<PFNGLUNIFORMMATRIX3X2FV>(gapic::GetGlesProcAddress("glUniformMatrix3x2fv", false));
mFunctionStubs.glUniformMatrix3x4fv = reinterpret_cast<PFNGLUNIFORMMATRIX3X4FV>(gapic::GetGlesProcAddress("glUniformMatrix3x4fv", false));
mFunctionStubs.glUniformMatrix4fv = reinterpret_cast<PFNGLUNIFORMMATRIX4FV>(gapic::GetGlesProcAddress("glUniformMatrix4fv", false));
mFunctionStubs.glUniformMatrix4x2fv = reinterpret_cast<PFNGLUNIFORMMATRIX4X2FV>(gapic::GetGlesProcAddress("glUniformMatrix4x2fv", false));
mFunctionStubs.glUniformMatrix4x3fv = reinterpret_cast<PFNGLUNIFORMMATRIX4X3FV>(gapic::GetGlesProcAddress("glUniformMatrix4x3fv", false));
mFunctionStubs.glUseProgram = reinterpret_cast<PFNGLUSEPROGRAM>(gapic::GetGlesProcAddress("glUseProgram", false));
mFunctionStubs.glUseProgramStages = reinterpret_cast<PFNGLUSEPROGRAMSTAGES>(gapic::GetGlesProcAddress("glUseProgramStages", false));
mFunctionStubs.glValidateProgram = reinterpret_cast<PFNGLVALIDATEPROGRAM>(gapic::GetGlesProcAddress("glValidateProgram", false));
mFunctionStubs.glValidateProgramPipeline = reinterpret_cast<PFNGLVALIDATEPROGRAMPIPELINE>(gapic::GetGlesProcAddress("glValidateProgramPipeline", false));
mFunctionStubs.glCullFace = reinterpret_cast<PFNGLCULLFACE>(gapic::GetGlesProcAddress("glCullFace", false));
mFunctionStubs.glDepthRangef = reinterpret_cast<PFNGLDEPTHRANGEF>(gapic::GetGlesProcAddress("glDepthRangef", false));
mFunctionStubs.glFrontFace = reinterpret_cast<PFNGLFRONTFACE>(gapic::GetGlesProcAddress("glFrontFace", false));
mFunctionStubs.glGetMultisamplefv = reinterpret_cast<PFNGLGETMULTISAMPLEFV>(gapic::GetGlesProcAddress("glGetMultisamplefv", false));
mFunctionStubs.glLineWidth = reinterpret_cast<PFNGLLINEWIDTH>(gapic::GetGlesProcAddress("glLineWidth", false));
mFunctionStubs.glMinSampleShading = reinterpret_cast<PFNGLMINSAMPLESHADING>(gapic::GetGlesProcAddress("glMinSampleShading", false));
mFunctionStubs.glPolygonOffset = reinterpret_cast<PFNGLPOLYGONOFFSET>(gapic::GetGlesProcAddress("glPolygonOffset", false));
mFunctionStubs.glViewport = reinterpret_cast<PFNGLVIEWPORT>(gapic::GetGlesProcAddress("glViewport", false));
mFunctionStubs.glGetBooleani_v = reinterpret_cast<PFNGLGETBOOLEANI_V>(gapic::GetGlesProcAddress("glGetBooleani_v", false));
mFunctionStubs.glGetBooleanv = reinterpret_cast<PFNGLGETBOOLEANV>(gapic::GetGlesProcAddress("glGetBooleanv", false));
mFunctionStubs.glGetFloatv = reinterpret_cast<PFNGLGETFLOATV>(gapic::GetGlesProcAddress("glGetFloatv", false));
mFunctionStubs.glGetInteger64i_v = reinterpret_cast<PFNGLGETINTEGER64I_V>(gapic::GetGlesProcAddress("glGetInteger64i_v", false));
mFunctionStubs.glGetInteger64v = reinterpret_cast<PFNGLGETINTEGER64V>(gapic::GetGlesProcAddress("glGetInteger64v", false));
mFunctionStubs.glGetIntegeri_v = reinterpret_cast<PFNGLGETINTEGERI_V>(gapic::GetGlesProcAddress("glGetIntegeri_v", false));
mFunctionStubs.glGetIntegerv = reinterpret_cast<PFNGLGETINTEGERV>(gapic::GetGlesProcAddress("glGetIntegerv", false));
mFunctionStubs.glGetInternalformativ = reinterpret_cast<PFNGLGETINTERNALFORMATIV>(gapic::GetGlesProcAddress("glGetInternalformativ", false));
mFunctionStubs.glGetString = reinterpret_cast<PFNGLGETSTRING>(gapic::GetGlesProcAddress("glGetString", false));
mFunctionStubs.glGetStringi = reinterpret_cast<PFNGLGETSTRINGI>(gapic::GetGlesProcAddress("glGetStringi", false));
mFunctionStubs.glIsEnabled = reinterpret_cast<PFNGLISENABLED>(gapic::GetGlesProcAddress("glIsEnabled", false));
mFunctionStubs.glIsEnabledi = reinterpret_cast<PFNGLISENABLEDI>(gapic::GetGlesProcAddress("glIsEnabledi", false));
mFunctionStubs.glClientWaitSync = reinterpret_cast<PFNGLCLIENTWAITSYNC>(gapic::GetGlesProcAddress("glClientWaitSync", false));
mFunctionStubs.glDeleteSync = reinterpret_cast<PFNGLDELETESYNC>(gapic::GetGlesProcAddress("glDeleteSync", false));
mFunctionStubs.glFenceSync = reinterpret_cast<PFNGLFENCESYNC>(gapic::GetGlesProcAddress("glFenceSync", false));
mFunctionStubs.glGetSynciv = reinterpret_cast<PFNGLGETSYNCIV>(gapic::GetGlesProcAddress("glGetSynciv", false));
mFunctionStubs.glIsSync = reinterpret_cast<PFNGLISSYNC>(gapic::GetGlesProcAddress("glIsSync", false));
mFunctionStubs.glWaitSync = reinterpret_cast<PFNGLWAITSYNC>(gapic::GetGlesProcAddress("glWaitSync", false));
mFunctionStubs.glActiveTexture = reinterpret_cast<PFNGLACTIVETEXTURE>(gapic::GetGlesProcAddress("glActiveTexture", false));
mFunctionStubs.glBindImageTexture = reinterpret_cast<PFNGLBINDIMAGETEXTURE>(gapic::GetGlesProcAddress("glBindImageTexture", false));
mFunctionStubs.glBindSampler = reinterpret_cast<PFNGLBINDSAMPLER>(gapic::GetGlesProcAddress("glBindSampler", false));
mFunctionStubs.glBindTexture = reinterpret_cast<PFNGLBINDTEXTURE>(gapic::GetGlesProcAddress("glBindTexture", false));
mFunctionStubs.glCompressedTexImage2D = reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE2D>(gapic::GetGlesProcAddress("glCompressedTexImage2D", false));
mFunctionStubs.glCompressedTexImage3D = reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE3D>(gapic::GetGlesProcAddress("glCompressedTexImage3D", false));
mFunctionStubs.glCompressedTexSubImage2D = reinterpret_cast<PFNGLCOMPRESSEDTEXSUBIMAGE2D>(gapic::GetGlesProcAddress("glCompressedTexSubImage2D", false));
mFunctionStubs.glCompressedTexSubImage3D = reinterpret_cast<PFNGLCOMPRESSEDTEXSUBIMAGE3D>(gapic::GetGlesProcAddress("glCompressedTexSubImage3D", false));
mFunctionStubs.glCopyImageSubData = reinterpret_cast<PFNGLCOPYIMAGESUBDATA>(gapic::GetGlesProcAddress("glCopyImageSubData", false));
mFunctionStubs.glCopyTexImage2D = reinterpret_cast<PFNGLCOPYTEXIMAGE2D>(gapic::GetGlesProcAddress("glCopyTexImage2D", false));
mFunctionStubs.glCopyTexSubImage2D = reinterpret_cast<PFNGLCOPYTEXSUBIMAGE2D>(gapic::GetGlesProcAddress("glCopyTexSubImage2D", false));
mFunctionStubs.glCopyTexSubImage3D = reinterpret_cast<PFNGLCOPYTEXSUBIMAGE3D>(gapic::GetGlesProcAddress("glCopyTexSubImage3D", false));
mFunctionStubs.glDeleteSamplers = reinterpret_cast<PFNGLDELETESAMPLERS>(gapic::GetGlesProcAddress("glDeleteSamplers", false));
mFunctionStubs.glDeleteTextures = reinterpret_cast<PFNGLDELETETEXTURES>(gapic::GetGlesProcAddress("glDeleteTextures", false));
mFunctionStubs.glGenSamplers = reinterpret_cast<PFNGLGENSAMPLERS>(gapic::GetGlesProcAddress("glGenSamplers", false));
mFunctionStubs.glGenTextures = reinterpret_cast<PFNGLGENTEXTURES>(gapic::GetGlesProcAddress("glGenTextures", false));
mFunctionStubs.glGenerateMipmap = reinterpret_cast<PFNGLGENERATEMIPMAP>(gapic::GetGlesProcAddress("glGenerateMipmap", false));
mFunctionStubs.glGetSamplerParameterIiv = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIIV>(gapic::GetGlesProcAddress("glGetSamplerParameterIiv", false));
mFunctionStubs.glGetSamplerParameterIuiv = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIUIV>(gapic::GetGlesProcAddress("glGetSamplerParameterIuiv", false));
mFunctionStubs.glGetSamplerParameterfv = reinterpret_cast<PFNGLGETSAMPLERPARAMETERFV>(gapic::GetGlesProcAddress("glGetSamplerParameterfv", false));
mFunctionStubs.glGetSamplerParameteriv = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIV>(gapic::GetGlesProcAddress("glGetSamplerParameteriv", false));
mFunctionStubs.glGetTexLevelParameterfv = reinterpret_cast<PFNGLGETTEXLEVELPARAMETERFV>(gapic::GetGlesProcAddress("glGetTexLevelParameterfv", false));
mFunctionStubs.glGetTexLevelParameteriv = reinterpret_cast<PFNGLGETTEXLEVELPARAMETERIV>(gapic::GetGlesProcAddress("glGetTexLevelParameteriv", false));
mFunctionStubs.glGetTexParameterIiv = reinterpret_cast<PFNGLGETTEXPARAMETERIIV>(gapic::GetGlesProcAddress("glGetTexParameterIiv", false));
mFunctionStubs.glGetTexParameterIuiv = reinterpret_cast<PFNGLGETTEXPARAMETERIUIV>(gapic::GetGlesProcAddress("glGetTexParameterIuiv", false));
mFunctionStubs.glGetTexParameterfv = reinterpret_cast<PFNGLGETTEXPARAMETERFV>(gapic::GetGlesProcAddress("glGetTexParameterfv", false));
mFunctionStubs.glGetTexParameteriv = reinterpret_cast<PFNGLGETTEXPARAMETERIV>(gapic::GetGlesProcAddress("glGetTexParameteriv", false));
mFunctionStubs.glIsSampler = reinterpret_cast<PFNGLISSAMPLER>(gapic::GetGlesProcAddress("glIsSampler", false));
mFunctionStubs.glIsTexture = reinterpret_cast<PFNGLISTEXTURE>(gapic::GetGlesProcAddress("glIsTexture", false));
mFunctionStubs.glPixelStorei = reinterpret_cast<PFNGLPIXELSTOREI>(gapic::GetGlesProcAddress("glPixelStorei", false));
mFunctionStubs.glSamplerParameterIiv = reinterpret_cast<PFNGLSAMPLERPARAMETERIIV>(gapic::GetGlesProcAddress("glSamplerParameterIiv", false));
mFunctionStubs.glSamplerParameterIuiv = reinterpret_cast<PFNGLSAMPLERPARAMETERIUIV>(gapic::GetGlesProcAddress("glSamplerParameterIuiv", false));
mFunctionStubs.glSamplerParameterf = reinterpret_cast<PFNGLSAMPLERPARAMETERF>(gapic::GetGlesProcAddress("glSamplerParameterf", false));
mFunctionStubs.glSamplerParameterfv = reinterpret_cast<PFNGLSAMPLERPARAMETERFV>(gapic::GetGlesProcAddress("glSamplerParameterfv", false));
mFunctionStubs.glSamplerParameteri = reinterpret_cast<PFNGLSAMPLERPARAMETERI>(gapic::GetGlesProcAddress("glSamplerParameteri", false));
mFunctionStubs.glSamplerParameteriv = reinterpret_cast<PFNGLSAMPLERPARAMETERIV>(gapic::GetGlesProcAddress("glSamplerParameteriv", false));
mFunctionStubs.glTexBuffer = reinterpret_cast<PFNGLTEXBUFFER>(gapic::GetGlesProcAddress("glTexBuffer", false));
mFunctionStubs.glTexBufferRange = reinterpret_cast<PFNGLTEXBUFFERRANGE>(gapic::GetGlesProcAddress("glTexBufferRange", false));
mFunctionStubs.glTexImage2D = reinterpret_cast<PFNGLTEXIMAGE2D>(gapic::GetGlesProcAddress("glTexImage2D", false));
mFunctionStubs.glTexImage3D = reinterpret_cast<PFNGLTEXIMAGE3D>(gapic::GetGlesProcAddress("glTexImage3D", false));
mFunctionStubs.glTexParameterIiv = reinterpret_cast<PFNGLTEXPARAMETERIIV>(gapic::GetGlesProcAddress("glTexParameterIiv", false));
mFunctionStubs.glTexParameterIuiv = reinterpret_cast<PFNGLTEXPARAMETERIUIV>(gapic::GetGlesProcAddress("glTexParameterIuiv", false));
mFunctionStubs.glTexParameterf = reinterpret_cast<PFNGLTEXPARAMETERF>(gapic::GetGlesProcAddress("glTexParameterf", false));
mFunctionStubs.glTexParameterfv = reinterpret_cast<PFNGLTEXPARAMETERFV>(gapic::GetGlesProcAddress("glTexParameterfv", false));
mFunctionStubs.glTexParameteri = reinterpret_cast<PFNGLTEXPARAMETERI>(gapic::GetGlesProcAddress("glTexParameteri", false));
mFunctionStubs.glTexParameteriv = reinterpret_cast<PFNGLTEXPARAMETERIV>(gapic::GetGlesProcAddress("glTexParameteriv", false));
mFunctionStubs.glTexStorage2D = reinterpret_cast<PFNGLTEXSTORAGE2D>(gapic::GetGlesProcAddress("glTexStorage2D", false));
mFunctionStubs.glTexStorage2DMultisample = reinterpret_cast<PFNGLTEXSTORAGE2DMULTISAMPLE>(gapic::GetGlesProcAddress("glTexStorage2DMultisample", false));
mFunctionStubs.glTexStorage3D = reinterpret_cast<PFNGLTEXSTORAGE3D>(gapic::GetGlesProcAddress("glTexStorage3D", false));
mFunctionStubs.glTexStorage3DMultisample = reinterpret_cast<PFNGLTEXSTORAGE3DMULTISAMPLE>(gapic::GetGlesProcAddress("glTexStorage3DMultisample", false));
mFunctionStubs.glTexSubImage2D = reinterpret_cast<PFNGLTEXSUBIMAGE2D>(gapic::GetGlesProcAddress("glTexSubImage2D", false));
mFunctionStubs.glTexSubImage3D = reinterpret_cast<PFNGLTEXSUBIMAGE3D>(gapic::GetGlesProcAddress("glTexSubImage3D", false));
mFunctionStubs.glBeginTransformFeedback = reinterpret_cast<PFNGLBEGINTRANSFORMFEEDBACK>(gapic::GetGlesProcAddress("glBeginTransformFeedback", false));
mFunctionStubs.glBindTransformFeedback = reinterpret_cast<PFNGLBINDTRANSFORMFEEDBACK>(gapic::GetGlesProcAddress("glBindTransformFeedback", false));
mFunctionStubs.glDeleteTransformFeedbacks = reinterpret_cast<PFNGLDELETETRANSFORMFEEDBACKS>(gapic::GetGlesProcAddress("glDeleteTransformFeedbacks", false));
mFunctionStubs.glEndTransformFeedback = reinterpret_cast<PFNGLENDTRANSFORMFEEDBACK>(gapic::GetGlesProcAddress("glEndTransformFeedback", false));
mFunctionStubs.glGenTransformFeedbacks = reinterpret_cast<PFNGLGENTRANSFORMFEEDBACKS>(gapic::GetGlesProcAddress("glGenTransformFeedbacks", false));
mFunctionStubs.glGetTransformFeedbackVarying = reinterpret_cast<PFNGLGETTRANSFORMFEEDBACKVARYING>(gapic::GetGlesProcAddress("glGetTransformFeedbackVarying", false));
mFunctionStubs.glIsTransformFeedback = reinterpret_cast<PFNGLISTRANSFORMFEEDBACK>(gapic::GetGlesProcAddress("glIsTransformFeedback", false));
mFunctionStubs.glPauseTransformFeedback = reinterpret_cast<PFNGLPAUSETRANSFORMFEEDBACK>(gapic::GetGlesProcAddress("glPauseTransformFeedback", false));
mFunctionStubs.glResumeTransformFeedback = reinterpret_cast<PFNGLRESUMETRANSFORMFEEDBACK>(gapic::GetGlesProcAddress("glResumeTransformFeedback", false));
mFunctionStubs.glTransformFeedbackVaryings = reinterpret_cast<PFNGLTRANSFORMFEEDBACKVARYINGS>(gapic::GetGlesProcAddress("glTransformFeedbackVaryings", false));
mFunctionStubs.glBindVertexArray = reinterpret_cast<PFNGLBINDVERTEXARRAY>(gapic::GetGlesProcAddress("glBindVertexArray", false));
mFunctionStubs.glBindVertexBuffer = reinterpret_cast<PFNGLBINDVERTEXBUFFER>(gapic::GetGlesProcAddress("glBindVertexBuffer", false));
mFunctionStubs.glDeleteVertexArrays = reinterpret_cast<PFNGLDELETEVERTEXARRAYS>(gapic::GetGlesProcAddress("glDeleteVertexArrays", false));
mFunctionStubs.glDisableVertexAttribArray = reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAY>(gapic::GetGlesProcAddress("glDisableVertexAttribArray", false));
mFunctionStubs.glEnableVertexAttribArray = reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAY>(gapic::GetGlesProcAddress("glEnableVertexAttribArray", false));
mFunctionStubs.glGenVertexArrays = reinterpret_cast<PFNGLGENVERTEXARRAYS>(gapic::GetGlesProcAddress("glGenVertexArrays", false));
mFunctionStubs.glGetVertexAttribIiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIIV>(gapic::GetGlesProcAddress("glGetVertexAttribIiv", false));
mFunctionStubs.glGetVertexAttribIuiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIUIV>(gapic::GetGlesProcAddress("glGetVertexAttribIuiv", false));
mFunctionStubs.glGetVertexAttribPointerv = reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERV>(gapic::GetGlesProcAddress("glGetVertexAttribPointerv", false));
mFunctionStubs.glGetVertexAttribfv = reinterpret_cast<PFNGLGETVERTEXATTRIBFV>(gapic::GetGlesProcAddress("glGetVertexAttribfv", false));
mFunctionStubs.glGetVertexAttribiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIV>(gapic::GetGlesProcAddress("glGetVertexAttribiv", false));
mFunctionStubs.glIsVertexArray = reinterpret_cast<PFNGLISVERTEXARRAY>(gapic::GetGlesProcAddress("glIsVertexArray", false));
mFunctionStubs.glVertexAttrib1f = reinterpret_cast<PFNGLVERTEXATTRIB1F>(gapic::GetGlesProcAddress("glVertexAttrib1f", false));
mFunctionStubs.glVertexAttrib1fv = reinterpret_cast<PFNGLVERTEXATTRIB1FV>(gapic::GetGlesProcAddress("glVertexAttrib1fv", false));
mFunctionStubs.glVertexAttrib2f = reinterpret_cast<PFNGLVERTEXATTRIB2F>(gapic::GetGlesProcAddress("glVertexAttrib2f", false));
mFunctionStubs.glVertexAttrib2fv = reinterpret_cast<PFNGLVERTEXATTRIB2FV>(gapic::GetGlesProcAddress("glVertexAttrib2fv", false));
mFunctionStubs.glVertexAttrib3f = reinterpret_cast<PFNGLVERTEXATTRIB3F>(gapic::GetGlesProcAddress("glVertexAttrib3f", false));
mFunctionStubs.glVertexAttrib3fv = reinterpret_cast<PFNGLVERTEXATTRIB3FV>(gapic::GetGlesProcAddress("glVertexAttrib3fv", false));
mFunctionStubs.glVertexAttrib4f = reinterpret_cast<PFNGLVERTEXATTRIB4F>(gapic::GetGlesProcAddress("glVertexAttrib4f", false));
mFunctionStubs.glVertexAttrib4fv = reinterpret_cast<PFNGLVERTEXATTRIB4FV>(gapic::GetGlesProcAddress("glVertexAttrib4fv", false));
mFunctionStubs.glVertexAttribBinding = reinterpret_cast<PFNGLVERTEXATTRIBBINDING>(gapic::GetGlesProcAddress("glVertexAttribBinding", false));
mFunctionStubs.glVertexAttribDivisor = reinterpret_cast<PFNGLVERTEXATTRIBDIVISOR>(gapic::GetGlesProcAddress("glVertexAttribDivisor", false));
mFunctionStubs.glVertexAttribFormat = reinterpret_cast<PFNGLVERTEXATTRIBFORMAT>(gapic::GetGlesProcAddress("glVertexAttribFormat", false));
mFunctionStubs.glVertexAttribI4i = reinterpret_cast<PFNGLVERTEXATTRIBI4I>(gapic::GetGlesProcAddress("glVertexAttribI4i", false));
mFunctionStubs.glVertexAttribI4iv = reinterpret_cast<PFNGLVERTEXATTRIBI4IV>(gapic::GetGlesProcAddress("glVertexAttribI4iv", false));
mFunctionStubs.glVertexAttribI4ui = reinterpret_cast<PFNGLVERTEXATTRIBI4UI>(gapic::GetGlesProcAddress("glVertexAttribI4ui", false));
mFunctionStubs.glVertexAttribI4uiv = reinterpret_cast<PFNGLVERTEXATTRIBI4UIV>(gapic::GetGlesProcAddress("glVertexAttribI4uiv", false));
mFunctionStubs.glVertexAttribIFormat = reinterpret_cast<PFNGLVERTEXATTRIBIFORMAT>(gapic::GetGlesProcAddress("glVertexAttribIFormat", false));
mFunctionStubs.glVertexAttribIPointer = reinterpret_cast<PFNGLVERTEXATTRIBIPOINTER>(gapic::GetGlesProcAddress("glVertexAttribIPointer", false));
mFunctionStubs.glVertexAttribPointer = reinterpret_cast<PFNGLVERTEXATTRIBPOINTER>(gapic::GetGlesProcAddress("glVertexAttribPointer", false));
mFunctionStubs.glVertexBindingDivisor = reinterpret_cast<PFNGLVERTEXBINDINGDIVISOR>(gapic::GetGlesProcAddress("glVertexBindingDivisor", false));
mFunctionStubs.glXCreateContext = reinterpret_cast<PFNGLXCREATECONTEXT>(gapic::GetGlesProcAddress("glXCreateContext", false));
mFunctionStubs.glXCreateNewContext = reinterpret_cast<PFNGLXCREATENEWCONTEXT>(gapic::GetGlesProcAddress("glXCreateNewContext", false));
mFunctionStubs.glXMakeContextCurrent = reinterpret_cast<PFNGLXMAKECONTEXTCURRENT>(gapic::GetGlesProcAddress("glXMakeContextCurrent", false));
mFunctionStubs.glXMakeCurrent = reinterpret_cast<PFNGLXMAKECURRENT>(gapic::GetGlesProcAddress("glXMakeCurrent", false));
mFunctionStubs.glXSwapBuffers = reinterpret_cast<PFNGLXSWAPBUFFERS>(gapic::GetGlesProcAddress("glXSwapBuffers", false));
mFunctionStubs.glXQueryDrawable = reinterpret_cast<PFNGLXQUERYDRAWABLE>(gapic::GetGlesProcAddress("glXQueryDrawable", false));
mFunctionStubs.wglCreateContext = reinterpret_cast<PFNWGLCREATECONTEXT>(gapic::GetGlesProcAddress("wglCreateContext", false));
mFunctionStubs.wglCreateContextAttribsARB = reinterpret_cast<PFNWGLCREATECONTEXTATTRIBSARB>(gapic::GetGlesProcAddress("wglCreateContextAttribsARB", false));
mFunctionStubs.wglMakeCurrent = reinterpret_cast<PFNWGLMAKECURRENT>(gapic::GetGlesProcAddress("wglMakeCurrent", false));
mFunctionStubs.wglSwapBuffers = reinterpret_cast<PFNWGLSWAPBUFFERS>(gapic::GetGlesProcAddress("wglSwapBuffers", false));
mFunctionStubs.CGLCreateContext = reinterpret_cast<PFNCGLCREATECONTEXT>(gapic::GetGlesProcAddress("CGLCreateContext", false));
mFunctionStubs.CGLSetCurrentContext = reinterpret_cast<PFNCGLSETCURRENTCONTEXT>(gapic::GetGlesProcAddress("CGLSetCurrentContext", false));
mFunctionStubs.CGLGetSurface = reinterpret_cast<PFNCGLGETSURFACE>(gapic::GetGlesProcAddress("CGLGetSurface", false));
mFunctionStubs.CGSGetSurfaceBounds = reinterpret_cast<PFNCGSGETSURFACEBOUNDS>(gapic::GetGlesProcAddress("CGSGetSurfaceBounds", false));
mFunctionStubs.CGLFlushDrawable = reinterpret_cast<PFNCGLFLUSHDRAWABLE>(gapic::GetGlesProcAddress("CGLFlushDrawable", false));
mFunctionStubs.glGetQueryObjecti64v = reinterpret_cast<PFNGLGETQUERYOBJECTI64V>(gapic::GetGlesProcAddress("glGetQueryObjecti64v", false));
mFunctionStubs.glGetQueryObjectui64v = reinterpret_cast<PFNGLGETQUERYOBJECTUI64V>(gapic::GetGlesProcAddress("glGetQueryObjectui64v", false));
mFunctionStubs.glTexStorage1D = reinterpret_cast<PFNGLTEXSTORAGE1D>(gapic::GetGlesProcAddress("glTexStorage1D", false));
mFunctionStubs.glBindFragDataLocation = reinterpret_cast<PFNGLBINDFRAGDATALOCATION>(gapic::GetGlesProcAddress("glBindFragDataLocation", false));
mFunctionStubs.glAlphaFunc = reinterpret_cast<PFNGLALPHAFUNC>(gapic::GetGlesProcAddress("glAlphaFunc", false));
mFunctionStubs.glAlphaFuncx = reinterpret_cast<PFNGLALPHAFUNCX>(gapic::GetGlesProcAddress("glAlphaFuncx", false));
mFunctionStubs.glAlphaFuncxOES = reinterpret_cast<PFNGLALPHAFUNCXOES>(gapic::GetGlesProcAddress("glAlphaFuncxOES", false));
mFunctionStubs.glBindFramebufferOES = reinterpret_cast<PFNGLBINDFRAMEBUFFEROES>(gapic::GetGlesProcAddress("glBindFramebufferOES", false));
mFunctionStubs.glBindRenderbufferOES = reinterpret_cast<PFNGLBINDRENDERBUFFEROES>(gapic::GetGlesProcAddress("glBindRenderbufferOES", false));
mFunctionStubs.glBlendEquationOES = reinterpret_cast<PFNGLBLENDEQUATIONOES>(gapic::GetGlesProcAddress("glBlendEquationOES", false));
mFunctionStubs.glBlendEquationSeparateOES = reinterpret_cast<PFNGLBLENDEQUATIONSEPARATEOES>(gapic::GetGlesProcAddress("glBlendEquationSeparateOES", false));
mFunctionStubs.glBlendFuncSeparateOES = reinterpret_cast<PFNGLBLENDFUNCSEPARATEOES>(gapic::GetGlesProcAddress("glBlendFuncSeparateOES", false));
mFunctionStubs.glCheckFramebufferStatusOES = reinterpret_cast<PFNGLCHECKFRAMEBUFFERSTATUSOES>(gapic::GetGlesProcAddress("glCheckFramebufferStatusOES", false));
mFunctionStubs.glClearColorx = reinterpret_cast<PFNGLCLEARCOLORX>(gapic::GetGlesProcAddress("glClearColorx", false));
mFunctionStubs.glClearColorxOES = reinterpret_cast<PFNGLCLEARCOLORXOES>(gapic::GetGlesProcAddress("glClearColorxOES", false));
mFunctionStubs.glClearDepthfOES = reinterpret_cast<PFNGLCLEARDEPTHFOES>(gapic::GetGlesProcAddress("glClearDepthfOES", false));
mFunctionStubs.glClearDepthx = reinterpret_cast<PFNGLCLEARDEPTHX>(gapic::GetGlesProcAddress("glClearDepthx", false));
mFunctionStubs.glClearDepthxOES = reinterpret_cast<PFNGLCLEARDEPTHXOES>(gapic::GetGlesProcAddress("glClearDepthxOES", false));
mFunctionStubs.glClientActiveTexture = reinterpret_cast<PFNGLCLIENTACTIVETEXTURE>(gapic::GetGlesProcAddress("glClientActiveTexture", false));
mFunctionStubs.glClipPlanef = reinterpret_cast<PFNGLCLIPPLANEF>(gapic::GetGlesProcAddress("glClipPlanef", false));
mFunctionStubs.glClipPlanefIMG = reinterpret_cast<PFNGLCLIPPLANEFIMG>(gapic::GetGlesProcAddress("glClipPlanefIMG", false));
mFunctionStubs.glClipPlanefOES = reinterpret_cast<PFNGLCLIPPLANEFOES>(gapic::GetGlesProcAddress("glClipPlanefOES", false));
mFunctionStubs.glClipPlanex = reinterpret_cast<PFNGLCLIPPLANEX>(gapic::GetGlesProcAddress("glClipPlanex", false));
mFunctionStubs.glClipPlanexIMG = reinterpret_cast<PFNGLCLIPPLANEXIMG>(gapic::GetGlesProcAddress("glClipPlanexIMG", false));
mFunctionStubs.glClipPlanexOES = reinterpret_cast<PFNGLCLIPPLANEXOES>(gapic::GetGlesProcAddress("glClipPlanexOES", false));
mFunctionStubs.glColor4f = reinterpret_cast<PFNGLCOLOR4F>(gapic::GetGlesProcAddress("glColor4f", false));
mFunctionStubs.glColor4ub = reinterpret_cast<PFNGLCOLOR4UB>(gapic::GetGlesProcAddress("glColor4ub", false));
mFunctionStubs.glColor4x = reinterpret_cast<PFNGLCOLOR4X>(gapic::GetGlesProcAddress("glColor4x", false));
mFunctionStubs.glColor4xOES = reinterpret_cast<PFNGLCOLOR4XOES>(gapic::GetGlesProcAddress("glColor4xOES", false));
mFunctionStubs.glColorPointer = reinterpret_cast<PFNGLCOLORPOINTER>(gapic::GetGlesProcAddress("glColorPointer", false));
mFunctionStubs.glCurrentPaletteMatrixOES = reinterpret_cast<PFNGLCURRENTPALETTEMATRIXOES>(gapic::GetGlesProcAddress("glCurrentPaletteMatrixOES", false));
mFunctionStubs.glDeleteFramebuffersOES = reinterpret_cast<PFNGLDELETEFRAMEBUFFERSOES>(gapic::GetGlesProcAddress("glDeleteFramebuffersOES", false));
mFunctionStubs.glDeleteRenderbuffersOES = reinterpret_cast<PFNGLDELETERENDERBUFFERSOES>(gapic::GetGlesProcAddress("glDeleteRenderbuffersOES", false));
mFunctionStubs.glDepthRangefOES = reinterpret_cast<PFNGLDEPTHRANGEFOES>(gapic::GetGlesProcAddress("glDepthRangefOES", false));
mFunctionStubs.glDepthRangex = reinterpret_cast<PFNGLDEPTHRANGEX>(gapic::GetGlesProcAddress("glDepthRangex", false));
mFunctionStubs.glDepthRangexOES = reinterpret_cast<PFNGLDEPTHRANGEXOES>(gapic::GetGlesProcAddress("glDepthRangexOES", false));
mFunctionStubs.glDisableClientState = reinterpret_cast<PFNGLDISABLECLIENTSTATE>(gapic::GetGlesProcAddress("glDisableClientState", false));
mFunctionStubs.glDrawTexfOES = reinterpret_cast<PFNGLDRAWTEXFOES>(gapic::GetGlesProcAddress("glDrawTexfOES", false));
mFunctionStubs.glDrawTexfvOES = reinterpret_cast<PFNGLDRAWTEXFVOES>(gapic::GetGlesProcAddress("glDrawTexfvOES", false));
mFunctionStubs.glDrawTexiOES = reinterpret_cast<PFNGLDRAWTEXIOES>(gapic::GetGlesProcAddress("glDrawTexiOES", false));
mFunctionStubs.glDrawTexivOES = reinterpret_cast<PFNGLDRAWTEXIVOES>(gapic::GetGlesProcAddress("glDrawTexivOES", false));
mFunctionStubs.glDrawTexsOES = reinterpret_cast<PFNGLDRAWTEXSOES>(gapic::GetGlesProcAddress("glDrawTexsOES", false));
mFunctionStubs.glDrawTexsvOES = reinterpret_cast<PFNGLDRAWTEXSVOES>(gapic::GetGlesProcAddress("glDrawTexsvOES", false));
mFunctionStubs.glDrawTexxOES = reinterpret_cast<PFNGLDRAWTEXXOES>(gapic::GetGlesProcAddress("glDrawTexxOES", false));
mFunctionStubs.glDrawTexxvOES = reinterpret_cast<PFNGLDRAWTEXXVOES>(gapic::GetGlesProcAddress("glDrawTexxvOES", false));
mFunctionStubs.glEnableClientState = reinterpret_cast<PFNGLENABLECLIENTSTATE>(gapic::GetGlesProcAddress("glEnableClientState", false));
mFunctionStubs.glFogf = reinterpret_cast<PFNGLFOGF>(gapic::GetGlesProcAddress("glFogf", false));
mFunctionStubs.glFogfv = reinterpret_cast<PFNGLFOGFV>(gapic::GetGlesProcAddress("glFogfv", false));
mFunctionStubs.glFogx = reinterpret_cast<PFNGLFOGX>(gapic::GetGlesProcAddress("glFogx", false));
mFunctionStubs.glFogxOES = reinterpret_cast<PFNGLFOGXOES>(gapic::GetGlesProcAddress("glFogxOES", false));
mFunctionStubs.glFogxv = reinterpret_cast<PFNGLFOGXV>(gapic::GetGlesProcAddress("glFogxv", false));
mFunctionStubs.glFogxvOES = reinterpret_cast<PFNGLFOGXVOES>(gapic::GetGlesProcAddress("glFogxvOES", false));
mFunctionStubs.glFramebufferRenderbufferOES = reinterpret_cast<PFNGLFRAMEBUFFERRENDERBUFFEROES>(gapic::GetGlesProcAddress("glFramebufferRenderbufferOES", false));
mFunctionStubs.glFramebufferTexture2DOES = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE2DOES>(gapic::GetGlesProcAddress("glFramebufferTexture2DOES", false));
mFunctionStubs.glFrustumf = reinterpret_cast<PFNGLFRUSTUMF>(gapic::GetGlesProcAddress("glFrustumf", false));
mFunctionStubs.glFrustumfOES = reinterpret_cast<PFNGLFRUSTUMFOES>(gapic::GetGlesProcAddress("glFrustumfOES", false));
mFunctionStubs.glFrustumx = reinterpret_cast<PFNGLFRUSTUMX>(gapic::GetGlesProcAddress("glFrustumx", false));
mFunctionStubs.glFrustumxOES = reinterpret_cast<PFNGLFRUSTUMXOES>(gapic::GetGlesProcAddress("glFrustumxOES", false));
mFunctionStubs.glGenFramebuffersOES = reinterpret_cast<PFNGLGENFRAMEBUFFERSOES>(gapic::GetGlesProcAddress("glGenFramebuffersOES", false));
mFunctionStubs.glGenRenderbuffersOES = reinterpret_cast<PFNGLGENRENDERBUFFERSOES>(gapic::GetGlesProcAddress("glGenRenderbuffersOES", false));
mFunctionStubs.glGenerateMipmapOES = reinterpret_cast<PFNGLGENERATEMIPMAPOES>(gapic::GetGlesProcAddress("glGenerateMipmapOES", false));
mFunctionStubs.glGetClipPlanef = reinterpret_cast<PFNGLGETCLIPPLANEF>(gapic::GetGlesProcAddress("glGetClipPlanef", false));
mFunctionStubs.glGetClipPlanefOES = reinterpret_cast<PFNGLGETCLIPPLANEFOES>(gapic::GetGlesProcAddress("glGetClipPlanefOES", false));
mFunctionStubs.glGetClipPlanex = reinterpret_cast<PFNGLGETCLIPPLANEX>(gapic::GetGlesProcAddress("glGetClipPlanex", false));
mFunctionStubs.glGetClipPlanexOES = reinterpret_cast<PFNGLGETCLIPPLANEXOES>(gapic::GetGlesProcAddress("glGetClipPlanexOES", false));
mFunctionStubs.glGetFixedv = reinterpret_cast<PFNGLGETFIXEDV>(gapic::GetGlesProcAddress("glGetFixedv", false));
mFunctionStubs.glGetFixedvOES = reinterpret_cast<PFNGLGETFIXEDVOES>(gapic::GetGlesProcAddress("glGetFixedvOES", false));
mFunctionStubs.glGetFramebufferAttachmentParameterivOES = reinterpret_cast<PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOES>(gapic::GetGlesProcAddress("glGetFramebufferAttachmentParameterivOES", false));
mFunctionStubs.glGetLightfv = reinterpret_cast<PFNGLGETLIGHTFV>(gapic::GetGlesProcAddress("glGetLightfv", false));
mFunctionStubs.glGetLightxv = reinterpret_cast<PFNGLGETLIGHTXV>(gapic::GetGlesProcAddress("glGetLightxv", false));
mFunctionStubs.glGetLightxvOES = reinterpret_cast<PFNGLGETLIGHTXVOES>(gapic::GetGlesProcAddress("glGetLightxvOES", false));
mFunctionStubs.glGetMaterialfv = reinterpret_cast<PFNGLGETMATERIALFV>(gapic::GetGlesProcAddress("glGetMaterialfv", false));
mFunctionStubs.glGetMaterialxv = reinterpret_cast<PFNGLGETMATERIALXV>(gapic::GetGlesProcAddress("glGetMaterialxv", false));
mFunctionStubs.glGetMaterialxvOES = reinterpret_cast<PFNGLGETMATERIALXVOES>(gapic::GetGlesProcAddress("glGetMaterialxvOES", false));
mFunctionStubs.glGetRenderbufferParameterivOES = reinterpret_cast<PFNGLGETRENDERBUFFERPARAMETERIVOES>(gapic::GetGlesProcAddress("glGetRenderbufferParameterivOES", false));
mFunctionStubs.glGetTexEnvfv = reinterpret_cast<PFNGLGETTEXENVFV>(gapic::GetGlesProcAddress("glGetTexEnvfv", false));
mFunctionStubs.glGetTexEnviv = reinterpret_cast<PFNGLGETTEXENVIV>(gapic::GetGlesProcAddress("glGetTexEnviv", false));
mFunctionStubs.glGetTexEnvxv = reinterpret_cast<PFNGLGETTEXENVXV>(gapic::GetGlesProcAddress("glGetTexEnvxv", false));
mFunctionStubs.glGetTexEnvxvOES = reinterpret_cast<PFNGLGETTEXENVXVOES>(gapic::GetGlesProcAddress("glGetTexEnvxvOES", false));
mFunctionStubs.glGetTexGenfvOES = reinterpret_cast<PFNGLGETTEXGENFVOES>(gapic::GetGlesProcAddress("glGetTexGenfvOES", false));
mFunctionStubs.glGetTexGenivOES = reinterpret_cast<PFNGLGETTEXGENIVOES>(gapic::GetGlesProcAddress("glGetTexGenivOES", false));
mFunctionStubs.glGetTexGenxvOES = reinterpret_cast<PFNGLGETTEXGENXVOES>(gapic::GetGlesProcAddress("glGetTexGenxvOES", false));
mFunctionStubs.glGetTexParameterxv = reinterpret_cast<PFNGLGETTEXPARAMETERXV>(gapic::GetGlesProcAddress("glGetTexParameterxv", false));
mFunctionStubs.glGetTexParameterxvOES = reinterpret_cast<PFNGLGETTEXPARAMETERXVOES>(gapic::GetGlesProcAddress("glGetTexParameterxvOES", false));
mFunctionStubs.glIsFramebufferOES = reinterpret_cast<PFNGLISFRAMEBUFFEROES>(gapic::GetGlesProcAddress("glIsFramebufferOES", false));
mFunctionStubs.glIsRenderbufferOES = reinterpret_cast<PFNGLISRENDERBUFFEROES>(gapic::GetGlesProcAddress("glIsRenderbufferOES", false));
mFunctionStubs.glLightModelf = reinterpret_cast<PFNGLLIGHTMODELF>(gapic::GetGlesProcAddress("glLightModelf", false));
mFunctionStubs.glLightModelfv = reinterpret_cast<PFNGLLIGHTMODELFV>(gapic::GetGlesProcAddress("glLightModelfv", false));
mFunctionStubs.glLightModelx = reinterpret_cast<PFNGLLIGHTMODELX>(gapic::GetGlesProcAddress("glLightModelx", false));
mFunctionStubs.glLightModelxOES = reinterpret_cast<PFNGLLIGHTMODELXOES>(gapic::GetGlesProcAddress("glLightModelxOES", false));
mFunctionStubs.glLightModelxv = reinterpret_cast<PFNGLLIGHTMODELXV>(gapic::GetGlesProcAddress("glLightModelxv", false));
mFunctionStubs.glLightModelxvOES = reinterpret_cast<PFNGLLIGHTMODELXVOES>(gapic::GetGlesProcAddress("glLightModelxvOES", false));
mFunctionStubs.glLightf = reinterpret_cast<PFNGLLIGHTF>(gapic::GetGlesProcAddress("glLightf", false));
mFunctionStubs.glLightfv = reinterpret_cast<PFNGLLIGHTFV>(gapic::GetGlesProcAddress("glLightfv", false));
mFunctionStubs.glLightx = reinterpret_cast<PFNGLLIGHTX>(gapic::GetGlesProcAddress("glLightx", false));
mFunctionStubs.glLightxOES = reinterpret_cast<PFNGLLIGHTXOES>(gapic::GetGlesProcAddress("glLightxOES", false));
mFunctionStubs.glLightxv = reinterpret_cast<PFNGLLIGHTXV>(gapic::GetGlesProcAddress("glLightxv", false));
mFunctionStubs.glLightxvOES = reinterpret_cast<PFNGLLIGHTXVOES>(gapic::GetGlesProcAddress("glLightxvOES", false));
mFunctionStubs.glLineWidthx = reinterpret_cast<PFNGLLINEWIDTHX>(gapic::GetGlesProcAddress("glLineWidthx", false));
mFunctionStubs.glLineWidthxOES = reinterpret_cast<PFNGLLINEWIDTHXOES>(gapic::GetGlesProcAddress("glLineWidthxOES", false));
mFunctionStubs.glLoadIdentity = reinterpret_cast<PFNGLLOADIDENTITY>(gapic::GetGlesProcAddress("glLoadIdentity", false));
mFunctionStubs.glLoadMatrixf = reinterpret_cast<PFNGLLOADMATRIXF>(gapic::GetGlesProcAddress("glLoadMatrixf", false));
mFunctionStubs.glLoadMatrixx = reinterpret_cast<PFNGLLOADMATRIXX>(gapic::GetGlesProcAddress("glLoadMatrixx", false));
mFunctionStubs.glLoadMatrixxOES = reinterpret_cast<PFNGLLOADMATRIXXOES>(gapic::GetGlesProcAddress("glLoadMatrixxOES", false));
mFunctionStubs.glLoadPaletteFromModelViewMatrixOES = reinterpret_cast<PFNGLLOADPALETTEFROMMODELVIEWMATRIXOES>(gapic::GetGlesProcAddress("glLoadPaletteFromModelViewMatrixOES", false));
mFunctionStubs.glLogicOp = reinterpret_cast<PFNGLLOGICOP>(gapic::GetGlesProcAddress("glLogicOp", false));
mFunctionStubs.glMaterialf = reinterpret_cast<PFNGLMATERIALF>(gapic::GetGlesProcAddress("glMaterialf", false));
mFunctionStubs.glMaterialfv = reinterpret_cast<PFNGLMATERIALFV>(gapic::GetGlesProcAddress("glMaterialfv", false));
mFunctionStubs.glMaterialx = reinterpret_cast<PFNGLMATERIALX>(gapic::GetGlesProcAddress("glMaterialx", false));
mFunctionStubs.glMaterialxOES = reinterpret_cast<PFNGLMATERIALXOES>(gapic::GetGlesProcAddress("glMaterialxOES", false));
mFunctionStubs.glMaterialxv = reinterpret_cast<PFNGLMATERIALXV>(gapic::GetGlesProcAddress("glMaterialxv", false));
mFunctionStubs.glMaterialxvOES = reinterpret_cast<PFNGLMATERIALXVOES>(gapic::GetGlesProcAddress("glMaterialxvOES", false));
mFunctionStubs.glMatrixIndexPointerOES = reinterpret_cast<PFNGLMATRIXINDEXPOINTEROES>(gapic::GetGlesProcAddress("glMatrixIndexPointerOES", false));
mFunctionStubs.glMatrixMode = reinterpret_cast<PFNGLMATRIXMODE>(gapic::GetGlesProcAddress("glMatrixMode", false));
mFunctionStubs.glMultMatrixf = reinterpret_cast<PFNGLMULTMATRIXF>(gapic::GetGlesProcAddress("glMultMatrixf", false));
mFunctionStubs.glMultMatrixx = reinterpret_cast<PFNGLMULTMATRIXX>(gapic::GetGlesProcAddress("glMultMatrixx", false));
mFunctionStubs.glMultMatrixxOES = reinterpret_cast<PFNGLMULTMATRIXXOES>(gapic::GetGlesProcAddress("glMultMatrixxOES", false));
mFunctionStubs.glMultiTexCoord4f = reinterpret_cast<PFNGLMULTITEXCOORD4F>(gapic::GetGlesProcAddress("glMultiTexCoord4f", false));
mFunctionStubs.glMultiTexCoord4x = reinterpret_cast<PFNGLMULTITEXCOORD4X>(gapic::GetGlesProcAddress("glMultiTexCoord4x", false));
mFunctionStubs.glMultiTexCoord4xOES = reinterpret_cast<PFNGLMULTITEXCOORD4XOES>(gapic::GetGlesProcAddress("glMultiTexCoord4xOES", false));
mFunctionStubs.glNormal3f = reinterpret_cast<PFNGLNORMAL3F>(gapic::GetGlesProcAddress("glNormal3f", false));
mFunctionStubs.glNormal3x = reinterpret_cast<PFNGLNORMAL3X>(gapic::GetGlesProcAddress("glNormal3x", false));
mFunctionStubs.glNormal3xOES = reinterpret_cast<PFNGLNORMAL3XOES>(gapic::GetGlesProcAddress("glNormal3xOES", false));
mFunctionStubs.glNormalPointer = reinterpret_cast<PFNGLNORMALPOINTER>(gapic::GetGlesProcAddress("glNormalPointer", false));
mFunctionStubs.glOrthof = reinterpret_cast<PFNGLORTHOF>(gapic::GetGlesProcAddress("glOrthof", false));
mFunctionStubs.glOrthofOES = reinterpret_cast<PFNGLORTHOFOES>(gapic::GetGlesProcAddress("glOrthofOES", false));
mFunctionStubs.glOrthox = reinterpret_cast<PFNGLORTHOX>(gapic::GetGlesProcAddress("glOrthox", false));
mFunctionStubs.glOrthoxOES = reinterpret_cast<PFNGLORTHOXOES>(gapic::GetGlesProcAddress("glOrthoxOES", false));
mFunctionStubs.glPointParameterf = reinterpret_cast<PFNGLPOINTPARAMETERF>(gapic::GetGlesProcAddress("glPointParameterf", false));
mFunctionStubs.glPointParameterfv = reinterpret_cast<PFNGLPOINTPARAMETERFV>(gapic::GetGlesProcAddress("glPointParameterfv", false));
mFunctionStubs.glPointParameterx = reinterpret_cast<PFNGLPOINTPARAMETERX>(gapic::GetGlesProcAddress("glPointParameterx", false));
mFunctionStubs.glPointParameterxOES = reinterpret_cast<PFNGLPOINTPARAMETERXOES>(gapic::GetGlesProcAddress("glPointParameterxOES", false));
mFunctionStubs.glPointParameterxv = reinterpret_cast<PFNGLPOINTPARAMETERXV>(gapic::GetGlesProcAddress("glPointParameterxv", false));
mFunctionStubs.glPointParameterxvOES = reinterpret_cast<PFNGLPOINTPARAMETERXVOES>(gapic::GetGlesProcAddress("glPointParameterxvOES", false));
mFunctionStubs.glPointSize = reinterpret_cast<PFNGLPOINTSIZE>(gapic::GetGlesProcAddress("glPointSize", false));
mFunctionStubs.glPointSizePointerOES = reinterpret_cast<PFNGLPOINTSIZEPOINTEROES>(gapic::GetGlesProcAddress("glPointSizePointerOES", false));
mFunctionStubs.glPointSizex = reinterpret_cast<PFNGLPOINTSIZEX>(gapic::GetGlesProcAddress("glPointSizex", false));
mFunctionStubs.glPointSizexOES = reinterpret_cast<PFNGLPOINTSIZEXOES>(gapic::GetGlesProcAddress("glPointSizexOES", false));
mFunctionStubs.glPolygonOffsetx = reinterpret_cast<PFNGLPOLYGONOFFSETX>(gapic::GetGlesProcAddress("glPolygonOffsetx", false));
mFunctionStubs.glPolygonOffsetxOES = reinterpret_cast<PFNGLPOLYGONOFFSETXOES>(gapic::GetGlesProcAddress("glPolygonOffsetxOES", false));
mFunctionStubs.glPopMatrix = reinterpret_cast<PFNGLPOPMATRIX>(gapic::GetGlesProcAddress("glPopMatrix", false));
mFunctionStubs.glPushMatrix = reinterpret_cast<PFNGLPUSHMATRIX>(gapic::GetGlesProcAddress("glPushMatrix", false));
mFunctionStubs.glQueryMatrixxOES = reinterpret_cast<PFNGLQUERYMATRIXXOES>(gapic::GetGlesProcAddress("glQueryMatrixxOES", false));
mFunctionStubs.glRenderbufferStorageOES = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEOES>(gapic::GetGlesProcAddress("glRenderbufferStorageOES", false));
mFunctionStubs.glRotatef = reinterpret_cast<PFNGLROTATEF>(gapic::GetGlesProcAddress("glRotatef", false));
mFunctionStubs.glRotatex = reinterpret_cast<PFNGLROTATEX>(gapic::GetGlesProcAddress("glRotatex", false));
mFunctionStubs.glRotatexOES = reinterpret_cast<PFNGLROTATEXOES>(gapic::GetGlesProcAddress("glRotatexOES", false));
mFunctionStubs.glSampleCoveragex = reinterpret_cast<PFNGLSAMPLECOVERAGEX>(gapic::GetGlesProcAddress("glSampleCoveragex", false));
mFunctionStubs.glSampleCoveragexOES = reinterpret_cast<PFNGLSAMPLECOVERAGEXOES>(gapic::GetGlesProcAddress("glSampleCoveragexOES", false));
mFunctionStubs.glScalef = reinterpret_cast<PFNGLSCALEF>(gapic::GetGlesProcAddress("glScalef", false));
mFunctionStubs.glScalex = reinterpret_cast<PFNGLSCALEX>(gapic::GetGlesProcAddress("glScalex", false));
mFunctionStubs.glScalexOES = reinterpret_cast<PFNGLSCALEXOES>(gapic::GetGlesProcAddress("glScalexOES", false));
mFunctionStubs.glShadeModel = reinterpret_cast<PFNGLSHADEMODEL>(gapic::GetGlesProcAddress("glShadeModel", false));
mFunctionStubs.glTexCoordPointer = reinterpret_cast<PFNGLTEXCOORDPOINTER>(gapic::GetGlesProcAddress("glTexCoordPointer", false));
mFunctionStubs.glTexEnvf = reinterpret_cast<PFNGLTEXENVF>(gapic::GetGlesProcAddress("glTexEnvf", false));
mFunctionStubs.glTexEnvfv = reinterpret_cast<PFNGLTEXENVFV>(gapic::GetGlesProcAddress("glTexEnvfv", false));
mFunctionStubs.glTexEnvi = reinterpret_cast<PFNGLTEXENVI>(gapic::GetGlesProcAddress("glTexEnvi", false));
mFunctionStubs.glTexEnviv = reinterpret_cast<PFNGLTEXENVIV>(gapic::GetGlesProcAddress("glTexEnviv", false));
mFunctionStubs.glTexEnvx = reinterpret_cast<PFNGLTEXENVX>(gapic::GetGlesProcAddress("glTexEnvx", false));
mFunctionStubs.glTexEnvxOES = reinterpret_cast<PFNGLTEXENVXOES>(gapic::GetGlesProcAddress("glTexEnvxOES", false));
mFunctionStubs.glTexEnvxv = reinterpret_cast<PFNGLTEXENVXV>(gapic::GetGlesProcAddress("glTexEnvxv", false));
mFunctionStubs.glTexEnvxvOES = reinterpret_cast<PFNGLTEXENVXVOES>(gapic::GetGlesProcAddress("glTexEnvxvOES", false));
mFunctionStubs.glTexGenfOES = reinterpret_cast<PFNGLTEXGENFOES>(gapic::GetGlesProcAddress("glTexGenfOES", false));
mFunctionStubs.glTexGenfvOES = reinterpret_cast<PFNGLTEXGENFVOES>(gapic::GetGlesProcAddress("glTexGenfvOES", false));
mFunctionStubs.glTexGeniOES = reinterpret_cast<PFNGLTEXGENIOES>(gapic::GetGlesProcAddress("glTexGeniOES", false));
mFunctionStubs.glTexGenivOES = reinterpret_cast<PFNGLTEXGENIVOES>(gapic::GetGlesProcAddress("glTexGenivOES", false));
mFunctionStubs.glTexGenxOES = reinterpret_cast<PFNGLTEXGENXOES>(gapic::GetGlesProcAddress("glTexGenxOES", false));
mFunctionStubs.glTexGenxvOES = reinterpret_cast<PFNGLTEXGENXVOES>(gapic::GetGlesProcAddress("glTexGenxvOES", false));
mFunctionStubs.glTexParameterx = reinterpret_cast<PFNGLTEXPARAMETERX>(gapic::GetGlesProcAddress("glTexParameterx", false));
mFunctionStubs.glTexParameterxOES = reinterpret_cast<PFNGLTEXPARAMETERXOES>(gapic::GetGlesProcAddress("glTexParameterxOES", false));
mFunctionStubs.glTexParameterxv = reinterpret_cast<PFNGLTEXPARAMETERXV>(gapic::GetGlesProcAddress("glTexParameterxv", false));
mFunctionStubs.glTexParameterxvOES = reinterpret_cast<PFNGLTEXPARAMETERXVOES>(gapic::GetGlesProcAddress("glTexParameterxvOES", false));
mFunctionStubs.glTranslatef = reinterpret_cast<PFNGLTRANSLATEF>(gapic::GetGlesProcAddress("glTranslatef", false));
mFunctionStubs.glTranslatex = reinterpret_cast<PFNGLTRANSLATEX>(gapic::GetGlesProcAddress("glTranslatex", false));
mFunctionStubs.glTranslatexOES = reinterpret_cast<PFNGLTRANSLATEXOES>(gapic::GetGlesProcAddress("glTranslatexOES", false));
mFunctionStubs.glVertexPointer = reinterpret_cast<PFNGLVERTEXPOINTER>(gapic::GetGlesProcAddress("glVertexPointer", false));
mFunctionStubs.glWeightPointerOES = reinterpret_cast<PFNGLWEIGHTPOINTEROES>(gapic::GetGlesProcAddress("glWeightPointerOES", false));
mFunctionStubs.glColorPointerBounds = reinterpret_cast<PFNGLCOLORPOINTERBOUNDS>(gapic::GetGlesProcAddress("glColorPointerBounds", false));
mFunctionStubs.glNormalPointerBounds = reinterpret_cast<PFNGLNORMALPOINTERBOUNDS>(gapic::GetGlesProcAddress("glNormalPointerBounds", false));
mFunctionStubs.glTexCoordPointerBounds = reinterpret_cast<PFNGLTEXCOORDPOINTERBOUNDS>(gapic::GetGlesProcAddress("glTexCoordPointerBounds", false));
mFunctionStubs.glVertexPointerBounds = reinterpret_cast<PFNGLVERTEXPOINTERBOUNDS>(gapic::GetGlesProcAddress("glVertexPointerBounds", false));
mFunctionStubs.glPointSizePointerOESBounds = reinterpret_cast<PFNGLPOINTSIZEPOINTEROESBOUNDS>(gapic::GetGlesProcAddress("glPointSizePointerOESBounds", false));
mFunctionStubs.glMatrixIndexPointerOESBounds = reinterpret_cast<PFNGLMATRIXINDEXPOINTEROESBOUNDS>(gapic::GetGlesProcAddress("glMatrixIndexPointerOESBounds", false));
mFunctionStubs.glWeightPointerOESBounds = reinterpret_cast<PFNGLWEIGHTPOINTEROESBOUNDS>(gapic::GetGlesProcAddress("glWeightPointerOESBounds", false));
}
const char* Gles::id() const {
return ID;
}
uint8_t Gles::index() const {
return INDEX;
}
bool Gles::callGlBlendBarrierKHR(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glBlendBarrierKHR()");
if (mFunctionStubs.glBlendBarrierKHR != nullptr) {
mFunctionStubs.glBlendBarrierKHR();
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendBarrierKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendBarrierKHR");
return false;
}
}
bool Gles::callGlBlendEquationSeparateiEXT(Stack* stack, bool pushReturn) {
auto modeAlpha = stack->pop<GLenum>();
auto modeRGB = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationSeparateiEXT(%" PRIu32 ", %u, %u)", buf, modeRGB, modeAlpha);
if (mFunctionStubs.glBlendEquationSeparateiEXT != nullptr) {
mFunctionStubs.glBlendEquationSeparateiEXT(buf, modeRGB, modeAlpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationSeparateiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationSeparateiEXT");
return false;
}
}
bool Gles::callGlBlendEquationiEXT(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationiEXT(%" PRIu32 ", %u)", buf, mode);
if (mFunctionStubs.glBlendEquationiEXT != nullptr) {
mFunctionStubs.glBlendEquationiEXT(buf, mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationiEXT");
return false;
}
}
bool Gles::callGlBlendFuncSeparateiEXT(Stack* stack, bool pushReturn) {
auto dstAlpha = stack->pop<GLenum>();
auto srcAlpha = stack->pop<GLenum>();
auto dstRGB = stack->pop<GLenum>();
auto srcRGB = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendFuncSeparateiEXT(%" PRIu32 ", %u, %u, %u, %u)", buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
if (mFunctionStubs.glBlendFuncSeparateiEXT != nullptr) {
mFunctionStubs.glBlendFuncSeparateiEXT(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFuncSeparateiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFuncSeparateiEXT");
return false;
}
}
bool Gles::callGlBlendFunciEXT(Stack* stack, bool pushReturn) {
auto dst = stack->pop<GLenum>();
auto src = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendFunciEXT(%" PRIu32 ", %u, %u)", buf, src, dst);
if (mFunctionStubs.glBlendFunciEXT != nullptr) {
mFunctionStubs.glBlendFunciEXT(buf, src, dst);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFunciEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFunciEXT");
return false;
}
}
bool Gles::callGlColorMaskiEXT(Stack* stack, bool pushReturn) {
auto a = stack->pop<uint8_t>();
auto b = stack->pop<uint8_t>();
auto g = stack->pop<uint8_t>();
auto r = stack->pop<uint8_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glColorMaskiEXT(%" PRIu32 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ")", index, r, g, b, a);
if (mFunctionStubs.glColorMaskiEXT != nullptr) {
mFunctionStubs.glColorMaskiEXT(index, r, g, b, a);
} else {
GAPID_WARNING("Attempted to call unsupported function glColorMaskiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColorMaskiEXT");
return false;
}
}
bool Gles::callGlCopyImageSubDataEXT(Stack* stack, bool pushReturn) {
auto srcDepth = stack->pop<int32_t>();
auto srcHeight = stack->pop<int32_t>();
auto srcWidth = stack->pop<int32_t>();
auto dstZ = stack->pop<int32_t>();
auto dstY = stack->pop<int32_t>();
auto dstX = stack->pop<int32_t>();
auto dstLevel = stack->pop<int32_t>();
auto dstTarget = stack->pop<GLenum>();
auto dstName = stack->pop<uint32_t>();
auto srcZ = stack->pop<int32_t>();
auto srcY = stack->pop<int32_t>();
auto srcX = stack->pop<int32_t>();
auto srcLevel = stack->pop<int32_t>();
auto srcTarget = stack->pop<GLenum>();
auto srcName = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCopyImageSubDataEXT(%" PRIu32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRIu32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
if (mFunctionStubs.glCopyImageSubDataEXT != nullptr) {
mFunctionStubs.glCopyImageSubDataEXT(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyImageSubDataEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyImageSubDataEXT");
return false;
}
}
bool Gles::callGlDebugMessageCallbackKHR(Stack* stack, bool pushReturn) {
auto userParam = stack->pop<void*>();
auto callback = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glDebugMessageCallbackKHR(%p, %p)", callback, userParam);
if (mFunctionStubs.glDebugMessageCallbackKHR != nullptr) {
mFunctionStubs.glDebugMessageCallbackKHR(callback, userParam);
} else {
GAPID_WARNING("Attempted to call unsupported function glDebugMessageCallbackKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDebugMessageCallbackKHR");
return false;
}
}
bool Gles::callGlDebugMessageControlKHR(Stack* stack, bool pushReturn) {
auto enabled = stack->pop<uint8_t>();
auto ids = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto severity = stack->pop<GLenum>();
auto type = stack->pop<GLenum>();
auto source = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDebugMessageControlKHR(%u, %u, %u, %" PRId32 ", %p, %" PRIu8 ")", source, type, severity, count, ids, enabled);
if (mFunctionStubs.glDebugMessageControlKHR != nullptr) {
mFunctionStubs.glDebugMessageControlKHR(source, type, severity, count, ids, enabled);
} else {
GAPID_WARNING("Attempted to call unsupported function glDebugMessageControlKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDebugMessageControlKHR");
return false;
}
}
bool Gles::callGlDebugMessageInsertKHR(Stack* stack, bool pushReturn) {
auto message = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto severity = stack->pop<GLenum>();
auto id = stack->pop<uint32_t>();
auto type = stack->pop<GLenum>();
auto source = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDebugMessageInsertKHR(%u, %u, %" PRIu32 ", %u, %" PRId32 ", %p)", source, type, id, severity, length, message);
if (mFunctionStubs.glDebugMessageInsertKHR != nullptr) {
mFunctionStubs.glDebugMessageInsertKHR(source, type, id, severity, length, message);
} else {
GAPID_WARNING("Attempted to call unsupported function glDebugMessageInsertKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDebugMessageInsertKHR");
return false;
}
}
bool Gles::callGlDisableiEXT(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDisableiEXT(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glDisableiEXT != nullptr) {
mFunctionStubs.glDisableiEXT(target, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glDisableiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDisableiEXT");
return false;
}
}
bool Gles::callGlEnableiEXT(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEnableiEXT(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glEnableiEXT != nullptr) {
mFunctionStubs.glEnableiEXT(target, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glEnableiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEnableiEXT");
return false;
}
}
bool Gles::callGlFramebufferTextureEXT(Stack* stack, bool pushReturn) {
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTextureEXT(%u, %u, %" PRIu32 ", %" PRId32 ")", target, attachment, texture, level);
if (mFunctionStubs.glFramebufferTextureEXT != nullptr) {
mFunctionStubs.glFramebufferTextureEXT(target, attachment, texture, level);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTextureEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTextureEXT");
return false;
}
}
bool Gles::callGlGetDebugMessageLogKHR(Stack* stack, bool pushReturn) {
auto messageLog = stack->pop<GLchar*>();
auto lengths = stack->pop<GLsizei*>();
auto severities = stack->pop<GLenum*>();
auto ids = stack->pop<GLuint*>();
auto types = stack->pop<GLenum*>();
auto sources = stack->pop<GLenum*>();
auto bufSize = stack->pop<int32_t>();
auto count = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetDebugMessageLogKHR(%" PRIu32 ", %" PRId32 ", %p, %p, %p, %p, %p, %p)", count, bufSize, sources, types, ids, severities, lengths, messageLog);
if (mFunctionStubs.glGetDebugMessageLogKHR != nullptr) {
GLuint return_value = mFunctionStubs.glGetDebugMessageLogKHR(count, bufSize, sources, types, ids, severities, lengths, messageLog);
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<GLuint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetDebugMessageLogKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetDebugMessageLogKHR");
return false;
}
}
bool Gles::callGlGetObjectLabelKHR(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto name = stack->pop<uint32_t>();
auto identifier = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetObjectLabelKHR(%u, %" PRIu32 ", %" PRId32 ", %p, %p)", identifier, name, bufSize, length, label);
if (mFunctionStubs.glGetObjectLabelKHR != nullptr) {
mFunctionStubs.glGetObjectLabelKHR(identifier, name, bufSize, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetObjectLabelKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetObjectLabelKHR");
return false;
}
}
bool Gles::callGlGetObjectPtrLabelKHR(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto ptr = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glGetObjectPtrLabelKHR(%p, %" PRId32 ", %p, %p)", ptr, bufSize, length, label);
if (mFunctionStubs.glGetObjectPtrLabelKHR != nullptr) {
mFunctionStubs.glGetObjectPtrLabelKHR(ptr, bufSize, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetObjectPtrLabelKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetObjectPtrLabelKHR");
return false;
}
}
bool Gles::callGlGetPointervKHR(Stack* stack, bool pushReturn) {
auto params = stack->pop<void**>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetPointervKHR(%u, %p)", pname, params);
if (mFunctionStubs.glGetPointervKHR != nullptr) {
mFunctionStubs.glGetPointervKHR(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPointervKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPointervKHR");
return false;
}
}
bool Gles::callGlGetSamplerParameterIivEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetSamplerParameterIivEXT(%" PRIu32 ", %u, %p)", sampler, pname, params);
if (mFunctionStubs.glGetSamplerParameterIivEXT != nullptr) {
mFunctionStubs.glGetSamplerParameterIivEXT(sampler, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSamplerParameterIivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSamplerParameterIivEXT");
return false;
}
}
bool Gles::callGlGetSamplerParameterIuivEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetSamplerParameterIuivEXT(%" PRIu32 ", %u, %p)", sampler, pname, params);
if (mFunctionStubs.glGetSamplerParameterIuivEXT != nullptr) {
mFunctionStubs.glGetSamplerParameterIuivEXT(sampler, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSamplerParameterIuivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSamplerParameterIuivEXT");
return false;
}
}
bool Gles::callGlGetTexParameterIivEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterIivEXT(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexParameterIivEXT != nullptr) {
mFunctionStubs.glGetTexParameterIivEXT(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterIivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterIivEXT");
return false;
}
}
bool Gles::callGlGetTexParameterIuivEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterIuivEXT(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexParameterIuivEXT != nullptr) {
mFunctionStubs.glGetTexParameterIuivEXT(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterIuivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterIuivEXT");
return false;
}
}
bool Gles::callGlIsEnablediEXT(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glIsEnablediEXT(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glIsEnablediEXT != nullptr) {
GLboolean return_value = mFunctionStubs.glIsEnablediEXT(target, index);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsEnablediEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsEnablediEXT");
return false;
}
}
bool Gles::callGlMinSampleShadingOES(Stack* stack, bool pushReturn) {
auto value = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glMinSampleShadingOES(%f)", value);
if (mFunctionStubs.glMinSampleShadingOES != nullptr) {
mFunctionStubs.glMinSampleShadingOES(value);
} else {
GAPID_WARNING("Attempted to call unsupported function glMinSampleShadingOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMinSampleShadingOES");
return false;
}
}
bool Gles::callGlObjectLabelKHR(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto name = stack->pop<uint32_t>();
auto identifier = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glObjectLabelKHR(%u, %" PRIu32 ", %" PRId32 ", %p)", identifier, name, length, label);
if (mFunctionStubs.glObjectLabelKHR != nullptr) {
mFunctionStubs.glObjectLabelKHR(identifier, name, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glObjectLabelKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glObjectLabelKHR");
return false;
}
}
bool Gles::callGlObjectPtrLabelKHR(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto ptr = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glObjectPtrLabelKHR(%p, %" PRId32 ", %p)", ptr, length, label);
if (mFunctionStubs.glObjectPtrLabelKHR != nullptr) {
mFunctionStubs.glObjectPtrLabelKHR(ptr, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glObjectPtrLabelKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glObjectPtrLabelKHR");
return false;
}
}
bool Gles::callGlPatchParameteriEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPatchParameteriEXT(%u, %" PRId32 ")", pname, value);
if (mFunctionStubs.glPatchParameteriEXT != nullptr) {
mFunctionStubs.glPatchParameteriEXT(pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glPatchParameteriEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPatchParameteriEXT");
return false;
}
}
bool Gles::callGlPopDebugGroupKHR(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glPopDebugGroupKHR()");
if (mFunctionStubs.glPopDebugGroupKHR != nullptr) {
mFunctionStubs.glPopDebugGroupKHR();
} else {
GAPID_WARNING("Attempted to call unsupported function glPopDebugGroupKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPopDebugGroupKHR");
return false;
}
}
bool Gles::callGlPrimitiveBoundingBoxEXT(Stack* stack, bool pushReturn) {
auto maxW = stack->pop<float>();
auto maxZ = stack->pop<float>();
auto maxY = stack->pop<float>();
auto maxX = stack->pop<float>();
auto minW = stack->pop<float>();
auto minZ = stack->pop<float>();
auto minY = stack->pop<float>();
auto minX = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glPrimitiveBoundingBoxEXT(%f, %f, %f, %f, %f, %f, %f, %f)", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
if (mFunctionStubs.glPrimitiveBoundingBoxEXT != nullptr) {
mFunctionStubs.glPrimitiveBoundingBoxEXT(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
} else {
GAPID_WARNING("Attempted to call unsupported function glPrimitiveBoundingBoxEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPrimitiveBoundingBoxEXT");
return false;
}
}
bool Gles::callGlPushDebugGroupKHR(Stack* stack, bool pushReturn) {
auto message = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto id = stack->pop<uint32_t>();
auto source = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPushDebugGroupKHR(%u, %" PRIu32 ", %" PRId32 ", %p)", source, id, length, message);
if (mFunctionStubs.glPushDebugGroupKHR != nullptr) {
mFunctionStubs.glPushDebugGroupKHR(source, id, length, message);
} else {
GAPID_WARNING("Attempted to call unsupported function glPushDebugGroupKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPushDebugGroupKHR");
return false;
}
}
bool Gles::callGlSamplerParameterIivEXT(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameterIivEXT(%" PRIu32 ", %u, %p)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameterIivEXT != nullptr) {
mFunctionStubs.glSamplerParameterIivEXT(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameterIivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameterIivEXT");
return false;
}
}
bool Gles::callGlSamplerParameterIuivEXT(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameterIuivEXT(%" PRIu32 ", %u, %p)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameterIuivEXT != nullptr) {
mFunctionStubs.glSamplerParameterIuivEXT(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameterIuivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameterIuivEXT");
return false;
}
}
bool Gles::callGlTexBufferEXT(Stack* stack, bool pushReturn) {
auto buffer = stack->pop<uint32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexBufferEXT(%u, %u, %" PRIu32 ")", target, internalformat, buffer);
if (mFunctionStubs.glTexBufferEXT != nullptr) {
mFunctionStubs.glTexBufferEXT(target, internalformat, buffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexBufferEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexBufferEXT");
return false;
}
}
bool Gles::callGlTexBufferRangeEXT(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto buffer = stack->pop<uint32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexBufferRangeEXT(%u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ")", target, internalformat, buffer, offset, size);
if (mFunctionStubs.glTexBufferRangeEXT != nullptr) {
mFunctionStubs.glTexBufferRangeEXT(target, internalformat, buffer, offset, size);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexBufferRangeEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexBufferRangeEXT");
return false;
}
}
bool Gles::callGlTexParameterIivEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterIivEXT(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterIivEXT != nullptr) {
mFunctionStubs.glTexParameterIivEXT(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterIivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterIivEXT");
return false;
}
}
bool Gles::callGlTexParameterIuivEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterIuivEXT(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterIuivEXT != nullptr) {
mFunctionStubs.glTexParameterIuivEXT(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterIuivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterIuivEXT");
return false;
}
}
bool Gles::callGlTexStorage3DMultisampleOES(Stack* stack, bool pushReturn) {
auto fixedsamplelocations = stack->pop<uint8_t>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage3DMultisampleOES(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ")", target, samples, internalformat, width, height, depth, fixedsamplelocations);
if (mFunctionStubs.glTexStorage3DMultisampleOES != nullptr) {
mFunctionStubs.glTexStorage3DMultisampleOES(target, samples, internalformat, width, height, depth, fixedsamplelocations);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage3DMultisampleOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage3DMultisampleOES");
return false;
}
}
bool Gles::callGlBeginQuery(Stack* stack, bool pushReturn) {
auto query = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBeginQuery(%u, %" PRIu32 ")", target, query);
if (mFunctionStubs.glBeginQuery != nullptr) {
mFunctionStubs.glBeginQuery(target, query);
} else {
GAPID_WARNING("Attempted to call unsupported function glBeginQuery");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBeginQuery");
return false;
}
}
bool Gles::callGlDeleteQueries(Stack* stack, bool pushReturn) {
auto queries = stack->pop<QueryId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteQueries(%" PRId32 ", %p)", count, queries);
if (mFunctionStubs.glDeleteQueries != nullptr) {
mFunctionStubs.glDeleteQueries(count, queries);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteQueries");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteQueries");
return false;
}
}
bool Gles::callGlEndQuery(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEndQuery(%u)", target);
if (mFunctionStubs.glEndQuery != nullptr) {
mFunctionStubs.glEndQuery(target);
} else {
GAPID_WARNING("Attempted to call unsupported function glEndQuery");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEndQuery");
return false;
}
}
bool Gles::callGlGenQueries(Stack* stack, bool pushReturn) {
auto queries = stack->pop<QueryId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenQueries(%" PRId32 ", %p)", count, queries);
if (mFunctionStubs.glGenQueries != nullptr) {
mFunctionStubs.glGenQueries(count, queries);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenQueries");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenQueries");
return false;
}
}
bool Gles::callGlGetQueryObjectuiv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint*>();
auto parameter = stack->pop<GLenum>();
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectuiv(%" PRIu32 ", %u, %p)", query, parameter, value);
if (mFunctionStubs.glGetQueryObjectuiv != nullptr) {
mFunctionStubs.glGetQueryObjectuiv(query, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjectuiv");
return false;
}
}
bool Gles::callGlGetQueryiv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryiv(%u, %u, %p)", target, parameter, value);
if (mFunctionStubs.glGetQueryiv != nullptr) {
mFunctionStubs.glGetQueryiv(target, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryiv");
return false;
}
}
bool Gles::callGlIsQuery(Stack* stack, bool pushReturn) {
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsQuery(%" PRIu32 ")", query);
if (mFunctionStubs.glIsQuery != nullptr) {
GLboolean return_value = mFunctionStubs.glIsQuery(query);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsQuery");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsQuery");
return false;
}
}
bool Gles::callGlBindBuffer(Stack* stack, bool pushReturn) {
auto buffer = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindBuffer(%u, %" PRIu32 ")", target, buffer);
if (mFunctionStubs.glBindBuffer != nullptr) {
mFunctionStubs.glBindBuffer(target, buffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindBuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindBuffer");
return false;
}
}
bool Gles::callGlBindBufferBase(Stack* stack, bool pushReturn) {
auto buffer = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindBufferBase(%u, %" PRIu32 ", %" PRIu32 ")", target, index, buffer);
if (mFunctionStubs.glBindBufferBase != nullptr) {
mFunctionStubs.glBindBufferBase(target, index, buffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindBufferBase");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindBufferBase");
return false;
}
}
bool Gles::callGlBindBufferRange(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto buffer = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindBufferRange(%u, %" PRIu32 ", %" PRIu32 ", %" PRId32 ", %" PRId32 ")", target, index, buffer, offset, size);
if (mFunctionStubs.glBindBufferRange != nullptr) {
mFunctionStubs.glBindBufferRange(target, index, buffer, offset, size);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindBufferRange");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindBufferRange");
return false;
}
}
bool Gles::callGlBufferData(Stack* stack, bool pushReturn) {
auto usage = stack->pop<GLenum>();
auto data = stack->pop<void*>();
auto size = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBufferData(%u, %" PRId32 ", %p, %u)", target, size, data, usage);
if (mFunctionStubs.glBufferData != nullptr) {
mFunctionStubs.glBufferData(target, size, data, usage);
} else {
GAPID_WARNING("Attempted to call unsupported function glBufferData");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBufferData");
return false;
}
}
bool Gles::callGlBufferSubData(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto size = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBufferSubData(%u, %" PRId32 ", %" PRId32 ", %p)", target, offset, size, data);
if (mFunctionStubs.glBufferSubData != nullptr) {
mFunctionStubs.glBufferSubData(target, offset, size, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glBufferSubData");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBufferSubData");
return false;
}
}
bool Gles::callGlCopyBufferSubData(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
auto writeOffset = stack->pop<int32_t>();
auto readOffset = stack->pop<int32_t>();
auto writeTarget = stack->pop<GLenum>();
auto readTarget = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCopyBufferSubData(%u, %u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", readTarget, writeTarget, readOffset, writeOffset, size);
if (mFunctionStubs.glCopyBufferSubData != nullptr) {
mFunctionStubs.glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyBufferSubData");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyBufferSubData");
return false;
}
}
bool Gles::callGlDeleteBuffers(Stack* stack, bool pushReturn) {
auto buffers = stack->pop<BufferId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteBuffers(%" PRId32 ", %p)", count, buffers);
if (mFunctionStubs.glDeleteBuffers != nullptr) {
mFunctionStubs.glDeleteBuffers(count, buffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteBuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteBuffers");
return false;
}
}
bool Gles::callGlGenBuffers(Stack* stack, bool pushReturn) {
auto buffers = stack->pop<BufferId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenBuffers(%" PRId32 ", %p)", count, buffers);
if (mFunctionStubs.glGenBuffers != nullptr) {
mFunctionStubs.glGenBuffers(count, buffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenBuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenBuffers");
return false;
}
}
bool Gles::callGlGetBufferParameteri64v(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64*>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetBufferParameteri64v(%u, %u, %p)", target, parameter, value);
if (mFunctionStubs.glGetBufferParameteri64v != nullptr) {
mFunctionStubs.glGetBufferParameteri64v(target, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetBufferParameteri64v");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetBufferParameteri64v");
return false;
}
}
bool Gles::callGlGetBufferParameteriv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetBufferParameteriv(%u, %u, %p)", target, parameter, value);
if (mFunctionStubs.glGetBufferParameteriv != nullptr) {
mFunctionStubs.glGetBufferParameteriv(target, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetBufferParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetBufferParameteriv");
return false;
}
}
bool Gles::callGlGetBufferPointerv(Stack* stack, bool pushReturn) {
auto params = stack->pop<void**>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetBufferPointerv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetBufferPointerv != nullptr) {
mFunctionStubs.glGetBufferPointerv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetBufferPointerv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetBufferPointerv");
return false;
}
}
bool Gles::callGlIsBuffer(Stack* stack, bool pushReturn) {
auto buffer = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsBuffer(%" PRIu32 ")", buffer);
if (mFunctionStubs.glIsBuffer != nullptr) {
GLboolean return_value = mFunctionStubs.glIsBuffer(buffer);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsBuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsBuffer");
return false;
}
}
bool Gles::callGlMapBuffer(Stack* stack, bool pushReturn) {
auto access = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMapBuffer(%u, %u)", target, access);
if (mFunctionStubs.glMapBuffer != nullptr) {
void* return_value = mFunctionStubs.glMapBuffer(target, access);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<void*>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glMapBuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMapBuffer");
return false;
}
}
bool Gles::callGlMapBufferRange(Stack* stack, bool pushReturn) {
auto access = stack->pop<GLbitfield>();
auto length = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMapBufferRange(%u, %" PRId32 ", %" PRId32 ", %u)", target, offset, length, access);
if (mFunctionStubs.glMapBufferRange != nullptr) {
void* return_value = mFunctionStubs.glMapBufferRange(target, offset, length, access);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<void*>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glMapBufferRange");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMapBufferRange");
return false;
}
}
bool Gles::callGlUnmapBuffer(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glUnmapBuffer(%u)", target);
if (mFunctionStubs.glUnmapBuffer != nullptr) {
GLboolean return_value = mFunctionStubs.glUnmapBuffer(target);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glUnmapBuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUnmapBuffer");
return false;
}
}
bool Gles::callGlFlushMappedBufferRange(Stack* stack, bool pushReturn) {
auto length = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFlushMappedBufferRange(%u, %" PRId32 ", %" PRId32 ")", target, offset, length);
if (mFunctionStubs.glFlushMappedBufferRange != nullptr) {
mFunctionStubs.glFlushMappedBufferRange(target, offset, length);
} else {
GAPID_WARNING("Attempted to call unsupported function glFlushMappedBufferRange");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFlushMappedBufferRange");
return false;
}
}
bool Gles::callGlDebugMessageCallback(Stack* stack, bool pushReturn) {
auto userParam = stack->pop<void*>();
auto callback = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glDebugMessageCallback(%p, %p)", callback, userParam);
if (mFunctionStubs.glDebugMessageCallback != nullptr) {
mFunctionStubs.glDebugMessageCallback(callback, userParam);
} else {
GAPID_WARNING("Attempted to call unsupported function glDebugMessageCallback");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDebugMessageCallback");
return false;
}
}
bool Gles::callGlDebugMessageControl(Stack* stack, bool pushReturn) {
auto enabled = stack->pop<uint8_t>();
auto ids = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto severity = stack->pop<GLenum>();
auto type = stack->pop<GLenum>();
auto source = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDebugMessageControl(%u, %u, %u, %" PRId32 ", %p, %" PRIu8 ")", source, type, severity, count, ids, enabled);
if (mFunctionStubs.glDebugMessageControl != nullptr) {
mFunctionStubs.glDebugMessageControl(source, type, severity, count, ids, enabled);
} else {
GAPID_WARNING("Attempted to call unsupported function glDebugMessageControl");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDebugMessageControl");
return false;
}
}
bool Gles::callGlDebugMessageInsert(Stack* stack, bool pushReturn) {
auto message = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto severity = stack->pop<GLenum>();
auto id = stack->pop<uint32_t>();
auto type = stack->pop<GLenum>();
auto source = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDebugMessageInsert(%u, %u, %" PRIu32 ", %u, %" PRId32 ", %p)", source, type, id, severity, length, message);
if (mFunctionStubs.glDebugMessageInsert != nullptr) {
mFunctionStubs.glDebugMessageInsert(source, type, id, severity, length, message);
} else {
GAPID_WARNING("Attempted to call unsupported function glDebugMessageInsert");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDebugMessageInsert");
return false;
}
}
bool Gles::callGlGetDebugMessageLog(Stack* stack, bool pushReturn) {
auto messageLog = stack->pop<GLchar*>();
auto lengths = stack->pop<GLsizei*>();
auto severities = stack->pop<GLenum*>();
auto ids = stack->pop<GLuint*>();
auto types = stack->pop<GLenum*>();
auto sources = stack->pop<GLenum*>();
auto bufSize = stack->pop<int32_t>();
auto count = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetDebugMessageLog(%" PRIu32 ", %" PRId32 ", %p, %p, %p, %p, %p, %p)", count, bufSize, sources, types, ids, severities, lengths, messageLog);
if (mFunctionStubs.glGetDebugMessageLog != nullptr) {
GLuint return_value = mFunctionStubs.glGetDebugMessageLog(count, bufSize, sources, types, ids, severities, lengths, messageLog);
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<GLuint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetDebugMessageLog");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetDebugMessageLog");
return false;
}
}
bool Gles::callGlGetObjectLabel(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto name = stack->pop<uint32_t>();
auto identifier = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetObjectLabel(%u, %" PRIu32 ", %" PRId32 ", %p, %p)", identifier, name, bufSize, length, label);
if (mFunctionStubs.glGetObjectLabel != nullptr) {
mFunctionStubs.glGetObjectLabel(identifier, name, bufSize, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetObjectLabel");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetObjectLabel");
return false;
}
}
bool Gles::callGlGetObjectPtrLabel(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto ptr = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glGetObjectPtrLabel(%p, %" PRId32 ", %p, %p)", ptr, bufSize, length, label);
if (mFunctionStubs.glGetObjectPtrLabel != nullptr) {
mFunctionStubs.glGetObjectPtrLabel(ptr, bufSize, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetObjectPtrLabel");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetObjectPtrLabel");
return false;
}
}
bool Gles::callGlGetPointerv(Stack* stack, bool pushReturn) {
auto params = stack->pop<void**>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetPointerv(%u, %p)", pname, params);
if (mFunctionStubs.glGetPointerv != nullptr) {
mFunctionStubs.glGetPointerv(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPointerv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPointerv");
return false;
}
}
bool Gles::callGlObjectLabel(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto name = stack->pop<uint32_t>();
auto identifier = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glObjectLabel(%u, %" PRIu32 ", %" PRId32 ", %p)", identifier, name, length, label);
if (mFunctionStubs.glObjectLabel != nullptr) {
mFunctionStubs.glObjectLabel(identifier, name, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glObjectLabel");
}
return true;
} else {
GAPID_WARNING("Error during calling function glObjectLabel");
return false;
}
}
bool Gles::callGlObjectPtrLabel(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto ptr = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glObjectPtrLabel(%p, %" PRId32 ", %p)", ptr, length, label);
if (mFunctionStubs.glObjectPtrLabel != nullptr) {
mFunctionStubs.glObjectPtrLabel(ptr, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glObjectPtrLabel");
}
return true;
} else {
GAPID_WARNING("Error during calling function glObjectPtrLabel");
return false;
}
}
bool Gles::callGlPopDebugGroup(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glPopDebugGroup()");
if (mFunctionStubs.glPopDebugGroup != nullptr) {
mFunctionStubs.glPopDebugGroup();
} else {
GAPID_WARNING("Attempted to call unsupported function glPopDebugGroup");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPopDebugGroup");
return false;
}
}
bool Gles::callGlPushDebugGroup(Stack* stack, bool pushReturn) {
auto message = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto id = stack->pop<uint32_t>();
auto source = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPushDebugGroup(%u, %" PRIu32 ", %" PRId32 ", %p)", source, id, length, message);
if (mFunctionStubs.glPushDebugGroup != nullptr) {
mFunctionStubs.glPushDebugGroup(source, id, length, message);
} else {
GAPID_WARNING("Attempted to call unsupported function glPushDebugGroup");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPushDebugGroup");
return false;
}
}
bool Gles::callGlDrawArrays(Stack* stack, bool pushReturn) {
auto indices_count = stack->pop<int32_t>();
auto first_index = stack->pop<int32_t>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawArrays(%u, %" PRId32 ", %" PRId32 ")", draw_mode, first_index, indices_count);
if (mFunctionStubs.glDrawArrays != nullptr) {
mFunctionStubs.glDrawArrays(draw_mode, first_index, indices_count);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawArrays");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawArrays");
return false;
}
}
bool Gles::callGlDrawArraysIndirect(Stack* stack, bool pushReturn) {
auto indirect = stack->pop<void*>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawArraysIndirect(%u, %p)", draw_mode, indirect);
if (mFunctionStubs.glDrawArraysIndirect != nullptr) {
mFunctionStubs.glDrawArraysIndirect(draw_mode, indirect);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawArraysIndirect");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawArraysIndirect");
return false;
}
}
bool Gles::callGlDrawArraysInstanced(Stack* stack, bool pushReturn) {
auto instance_count = stack->pop<int32_t>();
auto indices_count = stack->pop<int32_t>();
auto first_index = stack->pop<int32_t>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawArraysInstanced(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", draw_mode, first_index, indices_count, instance_count);
if (mFunctionStubs.glDrawArraysInstanced != nullptr) {
mFunctionStubs.glDrawArraysInstanced(draw_mode, first_index, indices_count, instance_count);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawArraysInstanced");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawArraysInstanced");
return false;
}
}
bool Gles::callGlDrawElements(Stack* stack, bool pushReturn) {
auto indices = stack->pop<void*>();
auto indices_type = stack->pop<GLenum>();
auto indices_count = stack->pop<int32_t>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElements(%u, %" PRId32 ", %u, %p)", draw_mode, indices_count, indices_type, indices);
if (mFunctionStubs.glDrawElements != nullptr) {
mFunctionStubs.glDrawElements(draw_mode, indices_count, indices_type, indices);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElements");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElements");
return false;
}
}
bool Gles::callGlDrawElementsBaseVertex(Stack* stack, bool pushReturn) {
auto base_vertex = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto indices_type = stack->pop<GLenum>();
auto indices_count = stack->pop<int32_t>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsBaseVertex(%u, %" PRId32 ", %u, %p, %" PRId32 ")", draw_mode, indices_count, indices_type, indices, base_vertex);
if (mFunctionStubs.glDrawElementsBaseVertex != nullptr) {
mFunctionStubs.glDrawElementsBaseVertex(draw_mode, indices_count, indices_type, indices, base_vertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsBaseVertex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsBaseVertex");
return false;
}
}
bool Gles::callGlDrawElementsIndirect(Stack* stack, bool pushReturn) {
auto indirect = stack->pop<void*>();
auto indices_type = stack->pop<GLenum>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsIndirect(%u, %u, %p)", draw_mode, indices_type, indirect);
if (mFunctionStubs.glDrawElementsIndirect != nullptr) {
mFunctionStubs.glDrawElementsIndirect(draw_mode, indices_type, indirect);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsIndirect");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsIndirect");
return false;
}
}
bool Gles::callGlDrawElementsInstanced(Stack* stack, bool pushReturn) {
auto instance_count = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto indices_type = stack->pop<GLenum>();
auto indices_count = stack->pop<int32_t>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstanced(%u, %" PRId32 ", %u, %p, %" PRId32 ")", draw_mode, indices_count, indices_type, indices, instance_count);
if (mFunctionStubs.glDrawElementsInstanced != nullptr) {
mFunctionStubs.glDrawElementsInstanced(draw_mode, indices_count, indices_type, indices, instance_count);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstanced");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstanced");
return false;
}
}
bool Gles::callGlDrawElementsInstancedBaseVertex(Stack* stack, bool pushReturn) {
auto base_vertex = stack->pop<int32_t>();
auto instance_count = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto indices_type = stack->pop<GLenum>();
auto indices_count = stack->pop<int32_t>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstancedBaseVertex(%u, %" PRId32 ", %u, %p, %" PRId32 ", %" PRId32 ")", draw_mode, indices_count, indices_type, indices, instance_count, base_vertex);
if (mFunctionStubs.glDrawElementsInstancedBaseVertex != nullptr) {
mFunctionStubs.glDrawElementsInstancedBaseVertex(draw_mode, indices_count, indices_type, indices, instance_count, base_vertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstancedBaseVertex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstancedBaseVertex");
return false;
}
}
bool Gles::callGlDrawRangeElements(Stack* stack, bool pushReturn) {
auto indices = stack->pop<void*>();
auto indices_type = stack->pop<GLenum>();
auto indices_count = stack->pop<int32_t>();
auto end = stack->pop<uint32_t>();
auto start = stack->pop<uint32_t>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawRangeElements(%u, %" PRIu32 ", %" PRIu32 ", %" PRId32 ", %u, %p)", draw_mode, start, end, indices_count, indices_type, indices);
if (mFunctionStubs.glDrawRangeElements != nullptr) {
mFunctionStubs.glDrawRangeElements(draw_mode, start, end, indices_count, indices_type, indices);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawRangeElements");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawRangeElements");
return false;
}
}
bool Gles::callGlDrawRangeElementsBaseVertex(Stack* stack, bool pushReturn) {
auto base_vertex = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto indices_type = stack->pop<GLenum>();
auto indices_count = stack->pop<int32_t>();
auto end = stack->pop<uint32_t>();
auto start = stack->pop<uint32_t>();
auto draw_mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawRangeElementsBaseVertex(%u, %" PRIu32 ", %" PRIu32 ", %" PRId32 ", %u, %p, %" PRId32 ")", draw_mode, start, end, indices_count, indices_type, indices, base_vertex);
if (mFunctionStubs.glDrawRangeElementsBaseVertex != nullptr) {
mFunctionStubs.glDrawRangeElementsBaseVertex(draw_mode, start, end, indices_count, indices_type, indices, base_vertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawRangeElementsBaseVertex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawRangeElementsBaseVertex");
return false;
}
}
bool Gles::callGlPatchParameteri(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPatchParameteri(%u, %" PRId32 ")", pname, value);
if (mFunctionStubs.glPatchParameteri != nullptr) {
mFunctionStubs.glPatchParameteri(pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glPatchParameteri");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPatchParameteri");
return false;
}
}
bool Gles::callGlPrimitiveBoundingBox(Stack* stack, bool pushReturn) {
auto maxW = stack->pop<float>();
auto maxZ = stack->pop<float>();
auto maxY = stack->pop<float>();
auto maxX = stack->pop<float>();
auto minW = stack->pop<float>();
auto minZ = stack->pop<float>();
auto minY = stack->pop<float>();
auto minX = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glPrimitiveBoundingBox(%f, %f, %f, %f, %f, %f, %f, %f)", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
if (mFunctionStubs.glPrimitiveBoundingBox != nullptr) {
mFunctionStubs.glPrimitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
} else {
GAPID_WARNING("Attempted to call unsupported function glPrimitiveBoundingBox");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPrimitiveBoundingBox");
return false;
}
}
bool Gles::callEglGetConfigAttrib(Stack* stack, bool pushReturn) {
auto value = stack->pop<EGLint*>();
auto attribute = stack->pop<int>();
auto config = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglGetConfigAttrib(%p, %p, %d, %p)", display, config, attribute, value);
if (mFunctionStubs.eglGetConfigAttrib != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglGetConfigAttrib(display, config, attribute, value);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglGetConfigAttrib");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglGetConfigAttrib");
return false;
}
}
bool Gles::callEglBindAPI(Stack* stack, bool pushReturn) {
auto api = stack->pop<EGLenum>();
if (stack->isValid()) {
GAPID_INFO("eglBindAPI(%u)", api);
if (mFunctionStubs.eglBindAPI != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglBindAPI(api);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglBindAPI");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglBindAPI");
return false;
}
}
bool Gles::callEglBindTexImage(Stack* stack, bool pushReturn) {
auto buffer = stack->pop<int>();
auto surface = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglBindTexImage(%p, %p, %d)", display, surface, buffer);
if (mFunctionStubs.eglBindTexImage != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglBindTexImage(display, surface, buffer);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglBindTexImage");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglBindTexImage");
return false;
}
}
bool Gles::callEglChooseConfig(Stack* stack, bool pushReturn) {
auto num_config = stack->pop<EGLint*>();
auto config_size = stack->pop<int>();
auto configs = stack->pop<EGLConfig*>();
auto attrib_list = stack->pop<EGLint*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglChooseConfig(%p, %p, %p, %d, %p)", display, attrib_list, configs, config_size, num_config);
if (mFunctionStubs.eglChooseConfig != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglChooseConfig(display, attrib_list, configs, config_size, num_config);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglChooseConfig");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglChooseConfig");
return false;
}
}
bool Gles::callEglClientWaitSyncKHR(Stack* stack, bool pushReturn) {
auto timeout = stack->pop<uint64_t>();
auto sync_flags = stack->pop<int>();
auto sync = stack->pop<void*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglClientWaitSyncKHR(%p, %p, %d, %" PRIu64 ")", dpy, sync, sync_flags, timeout);
if (mFunctionStubs.eglClientWaitSyncKHR != nullptr) {
EGLint return_value = mFunctionStubs.eglClientWaitSyncKHR(dpy, sync, sync_flags, timeout);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglClientWaitSyncKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglClientWaitSyncKHR");
return false;
}
}
bool Gles::callEglCopyBuffers(Stack* stack, bool pushReturn) {
auto native_pixmap = stack->pop<void*>();
auto surface = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglCopyBuffers(%p, %p, %p)", display, surface, native_pixmap);
if (mFunctionStubs.eglCopyBuffers != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglCopyBuffers(display, surface, native_pixmap);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCopyBuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCopyBuffers");
return false;
}
}
bool Gles::callEglCreateContext(Stack* stack, bool pushReturn) {
auto attrib_list = stack->pop<EGLint*>();
auto share_context = stack->pop<void*>();
auto config = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglCreateContext(%p, %p, %p, %p)", display, config, share_context, attrib_list);
if (mFunctionStubs.eglCreateContext != nullptr) {
EGLContext return_value = mFunctionStubs.eglCreateContext(display, config, share_context, attrib_list);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLContext>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCreateContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCreateContext");
return false;
}
}
bool Gles::callEglCreatePbufferFromClientBuffer(Stack* stack, bool pushReturn) {
auto attrib_list = stack->pop<EGLint*>();
auto config = stack->pop<void*>();
auto buffer = stack->pop<void*>();
auto buftype = stack->pop<EGLenum>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglCreatePbufferFromClientBuffer(%p, %u, %p, %p, %p)", display, buftype, buffer, config, attrib_list);
if (mFunctionStubs.eglCreatePbufferFromClientBuffer != nullptr) {
EGLSurface return_value = mFunctionStubs.eglCreatePbufferFromClientBuffer(display, buftype, buffer, config, attrib_list);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLSurface>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCreatePbufferFromClientBuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCreatePbufferFromClientBuffer");
return false;
}
}
bool Gles::callEglCreatePbufferSurface(Stack* stack, bool pushReturn) {
auto attrib_list = stack->pop<EGLint*>();
auto config = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglCreatePbufferSurface(%p, %p, %p)", display, config, attrib_list);
if (mFunctionStubs.eglCreatePbufferSurface != nullptr) {
EGLSurface return_value = mFunctionStubs.eglCreatePbufferSurface(display, config, attrib_list);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLSurface>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCreatePbufferSurface");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCreatePbufferSurface");
return false;
}
}
bool Gles::callEglCreatePixmapSurface(Stack* stack, bool pushReturn) {
auto attrib_list = stack->pop<EGLint*>();
auto native_pixmap = stack->pop<void*>();
auto config = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglCreatePixmapSurface(%p, %p, %p, %p)", display, config, native_pixmap, attrib_list);
if (mFunctionStubs.eglCreatePixmapSurface != nullptr) {
EGLSurface return_value = mFunctionStubs.eglCreatePixmapSurface(display, config, native_pixmap, attrib_list);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLSurface>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCreatePixmapSurface");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCreatePixmapSurface");
return false;
}
}
bool Gles::callEglCreateSyncKHR(Stack* stack, bool pushReturn) {
auto attrib_list = stack->pop<EGLint*>();
auto type = stack->pop<EGLenum>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglCreateSyncKHR(%p, %u, %p)", dpy, type, attrib_list);
if (mFunctionStubs.eglCreateSyncKHR != nullptr) {
EGLSyncKHR return_value = mFunctionStubs.eglCreateSyncKHR(dpy, type, attrib_list);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLSyncKHR>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCreateSyncKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCreateSyncKHR");
return false;
}
}
bool Gles::callEglCreateWindowSurface(Stack* stack, bool pushReturn) {
auto attrib_list = stack->pop<EGLint*>();
auto native_window = stack->pop<void*>();
auto config = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglCreateWindowSurface(%p, %p, %p, %p)", display, config, native_window, attrib_list);
if (mFunctionStubs.eglCreateWindowSurface != nullptr) {
EGLSurface return_value = mFunctionStubs.eglCreateWindowSurface(display, config, native_window, attrib_list);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLSurface>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCreateWindowSurface");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCreateWindowSurface");
return false;
}
}
bool Gles::callEglDestroyContext(Stack* stack, bool pushReturn) {
auto context = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglDestroyContext(%p, %p)", display, context);
if (mFunctionStubs.eglDestroyContext != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglDestroyContext(display, context);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglDestroyContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglDestroyContext");
return false;
}
}
bool Gles::callEglDestroySurface(Stack* stack, bool pushReturn) {
auto surface = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglDestroySurface(%p, %p)", display, surface);
if (mFunctionStubs.eglDestroySurface != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglDestroySurface(display, surface);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglDestroySurface");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglDestroySurface");
return false;
}
}
bool Gles::callEglDestroySyncKHR(Stack* stack, bool pushReturn) {
auto sync = stack->pop<void*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglDestroySyncKHR(%p, %p)", dpy, sync);
if (mFunctionStubs.eglDestroySyncKHR != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglDestroySyncKHR(dpy, sync);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglDestroySyncKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglDestroySyncKHR");
return false;
}
}
bool Gles::callEglGetConfigs(Stack* stack, bool pushReturn) {
auto num_config = stack->pop<EGLint*>();
auto config_size = stack->pop<int>();
auto configs = stack->pop<EGLConfig*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglGetConfigs(%p, %p, %d, %p)", display, configs, config_size, num_config);
if (mFunctionStubs.eglGetConfigs != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglGetConfigs(display, configs, config_size, num_config);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglGetConfigs");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglGetConfigs");
return false;
}
}
bool Gles::callEglGetCurrentContext(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("eglGetCurrentContext()");
if (mFunctionStubs.eglGetCurrentContext != nullptr) {
EGLContext return_value = mFunctionStubs.eglGetCurrentContext();
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLContext>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglGetCurrentContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglGetCurrentContext");
return false;
}
}
bool Gles::callEglGetCurrentDisplay(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("eglGetCurrentDisplay()");
if (mFunctionStubs.eglGetCurrentDisplay != nullptr) {
EGLDisplay return_value = mFunctionStubs.eglGetCurrentDisplay();
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLDisplay>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglGetCurrentDisplay");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglGetCurrentDisplay");
return false;
}
}
bool Gles::callEglGetCurrentSurface(Stack* stack, bool pushReturn) {
auto readdraw = stack->pop<int>();
if (stack->isValid()) {
GAPID_INFO("eglGetCurrentSurface(%d)", readdraw);
if (mFunctionStubs.eglGetCurrentSurface != nullptr) {
EGLSurface return_value = mFunctionStubs.eglGetCurrentSurface(readdraw);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLSurface>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglGetCurrentSurface");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglGetCurrentSurface");
return false;
}
}
bool Gles::callEglGetDisplay(Stack* stack, bool pushReturn) {
auto native_display = stack->pop<int>();
if (stack->isValid()) {
GAPID_INFO("eglGetDisplay(%d)", native_display);
if (mFunctionStubs.eglGetDisplay != nullptr) {
EGLDisplay return_value = mFunctionStubs.eglGetDisplay(native_display);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLDisplay>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglGetDisplay");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglGetDisplay");
return false;
}
}
bool Gles::callEglGetError(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("eglGetError()");
if (mFunctionStubs.eglGetError != nullptr) {
EGLint return_value = mFunctionStubs.eglGetError();
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglGetError");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglGetError");
return false;
}
}
bool Gles::callEglGetSyncAttribKHR(Stack* stack, bool pushReturn) {
auto value = stack->pop<EGLint*>();
auto attribute = stack->pop<int>();
auto sync = stack->pop<void*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglGetSyncAttribKHR(%p, %p, %d, %p)", dpy, sync, attribute, value);
if (mFunctionStubs.eglGetSyncAttribKHR != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglGetSyncAttribKHR(dpy, sync, attribute, value);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglGetSyncAttribKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglGetSyncAttribKHR");
return false;
}
}
bool Gles::callEglInitialize(Stack* stack, bool pushReturn) {
auto minor = stack->pop<EGLint*>();
auto major = stack->pop<EGLint*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglInitialize(%p, %p, %p)", dpy, major, minor);
if (mFunctionStubs.eglInitialize != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglInitialize(dpy, major, minor);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglInitialize");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglInitialize");
return false;
}
}
bool Gles::callEglMakeCurrent(Stack* stack, bool pushReturn) {
auto context = stack->pop<void*>();
auto read = stack->pop<void*>();
auto draw = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglMakeCurrent(%p, %p, %p, %p)", display, draw, read, context);
if (mFunctionStubs.eglMakeCurrent != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglMakeCurrent(display, draw, read, context);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglMakeCurrent");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglMakeCurrent");
return false;
}
}
bool Gles::callEglQueryAPI(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("eglQueryAPI()");
if (mFunctionStubs.eglQueryAPI != nullptr) {
EGLenum return_value = mFunctionStubs.eglQueryAPI();
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<EGLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglQueryAPI");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglQueryAPI");
return false;
}
}
bool Gles::callEglQueryContext(Stack* stack, bool pushReturn) {
auto value = stack->pop<EGLint*>();
auto attribute = stack->pop<int>();
auto context = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglQueryContext(%p, %p, %d, %p)", display, context, attribute, value);
if (mFunctionStubs.eglQueryContext != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglQueryContext(display, context, attribute, value);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglQueryContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglQueryContext");
return false;
}
}
bool Gles::callEglQuerySurface(Stack* stack, bool pushReturn) {
auto value = stack->pop<EGLint*>();
auto attribute = stack->pop<int>();
auto surface = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglQuerySurface(%p, %p, %d, %p)", display, surface, attribute, value);
if (mFunctionStubs.eglQuerySurface != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglQuerySurface(display, surface, attribute, value);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglQuerySurface");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglQuerySurface");
return false;
}
}
bool Gles::callEglQueryString(Stack* stack, bool pushReturn) {
auto name = stack->pop<int>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglQueryString(%p, %d)", display, name);
if (mFunctionStubs.eglQueryString != nullptr) {
char* return_value = mFunctionStubs.eglQueryString(display, name);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<char*>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglQueryString");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglQueryString");
return false;
}
}
bool Gles::callEglReleaseTexImage(Stack* stack, bool pushReturn) {
auto buffer = stack->pop<int>();
auto surface = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglReleaseTexImage(%p, %p, %d)", display, surface, buffer);
if (mFunctionStubs.eglReleaseTexImage != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglReleaseTexImage(display, surface, buffer);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglReleaseTexImage");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglReleaseTexImage");
return false;
}
}
bool Gles::callEglReleaseThread(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("eglReleaseThread()");
if (mFunctionStubs.eglReleaseThread != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglReleaseThread();
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglReleaseThread");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglReleaseThread");
return false;
}
}
bool Gles::callEglSignalSyncKHR(Stack* stack, bool pushReturn) {
auto mode = stack->pop<EGLenum>();
auto sync = stack->pop<void*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglSignalSyncKHR(%p, %p, %u)", dpy, sync, mode);
if (mFunctionStubs.eglSignalSyncKHR != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglSignalSyncKHR(dpy, sync, mode);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglSignalSyncKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglSignalSyncKHR");
return false;
}
}
bool Gles::callEglSurfaceAttrib(Stack* stack, bool pushReturn) {
auto value = stack->pop<int>();
auto attribute = stack->pop<int>();
auto surface = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglSurfaceAttrib(%p, %p, %d, %d)", display, surface, attribute, value);
if (mFunctionStubs.eglSurfaceAttrib != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglSurfaceAttrib(display, surface, attribute, value);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglSurfaceAttrib");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglSurfaceAttrib");
return false;
}
}
bool Gles::callEglSwapBuffers(Stack* stack, bool pushReturn) {
auto surface = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglSwapBuffers(%p, %p)", display, surface);
if (mFunctionStubs.eglSwapBuffers != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglSwapBuffers(display, surface);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglSwapBuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglSwapBuffers");
return false;
}
}
bool Gles::callEglSwapBuffersWithDamageKHR(Stack* stack, bool pushReturn) {
auto n_rects = stack->pop<int>();
auto rects = stack->pop<EGLint*>();
auto surface = stack->pop<void*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglSwapBuffersWithDamageKHR(%p, %p, %p, %d)", dpy, surface, rects, n_rects);
if (mFunctionStubs.eglSwapBuffersWithDamageKHR != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglSwapBuffersWithDamageKHR(dpy, surface, rects, n_rects);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglSwapBuffersWithDamageKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglSwapBuffersWithDamageKHR");
return false;
}
}
bool Gles::callEglSwapInterval(Stack* stack, bool pushReturn) {
auto interval = stack->pop<int>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglSwapInterval(%p, %d)", display, interval);
if (mFunctionStubs.eglSwapInterval != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglSwapInterval(display, interval);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglSwapInterval");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglSwapInterval");
return false;
}
}
bool Gles::callEglTerminate(Stack* stack, bool pushReturn) {
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglTerminate(%p)", display);
if (mFunctionStubs.eglTerminate != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglTerminate(display);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglTerminate");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglTerminate");
return false;
}
}
bool Gles::callEglWaitClient(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("eglWaitClient()");
if (mFunctionStubs.eglWaitClient != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglWaitClient();
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglWaitClient");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglWaitClient");
return false;
}
}
bool Gles::callEglWaitGL(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("eglWaitGL()");
if (mFunctionStubs.eglWaitGL != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglWaitGL();
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglWaitGL");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglWaitGL");
return false;
}
}
bool Gles::callEglWaitNative(Stack* stack, bool pushReturn) {
auto engine = stack->pop<int>();
if (stack->isValid()) {
GAPID_INFO("eglWaitNative(%d)", engine);
if (mFunctionStubs.eglWaitNative != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglWaitNative(engine);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglWaitNative");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglWaitNative");
return false;
}
}
bool Gles::callEglCreateImageKHR(Stack* stack, bool pushReturn) {
auto attrib_list = stack->pop<EGLint*>();
auto buffer = stack->pop<void*>();
auto target = stack->pop<EGLenum>();
auto ctx = stack->pop<void*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglCreateImageKHR(%p, %p, %u, %p, %p)", dpy, ctx, target, buffer, attrib_list);
if (mFunctionStubs.eglCreateImageKHR != nullptr) {
EGLImageKHR return_value = mFunctionStubs.eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLImageKHR>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCreateImageKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCreateImageKHR");
return false;
}
}
bool Gles::callEglDestroyImageKHR(Stack* stack, bool pushReturn) {
auto image = stack->pop<void*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("eglDestroyImageKHR(%p, %p)", dpy, image);
if (mFunctionStubs.eglDestroyImageKHR != nullptr) {
EGLBoolean return_value = mFunctionStubs.eglDestroyImageKHR(dpy, image);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<EGLBoolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglDestroyImageKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglDestroyImageKHR");
return false;
}
}
bool Gles::callEglCreateNativeClientBufferANDROID(Stack* stack, bool pushReturn) {
auto attrib_list = stack->pop<EGLint*>();
if (stack->isValid()) {
GAPID_INFO("eglCreateNativeClientBufferANDROID(%p)", attrib_list);
if (mFunctionStubs.eglCreateNativeClientBufferANDROID != nullptr) {
EGLClientBuffer return_value = mFunctionStubs.eglCreateNativeClientBufferANDROID(attrib_list);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<EGLClientBuffer>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function eglCreateNativeClientBufferANDROID");
}
return true;
} else {
GAPID_WARNING("Error during calling function eglCreateNativeClientBufferANDROID");
return false;
}
}
bool Gles::callGlActiveShaderProgramEXT(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glActiveShaderProgramEXT(%" PRIu32 ", %" PRIu32 ")", pipeline, program);
if (mFunctionStubs.glActiveShaderProgramEXT != nullptr) {
mFunctionStubs.glActiveShaderProgramEXT(pipeline, program);
} else {
GAPID_WARNING("Attempted to call unsupported function glActiveShaderProgramEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glActiveShaderProgramEXT");
return false;
}
}
bool Gles::callGlAlphaFuncQCOM(Stack* stack, bool pushReturn) {
auto ref = stack->pop<float>();
auto func = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glAlphaFuncQCOM(%u, %f)", func, ref);
if (mFunctionStubs.glAlphaFuncQCOM != nullptr) {
mFunctionStubs.glAlphaFuncQCOM(func, ref);
} else {
GAPID_WARNING("Attempted to call unsupported function glAlphaFuncQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glAlphaFuncQCOM");
return false;
}
}
bool Gles::callGlApplyFramebufferAttachmentCMAAINTEL(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glApplyFramebufferAttachmentCMAAINTEL()");
if (mFunctionStubs.glApplyFramebufferAttachmentCMAAINTEL != nullptr) {
mFunctionStubs.glApplyFramebufferAttachmentCMAAINTEL();
} else {
GAPID_WARNING("Attempted to call unsupported function glApplyFramebufferAttachmentCMAAINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glApplyFramebufferAttachmentCMAAINTEL");
return false;
}
}
bool Gles::callGlBeginConditionalRenderNV(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
auto id = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBeginConditionalRenderNV(%" PRIu32 ", %u)", id, mode);
if (mFunctionStubs.glBeginConditionalRenderNV != nullptr) {
mFunctionStubs.glBeginConditionalRenderNV(id, mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glBeginConditionalRenderNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBeginConditionalRenderNV");
return false;
}
}
bool Gles::callGlBeginPerfMonitorAMD(Stack* stack, bool pushReturn) {
auto monitor = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBeginPerfMonitorAMD(%" PRIu32 ")", monitor);
if (mFunctionStubs.glBeginPerfMonitorAMD != nullptr) {
mFunctionStubs.glBeginPerfMonitorAMD(monitor);
} else {
GAPID_WARNING("Attempted to call unsupported function glBeginPerfMonitorAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBeginPerfMonitorAMD");
return false;
}
}
bool Gles::callGlBeginPerfQueryINTEL(Stack* stack, bool pushReturn) {
auto queryHandle = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBeginPerfQueryINTEL(%" PRIu32 ")", queryHandle);
if (mFunctionStubs.glBeginPerfQueryINTEL != nullptr) {
mFunctionStubs.glBeginPerfQueryINTEL(queryHandle);
} else {
GAPID_WARNING("Attempted to call unsupported function glBeginPerfQueryINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBeginPerfQueryINTEL");
return false;
}
}
bool Gles::callGlBeginQueryEXT(Stack* stack, bool pushReturn) {
auto query = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBeginQueryEXT(%u, %" PRIu32 ")", target, query);
if (mFunctionStubs.glBeginQueryEXT != nullptr) {
mFunctionStubs.glBeginQueryEXT(target, query);
} else {
GAPID_WARNING("Attempted to call unsupported function glBeginQueryEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBeginQueryEXT");
return false;
}
}
bool Gles::callGlBindFragDataLocationEXT(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto color = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindFragDataLocationEXT(%" PRIu32 ", %" PRIu32 ", %s)", program, color, name);
if (mFunctionStubs.glBindFragDataLocationEXT != nullptr) {
mFunctionStubs.glBindFragDataLocationEXT(program, color, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindFragDataLocationEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindFragDataLocationEXT");
return false;
}
}
bool Gles::callGlBindFragDataLocationIndexedEXT(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto index = stack->pop<uint32_t>();
auto colorNumber = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindFragDataLocationIndexedEXT(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %s)", program, colorNumber, index, name);
if (mFunctionStubs.glBindFragDataLocationIndexedEXT != nullptr) {
mFunctionStubs.glBindFragDataLocationIndexedEXT(program, colorNumber, index, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindFragDataLocationIndexedEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindFragDataLocationIndexedEXT");
return false;
}
}
bool Gles::callGlBindProgramPipelineEXT(Stack* stack, bool pushReturn) {
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindProgramPipelineEXT(%" PRIu32 ")", pipeline);
if (mFunctionStubs.glBindProgramPipelineEXT != nullptr) {
mFunctionStubs.glBindProgramPipelineEXT(pipeline);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindProgramPipelineEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindProgramPipelineEXT");
return false;
}
}
bool Gles::callGlBindVertexArrayOES(Stack* stack, bool pushReturn) {
auto array = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindVertexArrayOES(%" PRIu32 ")", array);
if (mFunctionStubs.glBindVertexArrayOES != nullptr) {
mFunctionStubs.glBindVertexArrayOES(array);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindVertexArrayOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindVertexArrayOES");
return false;
}
}
bool Gles::callGlBlendBarrierNV(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glBlendBarrierNV()");
if (mFunctionStubs.glBlendBarrierNV != nullptr) {
mFunctionStubs.glBlendBarrierNV();
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendBarrierNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendBarrierNV");
return false;
}
}
bool Gles::callGlBlendEquationSeparateiOES(Stack* stack, bool pushReturn) {
auto modeAlpha = stack->pop<GLenum>();
auto modeRGB = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationSeparateiOES(%" PRIu32 ", %u, %u)", buf, modeRGB, modeAlpha);
if (mFunctionStubs.glBlendEquationSeparateiOES != nullptr) {
mFunctionStubs.glBlendEquationSeparateiOES(buf, modeRGB, modeAlpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationSeparateiOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationSeparateiOES");
return false;
}
}
bool Gles::callGlBlendEquationiOES(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationiOES(%" PRIu32 ", %u)", buf, mode);
if (mFunctionStubs.glBlendEquationiOES != nullptr) {
mFunctionStubs.glBlendEquationiOES(buf, mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationiOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationiOES");
return false;
}
}
bool Gles::callGlBlendFuncSeparateiOES(Stack* stack, bool pushReturn) {
auto dstAlpha = stack->pop<GLenum>();
auto srcAlpha = stack->pop<GLenum>();
auto dstRGB = stack->pop<GLenum>();
auto srcRGB = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendFuncSeparateiOES(%" PRIu32 ", %u, %u, %u, %u)", buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
if (mFunctionStubs.glBlendFuncSeparateiOES != nullptr) {
mFunctionStubs.glBlendFuncSeparateiOES(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFuncSeparateiOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFuncSeparateiOES");
return false;
}
}
bool Gles::callGlBlendFunciOES(Stack* stack, bool pushReturn) {
auto dst = stack->pop<GLenum>();
auto src = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendFunciOES(%" PRIu32 ", %u, %u)", buf, src, dst);
if (mFunctionStubs.glBlendFunciOES != nullptr) {
mFunctionStubs.glBlendFunciOES(buf, src, dst);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFunciOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFunciOES");
return false;
}
}
bool Gles::callGlBlendParameteriNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendParameteriNV(%u, %" PRId32 ")", pname, value);
if (mFunctionStubs.glBlendParameteriNV != nullptr) {
mFunctionStubs.glBlendParameteriNV(pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendParameteriNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendParameteriNV");
return false;
}
}
bool Gles::callGlBlitFramebufferANGLE(Stack* stack, bool pushReturn) {
auto filter = stack->pop<GLenum>();
auto mask = stack->pop<GLbitfield>();
auto dstY1 = stack->pop<int32_t>();
auto dstX1 = stack->pop<int32_t>();
auto dstY0 = stack->pop<int32_t>();
auto dstX0 = stack->pop<int32_t>();
auto srcY1 = stack->pop<int32_t>();
auto srcX1 = stack->pop<int32_t>();
auto srcY0 = stack->pop<int32_t>();
auto srcX0 = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlitFramebufferANGLE(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u)", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
if (mFunctionStubs.glBlitFramebufferANGLE != nullptr) {
mFunctionStubs.glBlitFramebufferANGLE(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlitFramebufferANGLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlitFramebufferANGLE");
return false;
}
}
bool Gles::callGlBlitFramebufferNV(Stack* stack, bool pushReturn) {
auto filter = stack->pop<GLenum>();
auto mask = stack->pop<GLbitfield>();
auto dstY1 = stack->pop<int32_t>();
auto dstX1 = stack->pop<int32_t>();
auto dstY0 = stack->pop<int32_t>();
auto dstX0 = stack->pop<int32_t>();
auto srcY1 = stack->pop<int32_t>();
auto srcX1 = stack->pop<int32_t>();
auto srcY0 = stack->pop<int32_t>();
auto srcX0 = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlitFramebufferNV(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u)", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
if (mFunctionStubs.glBlitFramebufferNV != nullptr) {
mFunctionStubs.glBlitFramebufferNV(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlitFramebufferNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlitFramebufferNV");
return false;
}
}
bool Gles::callGlBufferStorageEXT(Stack* stack, bool pushReturn) {
auto flag = stack->pop<GLbitfield>();
auto data = stack->pop<void*>();
auto size = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBufferStorageEXT(%u, %" PRId32 ", %p, %u)", target, size, data, flag);
if (mFunctionStubs.glBufferStorageEXT != nullptr) {
mFunctionStubs.glBufferStorageEXT(target, size, data, flag);
} else {
GAPID_WARNING("Attempted to call unsupported function glBufferStorageEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBufferStorageEXT");
return false;
}
}
bool Gles::callGlClientWaitSyncAPPLE(Stack* stack, bool pushReturn) {
auto timeout = stack->pop<uint64_t>();
auto flag = stack->pop<GLbitfield>();
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glClientWaitSyncAPPLE(%p, %u, %" PRIu64 ")", sync, flag, timeout);
if (mFunctionStubs.glClientWaitSyncAPPLE != nullptr) {
GLenum return_value = mFunctionStubs.glClientWaitSyncAPPLE(sync, flag, timeout);
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glClientWaitSyncAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClientWaitSyncAPPLE");
return false;
}
}
bool Gles::callGlColorMaskiOES(Stack* stack, bool pushReturn) {
auto a = stack->pop<uint8_t>();
auto b = stack->pop<uint8_t>();
auto g = stack->pop<uint8_t>();
auto r = stack->pop<uint8_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glColorMaskiOES(%" PRIu32 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ")", index, r, g, b, a);
if (mFunctionStubs.glColorMaskiOES != nullptr) {
mFunctionStubs.glColorMaskiOES(index, r, g, b, a);
} else {
GAPID_WARNING("Attempted to call unsupported function glColorMaskiOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColorMaskiOES");
return false;
}
}
bool Gles::callGlCompressedTexImage3DOES(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto image_size = stack->pop<int32_t>();
auto border = stack->pop<int32_t>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCompressedTexImage3DOES(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %p)", target, level, internalformat, width, height, depth, border, image_size, data);
if (mFunctionStubs.glCompressedTexImage3DOES != nullptr) {
mFunctionStubs.glCompressedTexImage3DOES(target, level, internalformat, width, height, depth, border, image_size, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glCompressedTexImage3DOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCompressedTexImage3DOES");
return false;
}
}
bool Gles::callGlCompressedTexSubImage3DOES(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto image_size = stack->pop<int32_t>();
auto format = stack->pop<GLenum>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCompressedTexSubImage3DOES(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %" PRId32 ", %p)", target, level, xoffset, yoffset, zoffset, width, height, depth, format, image_size, data);
if (mFunctionStubs.glCompressedTexSubImage3DOES != nullptr) {
mFunctionStubs.glCompressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, image_size, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glCompressedTexSubImage3DOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCompressedTexSubImage3DOES");
return false;
}
}
bool Gles::callGlCopyBufferSubDataNV(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
auto writeOffset = stack->pop<int32_t>();
auto readOffset = stack->pop<int32_t>();
auto writeTarget = stack->pop<GLenum>();
auto readTarget = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCopyBufferSubDataNV(%u, %u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", readTarget, writeTarget, readOffset, writeOffset, size);
if (mFunctionStubs.glCopyBufferSubDataNV != nullptr) {
mFunctionStubs.glCopyBufferSubDataNV(readTarget, writeTarget, readOffset, writeOffset, size);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyBufferSubDataNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyBufferSubDataNV");
return false;
}
}
bool Gles::callGlCopyImageSubDataOES(Stack* stack, bool pushReturn) {
auto srcDepth = stack->pop<int32_t>();
auto srcHeight = stack->pop<int32_t>();
auto srcWidth = stack->pop<int32_t>();
auto dstZ = stack->pop<int32_t>();
auto dstY = stack->pop<int32_t>();
auto dstX = stack->pop<int32_t>();
auto dstLevel = stack->pop<int32_t>();
auto dstTarget = stack->pop<GLenum>();
auto dstName = stack->pop<uint32_t>();
auto srcZ = stack->pop<int32_t>();
auto srcY = stack->pop<int32_t>();
auto srcX = stack->pop<int32_t>();
auto srcLevel = stack->pop<int32_t>();
auto srcTarget = stack->pop<GLenum>();
auto srcName = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCopyImageSubDataOES(%" PRIu32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRIu32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
if (mFunctionStubs.glCopyImageSubDataOES != nullptr) {
mFunctionStubs.glCopyImageSubDataOES(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyImageSubDataOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyImageSubDataOES");
return false;
}
}
bool Gles::callGlCopyPathNV(Stack* stack, bool pushReturn) {
auto srcPath = stack->pop<uint32_t>();
auto resultPath = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCopyPathNV(%" PRIu32 ", %" PRIu32 ")", resultPath, srcPath);
if (mFunctionStubs.glCopyPathNV != nullptr) {
mFunctionStubs.glCopyPathNV(resultPath, srcPath);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyPathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyPathNV");
return false;
}
}
bool Gles::callGlCopyTexSubImage3DOES(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCopyTexSubImage3DOES(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, level, xoffset, yoffset, zoffset, x, y, width, height);
if (mFunctionStubs.glCopyTexSubImage3DOES != nullptr) {
mFunctionStubs.glCopyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyTexSubImage3DOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyTexSubImage3DOES");
return false;
}
}
bool Gles::callGlCopyTextureLevelsAPPLE(Stack* stack, bool pushReturn) {
auto sourceLevelCount = stack->pop<int32_t>();
auto sourceBaseLevel = stack->pop<int32_t>();
auto sourceTexture = stack->pop<uint32_t>();
auto destinationTexture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCopyTextureLevelsAPPLE(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %" PRId32 ")", destinationTexture, sourceTexture, sourceBaseLevel, sourceLevelCount);
if (mFunctionStubs.glCopyTextureLevelsAPPLE != nullptr) {
mFunctionStubs.glCopyTextureLevelsAPPLE(destinationTexture, sourceTexture, sourceBaseLevel, sourceLevelCount);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyTextureLevelsAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyTextureLevelsAPPLE");
return false;
}
}
bool Gles::callGlCoverFillPathInstancedNV(Stack* stack, bool pushReturn) {
auto transformValues = stack->pop<GLfloat*>();
auto transformType = stack->pop<GLenum>();
auto coverMode = stack->pop<GLenum>();
auto pathBase = stack->pop<uint32_t>();
auto paths = stack->pop<void*>();
auto pathNameType = stack->pop<GLenum>();
auto numPaths = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glCoverFillPathInstancedNV(%" PRId32 ", %u, %p, %" PRIu32 ", %u, %u, %p)", numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues);
if (mFunctionStubs.glCoverFillPathInstancedNV != nullptr) {
mFunctionStubs.glCoverFillPathInstancedNV(numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues);
} else {
GAPID_WARNING("Attempted to call unsupported function glCoverFillPathInstancedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCoverFillPathInstancedNV");
return false;
}
}
bool Gles::callGlCoverFillPathNV(Stack* stack, bool pushReturn) {
auto coverMode = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCoverFillPathNV(%" PRIu32 ", %u)", path, coverMode);
if (mFunctionStubs.glCoverFillPathNV != nullptr) {
mFunctionStubs.glCoverFillPathNV(path, coverMode);
} else {
GAPID_WARNING("Attempted to call unsupported function glCoverFillPathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCoverFillPathNV");
return false;
}
}
bool Gles::callGlCoverStrokePathInstancedNV(Stack* stack, bool pushReturn) {
auto transformValues = stack->pop<GLfloat*>();
auto transformType = stack->pop<GLenum>();
auto coverMode = stack->pop<GLenum>();
auto pathBase = stack->pop<uint32_t>();
auto paths = stack->pop<void*>();
auto pathNameType = stack->pop<GLenum>();
auto numPaths = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glCoverStrokePathInstancedNV(%" PRId32 ", %u, %p, %" PRIu32 ", %u, %u, %p)", numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues);
if (mFunctionStubs.glCoverStrokePathInstancedNV != nullptr) {
mFunctionStubs.glCoverStrokePathInstancedNV(numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues);
} else {
GAPID_WARNING("Attempted to call unsupported function glCoverStrokePathInstancedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCoverStrokePathInstancedNV");
return false;
}
}
bool Gles::callGlCoverStrokePathNV(Stack* stack, bool pushReturn) {
auto coverMode = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCoverStrokePathNV(%" PRIu32 ", %u)", path, coverMode);
if (mFunctionStubs.glCoverStrokePathNV != nullptr) {
mFunctionStubs.glCoverStrokePathNV(path, coverMode);
} else {
GAPID_WARNING("Attempted to call unsupported function glCoverStrokePathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCoverStrokePathNV");
return false;
}
}
bool Gles::callGlCoverageMaskNV(Stack* stack, bool pushReturn) {
auto mask = stack->pop<uint8_t>();
if (stack->isValid()) {
GAPID_INFO("glCoverageMaskNV(%" PRIu8 ")", mask);
if (mFunctionStubs.glCoverageMaskNV != nullptr) {
mFunctionStubs.glCoverageMaskNV(mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glCoverageMaskNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCoverageMaskNV");
return false;
}
}
bool Gles::callGlCoverageModulationNV(Stack* stack, bool pushReturn) {
auto components = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCoverageModulationNV(%u)", components);
if (mFunctionStubs.glCoverageModulationNV != nullptr) {
mFunctionStubs.glCoverageModulationNV(components);
} else {
GAPID_WARNING("Attempted to call unsupported function glCoverageModulationNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCoverageModulationNV");
return false;
}
}
bool Gles::callGlCoverageModulationTableNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glCoverageModulationTableNV(%" PRId32 ", %p)", n, v);
if (mFunctionStubs.glCoverageModulationTableNV != nullptr) {
mFunctionStubs.glCoverageModulationTableNV(n, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glCoverageModulationTableNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCoverageModulationTableNV");
return false;
}
}
bool Gles::callGlCoverageOperationNV(Stack* stack, bool pushReturn) {
auto operation = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCoverageOperationNV(%u)", operation);
if (mFunctionStubs.glCoverageOperationNV != nullptr) {
mFunctionStubs.glCoverageOperationNV(operation);
} else {
GAPID_WARNING("Attempted to call unsupported function glCoverageOperationNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCoverageOperationNV");
return false;
}
}
bool Gles::callGlCreatePerfQueryINTEL(Stack* stack, bool pushReturn) {
auto queryHandle = stack->pop<GLuint*>();
auto queryId = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCreatePerfQueryINTEL(%" PRIu32 ", %p)", queryId, queryHandle);
if (mFunctionStubs.glCreatePerfQueryINTEL != nullptr) {
mFunctionStubs.glCreatePerfQueryINTEL(queryId, queryHandle);
} else {
GAPID_WARNING("Attempted to call unsupported function glCreatePerfQueryINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCreatePerfQueryINTEL");
return false;
}
}
bool Gles::callGlCreateShaderProgramvEXT(Stack* stack, bool pushReturn) {
auto strings = stack->pop<GLchar**>();
auto count = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCreateShaderProgramvEXT(%u, %" PRId32 ", %p)", type, count, strings);
if (mFunctionStubs.glCreateShaderProgramvEXT != nullptr) {
GLuint return_value = mFunctionStubs.glCreateShaderProgramvEXT(type, count, strings);
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<GLuint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glCreateShaderProgramvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCreateShaderProgramvEXT");
return false;
}
}
bool Gles::callGlDeleteFencesNV(Stack* stack, bool pushReturn) {
auto fences = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteFencesNV(%" PRId32 ", %p)", n, fences);
if (mFunctionStubs.glDeleteFencesNV != nullptr) {
mFunctionStubs.glDeleteFencesNV(n, fences);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteFencesNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteFencesNV");
return false;
}
}
bool Gles::callGlDeletePathsNV(Stack* stack, bool pushReturn) {
auto range = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeletePathsNV(%" PRIu32 ", %" PRId32 ")", path, range);
if (mFunctionStubs.glDeletePathsNV != nullptr) {
mFunctionStubs.glDeletePathsNV(path, range);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeletePathsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeletePathsNV");
return false;
}
}
bool Gles::callGlDeletePerfMonitorsAMD(Stack* stack, bool pushReturn) {
auto monitors = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeletePerfMonitorsAMD(%" PRId32 ", %p)", n, monitors);
if (mFunctionStubs.glDeletePerfMonitorsAMD != nullptr) {
mFunctionStubs.glDeletePerfMonitorsAMD(n, monitors);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeletePerfMonitorsAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeletePerfMonitorsAMD");
return false;
}
}
bool Gles::callGlDeletePerfQueryINTEL(Stack* stack, bool pushReturn) {
auto queryHandle = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeletePerfQueryINTEL(%" PRIu32 ")", queryHandle);
if (mFunctionStubs.glDeletePerfQueryINTEL != nullptr) {
mFunctionStubs.glDeletePerfQueryINTEL(queryHandle);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeletePerfQueryINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeletePerfQueryINTEL");
return false;
}
}
bool Gles::callGlDeleteProgramPipelinesEXT(Stack* stack, bool pushReturn) {
auto pipelines = stack->pop<PipelineId*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteProgramPipelinesEXT(%" PRId32 ", %p)", n, pipelines);
if (mFunctionStubs.glDeleteProgramPipelinesEXT != nullptr) {
mFunctionStubs.glDeleteProgramPipelinesEXT(n, pipelines);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteProgramPipelinesEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteProgramPipelinesEXT");
return false;
}
}
bool Gles::callGlDeleteQueriesEXT(Stack* stack, bool pushReturn) {
auto queries = stack->pop<QueryId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteQueriesEXT(%" PRId32 ", %p)", count, queries);
if (mFunctionStubs.glDeleteQueriesEXT != nullptr) {
mFunctionStubs.glDeleteQueriesEXT(count, queries);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteQueriesEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteQueriesEXT");
return false;
}
}
bool Gles::callGlDeleteSyncAPPLE(Stack* stack, bool pushReturn) {
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glDeleteSyncAPPLE(%p)", sync);
if (mFunctionStubs.glDeleteSyncAPPLE != nullptr) {
mFunctionStubs.glDeleteSyncAPPLE(sync);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteSyncAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteSyncAPPLE");
return false;
}
}
bool Gles::callGlDeleteVertexArraysOES(Stack* stack, bool pushReturn) {
auto arrays = stack->pop<VertexArrayId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteVertexArraysOES(%" PRId32 ", %p)", count, arrays);
if (mFunctionStubs.glDeleteVertexArraysOES != nullptr) {
mFunctionStubs.glDeleteVertexArraysOES(count, arrays);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteVertexArraysOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteVertexArraysOES");
return false;
}
}
bool Gles::callGlDepthRangeArrayfvNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDepthRangeArrayfvNV(%" PRIu32 ", %" PRId32 ", %p)", first, count, v);
if (mFunctionStubs.glDepthRangeArrayfvNV != nullptr) {
mFunctionStubs.glDepthRangeArrayfvNV(first, count, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthRangeArrayfvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthRangeArrayfvNV");
return false;
}
}
bool Gles::callGlDepthRangeIndexedfNV(Stack* stack, bool pushReturn) {
auto f = stack->pop<float>();
auto n = stack->pop<float>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDepthRangeIndexedfNV(%" PRIu32 ", %f, %f)", index, n, f);
if (mFunctionStubs.glDepthRangeIndexedfNV != nullptr) {
mFunctionStubs.glDepthRangeIndexedfNV(index, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthRangeIndexedfNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthRangeIndexedfNV");
return false;
}
}
bool Gles::callGlDisableDriverControlQCOM(Stack* stack, bool pushReturn) {
auto driverControl = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDisableDriverControlQCOM(%" PRIu32 ")", driverControl);
if (mFunctionStubs.glDisableDriverControlQCOM != nullptr) {
mFunctionStubs.glDisableDriverControlQCOM(driverControl);
} else {
GAPID_WARNING("Attempted to call unsupported function glDisableDriverControlQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDisableDriverControlQCOM");
return false;
}
}
bool Gles::callGlDisableiNV(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDisableiNV(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glDisableiNV != nullptr) {
mFunctionStubs.glDisableiNV(target, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glDisableiNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDisableiNV");
return false;
}
}
bool Gles::callGlDisableiOES(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDisableiOES(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glDisableiOES != nullptr) {
mFunctionStubs.glDisableiOES(target, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glDisableiOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDisableiOES");
return false;
}
}
bool Gles::callGlDiscardFramebufferEXT(Stack* stack, bool pushReturn) {
auto attachments = stack->pop<GLenum*>();
auto numAttachments = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDiscardFramebufferEXT(%u, %" PRId32 ", %p)", target, numAttachments, attachments);
if (mFunctionStubs.glDiscardFramebufferEXT != nullptr) {
mFunctionStubs.glDiscardFramebufferEXT(target, numAttachments, attachments);
} else {
GAPID_WARNING("Attempted to call unsupported function glDiscardFramebufferEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDiscardFramebufferEXT");
return false;
}
}
bool Gles::callGlDrawArraysInstancedANGLE(Stack* stack, bool pushReturn) {
auto primcount = stack->pop<int32_t>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawArraysInstancedANGLE(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", mode, first, count, primcount);
if (mFunctionStubs.glDrawArraysInstancedANGLE != nullptr) {
mFunctionStubs.glDrawArraysInstancedANGLE(mode, first, count, primcount);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawArraysInstancedANGLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawArraysInstancedANGLE");
return false;
}
}
bool Gles::callGlDrawArraysInstancedBaseInstanceEXT(Stack* stack, bool pushReturn) {
auto baseinstance = stack->pop<uint32_t>();
auto instancecount = stack->pop<int32_t>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawArraysInstancedBaseInstanceEXT(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRIu32 ")", mode, first, count, instancecount, baseinstance);
if (mFunctionStubs.glDrawArraysInstancedBaseInstanceEXT != nullptr) {
mFunctionStubs.glDrawArraysInstancedBaseInstanceEXT(mode, first, count, instancecount, baseinstance);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawArraysInstancedBaseInstanceEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawArraysInstancedBaseInstanceEXT");
return false;
}
}
bool Gles::callGlDrawArraysInstancedEXT(Stack* stack, bool pushReturn) {
auto primcount = stack->pop<int32_t>();
auto count = stack->pop<int32_t>();
auto start = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawArraysInstancedEXT(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", mode, start, count, primcount);
if (mFunctionStubs.glDrawArraysInstancedEXT != nullptr) {
mFunctionStubs.glDrawArraysInstancedEXT(mode, start, count, primcount);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawArraysInstancedEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawArraysInstancedEXT");
return false;
}
}
bool Gles::callGlDrawArraysInstancedNV(Stack* stack, bool pushReturn) {
auto primcount = stack->pop<int32_t>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawArraysInstancedNV(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", mode, first, count, primcount);
if (mFunctionStubs.glDrawArraysInstancedNV != nullptr) {
mFunctionStubs.glDrawArraysInstancedNV(mode, first, count, primcount);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawArraysInstancedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawArraysInstancedNV");
return false;
}
}
bool Gles::callGlDrawBuffersEXT(Stack* stack, bool pushReturn) {
auto bufs = stack->pop<GLenum*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDrawBuffersEXT(%" PRId32 ", %p)", n, bufs);
if (mFunctionStubs.glDrawBuffersEXT != nullptr) {
mFunctionStubs.glDrawBuffersEXT(n, bufs);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawBuffersEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawBuffersEXT");
return false;
}
}
bool Gles::callGlDrawBuffersIndexedEXT(Stack* stack, bool pushReturn) {
auto indices = stack->pop<GLint*>();
auto location = stack->pop<GLenum*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDrawBuffersIndexedEXT(%" PRId32 ", %p, %p)", n, location, indices);
if (mFunctionStubs.glDrawBuffersIndexedEXT != nullptr) {
mFunctionStubs.glDrawBuffersIndexedEXT(n, location, indices);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawBuffersIndexedEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawBuffersIndexedEXT");
return false;
}
}
bool Gles::callGlDrawBuffersNV(Stack* stack, bool pushReturn) {
auto bufs = stack->pop<GLenum*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDrawBuffersNV(%" PRId32 ", %p)", n, bufs);
if (mFunctionStubs.glDrawBuffersNV != nullptr) {
mFunctionStubs.glDrawBuffersNV(n, bufs);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawBuffersNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawBuffersNV");
return false;
}
}
bool Gles::callGlDrawElementsBaseVertexEXT(Stack* stack, bool pushReturn) {
auto basevertex = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsBaseVertexEXT(%u, %" PRId32 ", %u, %p, %" PRId32 ")", mode, count, type, indices, basevertex);
if (mFunctionStubs.glDrawElementsBaseVertexEXT != nullptr) {
mFunctionStubs.glDrawElementsBaseVertexEXT(mode, count, type, indices, basevertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsBaseVertexEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsBaseVertexEXT");
return false;
}
}
bool Gles::callGlDrawElementsBaseVertexOES(Stack* stack, bool pushReturn) {
auto basevertex = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsBaseVertexOES(%u, %" PRId32 ", %u, %p, %" PRId32 ")", mode, count, type, indices, basevertex);
if (mFunctionStubs.glDrawElementsBaseVertexOES != nullptr) {
mFunctionStubs.glDrawElementsBaseVertexOES(mode, count, type, indices, basevertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsBaseVertexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsBaseVertexOES");
return false;
}
}
bool Gles::callGlDrawElementsInstancedANGLE(Stack* stack, bool pushReturn) {
auto primcount = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstancedANGLE(%u, %" PRId32 ", %u, %p, %" PRId32 ")", mode, count, type, indices, primcount);
if (mFunctionStubs.glDrawElementsInstancedANGLE != nullptr) {
mFunctionStubs.glDrawElementsInstancedANGLE(mode, count, type, indices, primcount);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstancedANGLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstancedANGLE");
return false;
}
}
bool Gles::callGlDrawElementsInstancedBaseInstanceEXT(Stack* stack, bool pushReturn) {
auto baseinstance = stack->pop<uint32_t>();
auto instancecount = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstancedBaseInstanceEXT(%u, %" PRId32 ", %u, %p, %" PRId32 ", %" PRIu32 ")", mode, count, type, indices, instancecount, baseinstance);
if (mFunctionStubs.glDrawElementsInstancedBaseInstanceEXT != nullptr) {
mFunctionStubs.glDrawElementsInstancedBaseInstanceEXT(mode, count, type, indices, instancecount, baseinstance);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstancedBaseInstanceEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstancedBaseInstanceEXT");
return false;
}
}
bool Gles::callGlDrawElementsInstancedBaseVertexBaseInstanceEXT(Stack* stack, bool pushReturn) {
auto baseinstance = stack->pop<uint32_t>();
auto basevertex = stack->pop<int32_t>();
auto instancecount = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstancedBaseVertexBaseInstanceEXT(%u, %" PRId32 ", %u, %p, %" PRId32 ", %" PRId32 ", %" PRIu32 ")", mode, count, type, indices, instancecount, basevertex, baseinstance);
if (mFunctionStubs.glDrawElementsInstancedBaseVertexBaseInstanceEXT != nullptr) {
mFunctionStubs.glDrawElementsInstancedBaseVertexBaseInstanceEXT(mode, count, type, indices, instancecount, basevertex, baseinstance);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstancedBaseVertexBaseInstanceEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstancedBaseVertexBaseInstanceEXT");
return false;
}
}
bool Gles::callGlDrawElementsInstancedBaseVertexEXT(Stack* stack, bool pushReturn) {
auto basevertex = stack->pop<int32_t>();
auto instancecount = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstancedBaseVertexEXT(%u, %" PRId32 ", %u, %p, %" PRId32 ", %" PRId32 ")", mode, count, type, indices, instancecount, basevertex);
if (mFunctionStubs.glDrawElementsInstancedBaseVertexEXT != nullptr) {
mFunctionStubs.glDrawElementsInstancedBaseVertexEXT(mode, count, type, indices, instancecount, basevertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstancedBaseVertexEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstancedBaseVertexEXT");
return false;
}
}
bool Gles::callGlDrawElementsInstancedBaseVertexOES(Stack* stack, bool pushReturn) {
auto basevertex = stack->pop<int32_t>();
auto instancecount = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstancedBaseVertexOES(%u, %" PRId32 ", %u, %p, %" PRId32 ", %" PRId32 ")", mode, count, type, indices, instancecount, basevertex);
if (mFunctionStubs.glDrawElementsInstancedBaseVertexOES != nullptr) {
mFunctionStubs.glDrawElementsInstancedBaseVertexOES(mode, count, type, indices, instancecount, basevertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstancedBaseVertexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstancedBaseVertexOES");
return false;
}
}
bool Gles::callGlDrawElementsInstancedEXT(Stack* stack, bool pushReturn) {
auto primcount = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstancedEXT(%u, %" PRId32 ", %u, %p, %" PRId32 ")", mode, count, type, indices, primcount);
if (mFunctionStubs.glDrawElementsInstancedEXT != nullptr) {
mFunctionStubs.glDrawElementsInstancedEXT(mode, count, type, indices, primcount);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstancedEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstancedEXT");
return false;
}
}
bool Gles::callGlDrawElementsInstancedNV(Stack* stack, bool pushReturn) {
auto primcount = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawElementsInstancedNV(%u, %" PRId32 ", %u, %p, %" PRId32 ")", mode, count, type, indices, primcount);
if (mFunctionStubs.glDrawElementsInstancedNV != nullptr) {
mFunctionStubs.glDrawElementsInstancedNV(mode, count, type, indices, primcount);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawElementsInstancedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawElementsInstancedNV");
return false;
}
}
bool Gles::callGlDrawRangeElementsBaseVertexEXT(Stack* stack, bool pushReturn) {
auto basevertex = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto end = stack->pop<uint32_t>();
auto start = stack->pop<uint32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawRangeElementsBaseVertexEXT(%u, %" PRIu32 ", %" PRIu32 ", %" PRId32 ", %u, %p, %" PRId32 ")", mode, start, end, count, type, indices, basevertex);
if (mFunctionStubs.glDrawRangeElementsBaseVertexEXT != nullptr) {
mFunctionStubs.glDrawRangeElementsBaseVertexEXT(mode, start, end, count, type, indices, basevertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawRangeElementsBaseVertexEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawRangeElementsBaseVertexEXT");
return false;
}
}
bool Gles::callGlDrawRangeElementsBaseVertexOES(Stack* stack, bool pushReturn) {
auto basevertex = stack->pop<int32_t>();
auto indices = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<int32_t>();
auto end = stack->pop<uint32_t>();
auto start = stack->pop<uint32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawRangeElementsBaseVertexOES(%u, %" PRIu32 ", %" PRIu32 ", %" PRId32 ", %u, %p, %" PRId32 ")", mode, start, end, count, type, indices, basevertex);
if (mFunctionStubs.glDrawRangeElementsBaseVertexOES != nullptr) {
mFunctionStubs.glDrawRangeElementsBaseVertexOES(mode, start, end, count, type, indices, basevertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawRangeElementsBaseVertexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawRangeElementsBaseVertexOES");
return false;
}
}
bool Gles::callGlEGLImageTargetRenderbufferStorageOES(Stack* stack, bool pushReturn) {
auto image = stack->pop<void*>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEGLImageTargetRenderbufferStorageOES(%u, %p)", target, image);
if (mFunctionStubs.glEGLImageTargetRenderbufferStorageOES != nullptr) {
mFunctionStubs.glEGLImageTargetRenderbufferStorageOES(target, image);
} else {
GAPID_WARNING("Attempted to call unsupported function glEGLImageTargetRenderbufferStorageOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEGLImageTargetRenderbufferStorageOES");
return false;
}
}
bool Gles::callGlEGLImageTargetTexture2DOES(Stack* stack, bool pushReturn) {
auto image = stack->pop<void*>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEGLImageTargetTexture2DOES(%u, %p)", target, image);
if (mFunctionStubs.glEGLImageTargetTexture2DOES != nullptr) {
mFunctionStubs.glEGLImageTargetTexture2DOES(target, image);
} else {
GAPID_WARNING("Attempted to call unsupported function glEGLImageTargetTexture2DOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEGLImageTargetTexture2DOES");
return false;
}
}
bool Gles::callGlEnableDriverControlQCOM(Stack* stack, bool pushReturn) {
auto driverControl = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glEnableDriverControlQCOM(%" PRIu32 ")", driverControl);
if (mFunctionStubs.glEnableDriverControlQCOM != nullptr) {
mFunctionStubs.glEnableDriverControlQCOM(driverControl);
} else {
GAPID_WARNING("Attempted to call unsupported function glEnableDriverControlQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEnableDriverControlQCOM");
return false;
}
}
bool Gles::callGlEnableiNV(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEnableiNV(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glEnableiNV != nullptr) {
mFunctionStubs.glEnableiNV(target, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glEnableiNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEnableiNV");
return false;
}
}
bool Gles::callGlEnableiOES(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEnableiOES(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glEnableiOES != nullptr) {
mFunctionStubs.glEnableiOES(target, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glEnableiOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEnableiOES");
return false;
}
}
bool Gles::callGlEndConditionalRenderNV(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glEndConditionalRenderNV()");
if (mFunctionStubs.glEndConditionalRenderNV != nullptr) {
mFunctionStubs.glEndConditionalRenderNV();
} else {
GAPID_WARNING("Attempted to call unsupported function glEndConditionalRenderNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEndConditionalRenderNV");
return false;
}
}
bool Gles::callGlEndPerfMonitorAMD(Stack* stack, bool pushReturn) {
auto monitor = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glEndPerfMonitorAMD(%" PRIu32 ")", monitor);
if (mFunctionStubs.glEndPerfMonitorAMD != nullptr) {
mFunctionStubs.glEndPerfMonitorAMD(monitor);
} else {
GAPID_WARNING("Attempted to call unsupported function glEndPerfMonitorAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEndPerfMonitorAMD");
return false;
}
}
bool Gles::callGlEndPerfQueryINTEL(Stack* stack, bool pushReturn) {
auto queryHandle = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glEndPerfQueryINTEL(%" PRIu32 ")", queryHandle);
if (mFunctionStubs.glEndPerfQueryINTEL != nullptr) {
mFunctionStubs.glEndPerfQueryINTEL(queryHandle);
} else {
GAPID_WARNING("Attempted to call unsupported function glEndPerfQueryINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEndPerfQueryINTEL");
return false;
}
}
bool Gles::callGlEndQueryEXT(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEndQueryEXT(%u)", target);
if (mFunctionStubs.glEndQueryEXT != nullptr) {
mFunctionStubs.glEndQueryEXT(target);
} else {
GAPID_WARNING("Attempted to call unsupported function glEndQueryEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEndQueryEXT");
return false;
}
}
bool Gles::callGlEndTilingQCOM(Stack* stack, bool pushReturn) {
auto preserve_mask = stack->pop<GLbitfield>();
if (stack->isValid()) {
GAPID_INFO("glEndTilingQCOM(%u)", preserve_mask);
if (mFunctionStubs.glEndTilingQCOM != nullptr) {
mFunctionStubs.glEndTilingQCOM(preserve_mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glEndTilingQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEndTilingQCOM");
return false;
}
}
bool Gles::callGlExtGetBufferPointervQCOM(Stack* stack, bool pushReturn) {
auto params = stack->pop<void**>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glExtGetBufferPointervQCOM(%u, %p)", target, params);
if (mFunctionStubs.glExtGetBufferPointervQCOM != nullptr) {
mFunctionStubs.glExtGetBufferPointervQCOM(target, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetBufferPointervQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetBufferPointervQCOM");
return false;
}
}
bool Gles::callGlExtGetBuffersQCOM(Stack* stack, bool pushReturn) {
auto numBuffers = stack->pop<GLint*>();
auto maxBuffers = stack->pop<int32_t>();
auto buffers = stack->pop<BufferId*>();
if (stack->isValid()) {
GAPID_INFO("glExtGetBuffersQCOM(%p, %" PRId32 ", %p)", buffers, maxBuffers, numBuffers);
if (mFunctionStubs.glExtGetBuffersQCOM != nullptr) {
mFunctionStubs.glExtGetBuffersQCOM(buffers, maxBuffers, numBuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetBuffersQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetBuffersQCOM");
return false;
}
}
bool Gles::callGlExtGetFramebuffersQCOM(Stack* stack, bool pushReturn) {
auto numFramebuffers = stack->pop<GLint*>();
auto maxFramebuffers = stack->pop<int32_t>();
auto framebuffers = stack->pop<FramebufferId*>();
if (stack->isValid()) {
GAPID_INFO("glExtGetFramebuffersQCOM(%p, %" PRId32 ", %p)", framebuffers, maxFramebuffers, numFramebuffers);
if (mFunctionStubs.glExtGetFramebuffersQCOM != nullptr) {
mFunctionStubs.glExtGetFramebuffersQCOM(framebuffers, maxFramebuffers, numFramebuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetFramebuffersQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetFramebuffersQCOM");
return false;
}
}
bool Gles::callGlExtGetProgramBinarySourceQCOM(Stack* stack, bool pushReturn) {
auto length = stack->pop<GLint*>();
auto source = stack->pop<GLchar*>();
auto shadertype = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glExtGetProgramBinarySourceQCOM(%" PRIu32 ", %u, %p, %p)", program, shadertype, source, length);
if (mFunctionStubs.glExtGetProgramBinarySourceQCOM != nullptr) {
mFunctionStubs.glExtGetProgramBinarySourceQCOM(program, shadertype, source, length);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetProgramBinarySourceQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetProgramBinarySourceQCOM");
return false;
}
}
bool Gles::callGlExtGetProgramsQCOM(Stack* stack, bool pushReturn) {
auto numPrograms = stack->pop<GLint*>();
auto maxPrograms = stack->pop<int32_t>();
auto programs = stack->pop<ProgramId*>();
if (stack->isValid()) {
GAPID_INFO("glExtGetProgramsQCOM(%p, %" PRId32 ", %p)", programs, maxPrograms, numPrograms);
if (mFunctionStubs.glExtGetProgramsQCOM != nullptr) {
mFunctionStubs.glExtGetProgramsQCOM(programs, maxPrograms, numPrograms);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetProgramsQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetProgramsQCOM");
return false;
}
}
bool Gles::callGlExtGetRenderbuffersQCOM(Stack* stack, bool pushReturn) {
auto numRenderbuffers = stack->pop<GLint*>();
auto maxRenderbuffers = stack->pop<int32_t>();
auto renderbuffers = stack->pop<RenderbufferId*>();
if (stack->isValid()) {
GAPID_INFO("glExtGetRenderbuffersQCOM(%p, %" PRId32 ", %p)", renderbuffers, maxRenderbuffers, numRenderbuffers);
if (mFunctionStubs.glExtGetRenderbuffersQCOM != nullptr) {
mFunctionStubs.glExtGetRenderbuffersQCOM(renderbuffers, maxRenderbuffers, numRenderbuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetRenderbuffersQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetRenderbuffersQCOM");
return false;
}
}
bool Gles::callGlExtGetShadersQCOM(Stack* stack, bool pushReturn) {
auto numShaders = stack->pop<GLint*>();
auto maxShaders = stack->pop<int32_t>();
auto shaders = stack->pop<ShaderId*>();
if (stack->isValid()) {
GAPID_INFO("glExtGetShadersQCOM(%p, %" PRId32 ", %p)", shaders, maxShaders, numShaders);
if (mFunctionStubs.glExtGetShadersQCOM != nullptr) {
mFunctionStubs.glExtGetShadersQCOM(shaders, maxShaders, numShaders);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetShadersQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetShadersQCOM");
return false;
}
}
bool Gles::callGlExtGetTexLevelParameterivQCOM(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto face = stack->pop<GLenum>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glExtGetTexLevelParameterivQCOM(%" PRIu32 ", %u, %" PRId32 ", %u, %p)", texture, face, level, pname, params);
if (mFunctionStubs.glExtGetTexLevelParameterivQCOM != nullptr) {
mFunctionStubs.glExtGetTexLevelParameterivQCOM(texture, face, level, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetTexLevelParameterivQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetTexLevelParameterivQCOM");
return false;
}
}
bool Gles::callGlExtGetTexSubImageQCOM(Stack* stack, bool pushReturn) {
auto texels = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glExtGetTexSubImageQCOM(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels);
if (mFunctionStubs.glExtGetTexSubImageQCOM != nullptr) {
mFunctionStubs.glExtGetTexSubImageQCOM(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetTexSubImageQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetTexSubImageQCOM");
return false;
}
}
bool Gles::callGlExtGetTexturesQCOM(Stack* stack, bool pushReturn) {
auto numTextures = stack->pop<GLint*>();
auto maxTextures = stack->pop<int32_t>();
auto textures = stack->pop<TextureId*>();
if (stack->isValid()) {
GAPID_INFO("glExtGetTexturesQCOM(%p, %" PRId32 ", %p)", textures, maxTextures, numTextures);
if (mFunctionStubs.glExtGetTexturesQCOM != nullptr) {
mFunctionStubs.glExtGetTexturesQCOM(textures, maxTextures, numTextures);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtGetTexturesQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtGetTexturesQCOM");
return false;
}
}
bool Gles::callGlExtIsProgramBinaryQCOM(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glExtIsProgramBinaryQCOM(%" PRIu32 ")", program);
if (mFunctionStubs.glExtIsProgramBinaryQCOM != nullptr) {
GLboolean return_value = mFunctionStubs.glExtIsProgramBinaryQCOM(program);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glExtIsProgramBinaryQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtIsProgramBinaryQCOM");
return false;
}
}
bool Gles::callGlExtTexObjectStateOverrideiQCOM(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glExtTexObjectStateOverrideiQCOM(%u, %u, %" PRId32 ")", target, pname, param);
if (mFunctionStubs.glExtTexObjectStateOverrideiQCOM != nullptr) {
mFunctionStubs.glExtTexObjectStateOverrideiQCOM(target, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glExtTexObjectStateOverrideiQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glExtTexObjectStateOverrideiQCOM");
return false;
}
}
bool Gles::callGlFenceSyncAPPLE(Stack* stack, bool pushReturn) {
auto flag = stack->pop<GLbitfield>();
auto condition = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFenceSyncAPPLE(%u, %u)", condition, flag);
if (mFunctionStubs.glFenceSyncAPPLE != nullptr) {
GLsync return_value = mFunctionStubs.glFenceSyncAPPLE(condition, flag);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<GLsync>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glFenceSyncAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFenceSyncAPPLE");
return false;
}
}
bool Gles::callGlFinishFenceNV(Stack* stack, bool pushReturn) {
auto fence = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glFinishFenceNV(%" PRIu32 ")", fence);
if (mFunctionStubs.glFinishFenceNV != nullptr) {
mFunctionStubs.glFinishFenceNV(fence);
} else {
GAPID_WARNING("Attempted to call unsupported function glFinishFenceNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFinishFenceNV");
return false;
}
}
bool Gles::callGlFlushMappedBufferRangeEXT(Stack* stack, bool pushReturn) {
auto length = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFlushMappedBufferRangeEXT(%u, %" PRId32 ", %" PRId32 ")", target, offset, length);
if (mFunctionStubs.glFlushMappedBufferRangeEXT != nullptr) {
mFunctionStubs.glFlushMappedBufferRangeEXT(target, offset, length);
} else {
GAPID_WARNING("Attempted to call unsupported function glFlushMappedBufferRangeEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFlushMappedBufferRangeEXT");
return false;
}
}
bool Gles::callGlFragmentCoverageColorNV(Stack* stack, bool pushReturn) {
auto color = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glFragmentCoverageColorNV(%" PRIu32 ")", color);
if (mFunctionStubs.glFragmentCoverageColorNV != nullptr) {
mFunctionStubs.glFragmentCoverageColorNV(color);
} else {
GAPID_WARNING("Attempted to call unsupported function glFragmentCoverageColorNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFragmentCoverageColorNV");
return false;
}
}
bool Gles::callGlFramebufferSampleLocationsfvNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto start = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferSampleLocationsfvNV(%u, %" PRIu32 ", %" PRId32 ", %p)", target, start, count, v);
if (mFunctionStubs.glFramebufferSampleLocationsfvNV != nullptr) {
mFunctionStubs.glFramebufferSampleLocationsfvNV(target, start, count, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferSampleLocationsfvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferSampleLocationsfvNV");
return false;
}
}
bool Gles::callGlFramebufferTexture2DMultisampleEXT(Stack* stack, bool pushReturn) {
auto samples = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto textarget = stack->pop<GLenum>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTexture2DMultisampleEXT(%u, %u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ")", target, attachment, textarget, texture, level, samples);
if (mFunctionStubs.glFramebufferTexture2DMultisampleEXT != nullptr) {
mFunctionStubs.glFramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTexture2DMultisampleEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTexture2DMultisampleEXT");
return false;
}
}
bool Gles::callGlFramebufferTexture2DMultisampleIMG(Stack* stack, bool pushReturn) {
auto samples = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto textarget = stack->pop<GLenum>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTexture2DMultisampleIMG(%u, %u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ")", target, attachment, textarget, texture, level, samples);
if (mFunctionStubs.glFramebufferTexture2DMultisampleIMG != nullptr) {
mFunctionStubs.glFramebufferTexture2DMultisampleIMG(target, attachment, textarget, texture, level, samples);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTexture2DMultisampleIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTexture2DMultisampleIMG");
return false;
}
}
bool Gles::callGlFramebufferTexture3DOES(Stack* stack, bool pushReturn) {
auto zoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto textarget = stack->pop<GLenum>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTexture3DOES(%u, %u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ")", target, attachment, textarget, texture, level, zoffset);
if (mFunctionStubs.glFramebufferTexture3DOES != nullptr) {
mFunctionStubs.glFramebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTexture3DOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTexture3DOES");
return false;
}
}
bool Gles::callGlFramebufferTextureMultiviewOVR(Stack* stack, bool pushReturn) {
auto numViews = stack->pop<int32_t>();
auto baseViewIndex = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTextureMultiviewOVR(%u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, attachment, texture, level, baseViewIndex, numViews);
if (mFunctionStubs.glFramebufferTextureMultiviewOVR != nullptr) {
mFunctionStubs.glFramebufferTextureMultiviewOVR(target, attachment, texture, level, baseViewIndex, numViews);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTextureMultiviewOVR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTextureMultiviewOVR");
return false;
}
}
bool Gles::callGlFramebufferTextureOES(Stack* stack, bool pushReturn) {
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTextureOES(%u, %u, %" PRIu32 ", %" PRId32 ")", target, attachment, texture, level);
if (mFunctionStubs.glFramebufferTextureOES != nullptr) {
mFunctionStubs.glFramebufferTextureOES(target, attachment, texture, level);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTextureOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTextureOES");
return false;
}
}
bool Gles::callGlGenFencesNV(Stack* stack, bool pushReturn) {
auto fences = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenFencesNV(%" PRId32 ", %p)", n, fences);
if (mFunctionStubs.glGenFencesNV != nullptr) {
mFunctionStubs.glGenFencesNV(n, fences);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenFencesNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenFencesNV");
return false;
}
}
bool Gles::callGlGenPathsNV(Stack* stack, bool pushReturn) {
auto range = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenPathsNV(%" PRId32 ")", range);
if (mFunctionStubs.glGenPathsNV != nullptr) {
GLuint return_value = mFunctionStubs.glGenPathsNV(range);
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<GLuint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGenPathsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenPathsNV");
return false;
}
}
bool Gles::callGlGenPerfMonitorsAMD(Stack* stack, bool pushReturn) {
auto monitors = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenPerfMonitorsAMD(%" PRId32 ", %p)", n, monitors);
if (mFunctionStubs.glGenPerfMonitorsAMD != nullptr) {
mFunctionStubs.glGenPerfMonitorsAMD(n, monitors);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenPerfMonitorsAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenPerfMonitorsAMD");
return false;
}
}
bool Gles::callGlGenProgramPipelinesEXT(Stack* stack, bool pushReturn) {
auto pipelines = stack->pop<PipelineId*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenProgramPipelinesEXT(%" PRId32 ", %p)", n, pipelines);
if (mFunctionStubs.glGenProgramPipelinesEXT != nullptr) {
mFunctionStubs.glGenProgramPipelinesEXT(n, pipelines);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenProgramPipelinesEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenProgramPipelinesEXT");
return false;
}
}
bool Gles::callGlGenQueriesEXT(Stack* stack, bool pushReturn) {
auto queries = stack->pop<QueryId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenQueriesEXT(%" PRId32 ", %p)", count, queries);
if (mFunctionStubs.glGenQueriesEXT != nullptr) {
mFunctionStubs.glGenQueriesEXT(count, queries);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenQueriesEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenQueriesEXT");
return false;
}
}
bool Gles::callGlGenVertexArraysOES(Stack* stack, bool pushReturn) {
auto arrays = stack->pop<VertexArrayId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenVertexArraysOES(%" PRId32 ", %p)", count, arrays);
if (mFunctionStubs.glGenVertexArraysOES != nullptr) {
mFunctionStubs.glGenVertexArraysOES(count, arrays);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenVertexArraysOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenVertexArraysOES");
return false;
}
}
bool Gles::callGlGetBufferPointervOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<void**>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetBufferPointervOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetBufferPointervOES != nullptr) {
mFunctionStubs.glGetBufferPointervOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetBufferPointervOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetBufferPointervOES");
return false;
}
}
bool Gles::callGlGetCoverageModulationTableNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto bufsize = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetCoverageModulationTableNV(%" PRId32 ", %p)", bufsize, v);
if (mFunctionStubs.glGetCoverageModulationTableNV != nullptr) {
mFunctionStubs.glGetCoverageModulationTableNV(bufsize, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetCoverageModulationTableNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetCoverageModulationTableNV");
return false;
}
}
bool Gles::callGlGetDriverControlStringQCOM(Stack* stack, bool pushReturn) {
auto driverControlString = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto driverControl = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetDriverControlStringQCOM(%" PRIu32 ", %" PRId32 ", %p, %p)", driverControl, bufSize, length, driverControlString);
if (mFunctionStubs.glGetDriverControlStringQCOM != nullptr) {
mFunctionStubs.glGetDriverControlStringQCOM(driverControl, bufSize, length, driverControlString);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetDriverControlStringQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetDriverControlStringQCOM");
return false;
}
}
bool Gles::callGlGetDriverControlsQCOM(Stack* stack, bool pushReturn) {
auto driverControls = stack->pop<GLuint*>();
auto size = stack->pop<int32_t>();
auto num = stack->pop<GLint*>();
if (stack->isValid()) {
GAPID_INFO("glGetDriverControlsQCOM(%p, %" PRId32 ", %p)", num, size, driverControls);
if (mFunctionStubs.glGetDriverControlsQCOM != nullptr) {
mFunctionStubs.glGetDriverControlsQCOM(num, size, driverControls);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetDriverControlsQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetDriverControlsQCOM");
return false;
}
}
bool Gles::callGlGetFenceivNV(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto fence = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetFenceivNV(%" PRIu32 ", %u, %p)", fence, pname, params);
if (mFunctionStubs.glGetFenceivNV != nullptr) {
mFunctionStubs.glGetFenceivNV(fence, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFenceivNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFenceivNV");
return false;
}
}
bool Gles::callGlGetFirstPerfQueryIdINTEL(Stack* stack, bool pushReturn) {
auto queryId = stack->pop<GLuint*>();
if (stack->isValid()) {
GAPID_INFO("glGetFirstPerfQueryIdINTEL(%p)", queryId);
if (mFunctionStubs.glGetFirstPerfQueryIdINTEL != nullptr) {
mFunctionStubs.glGetFirstPerfQueryIdINTEL(queryId);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFirstPerfQueryIdINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFirstPerfQueryIdINTEL");
return false;
}
}
bool Gles::callGlGetFloatiVNV(Stack* stack, bool pushReturn) {
auto data = stack->pop<GLfloat*>();
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFloati_vNV(%u, %" PRIu32 ", %p)", target, index, data);
if (mFunctionStubs.glGetFloati_vNV != nullptr) {
mFunctionStubs.glGetFloati_vNV(target, index, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFloati_vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFloati_vNV");
return false;
}
}
bool Gles::callGlGetFragDataIndexEXT(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetFragDataIndexEXT(%" PRIu32 ", %s)", program, name);
if (mFunctionStubs.glGetFragDataIndexEXT != nullptr) {
GLint return_value = mFunctionStubs.glGetFragDataIndexEXT(program, name);
GAPID_INFO("Returned: %" PRId32 "", return_value);
if (pushReturn) {
stack->push<GLint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFragDataIndexEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFragDataIndexEXT");
return false;
}
}
bool Gles::callGlGetGraphicsResetStatusEXT(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glGetGraphicsResetStatusEXT()");
if (mFunctionStubs.glGetGraphicsResetStatusEXT != nullptr) {
GLenum return_value = mFunctionStubs.glGetGraphicsResetStatusEXT();
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetGraphicsResetStatusEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetGraphicsResetStatusEXT");
return false;
}
}
bool Gles::callGlGetGraphicsResetStatusKHR(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glGetGraphicsResetStatusKHR()");
if (mFunctionStubs.glGetGraphicsResetStatusKHR != nullptr) {
GLenum return_value = mFunctionStubs.glGetGraphicsResetStatusKHR();
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetGraphicsResetStatusKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetGraphicsResetStatusKHR");
return false;
}
}
bool Gles::callGlGetImageHandleNV(Stack* stack, bool pushReturn) {
auto format = stack->pop<GLenum>();
auto layer = stack->pop<int32_t>();
auto layered = stack->pop<uint8_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetImageHandleNV(%" PRIu32 ", %" PRId32 ", %" PRIu8 ", %" PRId32 ", %u)", texture, level, layered, layer, format);
if (mFunctionStubs.glGetImageHandleNV != nullptr) {
GLuint64 return_value = mFunctionStubs.glGetImageHandleNV(texture, level, layered, layer, format);
GAPID_INFO("Returned: %" PRIu64 "", return_value);
if (pushReturn) {
stack->push<GLuint64>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetImageHandleNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetImageHandleNV");
return false;
}
}
bool Gles::callGlGetInteger64vAPPLE(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint64*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetInteger64vAPPLE(%u, %p)", pname, params);
if (mFunctionStubs.glGetInteger64vAPPLE != nullptr) {
mFunctionStubs.glGetInteger64vAPPLE(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetInteger64vAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetInteger64vAPPLE");
return false;
}
}
bool Gles::callGlGetIntegeriVEXT(Stack* stack, bool pushReturn) {
auto data = stack->pop<GLint*>();
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetIntegeri_vEXT(%u, %" PRIu32 ", %p)", target, index, data);
if (mFunctionStubs.glGetIntegeri_vEXT != nullptr) {
mFunctionStubs.glGetIntegeri_vEXT(target, index, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetIntegeri_vEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetIntegeri_vEXT");
return false;
}
}
bool Gles::callGlGetInternalformatSampleivNV(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto bufSize = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetInternalformatSampleivNV(%u, %u, %" PRId32 ", %u, %" PRId32 ", %p)", target, internalformat, samples, pname, bufSize, params);
if (mFunctionStubs.glGetInternalformatSampleivNV != nullptr) {
mFunctionStubs.glGetInternalformatSampleivNV(target, internalformat, samples, pname, bufSize, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetInternalformatSampleivNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetInternalformatSampleivNV");
return false;
}
}
bool Gles::callGlGetNextPerfQueryIdINTEL(Stack* stack, bool pushReturn) {
auto nextQueryId = stack->pop<GLuint*>();
auto queryId = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetNextPerfQueryIdINTEL(%" PRIu32 ", %p)", queryId, nextQueryId);
if (mFunctionStubs.glGetNextPerfQueryIdINTEL != nullptr) {
mFunctionStubs.glGetNextPerfQueryIdINTEL(queryId, nextQueryId);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetNextPerfQueryIdINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetNextPerfQueryIdINTEL");
return false;
}
}
bool Gles::callGlGetObjectLabelEXT(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto object = stack->pop<uint32_t>();
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetObjectLabelEXT(%u, %" PRIu32 ", %" PRId32 ", %p, %p)", type, object, bufSize, length, label);
if (mFunctionStubs.glGetObjectLabelEXT != nullptr) {
mFunctionStubs.glGetObjectLabelEXT(type, object, bufSize, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetObjectLabelEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetObjectLabelEXT");
return false;
}
}
bool Gles::callGlGetPathCommandsNV(Stack* stack, bool pushReturn) {
auto commands = stack->pop<GLubyte*>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPathCommandsNV(%" PRIu32 ", %p)", path, commands);
if (mFunctionStubs.glGetPathCommandsNV != nullptr) {
mFunctionStubs.glGetPathCommandsNV(path, commands);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathCommandsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathCommandsNV");
return false;
}
}
bool Gles::callGlGetPathCoordsNV(Stack* stack, bool pushReturn) {
auto coords = stack->pop<GLfloat*>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPathCoordsNV(%" PRIu32 ", %p)", path, coords);
if (mFunctionStubs.glGetPathCoordsNV != nullptr) {
mFunctionStubs.glGetPathCoordsNV(path, coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathCoordsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathCoordsNV");
return false;
}
}
bool Gles::callGlGetPathDashArrayNV(Stack* stack, bool pushReturn) {
auto dashArray = stack->pop<GLfloat*>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPathDashArrayNV(%" PRIu32 ", %p)", path, dashArray);
if (mFunctionStubs.glGetPathDashArrayNV != nullptr) {
mFunctionStubs.glGetPathDashArrayNV(path, dashArray);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathDashArrayNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathDashArrayNV");
return false;
}
}
bool Gles::callGlGetPathLengthNV(Stack* stack, bool pushReturn) {
auto numSegments = stack->pop<int32_t>();
auto startSegment = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPathLengthNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ")", path, startSegment, numSegments);
if (mFunctionStubs.glGetPathLengthNV != nullptr) {
GLfloat return_value = mFunctionStubs.glGetPathLengthNV(path, startSegment, numSegments);
GAPID_INFO("Returned: %f", return_value);
if (pushReturn) {
stack->push<GLfloat>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathLengthNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathLengthNV");
return false;
}
}
bool Gles::callGlGetPathMetricRangeNV(Stack* stack, bool pushReturn) {
auto metrics = stack->pop<GLfloat*>();
auto stride = stack->pop<int32_t>();
auto numPaths = stack->pop<int32_t>();
auto firstPathName = stack->pop<uint32_t>();
auto metricQueryMask = stack->pop<GLbitfield>();
if (stack->isValid()) {
GAPID_INFO("glGetPathMetricRangeNV(%u, %" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", metricQueryMask, firstPathName, numPaths, stride, metrics);
if (mFunctionStubs.glGetPathMetricRangeNV != nullptr) {
mFunctionStubs.glGetPathMetricRangeNV(metricQueryMask, firstPathName, numPaths, stride, metrics);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathMetricRangeNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathMetricRangeNV");
return false;
}
}
bool Gles::callGlGetPathMetricsNV(Stack* stack, bool pushReturn) {
auto metrics = stack->pop<GLfloat*>();
auto stride = stack->pop<int32_t>();
auto pathBase = stack->pop<uint32_t>();
auto paths = stack->pop<void*>();
auto pathNameType = stack->pop<GLenum>();
auto numPaths = stack->pop<int32_t>();
auto metricQueryMask = stack->pop<GLbitfield>();
if (stack->isValid()) {
GAPID_INFO("glGetPathMetricsNV(%u, %" PRId32 ", %u, %p, %" PRIu32 ", %" PRId32 ", %p)", metricQueryMask, numPaths, pathNameType, paths, pathBase, stride, metrics);
if (mFunctionStubs.glGetPathMetricsNV != nullptr) {
mFunctionStubs.glGetPathMetricsNV(metricQueryMask, numPaths, pathNameType, paths, pathBase, stride, metrics);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathMetricsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathMetricsNV");
return false;
}
}
bool Gles::callGlGetPathParameterfvNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPathParameterfvNV(%" PRIu32 ", %u, %p)", path, pname, value);
if (mFunctionStubs.glGetPathParameterfvNV != nullptr) {
mFunctionStubs.glGetPathParameterfvNV(path, pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathParameterfvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathParameterfvNV");
return false;
}
}
bool Gles::callGlGetPathParameterivNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPathParameterivNV(%" PRIu32 ", %u, %p)", path, pname, value);
if (mFunctionStubs.glGetPathParameterivNV != nullptr) {
mFunctionStubs.glGetPathParameterivNV(path, pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathParameterivNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathParameterivNV");
return false;
}
}
bool Gles::callGlGetPathSpacingNV(Stack* stack, bool pushReturn) {
auto returnedSpacing = stack->pop<GLfloat*>();
auto transformType = stack->pop<GLenum>();
auto kerningScale = stack->pop<float>();
auto advanceScale = stack->pop<float>();
auto pathBase = stack->pop<uint32_t>();
auto paths = stack->pop<void*>();
auto pathNameType = stack->pop<GLenum>();
auto numPaths = stack->pop<int32_t>();
auto pathListMode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetPathSpacingNV(%u, %" PRId32 ", %u, %p, %" PRIu32 ", %f, %f, %u, %p)", pathListMode, numPaths, pathNameType, paths, pathBase, advanceScale, kerningScale, transformType, returnedSpacing);
if (mFunctionStubs.glGetPathSpacingNV != nullptr) {
mFunctionStubs.glGetPathSpacingNV(pathListMode, numPaths, pathNameType, paths, pathBase, advanceScale, kerningScale, transformType, returnedSpacing);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPathSpacingNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPathSpacingNV");
return false;
}
}
bool Gles::callGlGetPerfCounterInfoINTEL(Stack* stack, bool pushReturn) {
auto rawCounterMaxValue = stack->pop<GLuint64*>();
auto counterDataTypeEnum = stack->pop<GLuint*>();
auto counterTypeEnum = stack->pop<GLuint*>();
auto counterDataSize = stack->pop<GLuint*>();
auto counterOffset = stack->pop<GLuint*>();
auto counterDesc = stack->pop<GLchar*>();
auto counterDescLength = stack->pop<uint32_t>();
auto counterName = stack->pop<GLchar*>();
auto counterNameLength = stack->pop<uint32_t>();
auto counterId = stack->pop<uint32_t>();
auto queryId = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfCounterInfoINTEL(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %p, %" PRIu32 ", %p, %p, %p, %p, %p, %p)", queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue);
if (mFunctionStubs.glGetPerfCounterInfoINTEL != nullptr) {
mFunctionStubs.glGetPerfCounterInfoINTEL(queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfCounterInfoINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfCounterInfoINTEL");
return false;
}
}
bool Gles::callGlGetPerfMonitorCounterDataAMD(Stack* stack, bool pushReturn) {
auto bytesWritten = stack->pop<GLint*>();
auto data = stack->pop<GLuint*>();
auto dataSize = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto monitor = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfMonitorCounterDataAMD(%" PRIu32 ", %u, %" PRId32 ", %p, %p)", monitor, pname, dataSize, data, bytesWritten);
if (mFunctionStubs.glGetPerfMonitorCounterDataAMD != nullptr) {
mFunctionStubs.glGetPerfMonitorCounterDataAMD(monitor, pname, dataSize, data, bytesWritten);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfMonitorCounterDataAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfMonitorCounterDataAMD");
return false;
}
}
bool Gles::callGlGetPerfMonitorCounterInfoAMD(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto pname = stack->pop<GLenum>();
auto counter = stack->pop<uint32_t>();
auto group = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfMonitorCounterInfoAMD(%" PRIu32 ", %" PRIu32 ", %u, %p)", group, counter, pname, data);
if (mFunctionStubs.glGetPerfMonitorCounterInfoAMD != nullptr) {
mFunctionStubs.glGetPerfMonitorCounterInfoAMD(group, counter, pname, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfMonitorCounterInfoAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfMonitorCounterInfoAMD");
return false;
}
}
bool Gles::callGlGetPerfMonitorCounterStringAMD(Stack* stack, bool pushReturn) {
auto counterString = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto counter = stack->pop<uint32_t>();
auto group = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfMonitorCounterStringAMD(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %p, %p)", group, counter, bufSize, length, counterString);
if (mFunctionStubs.glGetPerfMonitorCounterStringAMD != nullptr) {
mFunctionStubs.glGetPerfMonitorCounterStringAMD(group, counter, bufSize, length, counterString);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfMonitorCounterStringAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfMonitorCounterStringAMD");
return false;
}
}
bool Gles::callGlGetPerfMonitorCountersAMD(Stack* stack, bool pushReturn) {
auto counters = stack->pop<GLuint*>();
auto counterSize = stack->pop<int32_t>();
auto maxActiveCounters = stack->pop<GLint*>();
auto numCounters = stack->pop<GLint*>();
auto group = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfMonitorCountersAMD(%" PRIu32 ", %p, %p, %" PRId32 ", %p)", group, numCounters, maxActiveCounters, counterSize, counters);
if (mFunctionStubs.glGetPerfMonitorCountersAMD != nullptr) {
mFunctionStubs.glGetPerfMonitorCountersAMD(group, numCounters, maxActiveCounters, counterSize, counters);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfMonitorCountersAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfMonitorCountersAMD");
return false;
}
}
bool Gles::callGlGetPerfMonitorGroupStringAMD(Stack* stack, bool pushReturn) {
auto groupString = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto group = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfMonitorGroupStringAMD(%" PRIu32 ", %" PRId32 ", %p, %p)", group, bufSize, length, groupString);
if (mFunctionStubs.glGetPerfMonitorGroupStringAMD != nullptr) {
mFunctionStubs.glGetPerfMonitorGroupStringAMD(group, bufSize, length, groupString);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfMonitorGroupStringAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfMonitorGroupStringAMD");
return false;
}
}
bool Gles::callGlGetPerfMonitorGroupsAMD(Stack* stack, bool pushReturn) {
auto groups = stack->pop<GLuint*>();
auto groupsSize = stack->pop<int32_t>();
auto numGroups = stack->pop<GLint*>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfMonitorGroupsAMD(%p, %" PRId32 ", %p)", numGroups, groupsSize, groups);
if (mFunctionStubs.glGetPerfMonitorGroupsAMD != nullptr) {
mFunctionStubs.glGetPerfMonitorGroupsAMD(numGroups, groupsSize, groups);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfMonitorGroupsAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfMonitorGroupsAMD");
return false;
}
}
bool Gles::callGlGetPerfQueryDataINTEL(Stack* stack, bool pushReturn) {
auto bytesWritten = stack->pop<GLuint*>();
auto data = stack->pop<GLvoid*>();
auto dataSize = stack->pop<int32_t>();
auto flag = stack->pop<uint32_t>();
auto queryHandle = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfQueryDataINTEL(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %p, %p)", queryHandle, flag, dataSize, data, bytesWritten);
if (mFunctionStubs.glGetPerfQueryDataINTEL != nullptr) {
mFunctionStubs.glGetPerfQueryDataINTEL(queryHandle, flag, dataSize, data, bytesWritten);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfQueryDataINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfQueryDataINTEL");
return false;
}
}
bool Gles::callGlGetPerfQueryIdByNameINTEL(Stack* stack, bool pushReturn) {
auto queryId = stack->pop<GLuint*>();
auto queryName = stack->pop<GLchar*>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfQueryIdByNameINTEL(%p, %p)", queryName, queryId);
if (mFunctionStubs.glGetPerfQueryIdByNameINTEL != nullptr) {
mFunctionStubs.glGetPerfQueryIdByNameINTEL(queryName, queryId);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfQueryIdByNameINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfQueryIdByNameINTEL");
return false;
}
}
bool Gles::callGlGetPerfQueryInfoINTEL(Stack* stack, bool pushReturn) {
auto capsMask = stack->pop<GLuint*>();
auto noInstances = stack->pop<GLuint*>();
auto noCounters = stack->pop<GLuint*>();
auto dataSize = stack->pop<GLuint*>();
auto queryName = stack->pop<GLchar*>();
auto queryNameLength = stack->pop<uint32_t>();
auto queryId = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetPerfQueryInfoINTEL(%" PRIu32 ", %" PRIu32 ", %p, %p, %p, %p, %p)", queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask);
if (mFunctionStubs.glGetPerfQueryInfoINTEL != nullptr) {
mFunctionStubs.glGetPerfQueryInfoINTEL(queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetPerfQueryInfoINTEL");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetPerfQueryInfoINTEL");
return false;
}
}
bool Gles::callGlGetProgramBinaryOES(Stack* stack, bool pushReturn) {
auto binary = stack->pop<void*>();
auto binary_format = stack->pop<GLenum*>();
auto bytes_written = stack->pop<GLsizei*>();
auto buffer_size = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramBinaryOES(%" PRIu32 ", %" PRId32 ", %p, %p, %p)", program, buffer_size, bytes_written, binary_format, binary);
if (mFunctionStubs.glGetProgramBinaryOES != nullptr) {
mFunctionStubs.glGetProgramBinaryOES(program, buffer_size, bytes_written, binary_format, binary);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramBinaryOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramBinaryOES");
return false;
}
}
bool Gles::callGlGetProgramPipelineInfoLogEXT(Stack* stack, bool pushReturn) {
auto infoLog = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramPipelineInfoLogEXT(%" PRIu32 ", %" PRId32 ", %p, %p)", pipeline, bufSize, length, infoLog);
if (mFunctionStubs.glGetProgramPipelineInfoLogEXT != nullptr) {
mFunctionStubs.glGetProgramPipelineInfoLogEXT(pipeline, bufSize, length, infoLog);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramPipelineInfoLogEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramPipelineInfoLogEXT");
return false;
}
}
bool Gles::callGlGetProgramPipelineivEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramPipelineivEXT(%" PRIu32 ", %u, %p)", pipeline, pname, params);
if (mFunctionStubs.glGetProgramPipelineivEXT != nullptr) {
mFunctionStubs.glGetProgramPipelineivEXT(pipeline, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramPipelineivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramPipelineivEXT");
return false;
}
}
bool Gles::callGlGetProgramResourceLocationIndexEXT(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto programInterface = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramResourceLocationIndexEXT(%" PRIu32 ", %u, %s)", program, programInterface, name);
if (mFunctionStubs.glGetProgramResourceLocationIndexEXT != nullptr) {
GLint return_value = mFunctionStubs.glGetProgramResourceLocationIndexEXT(program, programInterface, name);
GAPID_INFO("Returned: %" PRId32 "", return_value);
if (pushReturn) {
stack->push<GLint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramResourceLocationIndexEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramResourceLocationIndexEXT");
return false;
}
}
bool Gles::callGlGetProgramResourcefvNV(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto props = stack->pop<GLenum*>();
auto propCount = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
auto programInterface = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramResourcefvNV(%" PRIu32 ", %u, %" PRIu32 ", %" PRId32 ", %p, %" PRId32 ", %p, %p)", program, programInterface, index, propCount, props, bufSize, length, params);
if (mFunctionStubs.glGetProgramResourcefvNV != nullptr) {
mFunctionStubs.glGetProgramResourcefvNV(program, programInterface, index, propCount, props, bufSize, length, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramResourcefvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramResourcefvNV");
return false;
}
}
bool Gles::callGlGetQueryObjecti64vEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64*>();
auto parameter = stack->pop<GLenum>();
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjecti64vEXT(%" PRIu32 ", %u, %p)", query, parameter, value);
if (mFunctionStubs.glGetQueryObjecti64vEXT != nullptr) {
mFunctionStubs.glGetQueryObjecti64vEXT(query, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjecti64vEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjecti64vEXT");
return false;
}
}
bool Gles::callGlGetQueryObjectivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectivEXT(%" PRIu32 ", %u, %p)", query, parameter, value);
if (mFunctionStubs.glGetQueryObjectivEXT != nullptr) {
mFunctionStubs.glGetQueryObjectivEXT(query, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjectivEXT");
return false;
}
}
bool Gles::callGlGetQueryObjectui64vEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64*>();
auto parameter = stack->pop<GLenum>();
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectui64vEXT(%" PRIu32 ", %u, %p)", query, parameter, value);
if (mFunctionStubs.glGetQueryObjectui64vEXT != nullptr) {
mFunctionStubs.glGetQueryObjectui64vEXT(query, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectui64vEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjectui64vEXT");
return false;
}
}
bool Gles::callGlGetQueryObjectuivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint*>();
auto parameter = stack->pop<GLenum>();
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectuivEXT(%" PRIu32 ", %u, %p)", query, parameter, value);
if (mFunctionStubs.glGetQueryObjectuivEXT != nullptr) {
mFunctionStubs.glGetQueryObjectuivEXT(query, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectuivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjectuivEXT");
return false;
}
}
bool Gles::callGlGetQueryivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryivEXT(%u, %u, %p)", target, parameter, value);
if (mFunctionStubs.glGetQueryivEXT != nullptr) {
mFunctionStubs.glGetQueryivEXT(target, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryivEXT");
return false;
}
}
bool Gles::callGlGetSamplerParameterIivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetSamplerParameterIivOES(%" PRIu32 ", %u, %p)", sampler, pname, params);
if (mFunctionStubs.glGetSamplerParameterIivOES != nullptr) {
mFunctionStubs.glGetSamplerParameterIivOES(sampler, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSamplerParameterIivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSamplerParameterIivOES");
return false;
}
}
bool Gles::callGlGetSamplerParameterIuivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetSamplerParameterIuivOES(%" PRIu32 ", %u, %p)", sampler, pname, params);
if (mFunctionStubs.glGetSamplerParameterIuivOES != nullptr) {
mFunctionStubs.glGetSamplerParameterIuivOES(sampler, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSamplerParameterIuivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSamplerParameterIuivOES");
return false;
}
}
bool Gles::callGlGetSyncivAPPLE(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glGetSyncivAPPLE(%p, %u, %" PRId32 ", %p, %p)", sync, pname, bufSize, length, values);
if (mFunctionStubs.glGetSyncivAPPLE != nullptr) {
mFunctionStubs.glGetSyncivAPPLE(sync, pname, bufSize, length, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSyncivAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSyncivAPPLE");
return false;
}
}
bool Gles::callGlGetTexParameterIivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterIivOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexParameterIivOES != nullptr) {
mFunctionStubs.glGetTexParameterIivOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterIivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterIivOES");
return false;
}
}
bool Gles::callGlGetTexParameterIuivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterIuivOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexParameterIuivOES != nullptr) {
mFunctionStubs.glGetTexParameterIuivOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterIuivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterIuivOES");
return false;
}
}
bool Gles::callGlGetTextureHandleNV(Stack* stack, bool pushReturn) {
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetTextureHandleNV(%" PRIu32 ")", texture);
if (mFunctionStubs.glGetTextureHandleNV != nullptr) {
GLuint64 return_value = mFunctionStubs.glGetTextureHandleNV(texture);
GAPID_INFO("Returned: %" PRIu64 "", return_value);
if (pushReturn) {
stack->push<GLuint64>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTextureHandleNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTextureHandleNV");
return false;
}
}
bool Gles::callGlGetTextureSamplerHandleNV(Stack* stack, bool pushReturn) {
auto sampler = stack->pop<uint32_t>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetTextureSamplerHandleNV(%" PRIu32 ", %" PRIu32 ")", texture, sampler);
if (mFunctionStubs.glGetTextureSamplerHandleNV != nullptr) {
GLuint64 return_value = mFunctionStubs.glGetTextureSamplerHandleNV(texture, sampler);
GAPID_INFO("Returned: %" PRIu64 "", return_value);
if (pushReturn) {
stack->push<GLuint64>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTextureSamplerHandleNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTextureSamplerHandleNV");
return false;
}
}
bool Gles::callGlGetTranslatedShaderSourceANGLE(Stack* stack, bool pushReturn) {
auto source = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufsize = stack->pop<int32_t>();
auto shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetTranslatedShaderSourceANGLE(%" PRIu32 ", %" PRId32 ", %p, %p)", shader, bufsize, length, source);
if (mFunctionStubs.glGetTranslatedShaderSourceANGLE != nullptr) {
mFunctionStubs.glGetTranslatedShaderSourceANGLE(shader, bufsize, length, source);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTranslatedShaderSourceANGLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTranslatedShaderSourceANGLE");
return false;
}
}
bool Gles::callGlGetnUniformfvEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto bufSize = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetnUniformfvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, bufSize, params);
if (mFunctionStubs.glGetnUniformfvEXT != nullptr) {
mFunctionStubs.glGetnUniformfvEXT(program, location, bufSize, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetnUniformfvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetnUniformfvEXT");
return false;
}
}
bool Gles::callGlGetnUniformfvKHR(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto bufSize = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetnUniformfvKHR(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, bufSize, params);
if (mFunctionStubs.glGetnUniformfvKHR != nullptr) {
mFunctionStubs.glGetnUniformfvKHR(program, location, bufSize, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetnUniformfvKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetnUniformfvKHR");
return false;
}
}
bool Gles::callGlGetnUniformivEXT(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto bufSize = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetnUniformivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, bufSize, params);
if (mFunctionStubs.glGetnUniformivEXT != nullptr) {
mFunctionStubs.glGetnUniformivEXT(program, location, bufSize, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetnUniformivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetnUniformivEXT");
return false;
}
}
bool Gles::callGlGetnUniformivKHR(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto bufSize = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetnUniformivKHR(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, bufSize, params);
if (mFunctionStubs.glGetnUniformivKHR != nullptr) {
mFunctionStubs.glGetnUniformivKHR(program, location, bufSize, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetnUniformivKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetnUniformivKHR");
return false;
}
}
bool Gles::callGlGetnUniformuivKHR(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto bufSize = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetnUniformuivKHR(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, bufSize, params);
if (mFunctionStubs.glGetnUniformuivKHR != nullptr) {
mFunctionStubs.glGetnUniformuivKHR(program, location, bufSize, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetnUniformuivKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetnUniformuivKHR");
return false;
}
}
bool Gles::callGlInsertEventMarkerEXT(Stack* stack, bool pushReturn) {
auto marker = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glInsertEventMarkerEXT(%" PRId32 ", %p)", length, marker);
if (mFunctionStubs.glInsertEventMarkerEXT != nullptr) {
mFunctionStubs.glInsertEventMarkerEXT(length, marker);
} else {
GAPID_WARNING("Attempted to call unsupported function glInsertEventMarkerEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glInsertEventMarkerEXT");
return false;
}
}
bool Gles::callGlInterpolatePathsNV(Stack* stack, bool pushReturn) {
auto weight = stack->pop<float>();
auto pathB = stack->pop<uint32_t>();
auto pathA = stack->pop<uint32_t>();
auto resultPath = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glInterpolatePathsNV(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %f)", resultPath, pathA, pathB, weight);
if (mFunctionStubs.glInterpolatePathsNV != nullptr) {
mFunctionStubs.glInterpolatePathsNV(resultPath, pathA, pathB, weight);
} else {
GAPID_WARNING("Attempted to call unsupported function glInterpolatePathsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glInterpolatePathsNV");
return false;
}
}
bool Gles::callGlIsEnablediNV(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glIsEnablediNV(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glIsEnablediNV != nullptr) {
GLboolean return_value = mFunctionStubs.glIsEnablediNV(target, index);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsEnablediNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsEnablediNV");
return false;
}
}
bool Gles::callGlIsEnablediOES(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glIsEnablediOES(%u, %" PRIu32 ")", target, index);
if (mFunctionStubs.glIsEnablediOES != nullptr) {
GLboolean return_value = mFunctionStubs.glIsEnablediOES(target, index);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsEnablediOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsEnablediOES");
return false;
}
}
bool Gles::callGlIsFenceNV(Stack* stack, bool pushReturn) {
auto fence = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsFenceNV(%" PRIu32 ")", fence);
if (mFunctionStubs.glIsFenceNV != nullptr) {
GLboolean return_value = mFunctionStubs.glIsFenceNV(fence);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsFenceNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsFenceNV");
return false;
}
}
bool Gles::callGlIsImageHandleResidentNV(Stack* stack, bool pushReturn) {
auto handle = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glIsImageHandleResidentNV(%" PRIu64 ")", handle);
if (mFunctionStubs.glIsImageHandleResidentNV != nullptr) {
GLboolean return_value = mFunctionStubs.glIsImageHandleResidentNV(handle);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsImageHandleResidentNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsImageHandleResidentNV");
return false;
}
}
bool Gles::callGlIsPathNV(Stack* stack, bool pushReturn) {
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsPathNV(%" PRIu32 ")", path);
if (mFunctionStubs.glIsPathNV != nullptr) {
GLboolean return_value = mFunctionStubs.glIsPathNV(path);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsPathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsPathNV");
return false;
}
}
bool Gles::callGlIsPointInFillPathNV(Stack* stack, bool pushReturn) {
auto y = stack->pop<float>();
auto x = stack->pop<float>();
auto mask = stack->pop<uint32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsPointInFillPathNV(%" PRIu32 ", %" PRIu32 ", %f, %f)", path, mask, x, y);
if (mFunctionStubs.glIsPointInFillPathNV != nullptr) {
GLboolean return_value = mFunctionStubs.glIsPointInFillPathNV(path, mask, x, y);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsPointInFillPathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsPointInFillPathNV");
return false;
}
}
bool Gles::callGlIsPointInStrokePathNV(Stack* stack, bool pushReturn) {
auto y = stack->pop<float>();
auto x = stack->pop<float>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsPointInStrokePathNV(%" PRIu32 ", %f, %f)", path, x, y);
if (mFunctionStubs.glIsPointInStrokePathNV != nullptr) {
GLboolean return_value = mFunctionStubs.glIsPointInStrokePathNV(path, x, y);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsPointInStrokePathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsPointInStrokePathNV");
return false;
}
}
bool Gles::callGlIsProgramPipelineEXT(Stack* stack, bool pushReturn) {
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsProgramPipelineEXT(%" PRIu32 ")", pipeline);
if (mFunctionStubs.glIsProgramPipelineEXT != nullptr) {
GLboolean return_value = mFunctionStubs.glIsProgramPipelineEXT(pipeline);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsProgramPipelineEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsProgramPipelineEXT");
return false;
}
}
bool Gles::callGlIsQueryEXT(Stack* stack, bool pushReturn) {
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsQueryEXT(%" PRIu32 ")", query);
if (mFunctionStubs.glIsQueryEXT != nullptr) {
GLboolean return_value = mFunctionStubs.glIsQueryEXT(query);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsQueryEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsQueryEXT");
return false;
}
}
bool Gles::callGlIsSyncAPPLE(Stack* stack, bool pushReturn) {
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glIsSyncAPPLE(%p)", sync);
if (mFunctionStubs.glIsSyncAPPLE != nullptr) {
GLboolean return_value = mFunctionStubs.glIsSyncAPPLE(sync);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsSyncAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsSyncAPPLE");
return false;
}
}
bool Gles::callGlIsTextureHandleResidentNV(Stack* stack, bool pushReturn) {
auto handle = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glIsTextureHandleResidentNV(%" PRIu64 ")", handle);
if (mFunctionStubs.glIsTextureHandleResidentNV != nullptr) {
GLboolean return_value = mFunctionStubs.glIsTextureHandleResidentNV(handle);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsTextureHandleResidentNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsTextureHandleResidentNV");
return false;
}
}
bool Gles::callGlIsVertexArrayOES(Stack* stack, bool pushReturn) {
auto array = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsVertexArrayOES(%" PRIu32 ")", array);
if (mFunctionStubs.glIsVertexArrayOES != nullptr) {
GLboolean return_value = mFunctionStubs.glIsVertexArrayOES(array);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsVertexArrayOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsVertexArrayOES");
return false;
}
}
bool Gles::callGlLabelObjectEXT(Stack* stack, bool pushReturn) {
auto label = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
auto object = stack->pop<uint32_t>();
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLabelObjectEXT(%u, %" PRIu32 ", %" PRId32 ", %p)", type, object, length, label);
if (mFunctionStubs.glLabelObjectEXT != nullptr) {
mFunctionStubs.glLabelObjectEXT(type, object, length, label);
} else {
GAPID_WARNING("Attempted to call unsupported function glLabelObjectEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLabelObjectEXT");
return false;
}
}
bool Gles::callGlMakeImageHandleNonResidentNV(Stack* stack, bool pushReturn) {
auto handle = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glMakeImageHandleNonResidentNV(%" PRIu64 ")", handle);
if (mFunctionStubs.glMakeImageHandleNonResidentNV != nullptr) {
mFunctionStubs.glMakeImageHandleNonResidentNV(handle);
} else {
GAPID_WARNING("Attempted to call unsupported function glMakeImageHandleNonResidentNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMakeImageHandleNonResidentNV");
return false;
}
}
bool Gles::callGlMakeImageHandleResidentNV(Stack* stack, bool pushReturn) {
auto access = stack->pop<GLenum>();
auto handle = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glMakeImageHandleResidentNV(%" PRIu64 ", %u)", handle, access);
if (mFunctionStubs.glMakeImageHandleResidentNV != nullptr) {
mFunctionStubs.glMakeImageHandleResidentNV(handle, access);
} else {
GAPID_WARNING("Attempted to call unsupported function glMakeImageHandleResidentNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMakeImageHandleResidentNV");
return false;
}
}
bool Gles::callGlMakeTextureHandleNonResidentNV(Stack* stack, bool pushReturn) {
auto handle = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glMakeTextureHandleNonResidentNV(%" PRIu64 ")", handle);
if (mFunctionStubs.glMakeTextureHandleNonResidentNV != nullptr) {
mFunctionStubs.glMakeTextureHandleNonResidentNV(handle);
} else {
GAPID_WARNING("Attempted to call unsupported function glMakeTextureHandleNonResidentNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMakeTextureHandleNonResidentNV");
return false;
}
}
bool Gles::callGlMakeTextureHandleResidentNV(Stack* stack, bool pushReturn) {
auto handle = stack->pop<uint64_t>();
if (stack->isValid()) {
GAPID_INFO("glMakeTextureHandleResidentNV(%" PRIu64 ")", handle);
if (mFunctionStubs.glMakeTextureHandleResidentNV != nullptr) {
mFunctionStubs.glMakeTextureHandleResidentNV(handle);
} else {
GAPID_WARNING("Attempted to call unsupported function glMakeTextureHandleResidentNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMakeTextureHandleResidentNV");
return false;
}
}
bool Gles::callGlMapBufferOES(Stack* stack, bool pushReturn) {
auto access = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMapBufferOES(%u, %u)", target, access);
if (mFunctionStubs.glMapBufferOES != nullptr) {
void* return_value = mFunctionStubs.glMapBufferOES(target, access);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<void*>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glMapBufferOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMapBufferOES");
return false;
}
}
bool Gles::callGlMapBufferRangeEXT(Stack* stack, bool pushReturn) {
auto access = stack->pop<GLbitfield>();
auto length = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMapBufferRangeEXT(%u, %" PRId32 ", %" PRId32 ", %u)", target, offset, length, access);
if (mFunctionStubs.glMapBufferRangeEXT != nullptr) {
void* return_value = mFunctionStubs.glMapBufferRangeEXT(target, offset, length, access);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<void*>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glMapBufferRangeEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMapBufferRangeEXT");
return false;
}
}
bool Gles::callGlMatrixLoad3x2fNV(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfloat*>();
auto matrixMode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMatrixLoad3x2fNV(%u, %p)", matrixMode, m);
if (mFunctionStubs.glMatrixLoad3x2fNV != nullptr) {
mFunctionStubs.glMatrixLoad3x2fNV(matrixMode, m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixLoad3x2fNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixLoad3x2fNV");
return false;
}
}
bool Gles::callGlMatrixLoad3x3fNV(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfloat*>();
auto matrixMode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMatrixLoad3x3fNV(%u, %p)", matrixMode, m);
if (mFunctionStubs.glMatrixLoad3x3fNV != nullptr) {
mFunctionStubs.glMatrixLoad3x3fNV(matrixMode, m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixLoad3x3fNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixLoad3x3fNV");
return false;
}
}
bool Gles::callGlMatrixLoadTranspose3x3fNV(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfloat*>();
auto matrixMode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMatrixLoadTranspose3x3fNV(%u, %p)", matrixMode, m);
if (mFunctionStubs.glMatrixLoadTranspose3x3fNV != nullptr) {
mFunctionStubs.glMatrixLoadTranspose3x3fNV(matrixMode, m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixLoadTranspose3x3fNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixLoadTranspose3x3fNV");
return false;
}
}
bool Gles::callGlMatrixMult3x2fNV(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfloat*>();
auto matrixMode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMatrixMult3x2fNV(%u, %p)", matrixMode, m);
if (mFunctionStubs.glMatrixMult3x2fNV != nullptr) {
mFunctionStubs.glMatrixMult3x2fNV(matrixMode, m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixMult3x2fNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixMult3x2fNV");
return false;
}
}
bool Gles::callGlMatrixMult3x3fNV(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfloat*>();
auto matrixMode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMatrixMult3x3fNV(%u, %p)", matrixMode, m);
if (mFunctionStubs.glMatrixMult3x3fNV != nullptr) {
mFunctionStubs.glMatrixMult3x3fNV(matrixMode, m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixMult3x3fNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixMult3x3fNV");
return false;
}
}
bool Gles::callGlMatrixMultTranspose3x3fNV(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfloat*>();
auto matrixMode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMatrixMultTranspose3x3fNV(%u, %p)", matrixMode, m);
if (mFunctionStubs.glMatrixMultTranspose3x3fNV != nullptr) {
mFunctionStubs.glMatrixMultTranspose3x3fNV(matrixMode, m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixMultTranspose3x3fNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixMultTranspose3x3fNV");
return false;
}
}
bool Gles::callGlMultiDrawArraysEXT(Stack* stack, bool pushReturn) {
auto primcount = stack->pop<int32_t>();
auto count = stack->pop<GLsizei*>();
auto first = stack->pop<GLint*>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiDrawArraysEXT(%u, %p, %p, %" PRId32 ")", mode, first, count, primcount);
if (mFunctionStubs.glMultiDrawArraysEXT != nullptr) {
mFunctionStubs.glMultiDrawArraysEXT(mode, first, count, primcount);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiDrawArraysEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiDrawArraysEXT");
return false;
}
}
bool Gles::callGlMultiDrawArraysIndirectEXT(Stack* stack, bool pushReturn) {
auto stride = stack->pop<int32_t>();
auto drawcount = stack->pop<int32_t>();
auto indirect = stack->pop<void*>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiDrawArraysIndirectEXT(%u, %p, %" PRId32 ", %" PRId32 ")", mode, indirect, drawcount, stride);
if (mFunctionStubs.glMultiDrawArraysIndirectEXT != nullptr) {
mFunctionStubs.glMultiDrawArraysIndirectEXT(mode, indirect, drawcount, stride);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiDrawArraysIndirectEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiDrawArraysIndirectEXT");
return false;
}
}
bool Gles::callGlMultiDrawElementsBaseVertexEXT(Stack* stack, bool pushReturn) {
auto basevertex = stack->pop<GLint*>();
auto primcount = stack->pop<int32_t>();
auto indices = stack->pop<void**>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<GLsizei*>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiDrawElementsBaseVertexEXT(%u, %p, %u, %p, %" PRId32 ", %p)", mode, count, type, indices, primcount, basevertex);
if (mFunctionStubs.glMultiDrawElementsBaseVertexEXT != nullptr) {
mFunctionStubs.glMultiDrawElementsBaseVertexEXT(mode, count, type, indices, primcount, basevertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiDrawElementsBaseVertexEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiDrawElementsBaseVertexEXT");
return false;
}
}
bool Gles::callGlMultiDrawElementsBaseVertexOES(Stack* stack, bool pushReturn) {
auto basevertex = stack->pop<GLint*>();
auto primcount = stack->pop<int32_t>();
auto indices = stack->pop<void**>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<GLsizei*>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiDrawElementsBaseVertexOES(%u, %p, %u, %p, %" PRId32 ", %p)", mode, count, type, indices, primcount, basevertex);
if (mFunctionStubs.glMultiDrawElementsBaseVertexOES != nullptr) {
mFunctionStubs.glMultiDrawElementsBaseVertexOES(mode, count, type, indices, primcount, basevertex);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiDrawElementsBaseVertexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiDrawElementsBaseVertexOES");
return false;
}
}
bool Gles::callGlMultiDrawElementsEXT(Stack* stack, bool pushReturn) {
auto primcount = stack->pop<int32_t>();
auto indices = stack->pop<void**>();
auto type = stack->pop<GLenum>();
auto count = stack->pop<GLsizei*>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiDrawElementsEXT(%u, %p, %u, %p, %" PRId32 ")", mode, count, type, indices, primcount);
if (mFunctionStubs.glMultiDrawElementsEXT != nullptr) {
mFunctionStubs.glMultiDrawElementsEXT(mode, count, type, indices, primcount);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiDrawElementsEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiDrawElementsEXT");
return false;
}
}
bool Gles::callGlMultiDrawElementsIndirectEXT(Stack* stack, bool pushReturn) {
auto stride = stack->pop<int32_t>();
auto drawcount = stack->pop<int32_t>();
auto indirect = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiDrawElementsIndirectEXT(%u, %u, %p, %" PRId32 ", %" PRId32 ")", mode, type, indirect, drawcount, stride);
if (mFunctionStubs.glMultiDrawElementsIndirectEXT != nullptr) {
mFunctionStubs.glMultiDrawElementsIndirectEXT(mode, type, indirect, drawcount, stride);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiDrawElementsIndirectEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiDrawElementsIndirectEXT");
return false;
}
}
bool Gles::callGlNamedFramebufferSampleLocationsfvNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto start = stack->pop<uint32_t>();
auto framebuffer = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glNamedFramebufferSampleLocationsfvNV(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %p)", framebuffer, start, count, v);
if (mFunctionStubs.glNamedFramebufferSampleLocationsfvNV != nullptr) {
mFunctionStubs.glNamedFramebufferSampleLocationsfvNV(framebuffer, start, count, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glNamedFramebufferSampleLocationsfvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glNamedFramebufferSampleLocationsfvNV");
return false;
}
}
bool Gles::callGlPatchParameteriOES(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPatchParameteriOES(%u, %" PRId32 ")", pname, value);
if (mFunctionStubs.glPatchParameteriOES != nullptr) {
mFunctionStubs.glPatchParameteriOES(pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glPatchParameteriOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPatchParameteriOES");
return false;
}
}
bool Gles::callGlPathCommandsNV(Stack* stack, bool pushReturn) {
auto coords = stack->pop<void*>();
auto coordType = stack->pop<GLenum>();
auto numCoords = stack->pop<int32_t>();
auto commands = stack->pop<GLubyte*>();
auto numCommands = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathCommandsNV(%" PRIu32 ", %" PRId32 ", %p, %" PRId32 ", %u, %p)", path, numCommands, commands, numCoords, coordType, coords);
if (mFunctionStubs.glPathCommandsNV != nullptr) {
mFunctionStubs.glPathCommandsNV(path, numCommands, commands, numCoords, coordType, coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathCommandsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathCommandsNV");
return false;
}
}
bool Gles::callGlPathCoordsNV(Stack* stack, bool pushReturn) {
auto coords = stack->pop<void*>();
auto coordType = stack->pop<GLenum>();
auto numCoords = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathCoordsNV(%" PRIu32 ", %" PRId32 ", %u, %p)", path, numCoords, coordType, coords);
if (mFunctionStubs.glPathCoordsNV != nullptr) {
mFunctionStubs.glPathCoordsNV(path, numCoords, coordType, coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathCoordsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathCoordsNV");
return false;
}
}
bool Gles::callGlPathCoverDepthFuncNV(Stack* stack, bool pushReturn) {
auto func = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPathCoverDepthFuncNV(%u)", func);
if (mFunctionStubs.glPathCoverDepthFuncNV != nullptr) {
mFunctionStubs.glPathCoverDepthFuncNV(func);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathCoverDepthFuncNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathCoverDepthFuncNV");
return false;
}
}
bool Gles::callGlPathDashArrayNV(Stack* stack, bool pushReturn) {
auto dashArray = stack->pop<GLfloat*>();
auto dashCount = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathDashArrayNV(%" PRIu32 ", %" PRId32 ", %p)", path, dashCount, dashArray);
if (mFunctionStubs.glPathDashArrayNV != nullptr) {
mFunctionStubs.glPathDashArrayNV(path, dashCount, dashArray);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathDashArrayNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathDashArrayNV");
return false;
}
}
bool Gles::callGlPathGlyphIndexArrayNV(Stack* stack, bool pushReturn) {
auto emScale = stack->pop<float>();
auto pathParameterTemplate = stack->pop<uint32_t>();
auto numGlyphs = stack->pop<int32_t>();
auto firstGlyphIndex = stack->pop<uint32_t>();
auto fontStyle = stack->pop<GLbitfield>();
auto fontName = stack->pop<void*>();
auto fontTarget = stack->pop<GLenum>();
auto firstPathName = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathGlyphIndexArrayNV(%" PRIu32 ", %u, %p, %u, %" PRIu32 ", %" PRId32 ", %" PRIu32 ", %f)", firstPathName, fontTarget, fontName, fontStyle, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale);
if (mFunctionStubs.glPathGlyphIndexArrayNV != nullptr) {
GLenum return_value = mFunctionStubs.glPathGlyphIndexArrayNV(firstPathName, fontTarget, fontName, fontStyle, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale);
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glPathGlyphIndexArrayNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathGlyphIndexArrayNV");
return false;
}
}
bool Gles::callGlPathGlyphIndexRangeNV(Stack* stack, bool pushReturn) {
auto baseAndCount = stack->pop<uint32_t>();
auto emScale = stack->pop<float>();
auto pathParameterTemplate = stack->pop<uint32_t>();
auto fontStyle = stack->pop<GLbitfield>();
auto fontName = stack->pop<void*>();
auto fontTarget = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPathGlyphIndexRangeNV(%u, %p, %u, %" PRIu32 ", %f, %" PRIu32 ")", fontTarget, fontName, fontStyle, pathParameterTemplate, emScale, baseAndCount);
if (mFunctionStubs.glPathGlyphIndexRangeNV != nullptr) {
GLenum return_value = mFunctionStubs.glPathGlyphIndexRangeNV(fontTarget, fontName, fontStyle, pathParameterTemplate, emScale, baseAndCount);
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glPathGlyphIndexRangeNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathGlyphIndexRangeNV");
return false;
}
}
bool Gles::callGlPathGlyphRangeNV(Stack* stack, bool pushReturn) {
auto emScale = stack->pop<float>();
auto pathParameterTemplate = stack->pop<uint32_t>();
auto handleMissingGlyphs = stack->pop<GLenum>();
auto numGlyphs = stack->pop<int32_t>();
auto firstGlyph = stack->pop<uint32_t>();
auto fontStyle = stack->pop<GLbitfield>();
auto fontName = stack->pop<void*>();
auto fontTarget = stack->pop<GLenum>();
auto firstPathName = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathGlyphRangeNV(%" PRIu32 ", %u, %p, %u, %" PRIu32 ", %" PRId32 ", %u, %" PRIu32 ", %f)", firstPathName, fontTarget, fontName, fontStyle, firstGlyph, numGlyphs, handleMissingGlyphs, pathParameterTemplate, emScale);
if (mFunctionStubs.glPathGlyphRangeNV != nullptr) {
mFunctionStubs.glPathGlyphRangeNV(firstPathName, fontTarget, fontName, fontStyle, firstGlyph, numGlyphs, handleMissingGlyphs, pathParameterTemplate, emScale);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathGlyphRangeNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathGlyphRangeNV");
return false;
}
}
bool Gles::callGlPathGlyphsNV(Stack* stack, bool pushReturn) {
auto emScale = stack->pop<float>();
auto pathParameterTemplate = stack->pop<uint32_t>();
auto handleMissingGlyphs = stack->pop<GLenum>();
auto charcodes = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto numGlyphs = stack->pop<int32_t>();
auto fontStyle = stack->pop<GLbitfield>();
auto fontName = stack->pop<void*>();
auto fontTarget = stack->pop<GLenum>();
auto firstPathName = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathGlyphsNV(%" PRIu32 ", %u, %p, %u, %" PRId32 ", %u, %p, %u, %" PRIu32 ", %f)", firstPathName, fontTarget, fontName, fontStyle, numGlyphs, type, charcodes, handleMissingGlyphs, pathParameterTemplate, emScale);
if (mFunctionStubs.glPathGlyphsNV != nullptr) {
mFunctionStubs.glPathGlyphsNV(firstPathName, fontTarget, fontName, fontStyle, numGlyphs, type, charcodes, handleMissingGlyphs, pathParameterTemplate, emScale);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathGlyphsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathGlyphsNV");
return false;
}
}
bool Gles::callGlPathMemoryGlyphIndexArrayNV(Stack* stack, bool pushReturn) {
auto emScale = stack->pop<float>();
auto pathParameterTemplate = stack->pop<uint32_t>();
auto numGlyphs = stack->pop<int32_t>();
auto firstGlyphIndex = stack->pop<uint32_t>();
auto faceIndex = stack->pop<int32_t>();
auto fontData = stack->pop<void*>();
auto fontSize = stack->pop<int32_t>();
auto fontTarget = stack->pop<GLenum>();
auto firstPathName = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathMemoryGlyphIndexArrayNV(%" PRIu32 ", %u, %" PRId32 ", %p, %" PRId32 ", %" PRIu32 ", %" PRId32 ", %" PRIu32 ", %f)", firstPathName, fontTarget, fontSize, fontData, faceIndex, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale);
if (mFunctionStubs.glPathMemoryGlyphIndexArrayNV != nullptr) {
GLenum return_value = mFunctionStubs.glPathMemoryGlyphIndexArrayNV(firstPathName, fontTarget, fontSize, fontData, faceIndex, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale);
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glPathMemoryGlyphIndexArrayNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathMemoryGlyphIndexArrayNV");
return false;
}
}
bool Gles::callGlPathParameterfNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<float>();
auto pname = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathParameterfNV(%" PRIu32 ", %u, %f)", path, pname, value);
if (mFunctionStubs.glPathParameterfNV != nullptr) {
mFunctionStubs.glPathParameterfNV(path, pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathParameterfNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathParameterfNV");
return false;
}
}
bool Gles::callGlPathParameterfvNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathParameterfvNV(%" PRIu32 ", %u, %p)", path, pname, value);
if (mFunctionStubs.glPathParameterfvNV != nullptr) {
mFunctionStubs.glPathParameterfvNV(path, pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathParameterfvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathParameterfvNV");
return false;
}
}
bool Gles::callGlPathParameteriNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathParameteriNV(%" PRIu32 ", %u, %" PRId32 ")", path, pname, value);
if (mFunctionStubs.glPathParameteriNV != nullptr) {
mFunctionStubs.glPathParameteriNV(path, pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathParameteriNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathParameteriNV");
return false;
}
}
bool Gles::callGlPathParameterivNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathParameterivNV(%" PRIu32 ", %u, %p)", path, pname, value);
if (mFunctionStubs.glPathParameterivNV != nullptr) {
mFunctionStubs.glPathParameterivNV(path, pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathParameterivNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathParameterivNV");
return false;
}
}
bool Gles::callGlPathStencilDepthOffsetNV(Stack* stack, bool pushReturn) {
auto units = stack->pop<float>();
auto factor = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glPathStencilDepthOffsetNV(%f, %f)", factor, units);
if (mFunctionStubs.glPathStencilDepthOffsetNV != nullptr) {
mFunctionStubs.glPathStencilDepthOffsetNV(factor, units);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathStencilDepthOffsetNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathStencilDepthOffsetNV");
return false;
}
}
bool Gles::callGlPathStencilFuncNV(Stack* stack, bool pushReturn) {
auto mask = stack->pop<uint32_t>();
auto ref = stack->pop<int32_t>();
auto func = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPathStencilFuncNV(%u, %" PRId32 ", %" PRIu32 ")", func, ref, mask);
if (mFunctionStubs.glPathStencilFuncNV != nullptr) {
mFunctionStubs.glPathStencilFuncNV(func, ref, mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathStencilFuncNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathStencilFuncNV");
return false;
}
}
bool Gles::callGlPathStringNV(Stack* stack, bool pushReturn) {
auto pathString = stack->pop<void*>();
auto length = stack->pop<int32_t>();
auto format = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathStringNV(%" PRIu32 ", %u, %" PRId32 ", %p)", path, format, length, pathString);
if (mFunctionStubs.glPathStringNV != nullptr) {
mFunctionStubs.glPathStringNV(path, format, length, pathString);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathStringNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathStringNV");
return false;
}
}
bool Gles::callGlPathSubCommandsNV(Stack* stack, bool pushReturn) {
auto coords = stack->pop<void*>();
auto coordType = stack->pop<GLenum>();
auto numCoords = stack->pop<int32_t>();
auto commands = stack->pop<GLubyte*>();
auto numCommands = stack->pop<int32_t>();
auto commandsToDelete = stack->pop<int32_t>();
auto commandStart = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathSubCommandsNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %p, %" PRId32 ", %u, %p)", path, commandStart, commandsToDelete, numCommands, commands, numCoords, coordType, coords);
if (mFunctionStubs.glPathSubCommandsNV != nullptr) {
mFunctionStubs.glPathSubCommandsNV(path, commandStart, commandsToDelete, numCommands, commands, numCoords, coordType, coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathSubCommandsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathSubCommandsNV");
return false;
}
}
bool Gles::callGlPathSubCoordsNV(Stack* stack, bool pushReturn) {
auto coords = stack->pop<void*>();
auto coordType = stack->pop<GLenum>();
auto numCoords = stack->pop<int32_t>();
auto coordStart = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPathSubCoordsNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %u, %p)", path, coordStart, numCoords, coordType, coords);
if (mFunctionStubs.glPathSubCoordsNV != nullptr) {
mFunctionStubs.glPathSubCoordsNV(path, coordStart, numCoords, coordType, coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glPathSubCoordsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPathSubCoordsNV");
return false;
}
}
bool Gles::callGlPointAlongPathNV(Stack* stack, bool pushReturn) {
auto tangentY = stack->pop<GLfloat*>();
auto tangentX = stack->pop<GLfloat*>();
auto y = stack->pop<GLfloat*>();
auto x = stack->pop<GLfloat*>();
auto distance = stack->pop<float>();
auto numSegments = stack->pop<int32_t>();
auto startSegment = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glPointAlongPathNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %f, %p, %p, %p, %p)", path, startSegment, numSegments, distance, x, y, tangentX, tangentY);
if (mFunctionStubs.glPointAlongPathNV != nullptr) {
GLboolean return_value = mFunctionStubs.glPointAlongPathNV(path, startSegment, numSegments, distance, x, y, tangentX, tangentY);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glPointAlongPathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointAlongPathNV");
return false;
}
}
bool Gles::callGlPolygonModeNV(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPolygonModeNV(%u, %u)", face, mode);
if (mFunctionStubs.glPolygonModeNV != nullptr) {
mFunctionStubs.glPolygonModeNV(face, mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glPolygonModeNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPolygonModeNV");
return false;
}
}
bool Gles::callGlPopGroupMarkerEXT(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glPopGroupMarkerEXT()");
if (mFunctionStubs.glPopGroupMarkerEXT != nullptr) {
mFunctionStubs.glPopGroupMarkerEXT();
} else {
GAPID_WARNING("Attempted to call unsupported function glPopGroupMarkerEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPopGroupMarkerEXT");
return false;
}
}
bool Gles::callGlPrimitiveBoundingBoxOES(Stack* stack, bool pushReturn) {
auto maxW = stack->pop<float>();
auto maxZ = stack->pop<float>();
auto maxY = stack->pop<float>();
auto maxX = stack->pop<float>();
auto minW = stack->pop<float>();
auto minZ = stack->pop<float>();
auto minY = stack->pop<float>();
auto minX = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glPrimitiveBoundingBoxOES(%f, %f, %f, %f, %f, %f, %f, %f)", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
if (mFunctionStubs.glPrimitiveBoundingBoxOES != nullptr) {
mFunctionStubs.glPrimitiveBoundingBoxOES(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
} else {
GAPID_WARNING("Attempted to call unsupported function glPrimitiveBoundingBoxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPrimitiveBoundingBoxOES");
return false;
}
}
bool Gles::callGlProgramBinaryOES(Stack* stack, bool pushReturn) {
auto binary_size = stack->pop<int32_t>();
auto binary = stack->pop<void*>();
auto binary_format = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramBinaryOES(%" PRIu32 ", %u, %p, %" PRId32 ")", program, binary_format, binary, binary_size);
if (mFunctionStubs.glProgramBinaryOES != nullptr) {
mFunctionStubs.glProgramBinaryOES(program, binary_format, binary, binary_size);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramBinaryOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramBinaryOES");
return false;
}
}
bool Gles::callGlProgramParameteriEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramParameteriEXT(%" PRIu32 ", %u, %" PRId32 ")", program, pname, value);
if (mFunctionStubs.glProgramParameteriEXT != nullptr) {
mFunctionStubs.glProgramParameteriEXT(program, pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramParameteriEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramParameteriEXT");
return false;
}
}
bool Gles::callGlProgramPathFragmentInputGenNV(Stack* stack, bool pushReturn) {
auto coeffs = stack->pop<GLfloat*>();
auto components = stack->pop<int32_t>();
auto genMode = stack->pop<GLenum>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramPathFragmentInputGenNV(%" PRIu32 ", %" PRId32 ", %u, %" PRId32 ", %p)", program, location, genMode, components, coeffs);
if (mFunctionStubs.glProgramPathFragmentInputGenNV != nullptr) {
mFunctionStubs.glProgramPathFragmentInputGenNV(program, location, genMode, components, coeffs);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramPathFragmentInputGenNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramPathFragmentInputGenNV");
return false;
}
}
bool Gles::callGlProgramUniform1fEXT(Stack* stack, bool pushReturn) {
auto v0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1fEXT(%" PRIu32 ", %" PRId32 ", %f)", program, location, v0);
if (mFunctionStubs.glProgramUniform1fEXT != nullptr) {
mFunctionStubs.glProgramUniform1fEXT(program, location, v0);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1fEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1fEXT");
return false;
}
}
bool Gles::callGlProgramUniform1fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform1fvEXT != nullptr) {
mFunctionStubs.glProgramUniform1fvEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1fvEXT");
return false;
}
}
bool Gles::callGlProgramUniform1iEXT(Stack* stack, bool pushReturn) {
auto v0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1iEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ")", program, location, v0);
if (mFunctionStubs.glProgramUniform1iEXT != nullptr) {
mFunctionStubs.glProgramUniform1iEXT(program, location, v0);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1iEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1iEXT");
return false;
}
}
bool Gles::callGlProgramUniform1ivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1ivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform1ivEXT != nullptr) {
mFunctionStubs.glProgramUniform1ivEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1ivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1ivEXT");
return false;
}
}
bool Gles::callGlProgramUniform1uiEXT(Stack* stack, bool pushReturn) {
auto v0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1uiEXT(%" PRIu32 ", %" PRId32 ", %" PRIu32 ")", program, location, v0);
if (mFunctionStubs.glProgramUniform1uiEXT != nullptr) {
mFunctionStubs.glProgramUniform1uiEXT(program, location, v0);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1uiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1uiEXT");
return false;
}
}
bool Gles::callGlProgramUniform1uivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1uivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform1uivEXT != nullptr) {
mFunctionStubs.glProgramUniform1uivEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1uivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1uivEXT");
return false;
}
}
bool Gles::callGlProgramUniform2fEXT(Stack* stack, bool pushReturn) {
auto v1 = stack->pop<float>();
auto v0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2fEXT(%" PRIu32 ", %" PRId32 ", %f, %f)", program, location, v0, v1);
if (mFunctionStubs.glProgramUniform2fEXT != nullptr) {
mFunctionStubs.glProgramUniform2fEXT(program, location, v0, v1);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2fEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2fEXT");
return false;
}
}
bool Gles::callGlProgramUniform2fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform2fvEXT != nullptr) {
mFunctionStubs.glProgramUniform2fvEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2fvEXT");
return false;
}
}
bool Gles::callGlProgramUniform2iEXT(Stack* stack, bool pushReturn) {
auto v1 = stack->pop<int32_t>();
auto v0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2iEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", program, location, v0, v1);
if (mFunctionStubs.glProgramUniform2iEXT != nullptr) {
mFunctionStubs.glProgramUniform2iEXT(program, location, v0, v1);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2iEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2iEXT");
return false;
}
}
bool Gles::callGlProgramUniform2ivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2ivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform2ivEXT != nullptr) {
mFunctionStubs.glProgramUniform2ivEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2ivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2ivEXT");
return false;
}
}
bool Gles::callGlProgramUniform2uiEXT(Stack* stack, bool pushReturn) {
auto v1 = stack->pop<uint32_t>();
auto v0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2uiEXT(%" PRIu32 ", %" PRId32 ", %" PRIu32 ", %" PRIu32 ")", program, location, v0, v1);
if (mFunctionStubs.glProgramUniform2uiEXT != nullptr) {
mFunctionStubs.glProgramUniform2uiEXT(program, location, v0, v1);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2uiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2uiEXT");
return false;
}
}
bool Gles::callGlProgramUniform2uivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2uivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform2uivEXT != nullptr) {
mFunctionStubs.glProgramUniform2uivEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2uivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2uivEXT");
return false;
}
}
bool Gles::callGlProgramUniform3fEXT(Stack* stack, bool pushReturn) {
auto v2 = stack->pop<float>();
auto v1 = stack->pop<float>();
auto v0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3fEXT(%" PRIu32 ", %" PRId32 ", %f, %f, %f)", program, location, v0, v1, v2);
if (mFunctionStubs.glProgramUniform3fEXT != nullptr) {
mFunctionStubs.glProgramUniform3fEXT(program, location, v0, v1, v2);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3fEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3fEXT");
return false;
}
}
bool Gles::callGlProgramUniform3fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform3fvEXT != nullptr) {
mFunctionStubs.glProgramUniform3fvEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3fvEXT");
return false;
}
}
bool Gles::callGlProgramUniform3iEXT(Stack* stack, bool pushReturn) {
auto v2 = stack->pop<int32_t>();
auto v1 = stack->pop<int32_t>();
auto v0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3iEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", program, location, v0, v1, v2);
if (mFunctionStubs.glProgramUniform3iEXT != nullptr) {
mFunctionStubs.glProgramUniform3iEXT(program, location, v0, v1, v2);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3iEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3iEXT");
return false;
}
}
bool Gles::callGlProgramUniform3ivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3ivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform3ivEXT != nullptr) {
mFunctionStubs.glProgramUniform3ivEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3ivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3ivEXT");
return false;
}
}
bool Gles::callGlProgramUniform3uiEXT(Stack* stack, bool pushReturn) {
auto v2 = stack->pop<uint32_t>();
auto v1 = stack->pop<uint32_t>();
auto v0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3uiEXT(%" PRIu32 ", %" PRId32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", program, location, v0, v1, v2);
if (mFunctionStubs.glProgramUniform3uiEXT != nullptr) {
mFunctionStubs.glProgramUniform3uiEXT(program, location, v0, v1, v2);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3uiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3uiEXT");
return false;
}
}
bool Gles::callGlProgramUniform3uivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3uivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform3uivEXT != nullptr) {
mFunctionStubs.glProgramUniform3uivEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3uivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3uivEXT");
return false;
}
}
bool Gles::callGlProgramUniform4fEXT(Stack* stack, bool pushReturn) {
auto v3 = stack->pop<float>();
auto v2 = stack->pop<float>();
auto v1 = stack->pop<float>();
auto v0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4fEXT(%" PRIu32 ", %" PRId32 ", %f, %f, %f, %f)", program, location, v0, v1, v2, v3);
if (mFunctionStubs.glProgramUniform4fEXT != nullptr) {
mFunctionStubs.glProgramUniform4fEXT(program, location, v0, v1, v2, v3);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4fEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4fEXT");
return false;
}
}
bool Gles::callGlProgramUniform4fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform4fvEXT != nullptr) {
mFunctionStubs.glProgramUniform4fvEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4fvEXT");
return false;
}
}
bool Gles::callGlProgramUniform4iEXT(Stack* stack, bool pushReturn) {
auto v3 = stack->pop<int32_t>();
auto v2 = stack->pop<int32_t>();
auto v1 = stack->pop<int32_t>();
auto v0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4iEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", program, location, v0, v1, v2, v3);
if (mFunctionStubs.glProgramUniform4iEXT != nullptr) {
mFunctionStubs.glProgramUniform4iEXT(program, location, v0, v1, v2, v3);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4iEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4iEXT");
return false;
}
}
bool Gles::callGlProgramUniform4ivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4ivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform4ivEXT != nullptr) {
mFunctionStubs.glProgramUniform4ivEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4ivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4ivEXT");
return false;
}
}
bool Gles::callGlProgramUniform4uiEXT(Stack* stack, bool pushReturn) {
auto v3 = stack->pop<uint32_t>();
auto v2 = stack->pop<uint32_t>();
auto v1 = stack->pop<uint32_t>();
auto v0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4uiEXT(%" PRIu32 ", %" PRId32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", program, location, v0, v1, v2, v3);
if (mFunctionStubs.glProgramUniform4uiEXT != nullptr) {
mFunctionStubs.glProgramUniform4uiEXT(program, location, v0, v1, v2, v3);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4uiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4uiEXT");
return false;
}
}
bool Gles::callGlProgramUniform4uivEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4uivEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform4uivEXT != nullptr) {
mFunctionStubs.glProgramUniform4uivEXT(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4uivEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4uivEXT");
return false;
}
}
bool Gles::callGlProgramUniformHandleui64NV(Stack* stack, bool pushReturn) {
auto value = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformHandleui64NV(%" PRIu32 ", %" PRId32 ", %" PRIu64 ")", program, location, value);
if (mFunctionStubs.glProgramUniformHandleui64NV != nullptr) {
mFunctionStubs.glProgramUniformHandleui64NV(program, location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformHandleui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformHandleui64NV");
return false;
}
}
bool Gles::callGlProgramUniformHandleui64vNV(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint64*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformHandleui64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniformHandleui64vNV != nullptr) {
mFunctionStubs.glProgramUniformHandleui64vNV(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformHandleui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformHandleui64vNV");
return false;
}
}
bool Gles::callGlProgramUniformMatrix2fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix2fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix2fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix2fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix2fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix2fvEXT");
return false;
}
}
bool Gles::callGlProgramUniformMatrix2x3fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix2x3fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix2x3fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix2x3fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix2x3fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix2x3fvEXT");
return false;
}
}
bool Gles::callGlProgramUniformMatrix2x4fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix2x4fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix2x4fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix2x4fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix2x4fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix2x4fvEXT");
return false;
}
}
bool Gles::callGlProgramUniformMatrix3fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix3fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix3fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix3fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix3fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix3fvEXT");
return false;
}
}
bool Gles::callGlProgramUniformMatrix3x2fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix3x2fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix3x2fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix3x2fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix3x2fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix3x2fvEXT");
return false;
}
}
bool Gles::callGlProgramUniformMatrix3x4fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix3x4fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix3x4fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix3x4fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix3x4fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix3x4fvEXT");
return false;
}
}
bool Gles::callGlProgramUniformMatrix4fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix4fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix4fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix4fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix4fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix4fvEXT");
return false;
}
}
bool Gles::callGlProgramUniformMatrix4x2fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix4x2fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix4x2fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix4x2fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix4x2fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix4x2fvEXT");
return false;
}
}
bool Gles::callGlProgramUniformMatrix4x3fvEXT(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix4x3fvEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, value);
if (mFunctionStubs.glProgramUniformMatrix4x3fvEXT != nullptr) {
mFunctionStubs.glProgramUniformMatrix4x3fvEXT(program, location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix4x3fvEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix4x3fvEXT");
return false;
}
}
bool Gles::callGlPushGroupMarkerEXT(Stack* stack, bool pushReturn) {
auto marker = stack->pop<GLchar*>();
auto length = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glPushGroupMarkerEXT(%" PRId32 ", %p)", length, marker);
if (mFunctionStubs.glPushGroupMarkerEXT != nullptr) {
mFunctionStubs.glPushGroupMarkerEXT(length, marker);
} else {
GAPID_WARNING("Attempted to call unsupported function glPushGroupMarkerEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPushGroupMarkerEXT");
return false;
}
}
bool Gles::callGlQueryCounterEXT(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glQueryCounterEXT(%" PRIu32 ", %u)", query, target);
if (mFunctionStubs.glQueryCounterEXT != nullptr) {
mFunctionStubs.glQueryCounterEXT(query, target);
} else {
GAPID_WARNING("Attempted to call unsupported function glQueryCounterEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glQueryCounterEXT");
return false;
}
}
bool Gles::callGlRasterSamplesEXT(Stack* stack, bool pushReturn) {
auto fixedsamplelocations = stack->pop<uint8_t>();
auto samples = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glRasterSamplesEXT(%" PRIu32 ", %" PRIu8 ")", samples, fixedsamplelocations);
if (mFunctionStubs.glRasterSamplesEXT != nullptr) {
mFunctionStubs.glRasterSamplesEXT(samples, fixedsamplelocations);
} else {
GAPID_WARNING("Attempted to call unsupported function glRasterSamplesEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRasterSamplesEXT");
return false;
}
}
bool Gles::callGlReadBufferIndexedEXT(Stack* stack, bool pushReturn) {
auto index = stack->pop<int32_t>();
auto src = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glReadBufferIndexedEXT(%u, %" PRId32 ")", src, index);
if (mFunctionStubs.glReadBufferIndexedEXT != nullptr) {
mFunctionStubs.glReadBufferIndexedEXT(src, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glReadBufferIndexedEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glReadBufferIndexedEXT");
return false;
}
}
bool Gles::callGlReadBufferNV(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glReadBufferNV(%u)", mode);
if (mFunctionStubs.glReadBufferNV != nullptr) {
mFunctionStubs.glReadBufferNV(mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glReadBufferNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glReadBufferNV");
return false;
}
}
bool Gles::callGlReadnPixelsEXT(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto bufSize = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glReadnPixelsEXT(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %" PRId32 ", %p)", x, y, width, height, format, type, bufSize, data);
if (mFunctionStubs.glReadnPixelsEXT != nullptr) {
mFunctionStubs.glReadnPixelsEXT(x, y, width, height, format, type, bufSize, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glReadnPixelsEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glReadnPixelsEXT");
return false;
}
}
bool Gles::callGlReadnPixelsKHR(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto bufSize = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glReadnPixelsKHR(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %" PRId32 ", %p)", x, y, width, height, format, type, bufSize, data);
if (mFunctionStubs.glReadnPixelsKHR != nullptr) {
mFunctionStubs.glReadnPixelsKHR(x, y, width, height, format, type, bufSize, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glReadnPixelsKHR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glReadnPixelsKHR");
return false;
}
}
bool Gles::callGlRenderbufferStorageMultisampleANGLE(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorageMultisampleANGLE(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", target, samples, internalformat, width, height);
if (mFunctionStubs.glRenderbufferStorageMultisampleANGLE != nullptr) {
mFunctionStubs.glRenderbufferStorageMultisampleANGLE(target, samples, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorageMultisampleANGLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRenderbufferStorageMultisampleANGLE");
return false;
}
}
bool Gles::callGlRenderbufferStorageMultisampleAPPLE(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorageMultisampleAPPLE(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", target, samples, internalformat, width, height);
if (mFunctionStubs.glRenderbufferStorageMultisampleAPPLE != nullptr) {
mFunctionStubs.glRenderbufferStorageMultisampleAPPLE(target, samples, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorageMultisampleAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRenderbufferStorageMultisampleAPPLE");
return false;
}
}
bool Gles::callGlRenderbufferStorageMultisampleEXT(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorageMultisampleEXT(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", target, samples, internalformat, width, height);
if (mFunctionStubs.glRenderbufferStorageMultisampleEXT != nullptr) {
mFunctionStubs.glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorageMultisampleEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRenderbufferStorageMultisampleEXT");
return false;
}
}
bool Gles::callGlRenderbufferStorageMultisampleIMG(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorageMultisampleIMG(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", target, samples, internalformat, width, height);
if (mFunctionStubs.glRenderbufferStorageMultisampleIMG != nullptr) {
mFunctionStubs.glRenderbufferStorageMultisampleIMG(target, samples, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorageMultisampleIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRenderbufferStorageMultisampleIMG");
return false;
}
}
bool Gles::callGlRenderbufferStorageMultisampleNV(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorageMultisampleNV(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", target, samples, internalformat, width, height);
if (mFunctionStubs.glRenderbufferStorageMultisampleNV != nullptr) {
mFunctionStubs.glRenderbufferStorageMultisampleNV(target, samples, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorageMultisampleNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRenderbufferStorageMultisampleNV");
return false;
}
}
bool Gles::callGlResolveDepthValuesNV(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glResolveDepthValuesNV()");
if (mFunctionStubs.glResolveDepthValuesNV != nullptr) {
mFunctionStubs.glResolveDepthValuesNV();
} else {
GAPID_WARNING("Attempted to call unsupported function glResolveDepthValuesNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glResolveDepthValuesNV");
return false;
}
}
bool Gles::callGlResolveMultisampleFramebufferAPPLE(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glResolveMultisampleFramebufferAPPLE()");
if (mFunctionStubs.glResolveMultisampleFramebufferAPPLE != nullptr) {
mFunctionStubs.glResolveMultisampleFramebufferAPPLE();
} else {
GAPID_WARNING("Attempted to call unsupported function glResolveMultisampleFramebufferAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glResolveMultisampleFramebufferAPPLE");
return false;
}
}
bool Gles::callGlSamplerParameterIivOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameterIivOES(%" PRIu32 ", %u, %p)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameterIivOES != nullptr) {
mFunctionStubs.glSamplerParameterIivOES(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameterIivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameterIivOES");
return false;
}
}
bool Gles::callGlSamplerParameterIuivOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameterIuivOES(%" PRIu32 ", %u, %p)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameterIuivOES != nullptr) {
mFunctionStubs.glSamplerParameterIuivOES(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameterIuivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameterIuivOES");
return false;
}
}
bool Gles::callGlScissorArrayvNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glScissorArrayvNV(%" PRIu32 ", %" PRId32 ", %p)", first, count, v);
if (mFunctionStubs.glScissorArrayvNV != nullptr) {
mFunctionStubs.glScissorArrayvNV(first, count, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glScissorArrayvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScissorArrayvNV");
return false;
}
}
bool Gles::callGlScissorIndexedNV(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto bottom = stack->pop<int32_t>();
auto left = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glScissorIndexedNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", index, left, bottom, width, height);
if (mFunctionStubs.glScissorIndexedNV != nullptr) {
mFunctionStubs.glScissorIndexedNV(index, left, bottom, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glScissorIndexedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScissorIndexedNV");
return false;
}
}
bool Gles::callGlScissorIndexedvNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLint*>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glScissorIndexedvNV(%" PRIu32 ", %p)", index, v);
if (mFunctionStubs.glScissorIndexedvNV != nullptr) {
mFunctionStubs.glScissorIndexedvNV(index, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glScissorIndexedvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScissorIndexedvNV");
return false;
}
}
bool Gles::callGlSelectPerfMonitorCountersAMD(Stack* stack, bool pushReturn) {
auto counterList = stack->pop<GLuint*>();
auto numCounters = stack->pop<int32_t>();
auto group = stack->pop<uint32_t>();
auto enable = stack->pop<uint8_t>();
auto monitor = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSelectPerfMonitorCountersAMD(%" PRIu32 ", %" PRIu8 ", %" PRIu32 ", %" PRId32 ", %p)", monitor, enable, group, numCounters, counterList);
if (mFunctionStubs.glSelectPerfMonitorCountersAMD != nullptr) {
mFunctionStubs.glSelectPerfMonitorCountersAMD(monitor, enable, group, numCounters, counterList);
} else {
GAPID_WARNING("Attempted to call unsupported function glSelectPerfMonitorCountersAMD");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSelectPerfMonitorCountersAMD");
return false;
}
}
bool Gles::callGlSetFenceNV(Stack* stack, bool pushReturn) {
auto condition = stack->pop<GLenum>();
auto fence = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSetFenceNV(%" PRIu32 ", %u)", fence, condition);
if (mFunctionStubs.glSetFenceNV != nullptr) {
mFunctionStubs.glSetFenceNV(fence, condition);
} else {
GAPID_WARNING("Attempted to call unsupported function glSetFenceNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSetFenceNV");
return false;
}
}
bool Gles::callGlStartTilingQCOM(Stack* stack, bool pushReturn) {
auto preserveMask = stack->pop<GLbitfield>();
auto height = stack->pop<uint32_t>();
auto width = stack->pop<uint32_t>();
auto y = stack->pop<uint32_t>();
auto x = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glStartTilingQCOM(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %u)", x, y, width, height, preserveMask);
if (mFunctionStubs.glStartTilingQCOM != nullptr) {
mFunctionStubs.glStartTilingQCOM(x, y, width, height, preserveMask);
} else {
GAPID_WARNING("Attempted to call unsupported function glStartTilingQCOM");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStartTilingQCOM");
return false;
}
}
bool Gles::callGlStencilFillPathInstancedNV(Stack* stack, bool pushReturn) {
auto transformValues = stack->pop<GLfloat*>();
auto transformType = stack->pop<GLenum>();
auto mask = stack->pop<uint32_t>();
auto fillMode = stack->pop<GLenum>();
auto pathBase = stack->pop<uint32_t>();
auto paths = stack->pop<void*>();
auto pathNameType = stack->pop<GLenum>();
auto numPaths = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilFillPathInstancedNV(%" PRId32 ", %u, %p, %" PRIu32 ", %u, %" PRIu32 ", %u, %p)", numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType, transformValues);
if (mFunctionStubs.glStencilFillPathInstancedNV != nullptr) {
mFunctionStubs.glStencilFillPathInstancedNV(numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType, transformValues);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilFillPathInstancedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilFillPathInstancedNV");
return false;
}
}
bool Gles::callGlStencilFillPathNV(Stack* stack, bool pushReturn) {
auto mask = stack->pop<uint32_t>();
auto fillMode = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilFillPathNV(%" PRIu32 ", %u, %" PRIu32 ")", path, fillMode, mask);
if (mFunctionStubs.glStencilFillPathNV != nullptr) {
mFunctionStubs.glStencilFillPathNV(path, fillMode, mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilFillPathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilFillPathNV");
return false;
}
}
bool Gles::callGlStencilStrokePathInstancedNV(Stack* stack, bool pushReturn) {
auto transformValues = stack->pop<GLfloat*>();
auto transformType = stack->pop<GLenum>();
auto mask = stack->pop<uint32_t>();
auto reference = stack->pop<int32_t>();
auto pathBase = stack->pop<uint32_t>();
auto paths = stack->pop<void*>();
auto pathNameType = stack->pop<GLenum>();
auto numPaths = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilStrokePathInstancedNV(%" PRId32 ", %u, %p, %" PRIu32 ", %" PRId32 ", %" PRIu32 ", %u, %p)", numPaths, pathNameType, paths, pathBase, reference, mask, transformType, transformValues);
if (mFunctionStubs.glStencilStrokePathInstancedNV != nullptr) {
mFunctionStubs.glStencilStrokePathInstancedNV(numPaths, pathNameType, paths, pathBase, reference, mask, transformType, transformValues);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilStrokePathInstancedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilStrokePathInstancedNV");
return false;
}
}
bool Gles::callGlStencilStrokePathNV(Stack* stack, bool pushReturn) {
auto mask = stack->pop<uint32_t>();
auto reference = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilStrokePathNV(%" PRIu32 ", %" PRId32 ", %" PRIu32 ")", path, reference, mask);
if (mFunctionStubs.glStencilStrokePathNV != nullptr) {
mFunctionStubs.glStencilStrokePathNV(path, reference, mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilStrokePathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilStrokePathNV");
return false;
}
}
bool Gles::callGlStencilThenCoverFillPathInstancedNV(Stack* stack, bool pushReturn) {
auto transformValues = stack->pop<GLfloat*>();
auto transformType = stack->pop<GLenum>();
auto coverMode = stack->pop<GLenum>();
auto mask = stack->pop<uint32_t>();
auto fillMode = stack->pop<GLenum>();
auto pathBase = stack->pop<uint32_t>();
auto paths = stack->pop<void*>();
auto pathNameType = stack->pop<GLenum>();
auto numPaths = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilThenCoverFillPathInstancedNV(%" PRId32 ", %u, %p, %" PRIu32 ", %u, %" PRIu32 ", %u, %u, %p)", numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode, transformType, transformValues);
if (mFunctionStubs.glStencilThenCoverFillPathInstancedNV != nullptr) {
mFunctionStubs.glStencilThenCoverFillPathInstancedNV(numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode, transformType, transformValues);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilThenCoverFillPathInstancedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilThenCoverFillPathInstancedNV");
return false;
}
}
bool Gles::callGlStencilThenCoverFillPathNV(Stack* stack, bool pushReturn) {
auto coverMode = stack->pop<GLenum>();
auto mask = stack->pop<uint32_t>();
auto fillMode = stack->pop<GLenum>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilThenCoverFillPathNV(%" PRIu32 ", %u, %" PRIu32 ", %u)", path, fillMode, mask, coverMode);
if (mFunctionStubs.glStencilThenCoverFillPathNV != nullptr) {
mFunctionStubs.glStencilThenCoverFillPathNV(path, fillMode, mask, coverMode);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilThenCoverFillPathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilThenCoverFillPathNV");
return false;
}
}
bool Gles::callGlStencilThenCoverStrokePathInstancedNV(Stack* stack, bool pushReturn) {
auto transformValues = stack->pop<GLfloat*>();
auto transformType = stack->pop<GLenum>();
auto coverMode = stack->pop<GLenum>();
auto mask = stack->pop<uint32_t>();
auto reference = stack->pop<int32_t>();
auto pathBase = stack->pop<uint32_t>();
auto paths = stack->pop<void*>();
auto pathNameType = stack->pop<GLenum>();
auto numPaths = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilThenCoverStrokePathInstancedNV(%" PRId32 ", %u, %p, %" PRIu32 ", %" PRId32 ", %" PRIu32 ", %u, %u, %p)", numPaths, pathNameType, paths, pathBase, reference, mask, coverMode, transformType, transformValues);
if (mFunctionStubs.glStencilThenCoverStrokePathInstancedNV != nullptr) {
mFunctionStubs.glStencilThenCoverStrokePathInstancedNV(numPaths, pathNameType, paths, pathBase, reference, mask, coverMode, transformType, transformValues);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilThenCoverStrokePathInstancedNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilThenCoverStrokePathInstancedNV");
return false;
}
}
bool Gles::callGlStencilThenCoverStrokePathNV(Stack* stack, bool pushReturn) {
auto coverMode = stack->pop<GLenum>();
auto mask = stack->pop<uint32_t>();
auto reference = stack->pop<int32_t>();
auto path = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilThenCoverStrokePathNV(%" PRIu32 ", %" PRId32 ", %" PRIu32 ", %u)", path, reference, mask, coverMode);
if (mFunctionStubs.glStencilThenCoverStrokePathNV != nullptr) {
mFunctionStubs.glStencilThenCoverStrokePathNV(path, reference, mask, coverMode);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilThenCoverStrokePathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilThenCoverStrokePathNV");
return false;
}
}
bool Gles::callGlSubpixelPrecisionBiasNV(Stack* stack, bool pushReturn) {
auto ybits = stack->pop<uint32_t>();
auto xbits = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSubpixelPrecisionBiasNV(%" PRIu32 ", %" PRIu32 ")", xbits, ybits);
if (mFunctionStubs.glSubpixelPrecisionBiasNV != nullptr) {
mFunctionStubs.glSubpixelPrecisionBiasNV(xbits, ybits);
} else {
GAPID_WARNING("Attempted to call unsupported function glSubpixelPrecisionBiasNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSubpixelPrecisionBiasNV");
return false;
}
}
bool Gles::callGlTestFenceNV(Stack* stack, bool pushReturn) {
auto fence = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTestFenceNV(%" PRIu32 ")", fence);
if (mFunctionStubs.glTestFenceNV != nullptr) {
GLboolean return_value = mFunctionStubs.glTestFenceNV(fence);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glTestFenceNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTestFenceNV");
return false;
}
}
bool Gles::callGlTexBufferOES(Stack* stack, bool pushReturn) {
auto buffer = stack->pop<uint32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexBufferOES(%u, %u, %" PRIu32 ")", target, internalformat, buffer);
if (mFunctionStubs.glTexBufferOES != nullptr) {
mFunctionStubs.glTexBufferOES(target, internalformat, buffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexBufferOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexBufferOES");
return false;
}
}
bool Gles::callGlTexBufferRangeOES(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto buffer = stack->pop<uint32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexBufferRangeOES(%u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ")", target, internalformat, buffer, offset, size);
if (mFunctionStubs.glTexBufferRangeOES != nullptr) {
mFunctionStubs.glTexBufferRangeOES(target, internalformat, buffer, offset, size);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexBufferRangeOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexBufferRangeOES");
return false;
}
}
bool Gles::callGlTexImage3DOES(Stack* stack, bool pushReturn) {
auto pixels = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto border = stack->pop<int32_t>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexImage3DOES(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", target, level, internalformat, width, height, depth, border, format, type, pixels);
if (mFunctionStubs.glTexImage3DOES != nullptr) {
mFunctionStubs.glTexImage3DOES(target, level, internalformat, width, height, depth, border, format, type, pixels);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexImage3DOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexImage3DOES");
return false;
}
}
bool Gles::callGlTexPageCommitmentEXT(Stack* stack, bool pushReturn) {
auto commit = stack->pop<uint8_t>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexPageCommitmentEXT(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ")", target, level, xoffset, yoffset, zoffset, width, height, depth, commit);
if (mFunctionStubs.glTexPageCommitmentEXT != nullptr) {
mFunctionStubs.glTexPageCommitmentEXT(target, level, xoffset, yoffset, zoffset, width, height, depth, commit);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexPageCommitmentEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexPageCommitmentEXT");
return false;
}
}
bool Gles::callGlTexParameterIivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterIivOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterIivOES != nullptr) {
mFunctionStubs.glTexParameterIivOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterIivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterIivOES");
return false;
}
}
bool Gles::callGlTexParameterIuivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterIuivOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterIuivOES != nullptr) {
mFunctionStubs.glTexParameterIuivOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterIuivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterIuivOES");
return false;
}
}
bool Gles::callGlTexStorage1DEXT(Stack* stack, bool pushReturn) {
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage1DEXT(%u, %" PRId32 ", %u, %" PRId32 ")", target, levels, internalformat, width);
if (mFunctionStubs.glTexStorage1DEXT != nullptr) {
mFunctionStubs.glTexStorage1DEXT(target, levels, internalformat, width);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage1DEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage1DEXT");
return false;
}
}
bool Gles::callGlTexStorage2DEXT(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage2DEXT(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", target, levels, internalformat, width, height);
if (mFunctionStubs.glTexStorage2DEXT != nullptr) {
mFunctionStubs.glTexStorage2DEXT(target, levels, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage2DEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage2DEXT");
return false;
}
}
bool Gles::callGlTexStorage3DEXT(Stack* stack, bool pushReturn) {
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage3DEXT(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, levels, internalformat, width, height, depth);
if (mFunctionStubs.glTexStorage3DEXT != nullptr) {
mFunctionStubs.glTexStorage3DEXT(target, levels, internalformat, width, height, depth);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage3DEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage3DEXT");
return false;
}
}
bool Gles::callGlTexSubImage3DOES(Stack* stack, bool pushReturn) {
auto pixels = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexSubImage3DOES(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
if (mFunctionStubs.glTexSubImage3DOES != nullptr) {
mFunctionStubs.glTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexSubImage3DOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexSubImage3DOES");
return false;
}
}
bool Gles::callGlTextureStorage1DEXT(Stack* stack, bool pushReturn) {
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTextureStorage1DEXT(%" PRIu32 ", %u, %" PRId32 ", %u, %" PRId32 ")", texture, target, levels, internalformat, width);
if (mFunctionStubs.glTextureStorage1DEXT != nullptr) {
mFunctionStubs.glTextureStorage1DEXT(texture, target, levels, internalformat, width);
} else {
GAPID_WARNING("Attempted to call unsupported function glTextureStorage1DEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTextureStorage1DEXT");
return false;
}
}
bool Gles::callGlTextureStorage2DEXT(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTextureStorage2DEXT(%" PRIu32 ", %u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", texture, target, levels, internalformat, width, height);
if (mFunctionStubs.glTextureStorage2DEXT != nullptr) {
mFunctionStubs.glTextureStorage2DEXT(texture, target, levels, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glTextureStorage2DEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTextureStorage2DEXT");
return false;
}
}
bool Gles::callGlTextureStorage3DEXT(Stack* stack, bool pushReturn) {
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTextureStorage3DEXT(%" PRIu32 ", %u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", texture, target, levels, internalformat, width, height, depth);
if (mFunctionStubs.glTextureStorage3DEXT != nullptr) {
mFunctionStubs.glTextureStorage3DEXT(texture, target, levels, internalformat, width, height, depth);
} else {
GAPID_WARNING("Attempted to call unsupported function glTextureStorage3DEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTextureStorage3DEXT");
return false;
}
}
bool Gles::callGlTextureViewEXT(Stack* stack, bool pushReturn) {
auto numlayers = stack->pop<uint32_t>();
auto minlayer = stack->pop<uint32_t>();
auto numlevels = stack->pop<uint32_t>();
auto minlevel = stack->pop<uint32_t>();
auto internalformat = stack->pop<GLenum>();
auto origtexture = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTextureViewEXT(%" PRIu32 ", %u, %" PRIu32 ", %u, %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
if (mFunctionStubs.glTextureViewEXT != nullptr) {
mFunctionStubs.glTextureViewEXT(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
} else {
GAPID_WARNING("Attempted to call unsupported function glTextureViewEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTextureViewEXT");
return false;
}
}
bool Gles::callGlTextureViewOES(Stack* stack, bool pushReturn) {
auto numlayers = stack->pop<uint32_t>();
auto minlayer = stack->pop<uint32_t>();
auto numlevels = stack->pop<uint32_t>();
auto minlevel = stack->pop<uint32_t>();
auto internalformat = stack->pop<GLenum>();
auto origtexture = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTextureViewOES(%" PRIu32 ", %u, %" PRIu32 ", %u, %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
if (mFunctionStubs.glTextureViewOES != nullptr) {
mFunctionStubs.glTextureViewOES(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
} else {
GAPID_WARNING("Attempted to call unsupported function glTextureViewOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTextureViewOES");
return false;
}
}
bool Gles::callGlTransformPathNV(Stack* stack, bool pushReturn) {
auto transformValues = stack->pop<GLfloat*>();
auto transformType = stack->pop<GLenum>();
auto srcPath = stack->pop<uint32_t>();
auto resultPath = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTransformPathNV(%" PRIu32 ", %" PRIu32 ", %u, %p)", resultPath, srcPath, transformType, transformValues);
if (mFunctionStubs.glTransformPathNV != nullptr) {
mFunctionStubs.glTransformPathNV(resultPath, srcPath, transformType, transformValues);
} else {
GAPID_WARNING("Attempted to call unsupported function glTransformPathNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTransformPathNV");
return false;
}
}
bool Gles::callGlUniformHandleui64NV(Stack* stack, bool pushReturn) {
auto value = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformHandleui64NV(%" PRId32 ", %" PRIu64 ")", location, value);
if (mFunctionStubs.glUniformHandleui64NV != nullptr) {
mFunctionStubs.glUniformHandleui64NV(location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformHandleui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformHandleui64NV");
return false;
}
}
bool Gles::callGlUniformHandleui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformHandleui64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniformHandleui64vNV != nullptr) {
mFunctionStubs.glUniformHandleui64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformHandleui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformHandleui64vNV");
return false;
}
}
bool Gles::callGlUniformMatrix2x3fvNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix2x3fvNV(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, value);
if (mFunctionStubs.glUniformMatrix2x3fvNV != nullptr) {
mFunctionStubs.glUniformMatrix2x3fvNV(location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix2x3fvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix2x3fvNV");
return false;
}
}
bool Gles::callGlUniformMatrix2x4fvNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix2x4fvNV(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, value);
if (mFunctionStubs.glUniformMatrix2x4fvNV != nullptr) {
mFunctionStubs.glUniformMatrix2x4fvNV(location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix2x4fvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix2x4fvNV");
return false;
}
}
bool Gles::callGlUniformMatrix3x2fvNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix3x2fvNV(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, value);
if (mFunctionStubs.glUniformMatrix3x2fvNV != nullptr) {
mFunctionStubs.glUniformMatrix3x2fvNV(location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix3x2fvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix3x2fvNV");
return false;
}
}
bool Gles::callGlUniformMatrix3x4fvNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix3x4fvNV(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, value);
if (mFunctionStubs.glUniformMatrix3x4fvNV != nullptr) {
mFunctionStubs.glUniformMatrix3x4fvNV(location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix3x4fvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix3x4fvNV");
return false;
}
}
bool Gles::callGlUniformMatrix4x2fvNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix4x2fvNV(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, value);
if (mFunctionStubs.glUniformMatrix4x2fvNV != nullptr) {
mFunctionStubs.glUniformMatrix4x2fvNV(location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix4x2fvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix4x2fvNV");
return false;
}
}
bool Gles::callGlUniformMatrix4x3fvNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix4x3fvNV(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, value);
if (mFunctionStubs.glUniformMatrix4x3fvNV != nullptr) {
mFunctionStubs.glUniformMatrix4x3fvNV(location, count, transpose, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix4x3fvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix4x3fvNV");
return false;
}
}
bool Gles::callGlUnmapBufferOES(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glUnmapBufferOES(%u)", target);
if (mFunctionStubs.glUnmapBufferOES != nullptr) {
GLboolean return_value = mFunctionStubs.glUnmapBufferOES(target);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glUnmapBufferOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUnmapBufferOES");
return false;
}
}
bool Gles::callGlUseProgramStagesEXT(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
auto stages = stack->pop<GLbitfield>();
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glUseProgramStagesEXT(%" PRIu32 ", %u, %" PRIu32 ")", pipeline, stages, program);
if (mFunctionStubs.glUseProgramStagesEXT != nullptr) {
mFunctionStubs.glUseProgramStagesEXT(pipeline, stages, program);
} else {
GAPID_WARNING("Attempted to call unsupported function glUseProgramStagesEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUseProgramStagesEXT");
return false;
}
}
bool Gles::callGlValidateProgramPipelineEXT(Stack* stack, bool pushReturn) {
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glValidateProgramPipelineEXT(%" PRIu32 ")", pipeline);
if (mFunctionStubs.glValidateProgramPipelineEXT != nullptr) {
mFunctionStubs.glValidateProgramPipelineEXT(pipeline);
} else {
GAPID_WARNING("Attempted to call unsupported function glValidateProgramPipelineEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glValidateProgramPipelineEXT");
return false;
}
}
bool Gles::callGlVertexAttribDivisorANGLE(Stack* stack, bool pushReturn) {
auto divisor = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribDivisorANGLE(%" PRIu32 ", %" PRIu32 ")", index, divisor);
if (mFunctionStubs.glVertexAttribDivisorANGLE != nullptr) {
mFunctionStubs.glVertexAttribDivisorANGLE(index, divisor);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribDivisorANGLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribDivisorANGLE");
return false;
}
}
bool Gles::callGlVertexAttribDivisorEXT(Stack* stack, bool pushReturn) {
auto divisor = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribDivisorEXT(%" PRIu32 ", %" PRIu32 ")", index, divisor);
if (mFunctionStubs.glVertexAttribDivisorEXT != nullptr) {
mFunctionStubs.glVertexAttribDivisorEXT(index, divisor);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribDivisorEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribDivisorEXT");
return false;
}
}
bool Gles::callGlVertexAttribDivisorNV(Stack* stack, bool pushReturn) {
auto divisor = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribDivisorNV(%" PRIu32 ", %" PRIu32 ")", index, divisor);
if (mFunctionStubs.glVertexAttribDivisorNV != nullptr) {
mFunctionStubs.glVertexAttribDivisorNV(index, divisor);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribDivisorNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribDivisorNV");
return false;
}
}
bool Gles::callGlViewportArrayvNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glViewportArrayvNV(%" PRIu32 ", %" PRId32 ", %p)", first, count, v);
if (mFunctionStubs.glViewportArrayvNV != nullptr) {
mFunctionStubs.glViewportArrayvNV(first, count, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glViewportArrayvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glViewportArrayvNV");
return false;
}
}
bool Gles::callGlViewportIndexedfNV(Stack* stack, bool pushReturn) {
auto h = stack->pop<float>();
auto w = stack->pop<float>();
auto y = stack->pop<float>();
auto x = stack->pop<float>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glViewportIndexedfNV(%" PRIu32 ", %f, %f, %f, %f)", index, x, y, w, h);
if (mFunctionStubs.glViewportIndexedfNV != nullptr) {
mFunctionStubs.glViewportIndexedfNV(index, x, y, w, h);
} else {
GAPID_WARNING("Attempted to call unsupported function glViewportIndexedfNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glViewportIndexedfNV");
return false;
}
}
bool Gles::callGlViewportIndexedfvNV(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glViewportIndexedfvNV(%" PRIu32 ", %p)", index, v);
if (mFunctionStubs.glViewportIndexedfvNV != nullptr) {
mFunctionStubs.glViewportIndexedfvNV(index, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glViewportIndexedfvNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glViewportIndexedfvNV");
return false;
}
}
bool Gles::callGlWaitSyncAPPLE(Stack* stack, bool pushReturn) {
auto timeout = stack->pop<uint64_t>();
auto flag = stack->pop<GLbitfield>();
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glWaitSyncAPPLE(%p, %u, %" PRIu64 ")", sync, flag, timeout);
if (mFunctionStubs.glWaitSyncAPPLE != nullptr) {
mFunctionStubs.glWaitSyncAPPLE(sync, flag, timeout);
} else {
GAPID_WARNING("Attempted to call unsupported function glWaitSyncAPPLE");
}
return true;
} else {
GAPID_WARNING("Error during calling function glWaitSyncAPPLE");
return false;
}
}
bool Gles::callGlWeightPathsNV(Stack* stack, bool pushReturn) {
auto weights = stack->pop<GLfloat*>();
auto paths = stack->pop<GLuint*>();
auto numPaths = stack->pop<int32_t>();
auto resultPath = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glWeightPathsNV(%" PRIu32 ", %" PRId32 ", %p, %p)", resultPath, numPaths, paths, weights);
if (mFunctionStubs.glWeightPathsNV != nullptr) {
mFunctionStubs.glWeightPathsNV(resultPath, numPaths, paths, weights);
} else {
GAPID_WARNING("Attempted to call unsupported function glWeightPathsNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glWeightPathsNV");
return false;
}
}
bool Gles::callGlClearPixelLocalStorageuiEXT(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glClearPixelLocalStorageuiEXT(%" PRId32 ", %" PRId32 ", %p)", offset, n, values);
if (mFunctionStubs.glClearPixelLocalStorageuiEXT != nullptr) {
mFunctionStubs.glClearPixelLocalStorageuiEXT(offset, n, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearPixelLocalStorageuiEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearPixelLocalStorageuiEXT");
return false;
}
}
bool Gles::callGlClearTexImageEXT(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glClearTexImageEXT(%" PRIu32 ", %" PRId32 ", %u, %u, %p)", texture, level, format, type, data);
if (mFunctionStubs.glClearTexImageEXT != nullptr) {
mFunctionStubs.glClearTexImageEXT(texture, level, format, type, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearTexImageEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearTexImageEXT");
return false;
}
}
bool Gles::callGlClearTexSubImageEXT(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glClearTexSubImageEXT(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
if (mFunctionStubs.glClearTexSubImageEXT != nullptr) {
mFunctionStubs.glClearTexSubImageEXT(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearTexSubImageEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearTexSubImageEXT");
return false;
}
}
bool Gles::callGlConservativeRasterParameteriNV(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glConservativeRasterParameteriNV(%u, %" PRId32 ")", pname, param);
if (mFunctionStubs.glConservativeRasterParameteriNV != nullptr) {
mFunctionStubs.glConservativeRasterParameteriNV(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glConservativeRasterParameteriNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glConservativeRasterParameteriNV");
return false;
}
}
bool Gles::callGlDepthRangeArrayfvOES(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDepthRangeArrayfvOES(%" PRIu32 ", %" PRId32 ", %p)", first, count, v);
if (mFunctionStubs.glDepthRangeArrayfvOES != nullptr) {
mFunctionStubs.glDepthRangeArrayfvOES(first, count, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthRangeArrayfvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthRangeArrayfvOES");
return false;
}
}
bool Gles::callGlDepthRangeIndexedfOES(Stack* stack, bool pushReturn) {
auto f = stack->pop<float>();
auto n = stack->pop<float>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDepthRangeIndexedfOES(%" PRIu32 ", %f, %f)", index, n, f);
if (mFunctionStubs.glDepthRangeIndexedfOES != nullptr) {
mFunctionStubs.glDepthRangeIndexedfOES(index, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthRangeIndexedfOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthRangeIndexedfOES");
return false;
}
}
bool Gles::callGlDrawTransformFeedbackEXT(Stack* stack, bool pushReturn) {
auto id = stack->pop<uint32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawTransformFeedbackEXT(%u, %" PRIu32 ")", mode, id);
if (mFunctionStubs.glDrawTransformFeedbackEXT != nullptr) {
mFunctionStubs.glDrawTransformFeedbackEXT(mode, id);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTransformFeedbackEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTransformFeedbackEXT");
return false;
}
}
bool Gles::callGlDrawTransformFeedbackInstancedEXT(Stack* stack, bool pushReturn) {
auto instancecount = stack->pop<int32_t>();
auto id = stack->pop<uint32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDrawTransformFeedbackInstancedEXT(%u, %" PRIu32 ", %" PRId32 ")", mode, id, instancecount);
if (mFunctionStubs.glDrawTransformFeedbackInstancedEXT != nullptr) {
mFunctionStubs.glDrawTransformFeedbackInstancedEXT(mode, id, instancecount);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTransformFeedbackInstancedEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTransformFeedbackInstancedEXT");
return false;
}
}
bool Gles::callGlFramebufferPixelLocalStorageSizeEXT(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
auto target = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferPixelLocalStorageSizeEXT(%" PRIu32 ", %" PRId32 ")", target, size);
if (mFunctionStubs.glFramebufferPixelLocalStorageSizeEXT != nullptr) {
mFunctionStubs.glFramebufferPixelLocalStorageSizeEXT(target, size);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferPixelLocalStorageSizeEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferPixelLocalStorageSizeEXT");
return false;
}
}
bool Gles::callGlFramebufferTexture2DDownsampleIMG(Stack* stack, bool pushReturn) {
auto yscale = stack->pop<int32_t>();
auto xscale = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto textarget = stack->pop<GLenum>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTexture2DDownsampleIMG(%u, %u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, attachment, textarget, texture, level, xscale, yscale);
if (mFunctionStubs.glFramebufferTexture2DDownsampleIMG != nullptr) {
mFunctionStubs.glFramebufferTexture2DDownsampleIMG(target, attachment, textarget, texture, level, xscale, yscale);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTexture2DDownsampleIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTexture2DDownsampleIMG");
return false;
}
}
bool Gles::callGlFramebufferTextureLayerDownsampleIMG(Stack* stack, bool pushReturn) {
auto yscale = stack->pop<int32_t>();
auto xscale = stack->pop<int32_t>();
auto layer = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTextureLayerDownsampleIMG(%u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, attachment, texture, level, layer, xscale, yscale);
if (mFunctionStubs.glFramebufferTextureLayerDownsampleIMG != nullptr) {
mFunctionStubs.glFramebufferTextureLayerDownsampleIMG(target, attachment, texture, level, layer, xscale, yscale);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTextureLayerDownsampleIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTextureLayerDownsampleIMG");
return false;
}
}
bool Gles::callGlFramebufferTextureMultisampleMultiviewOVR(Stack* stack, bool pushReturn) {
auto numViews = stack->pop<int32_t>();
auto baseViewIndex = stack->pop<int32_t>();
auto samples = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTextureMultisampleMultiviewOVR(%u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, attachment, texture, level, samples, baseViewIndex, numViews);
if (mFunctionStubs.glFramebufferTextureMultisampleMultiviewOVR != nullptr) {
mFunctionStubs.glFramebufferTextureMultisampleMultiviewOVR(target, attachment, texture, level, samples, baseViewIndex, numViews);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTextureMultisampleMultiviewOVR");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTextureMultisampleMultiviewOVR");
return false;
}
}
bool Gles::callGlGetFloatiVOES(Stack* stack, bool pushReturn) {
auto data = stack->pop<GLfloat*>();
auto index = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFloati_vOES(%u, %" PRIu32 ", %p)", target, index, data);
if (mFunctionStubs.glGetFloati_vOES != nullptr) {
mFunctionStubs.glGetFloati_vOES(target, index, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFloati_vOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFloati_vOES");
return false;
}
}
bool Gles::callGlGetFramebufferPixelLocalStorageSizeEXT(Stack* stack, bool pushReturn) {
auto target = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetFramebufferPixelLocalStorageSizeEXT(%" PRIu32 ")", target);
if (mFunctionStubs.glGetFramebufferPixelLocalStorageSizeEXT != nullptr) {
GLsizei return_value = mFunctionStubs.glGetFramebufferPixelLocalStorageSizeEXT(target);
GAPID_INFO("Returned: %" PRId32 "", return_value);
if (pushReturn) {
stack->push<GLsizei>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFramebufferPixelLocalStorageSizeEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFramebufferPixelLocalStorageSizeEXT");
return false;
}
}
bool Gles::callGlGetTextureHandleIMG(Stack* stack, bool pushReturn) {
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetTextureHandleIMG(%" PRIu32 ")", texture);
if (mFunctionStubs.glGetTextureHandleIMG != nullptr) {
GLuint64 return_value = mFunctionStubs.glGetTextureHandleIMG(texture);
GAPID_INFO("Returned: %" PRIu64 "", return_value);
if (pushReturn) {
stack->push<GLuint64>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTextureHandleIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTextureHandleIMG");
return false;
}
}
bool Gles::callGlGetTextureSamplerHandleIMG(Stack* stack, bool pushReturn) {
auto sampler = stack->pop<uint32_t>();
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetTextureSamplerHandleIMG(%" PRIu32 ", %" PRIu32 ")", texture, sampler);
if (mFunctionStubs.glGetTextureSamplerHandleIMG != nullptr) {
GLuint64 return_value = mFunctionStubs.glGetTextureSamplerHandleIMG(texture, sampler);
GAPID_INFO("Returned: %" PRIu64 "", return_value);
if (pushReturn) {
stack->push<GLuint64>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTextureSamplerHandleIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTextureSamplerHandleIMG");
return false;
}
}
bool Gles::callGlGetUniformi64vNV(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint64EXT*>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetUniformi64vNV(%" PRIu32 ", %" PRId32 ", %p)", program, location, params);
if (mFunctionStubs.glGetUniformi64vNV != nullptr) {
mFunctionStubs.glGetUniformi64vNV(program, location, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetUniformi64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetUniformi64vNV");
return false;
}
}
bool Gles::callGlPolygonOffsetClampEXT(Stack* stack, bool pushReturn) {
auto clamp = stack->pop<float>();
auto units = stack->pop<float>();
auto factor = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glPolygonOffsetClampEXT(%f, %f, %f)", factor, units, clamp);
if (mFunctionStubs.glPolygonOffsetClampEXT != nullptr) {
mFunctionStubs.glPolygonOffsetClampEXT(factor, units, clamp);
} else {
GAPID_WARNING("Attempted to call unsupported function glPolygonOffsetClampEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPolygonOffsetClampEXT");
return false;
}
}
bool Gles::callGlProgramUniform1i64NV(Stack* stack, bool pushReturn) {
auto x = stack->pop<int64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1i64NV(%" PRIu32 ", %" PRId32 ", %" PRId64 ")", program, location, x);
if (mFunctionStubs.glProgramUniform1i64NV != nullptr) {
mFunctionStubs.glProgramUniform1i64NV(program, location, x);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1i64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1i64NV");
return false;
}
}
bool Gles::callGlProgramUniform1i64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1i64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform1i64vNV != nullptr) {
mFunctionStubs.glProgramUniform1i64vNV(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1i64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1i64vNV");
return false;
}
}
bool Gles::callGlProgramUniform1ui64NV(Stack* stack, bool pushReturn) {
auto x = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1ui64NV(%" PRIu32 ", %" PRId32 ", %" PRIu64 ")", program, location, x);
if (mFunctionStubs.glProgramUniform1ui64NV != nullptr) {
mFunctionStubs.glProgramUniform1ui64NV(program, location, x);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1ui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1ui64NV");
return false;
}
}
bool Gles::callGlProgramUniform1ui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1ui64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform1ui64vNV != nullptr) {
mFunctionStubs.glProgramUniform1ui64vNV(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1ui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1ui64vNV");
return false;
}
}
bool Gles::callGlProgramUniform2i64NV(Stack* stack, bool pushReturn) {
auto y = stack->pop<int64_t>();
auto x = stack->pop<int64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2i64NV(%" PRIu32 ", %" PRId32 ", %" PRId64 ", %" PRId64 ")", program, location, x, y);
if (mFunctionStubs.glProgramUniform2i64NV != nullptr) {
mFunctionStubs.glProgramUniform2i64NV(program, location, x, y);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2i64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2i64NV");
return false;
}
}
bool Gles::callGlProgramUniform2i64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2i64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform2i64vNV != nullptr) {
mFunctionStubs.glProgramUniform2i64vNV(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2i64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2i64vNV");
return false;
}
}
bool Gles::callGlProgramUniform2ui64NV(Stack* stack, bool pushReturn) {
auto y = stack->pop<uint64_t>();
auto x = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2ui64NV(%" PRIu32 ", %" PRId32 ", %" PRIu64 ", %" PRIu64 ")", program, location, x, y);
if (mFunctionStubs.glProgramUniform2ui64NV != nullptr) {
mFunctionStubs.glProgramUniform2ui64NV(program, location, x, y);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2ui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2ui64NV");
return false;
}
}
bool Gles::callGlProgramUniform2ui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2ui64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform2ui64vNV != nullptr) {
mFunctionStubs.glProgramUniform2ui64vNV(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2ui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2ui64vNV");
return false;
}
}
bool Gles::callGlProgramUniform3i64NV(Stack* stack, bool pushReturn) {
auto z = stack->pop<int64_t>();
auto y = stack->pop<int64_t>();
auto x = stack->pop<int64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3i64NV(%" PRIu32 ", %" PRId32 ", %" PRId64 ", %" PRId64 ", %" PRId64 ")", program, location, x, y, z);
if (mFunctionStubs.glProgramUniform3i64NV != nullptr) {
mFunctionStubs.glProgramUniform3i64NV(program, location, x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3i64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3i64NV");
return false;
}
}
bool Gles::callGlProgramUniform3i64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3i64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform3i64vNV != nullptr) {
mFunctionStubs.glProgramUniform3i64vNV(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3i64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3i64vNV");
return false;
}
}
bool Gles::callGlProgramUniform3ui64NV(Stack* stack, bool pushReturn) {
auto z = stack->pop<uint64_t>();
auto y = stack->pop<uint64_t>();
auto x = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3ui64NV(%" PRIu32 ", %" PRId32 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ")", program, location, x, y, z);
if (mFunctionStubs.glProgramUniform3ui64NV != nullptr) {
mFunctionStubs.glProgramUniform3ui64NV(program, location, x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3ui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3ui64NV");
return false;
}
}
bool Gles::callGlProgramUniform3ui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3ui64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform3ui64vNV != nullptr) {
mFunctionStubs.glProgramUniform3ui64vNV(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3ui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3ui64vNV");
return false;
}
}
bool Gles::callGlProgramUniform4i64NV(Stack* stack, bool pushReturn) {
auto w = stack->pop<int64_t>();
auto z = stack->pop<int64_t>();
auto y = stack->pop<int64_t>();
auto x = stack->pop<int64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4i64NV(%" PRIu32 ", %" PRId32 ", %" PRId64 ", %" PRId64 ", %" PRId64 ", %" PRId64 ")", program, location, x, y, z, w);
if (mFunctionStubs.glProgramUniform4i64NV != nullptr) {
mFunctionStubs.glProgramUniform4i64NV(program, location, x, y, z, w);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4i64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4i64NV");
return false;
}
}
bool Gles::callGlProgramUniform4i64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4i64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform4i64vNV != nullptr) {
mFunctionStubs.glProgramUniform4i64vNV(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4i64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4i64vNV");
return false;
}
}
bool Gles::callGlProgramUniform4ui64NV(Stack* stack, bool pushReturn) {
auto w = stack->pop<uint64_t>();
auto z = stack->pop<uint64_t>();
auto y = stack->pop<uint64_t>();
auto x = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4ui64NV(%" PRIu32 ", %" PRId32 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ")", program, location, x, y, z, w);
if (mFunctionStubs.glProgramUniform4ui64NV != nullptr) {
mFunctionStubs.glProgramUniform4ui64NV(program, location, x, y, z, w);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4ui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4ui64NV");
return false;
}
}
bool Gles::callGlProgramUniform4ui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4ui64vNV(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, value);
if (mFunctionStubs.glProgramUniform4ui64vNV != nullptr) {
mFunctionStubs.glProgramUniform4ui64vNV(program, location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4ui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4ui64vNV");
return false;
}
}
bool Gles::callGlProgramUniformHandleui64IMG(Stack* stack, bool pushReturn) {
auto value = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformHandleui64IMG(%" PRIu32 ", %" PRId32 ", %" PRIu64 ")", program, location, value);
if (mFunctionStubs.glProgramUniformHandleui64IMG != nullptr) {
mFunctionStubs.glProgramUniformHandleui64IMG(program, location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformHandleui64IMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformHandleui64IMG");
return false;
}
}
bool Gles::callGlProgramUniformHandleui64vIMG(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint64*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformHandleui64vIMG(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniformHandleui64vIMG != nullptr) {
mFunctionStubs.glProgramUniformHandleui64vIMG(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformHandleui64vIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformHandleui64vIMG");
return false;
}
}
bool Gles::callGlScissorArrayvOES(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glScissorArrayvOES(%" PRIu32 ", %" PRId32 ", %p)", first, count, v);
if (mFunctionStubs.glScissorArrayvOES != nullptr) {
mFunctionStubs.glScissorArrayvOES(first, count, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glScissorArrayvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScissorArrayvOES");
return false;
}
}
bool Gles::callGlScissorIndexedOES(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto bottom = stack->pop<int32_t>();
auto left = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glScissorIndexedOES(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", index, left, bottom, width, height);
if (mFunctionStubs.glScissorIndexedOES != nullptr) {
mFunctionStubs.glScissorIndexedOES(index, left, bottom, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glScissorIndexedOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScissorIndexedOES");
return false;
}
}
bool Gles::callGlScissorIndexedvOES(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLint*>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glScissorIndexedvOES(%" PRIu32 ", %p)", index, v);
if (mFunctionStubs.glScissorIndexedvOES != nullptr) {
mFunctionStubs.glScissorIndexedvOES(index, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glScissorIndexedvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScissorIndexedvOES");
return false;
}
}
bool Gles::callGlUniform1i64NV(Stack* stack, bool pushReturn) {
auto x = stack->pop<int64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1i64NV(%" PRId32 ", %" PRId64 ")", location, x);
if (mFunctionStubs.glUniform1i64NV != nullptr) {
mFunctionStubs.glUniform1i64NV(location, x);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1i64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1i64NV");
return false;
}
}
bool Gles::callGlUniform1i64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1i64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniform1i64vNV != nullptr) {
mFunctionStubs.glUniform1i64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1i64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1i64vNV");
return false;
}
}
bool Gles::callGlUniform1ui64NV(Stack* stack, bool pushReturn) {
auto x = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1ui64NV(%" PRId32 ", %" PRIu64 ")", location, x);
if (mFunctionStubs.glUniform1ui64NV != nullptr) {
mFunctionStubs.glUniform1ui64NV(location, x);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1ui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1ui64NV");
return false;
}
}
bool Gles::callGlUniform1ui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1ui64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniform1ui64vNV != nullptr) {
mFunctionStubs.glUniform1ui64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1ui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1ui64vNV");
return false;
}
}
bool Gles::callGlUniform2i64NV(Stack* stack, bool pushReturn) {
auto y = stack->pop<int64_t>();
auto x = stack->pop<int64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2i64NV(%" PRId32 ", %" PRId64 ", %" PRId64 ")", location, x, y);
if (mFunctionStubs.glUniform2i64NV != nullptr) {
mFunctionStubs.glUniform2i64NV(location, x, y);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2i64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2i64NV");
return false;
}
}
bool Gles::callGlUniform2i64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2i64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniform2i64vNV != nullptr) {
mFunctionStubs.glUniform2i64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2i64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2i64vNV");
return false;
}
}
bool Gles::callGlUniform2ui64NV(Stack* stack, bool pushReturn) {
auto y = stack->pop<uint64_t>();
auto x = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2ui64NV(%" PRId32 ", %" PRIu64 ", %" PRIu64 ")", location, x, y);
if (mFunctionStubs.glUniform2ui64NV != nullptr) {
mFunctionStubs.glUniform2ui64NV(location, x, y);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2ui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2ui64NV");
return false;
}
}
bool Gles::callGlUniform2ui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2ui64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniform2ui64vNV != nullptr) {
mFunctionStubs.glUniform2ui64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2ui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2ui64vNV");
return false;
}
}
bool Gles::callGlUniform3i64NV(Stack* stack, bool pushReturn) {
auto z = stack->pop<int64_t>();
auto y = stack->pop<int64_t>();
auto x = stack->pop<int64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3i64NV(%" PRId32 ", %" PRId64 ", %" PRId64 ", %" PRId64 ")", location, x, y, z);
if (mFunctionStubs.glUniform3i64NV != nullptr) {
mFunctionStubs.glUniform3i64NV(location, x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3i64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3i64NV");
return false;
}
}
bool Gles::callGlUniform3i64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3i64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniform3i64vNV != nullptr) {
mFunctionStubs.glUniform3i64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3i64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3i64vNV");
return false;
}
}
bool Gles::callGlUniform3ui64NV(Stack* stack, bool pushReturn) {
auto z = stack->pop<uint64_t>();
auto y = stack->pop<uint64_t>();
auto x = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3ui64NV(%" PRId32 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ")", location, x, y, z);
if (mFunctionStubs.glUniform3ui64NV != nullptr) {
mFunctionStubs.glUniform3ui64NV(location, x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3ui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3ui64NV");
return false;
}
}
bool Gles::callGlUniform3ui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3ui64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniform3ui64vNV != nullptr) {
mFunctionStubs.glUniform3ui64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3ui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3ui64vNV");
return false;
}
}
bool Gles::callGlUniform4i64NV(Stack* stack, bool pushReturn) {
auto w = stack->pop<int64_t>();
auto z = stack->pop<int64_t>();
auto y = stack->pop<int64_t>();
auto x = stack->pop<int64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4i64NV(%" PRId32 ", %" PRId64 ", %" PRId64 ", %" PRId64 ", %" PRId64 ")", location, x, y, z, w);
if (mFunctionStubs.glUniform4i64NV != nullptr) {
mFunctionStubs.glUniform4i64NV(location, x, y, z, w);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4i64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4i64NV");
return false;
}
}
bool Gles::callGlUniform4i64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4i64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniform4i64vNV != nullptr) {
mFunctionStubs.glUniform4i64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4i64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4i64vNV");
return false;
}
}
bool Gles::callGlUniform4ui64NV(Stack* stack, bool pushReturn) {
auto w = stack->pop<uint64_t>();
auto z = stack->pop<uint64_t>();
auto y = stack->pop<uint64_t>();
auto x = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4ui64NV(%" PRId32 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ")", location, x, y, z, w);
if (mFunctionStubs.glUniform4ui64NV != nullptr) {
mFunctionStubs.glUniform4ui64NV(location, x, y, z, w);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4ui64NV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4ui64NV");
return false;
}
}
bool Gles::callGlUniform4ui64vNV(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64EXT*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4ui64vNV(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniform4ui64vNV != nullptr) {
mFunctionStubs.glUniform4ui64vNV(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4ui64vNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4ui64vNV");
return false;
}
}
bool Gles::callGlUniformHandleui64IMG(Stack* stack, bool pushReturn) {
auto value = stack->pop<uint64_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformHandleui64IMG(%" PRId32 ", %" PRIu64 ")", location, value);
if (mFunctionStubs.glUniformHandleui64IMG != nullptr) {
mFunctionStubs.glUniformHandleui64IMG(location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformHandleui64IMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformHandleui64IMG");
return false;
}
}
bool Gles::callGlUniformHandleui64vIMG(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint64*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformHandleui64vIMG(%" PRId32 ", %" PRId32 ", %p)", location, count, value);
if (mFunctionStubs.glUniformHandleui64vIMG != nullptr) {
mFunctionStubs.glUniformHandleui64vIMG(location, count, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformHandleui64vIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformHandleui64vIMG");
return false;
}
}
bool Gles::callGlViewportArrayvOES(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto first = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glViewportArrayvOES(%" PRIu32 ", %" PRId32 ", %p)", first, count, v);
if (mFunctionStubs.glViewportArrayvOES != nullptr) {
mFunctionStubs.glViewportArrayvOES(first, count, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glViewportArrayvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glViewportArrayvOES");
return false;
}
}
bool Gles::callGlViewportIndexedfOES(Stack* stack, bool pushReturn) {
auto h = stack->pop<float>();
auto w = stack->pop<float>();
auto y = stack->pop<float>();
auto x = stack->pop<float>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glViewportIndexedfOES(%" PRIu32 ", %f, %f, %f, %f)", index, x, y, w, h);
if (mFunctionStubs.glViewportIndexedfOES != nullptr) {
mFunctionStubs.glViewportIndexedfOES(index, x, y, w, h);
} else {
GAPID_WARNING("Attempted to call unsupported function glViewportIndexedfOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glViewportIndexedfOES");
return false;
}
}
bool Gles::callGlViewportIndexedfvOES(Stack* stack, bool pushReturn) {
auto v = stack->pop<GLfloat*>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glViewportIndexedfvOES(%" PRIu32 ", %p)", index, v);
if (mFunctionStubs.glViewportIndexedfvOES != nullptr) {
mFunctionStubs.glViewportIndexedfvOES(index, v);
} else {
GAPID_WARNING("Attempted to call unsupported function glViewportIndexedfvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glViewportIndexedfvOES");
return false;
}
}
bool Gles::callGlViewportSwizzleNV(Stack* stack, bool pushReturn) {
auto swizzlew = stack->pop<GLenum>();
auto swizzlez = stack->pop<GLenum>();
auto swizzley = stack->pop<GLenum>();
auto swizzlex = stack->pop<GLenum>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glViewportSwizzleNV(%" PRIu32 ", %u, %u, %u, %u)", index, swizzlex, swizzley, swizzlez, swizzlew);
if (mFunctionStubs.glViewportSwizzleNV != nullptr) {
mFunctionStubs.glViewportSwizzleNV(index, swizzlex, swizzley, swizzlez, swizzlew);
} else {
GAPID_WARNING("Attempted to call unsupported function glViewportSwizzleNV");
}
return true;
} else {
GAPID_WARNING("Error during calling function glViewportSwizzleNV");
return false;
}
}
bool Gles::callGlWindowRectanglesEXT(Stack* stack, bool pushReturn) {
auto box = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glWindowRectanglesEXT(%u, %" PRId32 ", %p)", mode, count, box);
if (mFunctionStubs.glWindowRectanglesEXT != nullptr) {
mFunctionStubs.glWindowRectanglesEXT(mode, count, box);
} else {
GAPID_WARNING("Attempted to call unsupported function glWindowRectanglesEXT");
}
return true;
} else {
GAPID_WARNING("Error during calling function glWindowRectanglesEXT");
return false;
}
}
bool Gles::callGlBlendBarrier(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glBlendBarrier()");
if (mFunctionStubs.glBlendBarrier != nullptr) {
mFunctionStubs.glBlendBarrier();
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendBarrier");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendBarrier");
return false;
}
}
bool Gles::callGlBlendColor(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<float>();
auto blue = stack->pop<float>();
auto green = stack->pop<float>();
auto red = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glBlendColor(%f, %f, %f, %f)", red, green, blue, alpha);
if (mFunctionStubs.glBlendColor != nullptr) {
mFunctionStubs.glBlendColor(red, green, blue, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendColor");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendColor");
return false;
}
}
bool Gles::callGlBlendEquation(Stack* stack, bool pushReturn) {
auto equation = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquation(%u)", equation);
if (mFunctionStubs.glBlendEquation != nullptr) {
mFunctionStubs.glBlendEquation(equation);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquation");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquation");
return false;
}
}
bool Gles::callGlBlendEquationSeparate(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<GLenum>();
auto rgb = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationSeparate(%u, %u)", rgb, alpha);
if (mFunctionStubs.glBlendEquationSeparate != nullptr) {
mFunctionStubs.glBlendEquationSeparate(rgb, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationSeparate");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationSeparate");
return false;
}
}
bool Gles::callGlBlendEquationSeparatei(Stack* stack, bool pushReturn) {
auto modeAlpha = stack->pop<GLenum>();
auto modeRGB = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationSeparatei(%" PRIu32 ", %u, %u)", buf, modeRGB, modeAlpha);
if (mFunctionStubs.glBlendEquationSeparatei != nullptr) {
mFunctionStubs.glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationSeparatei");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationSeparatei");
return false;
}
}
bool Gles::callGlBlendEquationi(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationi(%" PRIu32 ", %u)", buf, mode);
if (mFunctionStubs.glBlendEquationi != nullptr) {
mFunctionStubs.glBlendEquationi(buf, mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationi");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationi");
return false;
}
}
bool Gles::callGlBlendFunc(Stack* stack, bool pushReturn) {
auto dst_factor = stack->pop<GLenum>();
auto src_factor = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendFunc(%u, %u)", src_factor, dst_factor);
if (mFunctionStubs.glBlendFunc != nullptr) {
mFunctionStubs.glBlendFunc(src_factor, dst_factor);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFunc");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFunc");
return false;
}
}
bool Gles::callGlBlendFuncSeparate(Stack* stack, bool pushReturn) {
auto dst_factor_alpha = stack->pop<GLenum>();
auto src_factor_alpha = stack->pop<GLenum>();
auto dst_factor_rgb = stack->pop<GLenum>();
auto src_factor_rgb = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendFuncSeparate(%u, %u, %u, %u)", src_factor_rgb, dst_factor_rgb, src_factor_alpha, dst_factor_alpha);
if (mFunctionStubs.glBlendFuncSeparate != nullptr) {
mFunctionStubs.glBlendFuncSeparate(src_factor_rgb, dst_factor_rgb, src_factor_alpha, dst_factor_alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFuncSeparate");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFuncSeparate");
return false;
}
}
bool Gles::callGlBlendFuncSeparatei(Stack* stack, bool pushReturn) {
auto dstAlpha = stack->pop<GLenum>();
auto srcAlpha = stack->pop<GLenum>();
auto dstRGB = stack->pop<GLenum>();
auto srcRGB = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendFuncSeparatei(%" PRIu32 ", %u, %u, %u, %u)", buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
if (mFunctionStubs.glBlendFuncSeparatei != nullptr) {
mFunctionStubs.glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFuncSeparatei");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFuncSeparatei");
return false;
}
}
bool Gles::callGlBlendFunci(Stack* stack, bool pushReturn) {
auto dst = stack->pop<GLenum>();
auto src = stack->pop<GLenum>();
auto buf = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlendFunci(%" PRIu32 ", %u, %u)", buf, src, dst);
if (mFunctionStubs.glBlendFunci != nullptr) {
mFunctionStubs.glBlendFunci(buf, src, dst);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFunci");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFunci");
return false;
}
}
bool Gles::callGlDepthFunc(Stack* stack, bool pushReturn) {
auto function = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDepthFunc(%u)", function);
if (mFunctionStubs.glDepthFunc != nullptr) {
mFunctionStubs.glDepthFunc(function);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthFunc");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthFunc");
return false;
}
}
bool Gles::callGlSampleCoverage(Stack* stack, bool pushReturn) {
auto invert = stack->pop<uint8_t>();
auto value = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glSampleCoverage(%f, %" PRIu8 ")", value, invert);
if (mFunctionStubs.glSampleCoverage != nullptr) {
mFunctionStubs.glSampleCoverage(value, invert);
} else {
GAPID_WARNING("Attempted to call unsupported function glSampleCoverage");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSampleCoverage");
return false;
}
}
bool Gles::callGlSampleMaski(Stack* stack, bool pushReturn) {
auto mask = stack->pop<GLbitfield>();
auto maskNumber = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSampleMaski(%" PRIu32 ", %u)", maskNumber, mask);
if (mFunctionStubs.glSampleMaski != nullptr) {
mFunctionStubs.glSampleMaski(maskNumber, mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glSampleMaski");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSampleMaski");
return false;
}
}
bool Gles::callGlScissor(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glScissor(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", x, y, width, height);
if (mFunctionStubs.glScissor != nullptr) {
mFunctionStubs.glScissor(x, y, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glScissor");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScissor");
return false;
}
}
bool Gles::callGlStencilFunc(Stack* stack, bool pushReturn) {
auto mask = stack->pop<uint32_t>();
auto ref = stack->pop<int32_t>();
auto func = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glStencilFunc(%u, %" PRId32 ", %" PRIu32 ")", func, ref, mask);
if (mFunctionStubs.glStencilFunc != nullptr) {
mFunctionStubs.glStencilFunc(func, ref, mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilFunc");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilFunc");
return false;
}
}
bool Gles::callGlStencilFuncSeparate(Stack* stack, bool pushReturn) {
auto mask = stack->pop<uint32_t>();
auto reference_value = stack->pop<int32_t>();
auto function = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glStencilFuncSeparate(%u, %u, %" PRId32 ", %" PRIu32 ")", face, function, reference_value, mask);
if (mFunctionStubs.glStencilFuncSeparate != nullptr) {
mFunctionStubs.glStencilFuncSeparate(face, function, reference_value, mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilFuncSeparate");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilFuncSeparate");
return false;
}
}
bool Gles::callGlStencilOp(Stack* stack, bool pushReturn) {
auto zpass = stack->pop<GLenum>();
auto zfail = stack->pop<GLenum>();
auto fail = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glStencilOp(%u, %u, %u)", fail, zfail, zpass);
if (mFunctionStubs.glStencilOp != nullptr) {
mFunctionStubs.glStencilOp(fail, zfail, zpass);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilOp");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilOp");
return false;
}
}
bool Gles::callGlStencilOpSeparate(Stack* stack, bool pushReturn) {
auto stencil_pass_depth_pass = stack->pop<GLenum>();
auto stencil_pass_depth_fail = stack->pop<GLenum>();
auto stencil_fail = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glStencilOpSeparate(%u, %u, %u, %u)", face, stencil_fail, stencil_pass_depth_fail, stencil_pass_depth_pass);
if (mFunctionStubs.glStencilOpSeparate != nullptr) {
mFunctionStubs.glStencilOpSeparate(face, stencil_fail, stencil_pass_depth_fail, stencil_pass_depth_pass);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilOpSeparate");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilOpSeparate");
return false;
}
}
bool Gles::callGlBindFramebuffer(Stack* stack, bool pushReturn) {
auto framebuffer = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindFramebuffer(%u, %" PRIu32 ")", target, framebuffer);
if (mFunctionStubs.glBindFramebuffer != nullptr) {
mFunctionStubs.glBindFramebuffer(target, framebuffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindFramebuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindFramebuffer");
return false;
}
}
bool Gles::callGlBindRenderbuffer(Stack* stack, bool pushReturn) {
auto renderbuffer = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindRenderbuffer(%u, %" PRIu32 ")", target, renderbuffer);
if (mFunctionStubs.glBindRenderbuffer != nullptr) {
mFunctionStubs.glBindRenderbuffer(target, renderbuffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindRenderbuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindRenderbuffer");
return false;
}
}
bool Gles::callGlBlitFramebuffer(Stack* stack, bool pushReturn) {
auto filter = stack->pop<GLenum>();
auto mask = stack->pop<GLbitfield>();
auto dstY1 = stack->pop<int32_t>();
auto dstX1 = stack->pop<int32_t>();
auto dstY0 = stack->pop<int32_t>();
auto dstX0 = stack->pop<int32_t>();
auto srcY1 = stack->pop<int32_t>();
auto srcX1 = stack->pop<int32_t>();
auto srcY0 = stack->pop<int32_t>();
auto srcX0 = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glBlitFramebuffer(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u)", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
if (mFunctionStubs.glBlitFramebuffer != nullptr) {
mFunctionStubs.glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlitFramebuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlitFramebuffer");
return false;
}
}
bool Gles::callGlCheckFramebufferStatus(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCheckFramebufferStatus(%u)", target);
if (mFunctionStubs.glCheckFramebufferStatus != nullptr) {
GLenum return_value = mFunctionStubs.glCheckFramebufferStatus(target);
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glCheckFramebufferStatus");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCheckFramebufferStatus");
return false;
}
}
bool Gles::callGlClear(Stack* stack, bool pushReturn) {
auto mask = stack->pop<GLbitfield>();
if (stack->isValid()) {
GAPID_INFO("glClear(%u)", mask);
if (mFunctionStubs.glClear != nullptr) {
mFunctionStubs.glClear(mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glClear");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClear");
return false;
}
}
bool Gles::callGlClearBufferfi(Stack* stack, bool pushReturn) {
auto stencil = stack->pop<int32_t>();
auto depth = stack->pop<float>();
auto drawbuffer = stack->pop<int32_t>();
auto buffer = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClearBufferfi(%u, %" PRId32 ", %f, %" PRId32 ")", buffer, drawbuffer, depth, stencil);
if (mFunctionStubs.glClearBufferfi != nullptr) {
mFunctionStubs.glClearBufferfi(buffer, drawbuffer, depth, stencil);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearBufferfi");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearBufferfi");
return false;
}
}
bool Gles::callGlClearBufferfv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto drawbuffer = stack->pop<int32_t>();
auto buffer = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClearBufferfv(%u, %" PRId32 ", %p)", buffer, drawbuffer, value);
if (mFunctionStubs.glClearBufferfv != nullptr) {
mFunctionStubs.glClearBufferfv(buffer, drawbuffer, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearBufferfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearBufferfv");
return false;
}
}
bool Gles::callGlClearBufferiv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto drawbuffer = stack->pop<int32_t>();
auto buffer = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClearBufferiv(%u, %" PRId32 ", %p)", buffer, drawbuffer, value);
if (mFunctionStubs.glClearBufferiv != nullptr) {
mFunctionStubs.glClearBufferiv(buffer, drawbuffer, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearBufferiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearBufferiv");
return false;
}
}
bool Gles::callGlClearBufferuiv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLuint*>();
auto drawbuffer = stack->pop<int32_t>();
auto buffer = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClearBufferuiv(%u, %" PRId32 ", %p)", buffer, drawbuffer, value);
if (mFunctionStubs.glClearBufferuiv != nullptr) {
mFunctionStubs.glClearBufferuiv(buffer, drawbuffer, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearBufferuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearBufferuiv");
return false;
}
}
bool Gles::callGlClearColor(Stack* stack, bool pushReturn) {
auto a = stack->pop<float>();
auto b = stack->pop<float>();
auto g = stack->pop<float>();
auto r = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glClearColor(%f, %f, %f, %f)", r, g, b, a);
if (mFunctionStubs.glClearColor != nullptr) {
mFunctionStubs.glClearColor(r, g, b, a);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearColor");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearColor");
return false;
}
}
bool Gles::callGlClearDepthf(Stack* stack, bool pushReturn) {
auto depth = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glClearDepthf(%f)", depth);
if (mFunctionStubs.glClearDepthf != nullptr) {
mFunctionStubs.glClearDepthf(depth);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearDepthf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearDepthf");
return false;
}
}
bool Gles::callGlClearStencil(Stack* stack, bool pushReturn) {
auto stencil = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glClearStencil(%" PRId32 ")", stencil);
if (mFunctionStubs.glClearStencil != nullptr) {
mFunctionStubs.glClearStencil(stencil);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearStencil");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearStencil");
return false;
}
}
bool Gles::callGlColorMask(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<uint8_t>();
auto blue = stack->pop<uint8_t>();
auto green = stack->pop<uint8_t>();
auto red = stack->pop<uint8_t>();
if (stack->isValid()) {
GAPID_INFO("glColorMask(%" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ")", red, green, blue, alpha);
if (mFunctionStubs.glColorMask != nullptr) {
mFunctionStubs.glColorMask(red, green, blue, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glColorMask");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColorMask");
return false;
}
}
bool Gles::callGlColorMaski(Stack* stack, bool pushReturn) {
auto a = stack->pop<uint8_t>();
auto b = stack->pop<uint8_t>();
auto g = stack->pop<uint8_t>();
auto r = stack->pop<uint8_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glColorMaski(%" PRIu32 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ")", index, r, g, b, a);
if (mFunctionStubs.glColorMaski != nullptr) {
mFunctionStubs.glColorMaski(index, r, g, b, a);
} else {
GAPID_WARNING("Attempted to call unsupported function glColorMaski");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColorMaski");
return false;
}
}
bool Gles::callGlDeleteFramebuffers(Stack* stack, bool pushReturn) {
auto framebuffers = stack->pop<FramebufferId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteFramebuffers(%" PRId32 ", %p)", count, framebuffers);
if (mFunctionStubs.glDeleteFramebuffers != nullptr) {
mFunctionStubs.glDeleteFramebuffers(count, framebuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteFramebuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteFramebuffers");
return false;
}
}
bool Gles::callGlDeleteRenderbuffers(Stack* stack, bool pushReturn) {
auto renderbuffers = stack->pop<RenderbufferId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteRenderbuffers(%" PRId32 ", %p)", count, renderbuffers);
if (mFunctionStubs.glDeleteRenderbuffers != nullptr) {
mFunctionStubs.glDeleteRenderbuffers(count, renderbuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteRenderbuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteRenderbuffers");
return false;
}
}
bool Gles::callGlDepthMask(Stack* stack, bool pushReturn) {
auto enabled = stack->pop<uint8_t>();
if (stack->isValid()) {
GAPID_INFO("glDepthMask(%" PRIu8 ")", enabled);
if (mFunctionStubs.glDepthMask != nullptr) {
mFunctionStubs.glDepthMask(enabled);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthMask");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthMask");
return false;
}
}
bool Gles::callGlDrawBuffers(Stack* stack, bool pushReturn) {
auto bufs = stack->pop<GLenum*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDrawBuffers(%" PRId32 ", %p)", n, bufs);
if (mFunctionStubs.glDrawBuffers != nullptr) {
mFunctionStubs.glDrawBuffers(n, bufs);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawBuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawBuffers");
return false;
}
}
bool Gles::callGlFramebufferParameteri(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferParameteri(%u, %u, %" PRId32 ")", target, pname, param);
if (mFunctionStubs.glFramebufferParameteri != nullptr) {
mFunctionStubs.glFramebufferParameteri(target, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferParameteri");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferParameteri");
return false;
}
}
bool Gles::callGlFramebufferRenderbuffer(Stack* stack, bool pushReturn) {
auto renderbuffer = stack->pop<uint32_t>();
auto renderbuffer_target = stack->pop<GLenum>();
auto framebuffer_attachment = stack->pop<GLenum>();
auto framebuffer_target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferRenderbuffer(%u, %u, %u, %" PRIu32 ")", framebuffer_target, framebuffer_attachment, renderbuffer_target, renderbuffer);
if (mFunctionStubs.glFramebufferRenderbuffer != nullptr) {
mFunctionStubs.glFramebufferRenderbuffer(framebuffer_target, framebuffer_attachment, renderbuffer_target, renderbuffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferRenderbuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferRenderbuffer");
return false;
}
}
bool Gles::callGlFramebufferTexture(Stack* stack, bool pushReturn) {
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTexture(%u, %u, %" PRIu32 ", %" PRId32 ")", target, attachment, texture, level);
if (mFunctionStubs.glFramebufferTexture != nullptr) {
mFunctionStubs.glFramebufferTexture(target, attachment, texture, level);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTexture");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTexture");
return false;
}
}
bool Gles::callGlFramebufferTexture2D(Stack* stack, bool pushReturn) {
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto texture_target = stack->pop<GLenum>();
auto framebuffer_attachment = stack->pop<GLenum>();
auto framebuffer_target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTexture2D(%u, %u, %u, %" PRIu32 ", %" PRId32 ")", framebuffer_target, framebuffer_attachment, texture_target, texture, level);
if (mFunctionStubs.glFramebufferTexture2D != nullptr) {
mFunctionStubs.glFramebufferTexture2D(framebuffer_target, framebuffer_attachment, texture_target, texture, level);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTexture2D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTexture2D");
return false;
}
}
bool Gles::callGlFramebufferTextureLayer(Stack* stack, bool pushReturn) {
auto layer = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTextureLayer(%u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ")", target, attachment, texture, level, layer);
if (mFunctionStubs.glFramebufferTextureLayer != nullptr) {
mFunctionStubs.glFramebufferTextureLayer(target, attachment, texture, level, layer);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTextureLayer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTextureLayer");
return false;
}
}
bool Gles::callGlGenFramebuffers(Stack* stack, bool pushReturn) {
auto framebuffers = stack->pop<FramebufferId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenFramebuffers(%" PRId32 ", %p)", count, framebuffers);
if (mFunctionStubs.glGenFramebuffers != nullptr) {
mFunctionStubs.glGenFramebuffers(count, framebuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenFramebuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenFramebuffers");
return false;
}
}
bool Gles::callGlGenRenderbuffers(Stack* stack, bool pushReturn) {
auto renderbuffers = stack->pop<RenderbufferId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenRenderbuffers(%" PRId32 ", %p)", count, renderbuffers);
if (mFunctionStubs.glGenRenderbuffers != nullptr) {
mFunctionStubs.glGenRenderbuffers(count, renderbuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenRenderbuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenRenderbuffers");
return false;
}
}
bool Gles::callGlGetFramebufferAttachmentParameteriv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto attachment = stack->pop<GLenum>();
auto framebuffer_target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFramebufferAttachmentParameteriv(%u, %u, %u, %p)", framebuffer_target, attachment, parameter, value);
if (mFunctionStubs.glGetFramebufferAttachmentParameteriv != nullptr) {
mFunctionStubs.glGetFramebufferAttachmentParameteriv(framebuffer_target, attachment, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFramebufferAttachmentParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFramebufferAttachmentParameteriv");
return false;
}
}
bool Gles::callGlGetFramebufferParameteriv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFramebufferParameteriv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetFramebufferParameteriv != nullptr) {
mFunctionStubs.glGetFramebufferParameteriv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFramebufferParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFramebufferParameteriv");
return false;
}
}
bool Gles::callGlGetRenderbufferParameteriv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetRenderbufferParameteriv(%u, %u, %p)", target, parameter, values);
if (mFunctionStubs.glGetRenderbufferParameteriv != nullptr) {
mFunctionStubs.glGetRenderbufferParameteriv(target, parameter, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetRenderbufferParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetRenderbufferParameteriv");
return false;
}
}
bool Gles::callGlInvalidateFramebuffer(Stack* stack, bool pushReturn) {
auto attachments = stack->pop<GLenum*>();
auto count = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glInvalidateFramebuffer(%u, %" PRId32 ", %p)", target, count, attachments);
if (mFunctionStubs.glInvalidateFramebuffer != nullptr) {
mFunctionStubs.glInvalidateFramebuffer(target, count, attachments);
} else {
GAPID_WARNING("Attempted to call unsupported function glInvalidateFramebuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glInvalidateFramebuffer");
return false;
}
}
bool Gles::callGlInvalidateSubFramebuffer(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
auto attachments = stack->pop<GLenum*>();
auto numAttachments = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glInvalidateSubFramebuffer(%u, %" PRId32 ", %p, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, numAttachments, attachments, x, y, width, height);
if (mFunctionStubs.glInvalidateSubFramebuffer != nullptr) {
mFunctionStubs.glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glInvalidateSubFramebuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glInvalidateSubFramebuffer");
return false;
}
}
bool Gles::callGlIsFramebuffer(Stack* stack, bool pushReturn) {
auto framebuffer = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsFramebuffer(%" PRIu32 ")", framebuffer);
if (mFunctionStubs.glIsFramebuffer != nullptr) {
GLboolean return_value = mFunctionStubs.glIsFramebuffer(framebuffer);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsFramebuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsFramebuffer");
return false;
}
}
bool Gles::callGlIsRenderbuffer(Stack* stack, bool pushReturn) {
auto renderbuffer = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsRenderbuffer(%" PRIu32 ")", renderbuffer);
if (mFunctionStubs.glIsRenderbuffer != nullptr) {
GLboolean return_value = mFunctionStubs.glIsRenderbuffer(renderbuffer);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsRenderbuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsRenderbuffer");
return false;
}
}
bool Gles::callGlReadBuffer(Stack* stack, bool pushReturn) {
auto src = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glReadBuffer(%u)", src);
if (mFunctionStubs.glReadBuffer != nullptr) {
mFunctionStubs.glReadBuffer(src);
} else {
GAPID_WARNING("Attempted to call unsupported function glReadBuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glReadBuffer");
return false;
}
}
bool Gles::callGlReadPixels(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glReadPixels(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", x, y, width, height, format, type, data);
if (mFunctionStubs.glReadPixels != nullptr) {
mFunctionStubs.glReadPixels(x, y, width, height, format, type, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glReadPixels");
}
return true;
} else {
GAPID_WARNING("Error during calling function glReadPixels");
return false;
}
}
bool Gles::callGlReadnPixels(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto bufSize = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glReadnPixels(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %" PRId32 ", %p)", x, y, width, height, format, type, bufSize, data);
if (mFunctionStubs.glReadnPixels != nullptr) {
mFunctionStubs.glReadnPixels(x, y, width, height, format, type, bufSize, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glReadnPixels");
}
return true;
} else {
GAPID_WARNING("Error during calling function glReadnPixels");
return false;
}
}
bool Gles::callGlRenderbufferStorage(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorage(%u, %u, %" PRId32 ", %" PRId32 ")", target, internalformat, width, height);
if (mFunctionStubs.glRenderbufferStorage != nullptr) {
mFunctionStubs.glRenderbufferStorage(target, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorage");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRenderbufferStorage");
return false;
}
}
bool Gles::callGlRenderbufferStorageMultisample(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorageMultisample(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", target, samples, internalformat, width, height);
if (mFunctionStubs.glRenderbufferStorageMultisample != nullptr) {
mFunctionStubs.glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorageMultisample");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRenderbufferStorageMultisample");
return false;
}
}
bool Gles::callGlStencilMask(Stack* stack, bool pushReturn) {
auto mask = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glStencilMask(%" PRIu32 ")", mask);
if (mFunctionStubs.glStencilMask != nullptr) {
mFunctionStubs.glStencilMask(mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilMask");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilMask");
return false;
}
}
bool Gles::callGlStencilMaskSeparate(Stack* stack, bool pushReturn) {
auto mask = stack->pop<uint32_t>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glStencilMaskSeparate(%u, %" PRIu32 ")", face, mask);
if (mFunctionStubs.glStencilMaskSeparate != nullptr) {
mFunctionStubs.glStencilMaskSeparate(face, mask);
} else {
GAPID_WARNING("Attempted to call unsupported function glStencilMaskSeparate");
}
return true;
} else {
GAPID_WARNING("Error during calling function glStencilMaskSeparate");
return false;
}
}
bool Gles::callGlDisable(Stack* stack, bool pushReturn) {
auto capability = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDisable(%u)", capability);
if (mFunctionStubs.glDisable != nullptr) {
mFunctionStubs.glDisable(capability);
} else {
GAPID_WARNING("Attempted to call unsupported function glDisable");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDisable");
return false;
}
}
bool Gles::callGlDisablei(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto capability = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDisablei(%u, %" PRIu32 ")", capability, index);
if (mFunctionStubs.glDisablei != nullptr) {
mFunctionStubs.glDisablei(capability, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glDisablei");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDisablei");
return false;
}
}
bool Gles::callGlEnable(Stack* stack, bool pushReturn) {
auto capability = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEnable(%u)", capability);
if (mFunctionStubs.glEnable != nullptr) {
mFunctionStubs.glEnable(capability);
} else {
GAPID_WARNING("Attempted to call unsupported function glEnable");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEnable");
return false;
}
}
bool Gles::callGlEnablei(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto capability = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEnablei(%u, %" PRIu32 ")", capability, index);
if (mFunctionStubs.glEnablei != nullptr) {
mFunctionStubs.glEnablei(capability, index);
} else {
GAPID_WARNING("Attempted to call unsupported function glEnablei");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEnablei");
return false;
}
}
bool Gles::callGlFinish(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glFinish()");
if (mFunctionStubs.glFinish != nullptr) {
mFunctionStubs.glFinish();
} else {
GAPID_WARNING("Attempted to call unsupported function glFinish");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFinish");
return false;
}
}
bool Gles::callGlFlush(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glFlush()");
if (mFunctionStubs.glFlush != nullptr) {
mFunctionStubs.glFlush();
} else {
GAPID_WARNING("Attempted to call unsupported function glFlush");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFlush");
return false;
}
}
bool Gles::callGlGetError(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glGetError()");
if (mFunctionStubs.glGetError != nullptr) {
GLenum return_value = mFunctionStubs.glGetError();
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetError");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetError");
return false;
}
}
bool Gles::callGlGetGraphicsResetStatus(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glGetGraphicsResetStatus()");
if (mFunctionStubs.glGetGraphicsResetStatus != nullptr) {
GLenum return_value = mFunctionStubs.glGetGraphicsResetStatus();
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetGraphicsResetStatus");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetGraphicsResetStatus");
return false;
}
}
bool Gles::callGlHint(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glHint(%u, %u)", target, mode);
if (mFunctionStubs.glHint != nullptr) {
mFunctionStubs.glHint(target, mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glHint");
}
return true;
} else {
GAPID_WARNING("Error during calling function glHint");
return false;
}
}
bool Gles::callGlActiveShaderProgram(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glActiveShaderProgram(%" PRIu32 ", %" PRIu32 ")", pipeline, program);
if (mFunctionStubs.glActiveShaderProgram != nullptr) {
mFunctionStubs.glActiveShaderProgram(pipeline, program);
} else {
GAPID_WARNING("Attempted to call unsupported function glActiveShaderProgram");
}
return true;
} else {
GAPID_WARNING("Error during calling function glActiveShaderProgram");
return false;
}
}
bool Gles::callGlAttachShader(Stack* stack, bool pushReturn) {
auto shader = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glAttachShader(%" PRIu32 ", %" PRIu32 ")", program, shader);
if (mFunctionStubs.glAttachShader != nullptr) {
mFunctionStubs.glAttachShader(program, shader);
} else {
GAPID_WARNING("Attempted to call unsupported function glAttachShader");
}
return true;
} else {
GAPID_WARNING("Error during calling function glAttachShader");
return false;
}
}
bool Gles::callGlBindAttribLocation(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto location = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindAttribLocation(%" PRIu32 ", %" PRIu32 ", %s)", program, location, name);
if (mFunctionStubs.glBindAttribLocation != nullptr) {
mFunctionStubs.glBindAttribLocation(program, location, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindAttribLocation");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindAttribLocation");
return false;
}
}
bool Gles::callGlBindProgramPipeline(Stack* stack, bool pushReturn) {
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindProgramPipeline(%" PRIu32 ")", pipeline);
if (mFunctionStubs.glBindProgramPipeline != nullptr) {
mFunctionStubs.glBindProgramPipeline(pipeline);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindProgramPipeline");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindProgramPipeline");
return false;
}
}
bool Gles::callGlCompileShader(Stack* stack, bool pushReturn) {
auto shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCompileShader(%" PRIu32 ")", shader);
if (mFunctionStubs.glCompileShader != nullptr) {
mFunctionStubs.glCompileShader(shader);
} else {
GAPID_WARNING("Attempted to call unsupported function glCompileShader");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCompileShader");
return false;
}
}
bool Gles::callGlCreateProgram(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glCreateProgram()");
if (mFunctionStubs.glCreateProgram != nullptr) {
ProgramId return_value = mFunctionStubs.glCreateProgram();
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<ProgramId>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glCreateProgram");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCreateProgram");
return false;
}
}
bool Gles::callGlCreateShader(Stack* stack, bool pushReturn) {
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCreateShader(%u)", type);
if (mFunctionStubs.glCreateShader != nullptr) {
ShaderId return_value = mFunctionStubs.glCreateShader(type);
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<ShaderId>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glCreateShader");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCreateShader");
return false;
}
}
bool Gles::callGlCreateShaderProgramv(Stack* stack, bool pushReturn) {
auto strings = stack->pop<GLchar**>();
auto count = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCreateShaderProgramv(%u, %" PRId32 ", %p)", type, count, strings);
if (mFunctionStubs.glCreateShaderProgramv != nullptr) {
ProgramId return_value = mFunctionStubs.glCreateShaderProgramv(type, count, strings);
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<ProgramId>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glCreateShaderProgramv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCreateShaderProgramv");
return false;
}
}
bool Gles::callGlDeleteProgram(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteProgram(%" PRIu32 ")", program);
if (mFunctionStubs.glDeleteProgram != nullptr) {
mFunctionStubs.glDeleteProgram(program);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteProgram");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteProgram");
return false;
}
}
bool Gles::callGlDeleteProgramPipelines(Stack* stack, bool pushReturn) {
auto pipelines = stack->pop<PipelineId*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteProgramPipelines(%" PRId32 ", %p)", n, pipelines);
if (mFunctionStubs.glDeleteProgramPipelines != nullptr) {
mFunctionStubs.glDeleteProgramPipelines(n, pipelines);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteProgramPipelines");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteProgramPipelines");
return false;
}
}
bool Gles::callGlDeleteShader(Stack* stack, bool pushReturn) {
auto shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteShader(%" PRIu32 ")", shader);
if (mFunctionStubs.glDeleteShader != nullptr) {
mFunctionStubs.glDeleteShader(shader);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteShader");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteShader");
return false;
}
}
bool Gles::callGlDetachShader(Stack* stack, bool pushReturn) {
auto shader = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDetachShader(%" PRIu32 ", %" PRIu32 ")", program, shader);
if (mFunctionStubs.glDetachShader != nullptr) {
mFunctionStubs.glDetachShader(program, shader);
} else {
GAPID_WARNING("Attempted to call unsupported function glDetachShader");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDetachShader");
return false;
}
}
bool Gles::callGlDispatchCompute(Stack* stack, bool pushReturn) {
auto num_groups_z = stack->pop<uint32_t>();
auto num_groups_y = stack->pop<uint32_t>();
auto num_groups_x = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDispatchCompute(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", num_groups_x, num_groups_y, num_groups_z);
if (mFunctionStubs.glDispatchCompute != nullptr) {
mFunctionStubs.glDispatchCompute(num_groups_x, num_groups_y, num_groups_z);
} else {
GAPID_WARNING("Attempted to call unsupported function glDispatchCompute");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDispatchCompute");
return false;
}
}
bool Gles::callGlDispatchComputeIndirect(Stack* stack, bool pushReturn) {
auto indirect = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDispatchComputeIndirect(%" PRId32 ")", indirect);
if (mFunctionStubs.glDispatchComputeIndirect != nullptr) {
mFunctionStubs.glDispatchComputeIndirect(indirect);
} else {
GAPID_WARNING("Attempted to call unsupported function glDispatchComputeIndirect");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDispatchComputeIndirect");
return false;
}
}
bool Gles::callGlGenProgramPipelines(Stack* stack, bool pushReturn) {
auto pipelines = stack->pop<PipelineId*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenProgramPipelines(%" PRId32 ", %p)", n, pipelines);
if (mFunctionStubs.glGenProgramPipelines != nullptr) {
mFunctionStubs.glGenProgramPipelines(n, pipelines);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenProgramPipelines");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenProgramPipelines");
return false;
}
}
bool Gles::callGlGetActiveAttrib(Stack* stack, bool pushReturn) {
auto name = stack->pop<GLchar*>();
auto type = stack->pop<GLenum*>();
auto vector_count = stack->pop<GLint*>();
auto buffer_bytes_written = stack->pop<GLsizei*>();
auto buffer_size = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetActiveAttrib(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %p, %p, %p, %p)", program, index, buffer_size, buffer_bytes_written, vector_count, type, name);
if (mFunctionStubs.glGetActiveAttrib != nullptr) {
mFunctionStubs.glGetActiveAttrib(program, index, buffer_size, buffer_bytes_written, vector_count, type, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetActiveAttrib");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetActiveAttrib");
return false;
}
}
bool Gles::callGlGetActiveUniform(Stack* stack, bool pushReturn) {
auto name = stack->pop<GLchar*>();
auto type = stack->pop<GLenum*>();
auto vector_count = stack->pop<GLint*>();
auto buffer_bytes_written = stack->pop<GLsizei*>();
auto buffer_size = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetActiveUniform(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %p, %p, %p, %p)", program, index, buffer_size, buffer_bytes_written, vector_count, type, name);
if (mFunctionStubs.glGetActiveUniform != nullptr) {
mFunctionStubs.glGetActiveUniform(program, index, buffer_size, buffer_bytes_written, vector_count, type, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetActiveUniform");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetActiveUniform");
return false;
}
}
bool Gles::callGlGetActiveUniformBlockName(Stack* stack, bool pushReturn) {
auto name = stack->pop<GLchar*>();
auto buffer_bytes_written = stack->pop<GLsizei*>();
auto buffer_size = stack->pop<int32_t>();
auto uniform_block_index = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetActiveUniformBlockName(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %p, %p)", program, uniform_block_index, buffer_size, buffer_bytes_written, name);
if (mFunctionStubs.glGetActiveUniformBlockName != nullptr) {
mFunctionStubs.glGetActiveUniformBlockName(program, uniform_block_index, buffer_size, buffer_bytes_written, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetActiveUniformBlockName");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetActiveUniformBlockName");
return false;
}
}
bool Gles::callGlGetActiveUniformBlockiv(Stack* stack, bool pushReturn) {
auto parameters = stack->pop<GLint*>();
auto parameter_name = stack->pop<GLenum>();
auto uniform_block_index = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetActiveUniformBlockiv(%" PRIu32 ", %" PRIu32 ", %u, %p)", program, uniform_block_index, parameter_name, parameters);
if (mFunctionStubs.glGetActiveUniformBlockiv != nullptr) {
mFunctionStubs.glGetActiveUniformBlockiv(program, uniform_block_index, parameter_name, parameters);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetActiveUniformBlockiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetActiveUniformBlockiv");
return false;
}
}
bool Gles::callGlGetActiveUniformsiv(Stack* stack, bool pushReturn) {
auto parameters = stack->pop<GLint*>();
auto parameter_name = stack->pop<GLenum>();
auto uniform_indices = stack->pop<UniformIndex*>();
auto uniform_count = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetActiveUniformsiv(%" PRIu32 ", %" PRId32 ", %p, %u, %p)", program, uniform_count, uniform_indices, parameter_name, parameters);
if (mFunctionStubs.glGetActiveUniformsiv != nullptr) {
mFunctionStubs.glGetActiveUniformsiv(program, uniform_count, uniform_indices, parameter_name, parameters);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetActiveUniformsiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetActiveUniformsiv");
return false;
}
}
bool Gles::callGlGetAttachedShaders(Stack* stack, bool pushReturn) {
auto shaders = stack->pop<ShaderId*>();
auto shaders_length_written = stack->pop<GLsizei*>();
auto buffer_length = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetAttachedShaders(%" PRIu32 ", %" PRId32 ", %p, %p)", program, buffer_length, shaders_length_written, shaders);
if (mFunctionStubs.glGetAttachedShaders != nullptr) {
mFunctionStubs.glGetAttachedShaders(program, buffer_length, shaders_length_written, shaders);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetAttachedShaders");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetAttachedShaders");
return false;
}
}
bool Gles::callGlGetAttribLocation(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetAttribLocation(%" PRIu32 ", %s)", program, name);
if (mFunctionStubs.glGetAttribLocation != nullptr) {
GLint return_value = mFunctionStubs.glGetAttribLocation(program, name);
GAPID_INFO("Returned: %" PRId32 "", return_value);
if (pushReturn) {
stack->push<GLint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetAttribLocation");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetAttribLocation");
return false;
}
}
bool Gles::callGlGetFragDataLocation(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetFragDataLocation(%" PRIu32 ", %s)", program, name);
if (mFunctionStubs.glGetFragDataLocation != nullptr) {
GLint return_value = mFunctionStubs.glGetFragDataLocation(program, name);
GAPID_INFO("Returned: %" PRId32 "", return_value);
if (pushReturn) {
stack->push<GLint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFragDataLocation");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFragDataLocation");
return false;
}
}
bool Gles::callGlGetProgramBinary(Stack* stack, bool pushReturn) {
auto binary = stack->pop<void*>();
auto binaryFormat = stack->pop<GLenum*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramBinary(%" PRIu32 ", %" PRId32 ", %p, %p, %p)", program, bufSize, length, binaryFormat, binary);
if (mFunctionStubs.glGetProgramBinary != nullptr) {
mFunctionStubs.glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramBinary");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramBinary");
return false;
}
}
bool Gles::callGlGetProgramInfoLog(Stack* stack, bool pushReturn) {
auto info = stack->pop<GLchar*>();
auto string_length_written = stack->pop<GLsizei*>();
auto buffer_length = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramInfoLog(%" PRIu32 ", %" PRId32 ", %p, %p)", program, buffer_length, string_length_written, info);
if (mFunctionStubs.glGetProgramInfoLog != nullptr) {
mFunctionStubs.glGetProgramInfoLog(program, buffer_length, string_length_written, info);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramInfoLog");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramInfoLog");
return false;
}
}
bool Gles::callGlGetProgramInterfaceiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto programInterface = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramInterfaceiv(%" PRIu32 ", %u, %u, %p)", program, programInterface, pname, params);
if (mFunctionStubs.glGetProgramInterfaceiv != nullptr) {
mFunctionStubs.glGetProgramInterfaceiv(program, programInterface, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramInterfaceiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramInterfaceiv");
return false;
}
}
bool Gles::callGlGetProgramPipelineInfoLog(Stack* stack, bool pushReturn) {
auto infoLog = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramPipelineInfoLog(%" PRIu32 ", %" PRId32 ", %p, %p)", pipeline, bufSize, length, infoLog);
if (mFunctionStubs.glGetProgramPipelineInfoLog != nullptr) {
mFunctionStubs.glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramPipelineInfoLog");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramPipelineInfoLog");
return false;
}
}
bool Gles::callGlGetProgramPipelineiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramPipelineiv(%" PRIu32 ", %u, %p)", pipeline, pname, params);
if (mFunctionStubs.glGetProgramPipelineiv != nullptr) {
mFunctionStubs.glGetProgramPipelineiv(pipeline, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramPipelineiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramPipelineiv");
return false;
}
}
bool Gles::callGlGetProgramResourceIndex(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto programInterface = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramResourceIndex(%" PRIu32 ", %u, %s)", program, programInterface, name);
if (mFunctionStubs.glGetProgramResourceIndex != nullptr) {
GLuint return_value = mFunctionStubs.glGetProgramResourceIndex(program, programInterface, name);
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<GLuint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramResourceIndex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramResourceIndex");
return false;
}
}
bool Gles::callGlGetProgramResourceLocation(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto programInterface = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramResourceLocation(%" PRIu32 ", %u, %s)", program, programInterface, name);
if (mFunctionStubs.glGetProgramResourceLocation != nullptr) {
GLint return_value = mFunctionStubs.glGetProgramResourceLocation(program, programInterface, name);
GAPID_INFO("Returned: %" PRId32 "", return_value);
if (pushReturn) {
stack->push<GLint>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramResourceLocation");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramResourceLocation");
return false;
}
}
bool Gles::callGlGetProgramResourceName(Stack* stack, bool pushReturn) {
auto name = stack->pop<GLchar*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
auto programInterface = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramResourceName(%" PRIu32 ", %u, %" PRIu32 ", %" PRId32 ", %p, %p)", program, programInterface, index, bufSize, length, name);
if (mFunctionStubs.glGetProgramResourceName != nullptr) {
mFunctionStubs.glGetProgramResourceName(program, programInterface, index, bufSize, length, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramResourceName");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramResourceName");
return false;
}
}
bool Gles::callGlGetProgramResourceiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto props = stack->pop<GLenum*>();
auto propCount = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
auto programInterface = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramResourceiv(%" PRIu32 ", %u, %" PRIu32 ", %" PRId32 ", %p, %" PRId32 ", %p, %p)", program, programInterface, index, propCount, props, bufSize, length, params);
if (mFunctionStubs.glGetProgramResourceiv != nullptr) {
mFunctionStubs.glGetProgramResourceiv(program, programInterface, index, propCount, props, bufSize, length, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramResourceiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramResourceiv");
return false;
}
}
bool Gles::callGlGetProgramiv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetProgramiv(%" PRIu32 ", %u, %p)", program, parameter, value);
if (mFunctionStubs.glGetProgramiv != nullptr) {
mFunctionStubs.glGetProgramiv(program, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetProgramiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetProgramiv");
return false;
}
}
bool Gles::callGlGetShaderInfoLog(Stack* stack, bool pushReturn) {
auto info = stack->pop<GLchar*>();
auto string_length_written = stack->pop<GLsizei*>();
auto buffer_length = stack->pop<int32_t>();
auto shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetShaderInfoLog(%" PRIu32 ", %" PRId32 ", %p, %p)", shader, buffer_length, string_length_written, info);
if (mFunctionStubs.glGetShaderInfoLog != nullptr) {
mFunctionStubs.glGetShaderInfoLog(shader, buffer_length, string_length_written, info);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetShaderInfoLog");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetShaderInfoLog");
return false;
}
}
bool Gles::callGlGetShaderPrecisionFormat(Stack* stack, bool pushReturn) {
auto precision = stack->pop<GLint*>();
auto range = stack->pop<GLint*>();
auto precision_type = stack->pop<GLenum>();
auto shader_type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetShaderPrecisionFormat(%u, %u, %p, %p)", shader_type, precision_type, range, precision);
if (mFunctionStubs.glGetShaderPrecisionFormat != nullptr) {
mFunctionStubs.glGetShaderPrecisionFormat(shader_type, precision_type, range, precision);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetShaderPrecisionFormat");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetShaderPrecisionFormat");
return false;
}
}
bool Gles::callGlGetShaderSource(Stack* stack, bool pushReturn) {
auto source = stack->pop<GLchar*>();
auto string_length_written = stack->pop<GLsizei*>();
auto buffer_length = stack->pop<int32_t>();
auto shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetShaderSource(%" PRIu32 ", %" PRId32 ", %p, %p)", shader, buffer_length, string_length_written, source);
if (mFunctionStubs.glGetShaderSource != nullptr) {
mFunctionStubs.glGetShaderSource(shader, buffer_length, string_length_written, source);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetShaderSource");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetShaderSource");
return false;
}
}
bool Gles::callGlGetShaderiv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetShaderiv(%" PRIu32 ", %u, %p)", shader, parameter, value);
if (mFunctionStubs.glGetShaderiv != nullptr) {
mFunctionStubs.glGetShaderiv(shader, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetShaderiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetShaderiv");
return false;
}
}
bool Gles::callGlGetUniformBlockIndex(Stack* stack, bool pushReturn) {
auto uniformBlockName = stack->pop<const char*>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetUniformBlockIndex(%" PRIu32 ", %s)", program, uniformBlockName);
if (mFunctionStubs.glGetUniformBlockIndex != nullptr) {
UniformBlockId return_value = mFunctionStubs.glGetUniformBlockIndex(program, uniformBlockName);
GAPID_INFO("Returned: %" PRIu32 "", return_value);
if (pushReturn) {
stack->push<UniformBlockId>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetUniformBlockIndex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetUniformBlockIndex");
return false;
}
}
bool Gles::callGlGetUniformIndices(Stack* stack, bool pushReturn) {
auto uniformIndices = stack->pop<UniformIndex*>();
auto uniformNames = stack->pop<GLchar**>();
auto uniformCount = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetUniformIndices(%" PRIu32 ", %" PRId32 ", %p, %p)", program, uniformCount, uniformNames, uniformIndices);
if (mFunctionStubs.glGetUniformIndices != nullptr) {
mFunctionStubs.glGetUniformIndices(program, uniformCount, uniformNames, uniformIndices);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetUniformIndices");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetUniformIndices");
return false;
}
}
bool Gles::callGlGetUniformLocation(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetUniformLocation(%" PRIu32 ", %s)", program, name);
if (mFunctionStubs.glGetUniformLocation != nullptr) {
UniformLocation return_value = mFunctionStubs.glGetUniformLocation(program, name);
GAPID_INFO("Returned: %" PRId32 "", return_value);
if (pushReturn) {
stack->push<UniformLocation>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetUniformLocation");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetUniformLocation");
return false;
}
}
bool Gles::callGlGetUniformfv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetUniformfv(%" PRIu32 ", %" PRId32 ", %p)", program, location, values);
if (mFunctionStubs.glGetUniformfv != nullptr) {
mFunctionStubs.glGetUniformfv(program, location, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetUniformfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetUniformfv");
return false;
}
}
bool Gles::callGlGetUniformiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetUniformiv(%" PRIu32 ", %" PRId32 ", %p)", program, location, values);
if (mFunctionStubs.glGetUniformiv != nullptr) {
mFunctionStubs.glGetUniformiv(program, location, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetUniformiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetUniformiv");
return false;
}
}
bool Gles::callGlGetUniformuiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetUniformuiv(%" PRIu32 ", %" PRId32 ", %p)", program, location, values);
if (mFunctionStubs.glGetUniformuiv != nullptr) {
mFunctionStubs.glGetUniformuiv(program, location, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetUniformuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetUniformuiv");
return false;
}
}
bool Gles::callGlGetnUniformfv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto bufSize = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetnUniformfv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, bufSize, values);
if (mFunctionStubs.glGetnUniformfv != nullptr) {
mFunctionStubs.glGetnUniformfv(program, location, bufSize, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetnUniformfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetnUniformfv");
return false;
}
}
bool Gles::callGlGetnUniformiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto bufSize = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetnUniformiv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, bufSize, values);
if (mFunctionStubs.glGetnUniformiv != nullptr) {
mFunctionStubs.glGetnUniformiv(program, location, bufSize, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetnUniformiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetnUniformiv");
return false;
}
}
bool Gles::callGlGetnUniformuiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto bufSize = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetnUniformuiv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, bufSize, values);
if (mFunctionStubs.glGetnUniformuiv != nullptr) {
mFunctionStubs.glGetnUniformuiv(program, location, bufSize, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetnUniformuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetnUniformuiv");
return false;
}
}
bool Gles::callGlIsProgram(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsProgram(%" PRIu32 ")", program);
if (mFunctionStubs.glIsProgram != nullptr) {
GLboolean return_value = mFunctionStubs.glIsProgram(program);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsProgram");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsProgram");
return false;
}
}
bool Gles::callGlIsProgramPipeline(Stack* stack, bool pushReturn) {
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsProgramPipeline(%" PRIu32 ")", pipeline);
if (mFunctionStubs.glIsProgramPipeline != nullptr) {
GLboolean return_value = mFunctionStubs.glIsProgramPipeline(pipeline);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsProgramPipeline");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsProgramPipeline");
return false;
}
}
bool Gles::callGlIsShader(Stack* stack, bool pushReturn) {
auto shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsShader(%" PRIu32 ")", shader);
if (mFunctionStubs.glIsShader != nullptr) {
GLboolean return_value = mFunctionStubs.glIsShader(shader);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsShader");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsShader");
return false;
}
}
bool Gles::callGlLinkProgram(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glLinkProgram(%" PRIu32 ")", program);
if (mFunctionStubs.glLinkProgram != nullptr) {
mFunctionStubs.glLinkProgram(program);
} else {
GAPID_WARNING("Attempted to call unsupported function glLinkProgram");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLinkProgram");
return false;
}
}
bool Gles::callGlMemoryBarrier(Stack* stack, bool pushReturn) {
auto barriers = stack->pop<GLbitfield>();
if (stack->isValid()) {
GAPID_INFO("glMemoryBarrier(%u)", barriers);
if (mFunctionStubs.glMemoryBarrier != nullptr) {
mFunctionStubs.glMemoryBarrier(barriers);
} else {
GAPID_WARNING("Attempted to call unsupported function glMemoryBarrier");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMemoryBarrier");
return false;
}
}
bool Gles::callGlMemoryBarrierByRegion(Stack* stack, bool pushReturn) {
auto barriers = stack->pop<GLbitfield>();
if (stack->isValid()) {
GAPID_INFO("glMemoryBarrierByRegion(%u)", barriers);
if (mFunctionStubs.glMemoryBarrierByRegion != nullptr) {
mFunctionStubs.glMemoryBarrierByRegion(barriers);
} else {
GAPID_WARNING("Attempted to call unsupported function glMemoryBarrierByRegion");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMemoryBarrierByRegion");
return false;
}
}
bool Gles::callGlProgramBinary(Stack* stack, bool pushReturn) {
auto length = stack->pop<int32_t>();
auto binary = stack->pop<void*>();
auto binaryFormat = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramBinary(%" PRIu32 ", %u, %p, %" PRId32 ")", program, binaryFormat, binary, length);
if (mFunctionStubs.glProgramBinary != nullptr) {
mFunctionStubs.glProgramBinary(program, binaryFormat, binary, length);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramBinary");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramBinary");
return false;
}
}
bool Gles::callGlProgramParameteri(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramParameteri(%" PRIu32 ", %u, %" PRId32 ")", program, pname, value);
if (mFunctionStubs.glProgramParameteri != nullptr) {
mFunctionStubs.glProgramParameteri(program, pname, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramParameteri");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramParameteri");
return false;
}
}
bool Gles::callGlProgramUniform1f(Stack* stack, bool pushReturn) {
auto value0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1f(%" PRIu32 ", %" PRId32 ", %f)", program, location, value0);
if (mFunctionStubs.glProgramUniform1f != nullptr) {
mFunctionStubs.glProgramUniform1f(program, location, value0);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1f");
return false;
}
}
bool Gles::callGlProgramUniform1fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform1fv != nullptr) {
mFunctionStubs.glProgramUniform1fv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1fv");
return false;
}
}
bool Gles::callGlProgramUniform1i(Stack* stack, bool pushReturn) {
auto value0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1i(%" PRIu32 ", %" PRId32 ", %" PRId32 ")", program, location, value0);
if (mFunctionStubs.glProgramUniform1i != nullptr) {
mFunctionStubs.glProgramUniform1i(program, location, value0);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1i");
return false;
}
}
bool Gles::callGlProgramUniform1iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1iv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform1iv != nullptr) {
mFunctionStubs.glProgramUniform1iv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1iv");
return false;
}
}
bool Gles::callGlProgramUniform1ui(Stack* stack, bool pushReturn) {
auto value0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1ui(%" PRIu32 ", %" PRId32 ", %" PRIu32 ")", program, location, value0);
if (mFunctionStubs.glProgramUniform1ui != nullptr) {
mFunctionStubs.glProgramUniform1ui(program, location, value0);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1ui");
return false;
}
}
bool Gles::callGlProgramUniform1uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform1uiv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform1uiv != nullptr) {
mFunctionStubs.glProgramUniform1uiv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform1uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform1uiv");
return false;
}
}
bool Gles::callGlProgramUniform2f(Stack* stack, bool pushReturn) {
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2f(%" PRIu32 ", %" PRId32 ", %f, %f)", program, location, value0, value1);
if (mFunctionStubs.glProgramUniform2f != nullptr) {
mFunctionStubs.glProgramUniform2f(program, location, value0, value1);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2f");
return false;
}
}
bool Gles::callGlProgramUniform2fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform2fv != nullptr) {
mFunctionStubs.glProgramUniform2fv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2fv");
return false;
}
}
bool Gles::callGlProgramUniform2i(Stack* stack, bool pushReturn) {
auto value1 = stack->pop<int32_t>();
auto value0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2i(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", program, location, value0, value1);
if (mFunctionStubs.glProgramUniform2i != nullptr) {
mFunctionStubs.glProgramUniform2i(program, location, value0, value1);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2i");
return false;
}
}
bool Gles::callGlProgramUniform2iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2iv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform2iv != nullptr) {
mFunctionStubs.glProgramUniform2iv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2iv");
return false;
}
}
bool Gles::callGlProgramUniform2ui(Stack* stack, bool pushReturn) {
auto value1 = stack->pop<uint32_t>();
auto value0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2ui(%" PRIu32 ", %" PRId32 ", %" PRIu32 ", %" PRIu32 ")", program, location, value0, value1);
if (mFunctionStubs.glProgramUniform2ui != nullptr) {
mFunctionStubs.glProgramUniform2ui(program, location, value0, value1);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2ui");
return false;
}
}
bool Gles::callGlProgramUniform2uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform2uiv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform2uiv != nullptr) {
mFunctionStubs.glProgramUniform2uiv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform2uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform2uiv");
return false;
}
}
bool Gles::callGlProgramUniform3f(Stack* stack, bool pushReturn) {
auto value2 = stack->pop<float>();
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3f(%" PRIu32 ", %" PRId32 ", %f, %f, %f)", program, location, value0, value1, value2);
if (mFunctionStubs.glProgramUniform3f != nullptr) {
mFunctionStubs.glProgramUniform3f(program, location, value0, value1, value2);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3f");
return false;
}
}
bool Gles::callGlProgramUniform3fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform3fv != nullptr) {
mFunctionStubs.glProgramUniform3fv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3fv");
return false;
}
}
bool Gles::callGlProgramUniform3i(Stack* stack, bool pushReturn) {
auto value2 = stack->pop<int32_t>();
auto value1 = stack->pop<int32_t>();
auto value0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3i(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", program, location, value0, value1, value2);
if (mFunctionStubs.glProgramUniform3i != nullptr) {
mFunctionStubs.glProgramUniform3i(program, location, value0, value1, value2);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3i");
return false;
}
}
bool Gles::callGlProgramUniform3iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3iv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform3iv != nullptr) {
mFunctionStubs.glProgramUniform3iv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3iv");
return false;
}
}
bool Gles::callGlProgramUniform3ui(Stack* stack, bool pushReturn) {
auto value2 = stack->pop<uint32_t>();
auto value1 = stack->pop<uint32_t>();
auto value0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3ui(%" PRIu32 ", %" PRId32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", program, location, value0, value1, value2);
if (mFunctionStubs.glProgramUniform3ui != nullptr) {
mFunctionStubs.glProgramUniform3ui(program, location, value0, value1, value2);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3ui");
return false;
}
}
bool Gles::callGlProgramUniform3uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform3uiv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform3uiv != nullptr) {
mFunctionStubs.glProgramUniform3uiv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform3uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform3uiv");
return false;
}
}
bool Gles::callGlProgramUniform4f(Stack* stack, bool pushReturn) {
auto value3 = stack->pop<float>();
auto value2 = stack->pop<float>();
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4f(%" PRIu32 ", %" PRId32 ", %f, %f, %f, %f)", program, location, value0, value1, value2, value3);
if (mFunctionStubs.glProgramUniform4f != nullptr) {
mFunctionStubs.glProgramUniform4f(program, location, value0, value1, value2, value3);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4f");
return false;
}
}
bool Gles::callGlProgramUniform4fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform4fv != nullptr) {
mFunctionStubs.glProgramUniform4fv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4fv");
return false;
}
}
bool Gles::callGlProgramUniform4i(Stack* stack, bool pushReturn) {
auto value3 = stack->pop<int32_t>();
auto value2 = stack->pop<int32_t>();
auto value1 = stack->pop<int32_t>();
auto value0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4i(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", program, location, value0, value1, value2, value3);
if (mFunctionStubs.glProgramUniform4i != nullptr) {
mFunctionStubs.glProgramUniform4i(program, location, value0, value1, value2, value3);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4i");
return false;
}
}
bool Gles::callGlProgramUniform4iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4iv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform4iv != nullptr) {
mFunctionStubs.glProgramUniform4iv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4iv");
return false;
}
}
bool Gles::callGlProgramUniform4ui(Stack* stack, bool pushReturn) {
auto value3 = stack->pop<uint32_t>();
auto value2 = stack->pop<uint32_t>();
auto value1 = stack->pop<uint32_t>();
auto value0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4ui(%" PRIu32 ", %" PRId32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", program, location, value0, value1, value2, value3);
if (mFunctionStubs.glProgramUniform4ui != nullptr) {
mFunctionStubs.glProgramUniform4ui(program, location, value0, value1, value2, value3);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4ui");
return false;
}
}
bool Gles::callGlProgramUniform4uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniform4uiv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %p)", program, location, count, values);
if (mFunctionStubs.glProgramUniform4uiv != nullptr) {
mFunctionStubs.glProgramUniform4uiv(program, location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniform4uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniform4uiv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix2fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix2fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix2fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix2fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix2fv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix2x3fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix2x3fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix2x3fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix2x3fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix2x3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix2x3fv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix2x4fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix2x4fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix2x4fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix2x4fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix2x4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix2x4fv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix3fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix3fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix3fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix3fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix3fv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix3x2fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix3x2fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix3x2fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix3x2fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix3x2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix3x2fv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix3x4fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix3x4fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix3x4fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix3x4fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix3x4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix3x4fv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix4fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix4fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix4fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix4fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix4fv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix4x2fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix4x2fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix4x2fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix4x2fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix4x2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix4x2fv");
return false;
}
}
bool Gles::callGlProgramUniformMatrix4x3fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glProgramUniformMatrix4x3fv(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", program, location, count, transpose, values);
if (mFunctionStubs.glProgramUniformMatrix4x3fv != nullptr) {
mFunctionStubs.glProgramUniformMatrix4x3fv(program, location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glProgramUniformMatrix4x3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glProgramUniformMatrix4x3fv");
return false;
}
}
bool Gles::callGlReleaseShaderCompiler(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glReleaseShaderCompiler()");
if (mFunctionStubs.glReleaseShaderCompiler != nullptr) {
mFunctionStubs.glReleaseShaderCompiler();
} else {
GAPID_WARNING("Attempted to call unsupported function glReleaseShaderCompiler");
}
return true;
} else {
GAPID_WARNING("Error during calling function glReleaseShaderCompiler");
return false;
}
}
bool Gles::callGlShaderBinary(Stack* stack, bool pushReturn) {
auto binary_size = stack->pop<int32_t>();
auto binary = stack->pop<void*>();
auto binary_format = stack->pop<GLenum>();
auto shaders = stack->pop<ShaderId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glShaderBinary(%" PRId32 ", %p, %u, %p, %" PRId32 ")", count, shaders, binary_format, binary, binary_size);
if (mFunctionStubs.glShaderBinary != nullptr) {
mFunctionStubs.glShaderBinary(count, shaders, binary_format, binary, binary_size);
} else {
GAPID_WARNING("Attempted to call unsupported function glShaderBinary");
}
return true;
} else {
GAPID_WARNING("Error during calling function glShaderBinary");
return false;
}
}
bool Gles::callGlShaderSource(Stack* stack, bool pushReturn) {
auto length = stack->pop<GLint*>();
auto source = stack->pop<GLchar**>();
auto count = stack->pop<int32_t>();
auto shader = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glShaderSource(%" PRIu32 ", %" PRId32 ", %p, %p)", shader, count, source, length);
if (mFunctionStubs.glShaderSource != nullptr) {
mFunctionStubs.glShaderSource(shader, count, source, length);
} else {
GAPID_WARNING("Attempted to call unsupported function glShaderSource");
}
return true;
} else {
GAPID_WARNING("Error during calling function glShaderSource");
return false;
}
}
bool Gles::callGlUniform1f(Stack* stack, bool pushReturn) {
auto value = stack->pop<float>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1f(%" PRId32 ", %f)", location, value);
if (mFunctionStubs.glUniform1f != nullptr) {
mFunctionStubs.glUniform1f(location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1f");
return false;
}
}
bool Gles::callGlUniform1fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1fv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform1fv != nullptr) {
mFunctionStubs.glUniform1fv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1fv");
return false;
}
}
bool Gles::callGlUniform1i(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1i(%" PRId32 ", %" PRId32 ")", location, value);
if (mFunctionStubs.glUniform1i != nullptr) {
mFunctionStubs.glUniform1i(location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1i");
return false;
}
}
bool Gles::callGlUniform1iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1iv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform1iv != nullptr) {
mFunctionStubs.glUniform1iv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1iv");
return false;
}
}
bool Gles::callGlUniform1ui(Stack* stack, bool pushReturn) {
auto value0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1ui(%" PRId32 ", %" PRIu32 ")", location, value0);
if (mFunctionStubs.glUniform1ui != nullptr) {
mFunctionStubs.glUniform1ui(location, value0);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1ui");
return false;
}
}
bool Gles::callGlUniform1uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform1uiv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform1uiv != nullptr) {
mFunctionStubs.glUniform1uiv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform1uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform1uiv");
return false;
}
}
bool Gles::callGlUniform2f(Stack* stack, bool pushReturn) {
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2f(%" PRId32 ", %f, %f)", location, value0, value1);
if (mFunctionStubs.glUniform2f != nullptr) {
mFunctionStubs.glUniform2f(location, value0, value1);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2f");
return false;
}
}
bool Gles::callGlUniform2fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2fv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform2fv != nullptr) {
mFunctionStubs.glUniform2fv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2fv");
return false;
}
}
bool Gles::callGlUniform2i(Stack* stack, bool pushReturn) {
auto value1 = stack->pop<int32_t>();
auto value0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2i(%" PRId32 ", %" PRId32 ", %" PRId32 ")", location, value0, value1);
if (mFunctionStubs.glUniform2i != nullptr) {
mFunctionStubs.glUniform2i(location, value0, value1);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2i");
return false;
}
}
bool Gles::callGlUniform2iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2iv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform2iv != nullptr) {
mFunctionStubs.glUniform2iv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2iv");
return false;
}
}
bool Gles::callGlUniform2ui(Stack* stack, bool pushReturn) {
auto value1 = stack->pop<uint32_t>();
auto value0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2ui(%" PRId32 ", %" PRIu32 ", %" PRIu32 ")", location, value0, value1);
if (mFunctionStubs.glUniform2ui != nullptr) {
mFunctionStubs.glUniform2ui(location, value0, value1);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2ui");
return false;
}
}
bool Gles::callGlUniform2uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform2uiv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform2uiv != nullptr) {
mFunctionStubs.glUniform2uiv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform2uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform2uiv");
return false;
}
}
bool Gles::callGlUniform3f(Stack* stack, bool pushReturn) {
auto value2 = stack->pop<float>();
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3f(%" PRId32 ", %f, %f, %f)", location, value0, value1, value2);
if (mFunctionStubs.glUniform3f != nullptr) {
mFunctionStubs.glUniform3f(location, value0, value1, value2);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3f");
return false;
}
}
bool Gles::callGlUniform3fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3fv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform3fv != nullptr) {
mFunctionStubs.glUniform3fv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3fv");
return false;
}
}
bool Gles::callGlUniform3i(Stack* stack, bool pushReturn) {
auto value2 = stack->pop<int32_t>();
auto value1 = stack->pop<int32_t>();
auto value0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3i(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", location, value0, value1, value2);
if (mFunctionStubs.glUniform3i != nullptr) {
mFunctionStubs.glUniform3i(location, value0, value1, value2);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3i");
return false;
}
}
bool Gles::callGlUniform3iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3iv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform3iv != nullptr) {
mFunctionStubs.glUniform3iv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3iv");
return false;
}
}
bool Gles::callGlUniform3ui(Stack* stack, bool pushReturn) {
auto value2 = stack->pop<uint32_t>();
auto value1 = stack->pop<uint32_t>();
auto value0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3ui(%" PRId32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", location, value0, value1, value2);
if (mFunctionStubs.glUniform3ui != nullptr) {
mFunctionStubs.glUniform3ui(location, value0, value1, value2);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3ui");
return false;
}
}
bool Gles::callGlUniform3uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform3uiv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform3uiv != nullptr) {
mFunctionStubs.glUniform3uiv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform3uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform3uiv");
return false;
}
}
bool Gles::callGlUniform4f(Stack* stack, bool pushReturn) {
auto value3 = stack->pop<float>();
auto value2 = stack->pop<float>();
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4f(%" PRId32 ", %f, %f, %f, %f)", location, value0, value1, value2, value3);
if (mFunctionStubs.glUniform4f != nullptr) {
mFunctionStubs.glUniform4f(location, value0, value1, value2, value3);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4f");
return false;
}
}
bool Gles::callGlUniform4fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4fv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform4fv != nullptr) {
mFunctionStubs.glUniform4fv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4fv");
return false;
}
}
bool Gles::callGlUniform4i(Stack* stack, bool pushReturn) {
auto value3 = stack->pop<int32_t>();
auto value2 = stack->pop<int32_t>();
auto value1 = stack->pop<int32_t>();
auto value0 = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4i(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", location, value0, value1, value2, value3);
if (mFunctionStubs.glUniform4i != nullptr) {
mFunctionStubs.glUniform4i(location, value0, value1, value2, value3);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4i");
return false;
}
}
bool Gles::callGlUniform4iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4iv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform4iv != nullptr) {
mFunctionStubs.glUniform4iv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4iv");
return false;
}
}
bool Gles::callGlUniform4ui(Stack* stack, bool pushReturn) {
auto value3 = stack->pop<uint32_t>();
auto value2 = stack->pop<uint32_t>();
auto value1 = stack->pop<uint32_t>();
auto value0 = stack->pop<uint32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4ui(%" PRId32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", location, value0, value1, value2, value3);
if (mFunctionStubs.glUniform4ui != nullptr) {
mFunctionStubs.glUniform4ui(location, value0, value1, value2, value3);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4ui");
return false;
}
}
bool Gles::callGlUniform4uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniform4uiv(%" PRId32 ", %" PRId32 ", %p)", location, count, values);
if (mFunctionStubs.glUniform4uiv != nullptr) {
mFunctionStubs.glUniform4uiv(location, count, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniform4uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniform4uiv");
return false;
}
}
bool Gles::callGlUniformBlockBinding(Stack* stack, bool pushReturn) {
auto uniform_block_binding = stack->pop<uint32_t>();
auto uniform_block_index = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformBlockBinding(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", program, uniform_block_index, uniform_block_binding);
if (mFunctionStubs.glUniformBlockBinding != nullptr) {
mFunctionStubs.glUniformBlockBinding(program, uniform_block_index, uniform_block_binding);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformBlockBinding");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformBlockBinding");
return false;
}
}
bool Gles::callGlUniformMatrix2fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix2fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix2fv != nullptr) {
mFunctionStubs.glUniformMatrix2fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix2fv");
return false;
}
}
bool Gles::callGlUniformMatrix2x3fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix2x3fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix2x3fv != nullptr) {
mFunctionStubs.glUniformMatrix2x3fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix2x3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix2x3fv");
return false;
}
}
bool Gles::callGlUniformMatrix2x4fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix2x4fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix2x4fv != nullptr) {
mFunctionStubs.glUniformMatrix2x4fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix2x4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix2x4fv");
return false;
}
}
bool Gles::callGlUniformMatrix3fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix3fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix3fv != nullptr) {
mFunctionStubs.glUniformMatrix3fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix3fv");
return false;
}
}
bool Gles::callGlUniformMatrix3x2fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix3x2fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix3x2fv != nullptr) {
mFunctionStubs.glUniformMatrix3x2fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix3x2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix3x2fv");
return false;
}
}
bool Gles::callGlUniformMatrix3x4fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix3x4fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix3x4fv != nullptr) {
mFunctionStubs.glUniformMatrix3x4fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix3x4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix3x4fv");
return false;
}
}
bool Gles::callGlUniformMatrix4fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix4fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix4fv != nullptr) {
mFunctionStubs.glUniformMatrix4fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix4fv");
return false;
}
}
bool Gles::callGlUniformMatrix4x2fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix4x2fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix4x2fv != nullptr) {
mFunctionStubs.glUniformMatrix4x2fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix4x2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix4x2fv");
return false;
}
}
bool Gles::callGlUniformMatrix4x3fv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto transpose = stack->pop<uint8_t>();
auto count = stack->pop<int32_t>();
auto location = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glUniformMatrix4x3fv(%" PRId32 ", %" PRId32 ", %" PRIu8 ", %p)", location, count, transpose, values);
if (mFunctionStubs.glUniformMatrix4x3fv != nullptr) {
mFunctionStubs.glUniformMatrix4x3fv(location, count, transpose, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glUniformMatrix4x3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUniformMatrix4x3fv");
return false;
}
}
bool Gles::callGlUseProgram(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glUseProgram(%" PRIu32 ")", program);
if (mFunctionStubs.glUseProgram != nullptr) {
mFunctionStubs.glUseProgram(program);
} else {
GAPID_WARNING("Attempted to call unsupported function glUseProgram");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUseProgram");
return false;
}
}
bool Gles::callGlUseProgramStages(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
auto stages = stack->pop<GLbitfield>();
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glUseProgramStages(%" PRIu32 ", %u, %" PRIu32 ")", pipeline, stages, program);
if (mFunctionStubs.glUseProgramStages != nullptr) {
mFunctionStubs.glUseProgramStages(pipeline, stages, program);
} else {
GAPID_WARNING("Attempted to call unsupported function glUseProgramStages");
}
return true;
} else {
GAPID_WARNING("Error during calling function glUseProgramStages");
return false;
}
}
bool Gles::callGlValidateProgram(Stack* stack, bool pushReturn) {
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glValidateProgram(%" PRIu32 ")", program);
if (mFunctionStubs.glValidateProgram != nullptr) {
mFunctionStubs.glValidateProgram(program);
} else {
GAPID_WARNING("Attempted to call unsupported function glValidateProgram");
}
return true;
} else {
GAPID_WARNING("Error during calling function glValidateProgram");
return false;
}
}
bool Gles::callGlValidateProgramPipeline(Stack* stack, bool pushReturn) {
auto pipeline = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glValidateProgramPipeline(%" PRIu32 ")", pipeline);
if (mFunctionStubs.glValidateProgramPipeline != nullptr) {
mFunctionStubs.glValidateProgramPipeline(pipeline);
} else {
GAPID_WARNING("Attempted to call unsupported function glValidateProgramPipeline");
}
return true;
} else {
GAPID_WARNING("Error during calling function glValidateProgramPipeline");
return false;
}
}
bool Gles::callGlCullFace(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCullFace(%u)", mode);
if (mFunctionStubs.glCullFace != nullptr) {
mFunctionStubs.glCullFace(mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glCullFace");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCullFace");
return false;
}
}
bool Gles::callGlDepthRangef(Stack* stack, bool pushReturn) {
auto far = stack->pop<float>();
auto near = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glDepthRangef(%f, %f)", near, far);
if (mFunctionStubs.glDepthRangef != nullptr) {
mFunctionStubs.glDepthRangef(near, far);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthRangef");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthRangef");
return false;
}
}
bool Gles::callGlFrontFace(Stack* stack, bool pushReturn) {
auto orientation = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFrontFace(%u)", orientation);
if (mFunctionStubs.glFrontFace != nullptr) {
mFunctionStubs.glFrontFace(orientation);
} else {
GAPID_WARNING("Attempted to call unsupported function glFrontFace");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFrontFace");
return false;
}
}
bool Gles::callGlGetMultisamplefv(Stack* stack, bool pushReturn) {
auto val = stack->pop<GLfloat*>();
auto index = stack->pop<uint32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetMultisamplefv(%u, %" PRIu32 ", %p)", pname, index, val);
if (mFunctionStubs.glGetMultisamplefv != nullptr) {
mFunctionStubs.glGetMultisamplefv(pname, index, val);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetMultisamplefv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetMultisamplefv");
return false;
}
}
bool Gles::callGlLineWidth(Stack* stack, bool pushReturn) {
auto width = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glLineWidth(%f)", width);
if (mFunctionStubs.glLineWidth != nullptr) {
mFunctionStubs.glLineWidth(width);
} else {
GAPID_WARNING("Attempted to call unsupported function glLineWidth");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLineWidth");
return false;
}
}
bool Gles::callGlMinSampleShading(Stack* stack, bool pushReturn) {
auto value = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glMinSampleShading(%f)", value);
if (mFunctionStubs.glMinSampleShading != nullptr) {
mFunctionStubs.glMinSampleShading(value);
} else {
GAPID_WARNING("Attempted to call unsupported function glMinSampleShading");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMinSampleShading");
return false;
}
}
bool Gles::callGlPolygonOffset(Stack* stack, bool pushReturn) {
auto units = stack->pop<float>();
auto scale_factor = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glPolygonOffset(%f, %f)", scale_factor, units);
if (mFunctionStubs.glPolygonOffset != nullptr) {
mFunctionStubs.glPolygonOffset(scale_factor, units);
} else {
GAPID_WARNING("Attempted to call unsupported function glPolygonOffset");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPolygonOffset");
return false;
}
}
bool Gles::callGlViewport(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glViewport(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", x, y, width, height);
if (mFunctionStubs.glViewport != nullptr) {
mFunctionStubs.glViewport(x, y, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glViewport");
}
return true;
} else {
GAPID_WARNING("Error during calling function glViewport");
return false;
}
}
bool Gles::callGlGetBooleaniV(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLboolean*>();
auto index = stack->pop<uint32_t>();
auto param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetBooleani_v(%u, %" PRIu32 ", %p)", param, index, values);
if (mFunctionStubs.glGetBooleani_v != nullptr) {
mFunctionStubs.glGetBooleani_v(param, index, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetBooleani_v");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetBooleani_v");
return false;
}
}
bool Gles::callGlGetBooleanv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLboolean*>();
auto param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetBooleanv(%u, %p)", param, values);
if (mFunctionStubs.glGetBooleanv != nullptr) {
mFunctionStubs.glGetBooleanv(param, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetBooleanv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetBooleanv");
return false;
}
}
bool Gles::callGlGetFloatv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFloatv(%u, %p)", param, values);
if (mFunctionStubs.glGetFloatv != nullptr) {
mFunctionStubs.glGetFloatv(param, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFloatv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFloatv");
return false;
}
}
bool Gles::callGlGetInteger64iV(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint64*>();
auto index = stack->pop<uint32_t>();
auto param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetInteger64i_v(%u, %" PRIu32 ", %p)", param, index, values);
if (mFunctionStubs.glGetInteger64i_v != nullptr) {
mFunctionStubs.glGetInteger64i_v(param, index, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetInteger64i_v");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetInteger64i_v");
return false;
}
}
bool Gles::callGlGetInteger64v(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint64*>();
auto param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetInteger64v(%u, %p)", param, values);
if (mFunctionStubs.glGetInteger64v != nullptr) {
mFunctionStubs.glGetInteger64v(param, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetInteger64v");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetInteger64v");
return false;
}
}
bool Gles::callGlGetIntegeriV(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto index = stack->pop<uint32_t>();
auto param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetIntegeri_v(%u, %" PRIu32 ", %p)", param, index, values);
if (mFunctionStubs.glGetIntegeri_v != nullptr) {
mFunctionStubs.glGetIntegeri_v(param, index, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetIntegeri_v");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetIntegeri_v");
return false;
}
}
bool Gles::callGlGetIntegerv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetIntegerv(%u, %p)", param, values);
if (mFunctionStubs.glGetIntegerv != nullptr) {
mFunctionStubs.glGetIntegerv(param, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetIntegerv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetIntegerv");
return false;
}
}
bool Gles::callGlGetInternalformativ(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto bufSize = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetInternalformativ(%u, %u, %u, %" PRId32 ", %p)", target, internalformat, pname, bufSize, params);
if (mFunctionStubs.glGetInternalformativ != nullptr) {
mFunctionStubs.glGetInternalformativ(target, internalformat, pname, bufSize, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetInternalformativ");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetInternalformativ");
return false;
}
}
bool Gles::callGlGetString(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetString(%u)", param);
if (mFunctionStubs.glGetString != nullptr) {
GLubyte* return_value = mFunctionStubs.glGetString(param);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<GLubyte*>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetString");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetString");
return false;
}
}
bool Gles::callGlGetStringi(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto name = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetStringi(%u, %" PRIu32 ")", name, index);
if (mFunctionStubs.glGetStringi != nullptr) {
GLubyte* return_value = mFunctionStubs.glGetStringi(name, index);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<GLubyte*>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glGetStringi");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetStringi");
return false;
}
}
bool Gles::callGlIsEnabled(Stack* stack, bool pushReturn) {
auto capability = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glIsEnabled(%u)", capability);
if (mFunctionStubs.glIsEnabled != nullptr) {
GLboolean return_value = mFunctionStubs.glIsEnabled(capability);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsEnabled");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsEnabled");
return false;
}
}
bool Gles::callGlIsEnabledi(Stack* stack, bool pushReturn) {
auto index = stack->pop<uint32_t>();
auto capability = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glIsEnabledi(%u, %" PRIu32 ")", capability, index);
if (mFunctionStubs.glIsEnabledi != nullptr) {
GLboolean return_value = mFunctionStubs.glIsEnabledi(capability, index);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsEnabledi");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsEnabledi");
return false;
}
}
bool Gles::callGlClientWaitSync(Stack* stack, bool pushReturn) {
auto timeout = stack->pop<uint64_t>();
auto syncFlags = stack->pop<GLbitfield>();
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glClientWaitSync(%p, %u, %" PRIu64 ")", sync, syncFlags, timeout);
if (mFunctionStubs.glClientWaitSync != nullptr) {
GLenum return_value = mFunctionStubs.glClientWaitSync(sync, syncFlags, timeout);
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glClientWaitSync");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClientWaitSync");
return false;
}
}
bool Gles::callGlDeleteSync(Stack* stack, bool pushReturn) {
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glDeleteSync(%p)", sync);
if (mFunctionStubs.glDeleteSync != nullptr) {
mFunctionStubs.glDeleteSync(sync);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteSync");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteSync");
return false;
}
}
bool Gles::callGlFenceSync(Stack* stack, bool pushReturn) {
auto syncFlags = stack->pop<GLbitfield>();
auto condition = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFenceSync(%u, %u)", condition, syncFlags);
if (mFunctionStubs.glFenceSync != nullptr) {
GLsync return_value = mFunctionStubs.glFenceSync(condition, syncFlags);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<GLsync>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glFenceSync");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFenceSync");
return false;
}
}
bool Gles::callGlGetSynciv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glGetSynciv(%p, %u, %" PRId32 ", %p, %p)", sync, pname, bufSize, length, values);
if (mFunctionStubs.glGetSynciv != nullptr) {
mFunctionStubs.glGetSynciv(sync, pname, bufSize, length, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSynciv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSynciv");
return false;
}
}
bool Gles::callGlIsSync(Stack* stack, bool pushReturn) {
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glIsSync(%p)", sync);
if (mFunctionStubs.glIsSync != nullptr) {
GLboolean return_value = mFunctionStubs.glIsSync(sync);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsSync");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsSync");
return false;
}
}
bool Gles::callGlWaitSync(Stack* stack, bool pushReturn) {
auto timeout = stack->pop<uint64_t>();
auto syncFlags = stack->pop<GLbitfield>();
auto sync = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glWaitSync(%p, %u, %" PRIu64 ")", sync, syncFlags, timeout);
if (mFunctionStubs.glWaitSync != nullptr) {
mFunctionStubs.glWaitSync(sync, syncFlags, timeout);
} else {
GAPID_WARNING("Attempted to call unsupported function glWaitSync");
}
return true;
} else {
GAPID_WARNING("Error during calling function glWaitSync");
return false;
}
}
bool Gles::callGlActiveTexture(Stack* stack, bool pushReturn) {
auto unit = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glActiveTexture(%u)", unit);
if (mFunctionStubs.glActiveTexture != nullptr) {
mFunctionStubs.glActiveTexture(unit);
} else {
GAPID_WARNING("Attempted to call unsupported function glActiveTexture");
}
return true;
} else {
GAPID_WARNING("Error during calling function glActiveTexture");
return false;
}
}
bool Gles::callGlBindImageTexture(Stack* stack, bool pushReturn) {
auto format = stack->pop<GLenum>();
auto access = stack->pop<GLenum>();
auto layer = stack->pop<int32_t>();
auto layered = stack->pop<uint8_t>();
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto unit = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindImageTexture(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %" PRIu8 ", %" PRId32 ", %u, %u)", unit, texture, level, layered, layer, access, format);
if (mFunctionStubs.glBindImageTexture != nullptr) {
mFunctionStubs.glBindImageTexture(unit, texture, level, layered, layer, access, format);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindImageTexture");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindImageTexture");
return false;
}
}
bool Gles::callGlBindSampler(Stack* stack, bool pushReturn) {
auto sampler = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindSampler(%" PRIu32 ", %" PRIu32 ")", index, sampler);
if (mFunctionStubs.glBindSampler != nullptr) {
mFunctionStubs.glBindSampler(index, sampler);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindSampler");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindSampler");
return false;
}
}
bool Gles::callGlBindTexture(Stack* stack, bool pushReturn) {
auto texture = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindTexture(%u, %" PRIu32 ")", target, texture);
if (mFunctionStubs.glBindTexture != nullptr) {
mFunctionStubs.glBindTexture(target, texture);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindTexture");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindTexture");
return false;
}
}
bool Gles::callGlCompressedTexImage2D(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto image_size = stack->pop<int32_t>();
auto border = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto format = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCompressedTexImage2D(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %p)", target, level, format, width, height, border, image_size, data);
if (mFunctionStubs.glCompressedTexImage2D != nullptr) {
mFunctionStubs.glCompressedTexImage2D(target, level, format, width, height, border, image_size, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glCompressedTexImage2D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCompressedTexImage2D");
return false;
}
}
bool Gles::callGlCompressedTexImage3D(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto image_size = stack->pop<int32_t>();
auto border = stack->pop<int32_t>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCompressedTexImage3D(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %p)", target, level, internalformat, width, height, depth, border, image_size, data);
if (mFunctionStubs.glCompressedTexImage3D != nullptr) {
mFunctionStubs.glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, image_size, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glCompressedTexImage3D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCompressedTexImage3D");
return false;
}
}
bool Gles::callGlCompressedTexSubImage2D(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto image_size = stack->pop<int32_t>();
auto format = stack->pop<GLenum>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCompressedTexSubImage2D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %" PRId32 ", %p)", target, level, xoffset, yoffset, width, height, format, image_size, data);
if (mFunctionStubs.glCompressedTexSubImage2D != nullptr) {
mFunctionStubs.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, image_size, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glCompressedTexSubImage2D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCompressedTexSubImage2D");
return false;
}
}
bool Gles::callGlCompressedTexSubImage3D(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto image_size = stack->pop<int32_t>();
auto format = stack->pop<GLenum>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCompressedTexSubImage3D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %" PRId32 ", %p)", target, level, xoffset, yoffset, zoffset, width, height, depth, format, image_size, data);
if (mFunctionStubs.glCompressedTexSubImage3D != nullptr) {
mFunctionStubs.glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, image_size, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glCompressedTexSubImage3D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCompressedTexSubImage3D");
return false;
}
}
bool Gles::callGlCopyImageSubData(Stack* stack, bool pushReturn) {
auto srcDepth = stack->pop<int32_t>();
auto srcHeight = stack->pop<int32_t>();
auto srcWidth = stack->pop<int32_t>();
auto dstZ = stack->pop<int32_t>();
auto dstY = stack->pop<int32_t>();
auto dstX = stack->pop<int32_t>();
auto dstLevel = stack->pop<int32_t>();
auto dstTarget = stack->pop<GLenum>();
auto dstName = stack->pop<uint32_t>();
auto srcZ = stack->pop<int32_t>();
auto srcY = stack->pop<int32_t>();
auto srcX = stack->pop<int32_t>();
auto srcLevel = stack->pop<int32_t>();
auto srcTarget = stack->pop<GLenum>();
auto srcName = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCopyImageSubData(%" PRIu32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRIu32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
if (mFunctionStubs.glCopyImageSubData != nullptr) {
mFunctionStubs.glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyImageSubData");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyImageSubData");
return false;
}
}
bool Gles::callGlCopyTexImage2D(Stack* stack, bool pushReturn) {
auto border = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCopyTexImage2D(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, level, internalformat, x, y, width, height, border);
if (mFunctionStubs.glCopyTexImage2D != nullptr) {
mFunctionStubs.glCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyTexImage2D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyTexImage2D");
return false;
}
}
bool Gles::callGlCopyTexSubImage2D(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCopyTexSubImage2D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, level, xoffset, yoffset, x, y, width, height);
if (mFunctionStubs.glCopyTexSubImage2D != nullptr) {
mFunctionStubs.glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyTexSubImage2D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyTexSubImage2D");
return false;
}
}
bool Gles::callGlCopyTexSubImage3D(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCopyTexSubImage3D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, level, xoffset, yoffset, zoffset, x, y, width, height);
if (mFunctionStubs.glCopyTexSubImage3D != nullptr) {
mFunctionStubs.glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glCopyTexSubImage3D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCopyTexSubImage3D");
return false;
}
}
bool Gles::callGlDeleteSamplers(Stack* stack, bool pushReturn) {
auto samplers = stack->pop<SamplerId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteSamplers(%" PRId32 ", %p)", count, samplers);
if (mFunctionStubs.glDeleteSamplers != nullptr) {
mFunctionStubs.glDeleteSamplers(count, samplers);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteSamplers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteSamplers");
return false;
}
}
bool Gles::callGlDeleteTextures(Stack* stack, bool pushReturn) {
auto textures = stack->pop<TextureId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteTextures(%" PRId32 ", %p)", count, textures);
if (mFunctionStubs.glDeleteTextures != nullptr) {
mFunctionStubs.glDeleteTextures(count, textures);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteTextures");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteTextures");
return false;
}
}
bool Gles::callGlGenSamplers(Stack* stack, bool pushReturn) {
auto samplers = stack->pop<SamplerId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenSamplers(%" PRId32 ", %p)", count, samplers);
if (mFunctionStubs.glGenSamplers != nullptr) {
mFunctionStubs.glGenSamplers(count, samplers);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenSamplers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenSamplers");
return false;
}
}
bool Gles::callGlGenTextures(Stack* stack, bool pushReturn) {
auto textures = stack->pop<TextureId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenTextures(%" PRId32 ", %p)", count, textures);
if (mFunctionStubs.glGenTextures != nullptr) {
mFunctionStubs.glGenTextures(count, textures);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenTextures");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenTextures");
return false;
}
}
bool Gles::callGlGenerateMipmap(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGenerateMipmap(%u)", target);
if (mFunctionStubs.glGenerateMipmap != nullptr) {
mFunctionStubs.glGenerateMipmap(target);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenerateMipmap");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenerateMipmap");
return false;
}
}
bool Gles::callGlGetSamplerParameterIiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetSamplerParameterIiv(%" PRIu32 ", %u, %p)", sampler, pname, params);
if (mFunctionStubs.glGetSamplerParameterIiv != nullptr) {
mFunctionStubs.glGetSamplerParameterIiv(sampler, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSamplerParameterIiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSamplerParameterIiv");
return false;
}
}
bool Gles::callGlGetSamplerParameterIuiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetSamplerParameterIuiv(%" PRIu32 ", %u, %p)", sampler, pname, params);
if (mFunctionStubs.glGetSamplerParameterIuiv != nullptr) {
mFunctionStubs.glGetSamplerParameterIuiv(sampler, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSamplerParameterIuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSamplerParameterIuiv");
return false;
}
}
bool Gles::callGlGetSamplerParameterfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetSamplerParameterfv(%" PRIu32 ", %u, %p)", sampler, pname, params);
if (mFunctionStubs.glGetSamplerParameterfv != nullptr) {
mFunctionStubs.glGetSamplerParameterfv(sampler, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSamplerParameterfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSamplerParameterfv");
return false;
}
}
bool Gles::callGlGetSamplerParameteriv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetSamplerParameteriv(%" PRIu32 ", %u, %p)", sampler, pname, params);
if (mFunctionStubs.glGetSamplerParameteriv != nullptr) {
mFunctionStubs.glGetSamplerParameteriv(sampler, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetSamplerParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetSamplerParameteriv");
return false;
}
}
bool Gles::callGlGetTexLevelParameterfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexLevelParameterfv(%u, %" PRId32 ", %u, %p)", target, level, pname, params);
if (mFunctionStubs.glGetTexLevelParameterfv != nullptr) {
mFunctionStubs.glGetTexLevelParameterfv(target, level, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexLevelParameterfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexLevelParameterfv");
return false;
}
}
bool Gles::callGlGetTexLevelParameteriv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexLevelParameteriv(%u, %" PRId32 ", %u, %p)", target, level, pname, params);
if (mFunctionStubs.glGetTexLevelParameteriv != nullptr) {
mFunctionStubs.glGetTexLevelParameteriv(target, level, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexLevelParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexLevelParameteriv");
return false;
}
}
bool Gles::callGlGetTexParameterIiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterIiv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexParameterIiv != nullptr) {
mFunctionStubs.glGetTexParameterIiv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterIiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterIiv");
return false;
}
}
bool Gles::callGlGetTexParameterIuiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterIuiv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexParameterIuiv != nullptr) {
mFunctionStubs.glGetTexParameterIuiv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterIuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterIuiv");
return false;
}
}
bool Gles::callGlGetTexParameterfv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLfloat*>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterfv(%u, %u, %p)", target, parameter, values);
if (mFunctionStubs.glGetTexParameterfv != nullptr) {
mFunctionStubs.glGetTexParameterfv(target, parameter, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterfv");
return false;
}
}
bool Gles::callGlGetTexParameteriv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameteriv(%u, %u, %p)", target, parameter, values);
if (mFunctionStubs.glGetTexParameteriv != nullptr) {
mFunctionStubs.glGetTexParameteriv(target, parameter, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameteriv");
return false;
}
}
bool Gles::callGlIsSampler(Stack* stack, bool pushReturn) {
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsSampler(%" PRIu32 ")", sampler);
if (mFunctionStubs.glIsSampler != nullptr) {
GLboolean return_value = mFunctionStubs.glIsSampler(sampler);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsSampler");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsSampler");
return false;
}
}
bool Gles::callGlIsTexture(Stack* stack, bool pushReturn) {
auto texture = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsTexture(%" PRIu32 ")", texture);
if (mFunctionStubs.glIsTexture != nullptr) {
GLboolean return_value = mFunctionStubs.glIsTexture(texture);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsTexture");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsTexture");
return false;
}
}
bool Gles::callGlPixelStorei(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto parameter = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPixelStorei(%u, %" PRId32 ")", parameter, value);
if (mFunctionStubs.glPixelStorei != nullptr) {
mFunctionStubs.glPixelStorei(parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glPixelStorei");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPixelStorei");
return false;
}
}
bool Gles::callGlSamplerParameterIiv(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameterIiv(%" PRIu32 ", %u, %p)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameterIiv != nullptr) {
mFunctionStubs.glSamplerParameterIiv(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameterIiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameterIiv");
return false;
}
}
bool Gles::callGlSamplerParameterIuiv(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameterIuiv(%" PRIu32 ", %u, %p)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameterIuiv != nullptr) {
mFunctionStubs.glSamplerParameterIuiv(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameterIuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameterIuiv");
return false;
}
}
bool Gles::callGlSamplerParameterf(Stack* stack, bool pushReturn) {
auto param = stack->pop<float>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameterf(%" PRIu32 ", %u, %f)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameterf != nullptr) {
mFunctionStubs.glSamplerParameterf(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameterf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameterf");
return false;
}
}
bool Gles::callGlSamplerParameterfv(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameterfv(%" PRIu32 ", %u, %p)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameterfv != nullptr) {
mFunctionStubs.glSamplerParameterfv(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameterfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameterfv");
return false;
}
}
bool Gles::callGlSamplerParameteri(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameteri(%" PRIu32 ", %u, %" PRId32 ")", sampler, pname, param);
if (mFunctionStubs.glSamplerParameteri != nullptr) {
mFunctionStubs.glSamplerParameteri(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameteri");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameteri");
return false;
}
}
bool Gles::callGlSamplerParameteriv(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto sampler = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glSamplerParameteriv(%" PRIu32 ", %u, %p)", sampler, pname, param);
if (mFunctionStubs.glSamplerParameteriv != nullptr) {
mFunctionStubs.glSamplerParameteriv(sampler, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glSamplerParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSamplerParameteriv");
return false;
}
}
bool Gles::callGlTexBuffer(Stack* stack, bool pushReturn) {
auto buffer = stack->pop<uint32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexBuffer(%u, %u, %" PRIu32 ")", target, internalformat, buffer);
if (mFunctionStubs.glTexBuffer != nullptr) {
mFunctionStubs.glTexBuffer(target, internalformat, buffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexBuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexBuffer");
return false;
}
}
bool Gles::callGlTexBufferRange(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto buffer = stack->pop<uint32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexBufferRange(%u, %u, %" PRIu32 ", %" PRId32 ", %" PRId32 ")", target, internalformat, buffer, offset, size);
if (mFunctionStubs.glTexBufferRange != nullptr) {
mFunctionStubs.glTexBufferRange(target, internalformat, buffer, offset, size);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexBufferRange");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexBufferRange");
return false;
}
}
bool Gles::callGlTexImage2D(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto border = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexImage2D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", target, level, internalformat, width, height, border, format, type, data);
if (mFunctionStubs.glTexImage2D != nullptr) {
mFunctionStubs.glTexImage2D(target, level, internalformat, width, height, border, format, type, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexImage2D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexImage2D");
return false;
}
}
bool Gles::callGlTexImage3D(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto border = stack->pop<int32_t>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexImage3D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", target, level, internalformat, width, height, depth, border, format, type, data);
if (mFunctionStubs.glTexImage3D != nullptr) {
mFunctionStubs.glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexImage3D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexImage3D");
return false;
}
}
bool Gles::callGlTexParameterIiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterIiv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterIiv != nullptr) {
mFunctionStubs.glTexParameterIiv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterIiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterIiv");
return false;
}
}
bool Gles::callGlTexParameterIuiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterIuiv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterIuiv != nullptr) {
mFunctionStubs.glTexParameterIuiv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterIuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterIuiv");
return false;
}
}
bool Gles::callGlTexParameterf(Stack* stack, bool pushReturn) {
auto value = stack->pop<float>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterf(%u, %u, %f)", target, parameter, value);
if (mFunctionStubs.glTexParameterf != nullptr) {
mFunctionStubs.glTexParameterf(target, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterf");
return false;
}
}
bool Gles::callGlTexParameterfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterfv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterfv != nullptr) {
mFunctionStubs.glTexParameterfv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterfv");
return false;
}
}
bool Gles::callGlTexParameteri(Stack* stack, bool pushReturn) {
auto value = stack->pop<int32_t>();
auto parameter = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameteri(%u, %u, %" PRId32 ")", target, parameter, value);
if (mFunctionStubs.glTexParameteri != nullptr) {
mFunctionStubs.glTexParameteri(target, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameteri");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameteri");
return false;
}
}
bool Gles::callGlTexParameteriv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameteriv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameteriv != nullptr) {
mFunctionStubs.glTexParameteriv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameteriv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameteriv");
return false;
}
}
bool Gles::callGlTexStorage2D(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage2D(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ")", target, levels, internalformat, width, height);
if (mFunctionStubs.glTexStorage2D != nullptr) {
mFunctionStubs.glTexStorage2D(target, levels, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage2D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage2D");
return false;
}
}
bool Gles::callGlTexStorage2DMultisample(Stack* stack, bool pushReturn) {
auto fixedsamplelocations = stack->pop<uint8_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage2DMultisample(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRIu8 ")", target, samples, internalformat, width, height, fixedsamplelocations);
if (mFunctionStubs.glTexStorage2DMultisample != nullptr) {
mFunctionStubs.glTexStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage2DMultisample");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage2DMultisample");
return false;
}
}
bool Gles::callGlTexStorage3D(Stack* stack, bool pushReturn) {
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage3D(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ")", target, levels, internalformat, width, height, depth);
if (mFunctionStubs.glTexStorage3D != nullptr) {
mFunctionStubs.glTexStorage3D(target, levels, internalformat, width, height, depth);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage3D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage3D");
return false;
}
}
bool Gles::callGlTexStorage3DMultisample(Stack* stack, bool pushReturn) {
auto fixedsamplelocations = stack->pop<uint8_t>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto samples = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage3DMultisample(%u, %" PRId32 ", %u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRIu8 ")", target, samples, internalformat, width, height, depth, fixedsamplelocations);
if (mFunctionStubs.glTexStorage3DMultisample != nullptr) {
mFunctionStubs.glTexStorage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage3DMultisample");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage3DMultisample");
return false;
}
}
bool Gles::callGlTexSubImage2D(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexSubImage2D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", target, level, xoffset, yoffset, width, height, format, type, data);
if (mFunctionStubs.glTexSubImage2D != nullptr) {
mFunctionStubs.glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexSubImage2D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexSubImage2D");
return false;
}
}
bool Gles::callGlTexSubImage3D(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto type = stack->pop<GLenum>();
auto format = stack->pop<GLenum>();
auto depth = stack->pop<int32_t>();
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto zoffset = stack->pop<int32_t>();
auto yoffset = stack->pop<int32_t>();
auto xoffset = stack->pop<int32_t>();
auto level = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexSubImage3D(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %u, %u, %p)", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
if (mFunctionStubs.glTexSubImage3D != nullptr) {
mFunctionStubs.glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexSubImage3D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexSubImage3D");
return false;
}
}
bool Gles::callGlBeginTransformFeedback(Stack* stack, bool pushReturn) {
auto primitiveMode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBeginTransformFeedback(%u)", primitiveMode);
if (mFunctionStubs.glBeginTransformFeedback != nullptr) {
mFunctionStubs.glBeginTransformFeedback(primitiveMode);
} else {
GAPID_WARNING("Attempted to call unsupported function glBeginTransformFeedback");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBeginTransformFeedback");
return false;
}
}
bool Gles::callGlBindTransformFeedback(Stack* stack, bool pushReturn) {
auto id = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindTransformFeedback(%u, %" PRIu32 ")", target, id);
if (mFunctionStubs.glBindTransformFeedback != nullptr) {
mFunctionStubs.glBindTransformFeedback(target, id);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindTransformFeedback");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindTransformFeedback");
return false;
}
}
bool Gles::callGlDeleteTransformFeedbacks(Stack* stack, bool pushReturn) {
auto ids = stack->pop<TransformFeedbackId*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteTransformFeedbacks(%" PRId32 ", %p)", n, ids);
if (mFunctionStubs.glDeleteTransformFeedbacks != nullptr) {
mFunctionStubs.glDeleteTransformFeedbacks(n, ids);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteTransformFeedbacks");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteTransformFeedbacks");
return false;
}
}
bool Gles::callGlEndTransformFeedback(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glEndTransformFeedback()");
if (mFunctionStubs.glEndTransformFeedback != nullptr) {
mFunctionStubs.glEndTransformFeedback();
} else {
GAPID_WARNING("Attempted to call unsupported function glEndTransformFeedback");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEndTransformFeedback");
return false;
}
}
bool Gles::callGlGenTransformFeedbacks(Stack* stack, bool pushReturn) {
auto ids = stack->pop<TransformFeedbackId*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenTransformFeedbacks(%" PRId32 ", %p)", n, ids);
if (mFunctionStubs.glGenTransformFeedbacks != nullptr) {
mFunctionStubs.glGenTransformFeedbacks(n, ids);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenTransformFeedbacks");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenTransformFeedbacks");
return false;
}
}
bool Gles::callGlGetTransformFeedbackVarying(Stack* stack, bool pushReturn) {
auto name = stack->pop<GLchar*>();
auto type = stack->pop<GLenum*>();
auto size = stack->pop<GLsizei*>();
auto length = stack->pop<GLsizei*>();
auto bufSize = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetTransformFeedbackVarying(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %p, %p, %p, %p)", program, index, bufSize, length, size, type, name);
if (mFunctionStubs.glGetTransformFeedbackVarying != nullptr) {
mFunctionStubs.glGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTransformFeedbackVarying");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTransformFeedbackVarying");
return false;
}
}
bool Gles::callGlIsTransformFeedback(Stack* stack, bool pushReturn) {
auto id = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsTransformFeedback(%" PRIu32 ")", id);
if (mFunctionStubs.glIsTransformFeedback != nullptr) {
GLboolean return_value = mFunctionStubs.glIsTransformFeedback(id);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsTransformFeedback");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsTransformFeedback");
return false;
}
}
bool Gles::callGlPauseTransformFeedback(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glPauseTransformFeedback()");
if (mFunctionStubs.glPauseTransformFeedback != nullptr) {
mFunctionStubs.glPauseTransformFeedback();
} else {
GAPID_WARNING("Attempted to call unsupported function glPauseTransformFeedback");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPauseTransformFeedback");
return false;
}
}
bool Gles::callGlResumeTransformFeedback(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glResumeTransformFeedback()");
if (mFunctionStubs.glResumeTransformFeedback != nullptr) {
mFunctionStubs.glResumeTransformFeedback();
} else {
GAPID_WARNING("Attempted to call unsupported function glResumeTransformFeedback");
}
return true;
} else {
GAPID_WARNING("Error during calling function glResumeTransformFeedback");
return false;
}
}
bool Gles::callGlTransformFeedbackVaryings(Stack* stack, bool pushReturn) {
auto bufferMode = stack->pop<GLenum>();
auto varyings = stack->pop<GLchar**>();
auto count = stack->pop<int32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glTransformFeedbackVaryings(%" PRIu32 ", %" PRId32 ", %p, %u)", program, count, varyings, bufferMode);
if (mFunctionStubs.glTransformFeedbackVaryings != nullptr) {
mFunctionStubs.glTransformFeedbackVaryings(program, count, varyings, bufferMode);
} else {
GAPID_WARNING("Attempted to call unsupported function glTransformFeedbackVaryings");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTransformFeedbackVaryings");
return false;
}
}
bool Gles::callGlBindVertexArray(Stack* stack, bool pushReturn) {
auto array = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindVertexArray(%" PRIu32 ")", array);
if (mFunctionStubs.glBindVertexArray != nullptr) {
mFunctionStubs.glBindVertexArray(array);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindVertexArray");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindVertexArray");
return false;
}
}
bool Gles::callGlBindVertexBuffer(Stack* stack, bool pushReturn) {
auto stride = stack->pop<int32_t>();
auto offset = stack->pop<int32_t>();
auto buffer = stack->pop<uint32_t>();
auto binding_index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindVertexBuffer(%" PRIu32 ", %" PRIu32 ", %" PRId32 ", %" PRId32 ")", binding_index, buffer, offset, stride);
if (mFunctionStubs.glBindVertexBuffer != nullptr) {
mFunctionStubs.glBindVertexBuffer(binding_index, buffer, offset, stride);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindVertexBuffer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindVertexBuffer");
return false;
}
}
bool Gles::callGlDeleteVertexArrays(Stack* stack, bool pushReturn) {
auto arrays = stack->pop<VertexArrayId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteVertexArrays(%" PRId32 ", %p)", count, arrays);
if (mFunctionStubs.glDeleteVertexArrays != nullptr) {
mFunctionStubs.glDeleteVertexArrays(count, arrays);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteVertexArrays");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteVertexArrays");
return false;
}
}
bool Gles::callGlDisableVertexAttribArray(Stack* stack, bool pushReturn) {
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glDisableVertexAttribArray(%" PRIu32 ")", location);
if (mFunctionStubs.glDisableVertexAttribArray != nullptr) {
mFunctionStubs.glDisableVertexAttribArray(location);
} else {
GAPID_WARNING("Attempted to call unsupported function glDisableVertexAttribArray");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDisableVertexAttribArray");
return false;
}
}
bool Gles::callGlEnableVertexAttribArray(Stack* stack, bool pushReturn) {
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glEnableVertexAttribArray(%" PRIu32 ")", location);
if (mFunctionStubs.glEnableVertexAttribArray != nullptr) {
mFunctionStubs.glEnableVertexAttribArray(location);
} else {
GAPID_WARNING("Attempted to call unsupported function glEnableVertexAttribArray");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEnableVertexAttribArray");
return false;
}
}
bool Gles::callGlGenVertexArrays(Stack* stack, bool pushReturn) {
auto arrays = stack->pop<VertexArrayId*>();
auto count = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenVertexArrays(%" PRId32 ", %p)", count, arrays);
if (mFunctionStubs.glGenVertexArrays != nullptr) {
mFunctionStubs.glGenVertexArrays(count, arrays);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenVertexArrays");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenVertexArrays");
return false;
}
}
bool Gles::callGlGetVertexAttribIiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetVertexAttribIiv(%" PRIu32 ", %u, %p)", index, pname, params);
if (mFunctionStubs.glGetVertexAttribIiv != nullptr) {
mFunctionStubs.glGetVertexAttribIiv(index, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetVertexAttribIiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetVertexAttribIiv");
return false;
}
}
bool Gles::callGlGetVertexAttribIuiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLuint*>();
auto pname = stack->pop<GLenum>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetVertexAttribIuiv(%" PRIu32 ", %u, %p)", index, pname, params);
if (mFunctionStubs.glGetVertexAttribIuiv != nullptr) {
mFunctionStubs.glGetVertexAttribIuiv(index, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetVertexAttribIuiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetVertexAttribIuiv");
return false;
}
}
bool Gles::callGlGetVertexAttribPointerv(Stack* stack, bool pushReturn) {
auto pointer = stack->pop<void**>();
auto pname = stack->pop<GLenum>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetVertexAttribPointerv(%" PRIu32 ", %u, %p)", index, pname, pointer);
if (mFunctionStubs.glGetVertexAttribPointerv != nullptr) {
mFunctionStubs.glGetVertexAttribPointerv(index, pname, pointer);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetVertexAttribPointerv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetVertexAttribPointerv");
return false;
}
}
bool Gles::callGlGetVertexAttribfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetVertexAttribfv(%" PRIu32 ", %u, %p)", index, pname, params);
if (mFunctionStubs.glGetVertexAttribfv != nullptr) {
mFunctionStubs.glGetVertexAttribfv(index, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetVertexAttribfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetVertexAttribfv");
return false;
}
}
bool Gles::callGlGetVertexAttribiv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetVertexAttribiv(%" PRIu32 ", %u, %p)", index, pname, params);
if (mFunctionStubs.glGetVertexAttribiv != nullptr) {
mFunctionStubs.glGetVertexAttribiv(index, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetVertexAttribiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetVertexAttribiv");
return false;
}
}
bool Gles::callGlIsVertexArray(Stack* stack, bool pushReturn) {
auto array = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsVertexArray(%" PRIu32 ")", array);
if (mFunctionStubs.glIsVertexArray != nullptr) {
GLboolean return_value = mFunctionStubs.glIsVertexArray(array);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsVertexArray");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsVertexArray");
return false;
}
}
bool Gles::callGlVertexAttrib1f(Stack* stack, bool pushReturn) {
auto value0 = stack->pop<float>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib1f(%" PRIu32 ", %f)", location, value0);
if (mFunctionStubs.glVertexAttrib1f != nullptr) {
mFunctionStubs.glVertexAttrib1f(location, value0);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttrib1f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttrib1f");
return false;
}
}
bool Gles::callGlVertexAttrib1fv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib1fv(%" PRIu32 ", %p)", location, value);
if (mFunctionStubs.glVertexAttrib1fv != nullptr) {
mFunctionStubs.glVertexAttrib1fv(location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttrib1fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttrib1fv");
return false;
}
}
bool Gles::callGlVertexAttrib2f(Stack* stack, bool pushReturn) {
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib2f(%" PRIu32 ", %f, %f)", location, value0, value1);
if (mFunctionStubs.glVertexAttrib2f != nullptr) {
mFunctionStubs.glVertexAttrib2f(location, value0, value1);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttrib2f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttrib2f");
return false;
}
}
bool Gles::callGlVertexAttrib2fv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib2fv(%" PRIu32 ", %p)", location, value);
if (mFunctionStubs.glVertexAttrib2fv != nullptr) {
mFunctionStubs.glVertexAttrib2fv(location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttrib2fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttrib2fv");
return false;
}
}
bool Gles::callGlVertexAttrib3f(Stack* stack, bool pushReturn) {
auto value2 = stack->pop<float>();
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib3f(%" PRIu32 ", %f, %f, %f)", location, value0, value1, value2);
if (mFunctionStubs.glVertexAttrib3f != nullptr) {
mFunctionStubs.glVertexAttrib3f(location, value0, value1, value2);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttrib3f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttrib3f");
return false;
}
}
bool Gles::callGlVertexAttrib3fv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib3fv(%" PRIu32 ", %p)", location, value);
if (mFunctionStubs.glVertexAttrib3fv != nullptr) {
mFunctionStubs.glVertexAttrib3fv(location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttrib3fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttrib3fv");
return false;
}
}
bool Gles::callGlVertexAttrib4f(Stack* stack, bool pushReturn) {
auto value3 = stack->pop<float>();
auto value2 = stack->pop<float>();
auto value1 = stack->pop<float>();
auto value0 = stack->pop<float>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib4f(%" PRIu32 ", %f, %f, %f, %f)", location, value0, value1, value2, value3);
if (mFunctionStubs.glVertexAttrib4f != nullptr) {
mFunctionStubs.glVertexAttrib4f(location, value0, value1, value2, value3);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttrib4f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttrib4f");
return false;
}
}
bool Gles::callGlVertexAttrib4fv(Stack* stack, bool pushReturn) {
auto value = stack->pop<GLfloat*>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttrib4fv(%" PRIu32 ", %p)", location, value);
if (mFunctionStubs.glVertexAttrib4fv != nullptr) {
mFunctionStubs.glVertexAttrib4fv(location, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttrib4fv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttrib4fv");
return false;
}
}
bool Gles::callGlVertexAttribBinding(Stack* stack, bool pushReturn) {
auto binding_index = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribBinding(%" PRIu32 ", %" PRIu32 ")", index, binding_index);
if (mFunctionStubs.glVertexAttribBinding != nullptr) {
mFunctionStubs.glVertexAttribBinding(index, binding_index);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribBinding");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribBinding");
return false;
}
}
bool Gles::callGlVertexAttribDivisor(Stack* stack, bool pushReturn) {
auto divisor = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribDivisor(%" PRIu32 ", %" PRIu32 ")", index, divisor);
if (mFunctionStubs.glVertexAttribDivisor != nullptr) {
mFunctionStubs.glVertexAttribDivisor(index, divisor);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribDivisor");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribDivisor");
return false;
}
}
bool Gles::callGlVertexAttribFormat(Stack* stack, bool pushReturn) {
auto relativeoffset = stack->pop<uint32_t>();
auto normalized = stack->pop<uint8_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribFormat(%" PRIu32 ", %" PRId32 ", %u, %" PRIu8 ", %" PRIu32 ")", index, size, type, normalized, relativeoffset);
if (mFunctionStubs.glVertexAttribFormat != nullptr) {
mFunctionStubs.glVertexAttribFormat(index, size, type, normalized, relativeoffset);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribFormat");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribFormat");
return false;
}
}
bool Gles::callGlVertexAttribI4i(Stack* stack, bool pushReturn) {
auto w = stack->pop<int32_t>();
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribI4i(%" PRIu32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", index, x, y, z, w);
if (mFunctionStubs.glVertexAttribI4i != nullptr) {
mFunctionStubs.glVertexAttribI4i(index, x, y, z, w);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribI4i");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribI4i");
return false;
}
}
bool Gles::callGlVertexAttribI4iv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLint*>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribI4iv(%" PRIu32 ", %p)", index, values);
if (mFunctionStubs.glVertexAttribI4iv != nullptr) {
mFunctionStubs.glVertexAttribI4iv(index, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribI4iv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribI4iv");
return false;
}
}
bool Gles::callGlVertexAttribI4ui(Stack* stack, bool pushReturn) {
auto w = stack->pop<uint32_t>();
auto z = stack->pop<uint32_t>();
auto y = stack->pop<uint32_t>();
auto x = stack->pop<uint32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribI4ui(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", index, x, y, z, w);
if (mFunctionStubs.glVertexAttribI4ui != nullptr) {
mFunctionStubs.glVertexAttribI4ui(index, x, y, z, w);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribI4ui");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribI4ui");
return false;
}
}
bool Gles::callGlVertexAttribI4uiv(Stack* stack, bool pushReturn) {
auto values = stack->pop<GLuint*>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribI4uiv(%" PRIu32 ", %p)", index, values);
if (mFunctionStubs.glVertexAttribI4uiv != nullptr) {
mFunctionStubs.glVertexAttribI4uiv(index, values);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribI4uiv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribI4uiv");
return false;
}
}
bool Gles::callGlVertexAttribIFormat(Stack* stack, bool pushReturn) {
auto relativeoffset = stack->pop<uint32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
auto index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribIFormat(%" PRIu32 ", %" PRId32 ", %u, %" PRIu32 ")", index, size, type, relativeoffset);
if (mFunctionStubs.glVertexAttribIFormat != nullptr) {
mFunctionStubs.glVertexAttribIFormat(index, size, type, relativeoffset);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribIFormat");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribIFormat");
return false;
}
}
bool Gles::callGlVertexAttribIPointer(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribIPointer(%" PRIu32 ", %" PRId32 ", %u, %" PRId32 ", %p)", location, size, type, stride, data);
if (mFunctionStubs.glVertexAttribIPointer != nullptr) {
mFunctionStubs.glVertexAttribIPointer(location, size, type, stride, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribIPointer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribIPointer");
return false;
}
}
bool Gles::callGlVertexAttribPointer(Stack* stack, bool pushReturn) {
auto data = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto normalized = stack->pop<uint8_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
auto location = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexAttribPointer(%" PRIu32 ", %" PRId32 ", %u, %" PRIu8 ", %" PRId32 ", %p)", location, size, type, normalized, stride, data);
if (mFunctionStubs.glVertexAttribPointer != nullptr) {
mFunctionStubs.glVertexAttribPointer(location, size, type, normalized, stride, data);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexAttribPointer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexAttribPointer");
return false;
}
}
bool Gles::callGlVertexBindingDivisor(Stack* stack, bool pushReturn) {
auto divisor = stack->pop<uint32_t>();
auto binding_index = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexBindingDivisor(%" PRIu32 ", %" PRIu32 ")", binding_index, divisor);
if (mFunctionStubs.glVertexBindingDivisor != nullptr) {
mFunctionStubs.glVertexBindingDivisor(binding_index, divisor);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexBindingDivisor");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexBindingDivisor");
return false;
}
}
bool Gles::callGlXCreateContext(Stack* stack, bool pushReturn) {
auto direct = stack->pop<bool>();
auto shareList = stack->pop<void*>();
auto vis = stack->pop<void*>();
auto dpy = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glXCreateContext(%p, %p, %p, %d)", dpy, vis, shareList, direct);
if (mFunctionStubs.glXCreateContext != nullptr) {
GLXContext return_value = mFunctionStubs.glXCreateContext(dpy, vis, shareList, direct);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<GLXContext>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXCreateContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXCreateContext");
return false;
}
}
bool Gles::callGlXCreateNewContext(Stack* stack, bool pushReturn) {
auto direct = stack->pop<bool>();
auto shared = stack->pop<void*>();
auto type = stack->pop<uint32_t>();
auto fbconfig = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glXCreateNewContext(%p, %p, %" PRIu32 ", %p, %d)", display, fbconfig, type, shared, direct);
if (mFunctionStubs.glXCreateNewContext != nullptr) {
GLXContext return_value = mFunctionStubs.glXCreateNewContext(display, fbconfig, type, shared, direct);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<GLXContext>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXCreateNewContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXCreateNewContext");
return false;
}
}
bool Gles::callGlXMakeContextCurrent(Stack* stack, bool pushReturn) {
auto ctx = stack->pop<void*>();
auto read = stack->pop<void*>();
auto draw = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glXMakeContextCurrent(%p, %p, %p, %p)", display, draw, read, ctx);
if (mFunctionStubs.glXMakeContextCurrent != nullptr) {
Bool return_value = mFunctionStubs.glXMakeContextCurrent(display, draw, read, ctx);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<Bool>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXMakeContextCurrent");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXMakeContextCurrent");
return false;
}
}
bool Gles::callGlXMakeCurrent(Stack* stack, bool pushReturn) {
auto ctx = stack->pop<void*>();
auto drawable = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glXMakeCurrent(%p, %p, %p)", display, drawable, ctx);
if (mFunctionStubs.glXMakeCurrent != nullptr) {
Bool return_value = mFunctionStubs.glXMakeCurrent(display, drawable, ctx);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<Bool>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXMakeCurrent");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXMakeCurrent");
return false;
}
}
bool Gles::callGlXSwapBuffers(Stack* stack, bool pushReturn) {
auto drawable = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glXSwapBuffers(%p, %p)", display, drawable);
if (mFunctionStubs.glXSwapBuffers != nullptr) {
mFunctionStubs.glXSwapBuffers(display, drawable);
} else {
GAPID_WARNING("Attempted to call unsupported function glXSwapBuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXSwapBuffers");
return false;
}
}
bool Gles::callGlXQueryDrawable(Stack* stack, bool pushReturn) {
auto value = stack->pop<int*>();
auto attribute = stack->pop<int>();
auto draw = stack->pop<void*>();
auto display = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("glXQueryDrawable(%p, %p, %d, %p)", display, draw, attribute, value);
if (mFunctionStubs.glXQueryDrawable != nullptr) {
int return_value = mFunctionStubs.glXQueryDrawable(display, draw, attribute, value);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glXQueryDrawable");
}
return true;
} else {
GAPID_WARNING("Error during calling function glXQueryDrawable");
return false;
}
}
bool Gles::callWglCreateContext(Stack* stack, bool pushReturn) {
auto hdc = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("wglCreateContext(%p)", hdc);
if (mFunctionStubs.wglCreateContext != nullptr) {
HGLRC return_value = mFunctionStubs.wglCreateContext(hdc);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<HGLRC>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function wglCreateContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function wglCreateContext");
return false;
}
}
bool Gles::callWglCreateContextAttribsARB(Stack* stack, bool pushReturn) {
auto attribList = stack->pop<int*>();
auto hShareContext = stack->pop<void*>();
auto hdc = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("wglCreateContextAttribsARB(%p, %p, %p)", hdc, hShareContext, attribList);
if (mFunctionStubs.wglCreateContextAttribsARB != nullptr) {
HGLRC return_value = mFunctionStubs.wglCreateContextAttribsARB(hdc, hShareContext, attribList);
GAPID_INFO("Returned: %p", return_value);
if (pushReturn) {
stack->push<HGLRC>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function wglCreateContextAttribsARB");
}
return true;
} else {
GAPID_WARNING("Error during calling function wglCreateContextAttribsARB");
return false;
}
}
bool Gles::callWglMakeCurrent(Stack* stack, bool pushReturn) {
auto hglrc = stack->pop<void*>();
auto hdc = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("wglMakeCurrent(%p, %p)", hdc, hglrc);
if (mFunctionStubs.wglMakeCurrent != nullptr) {
BOOL return_value = mFunctionStubs.wglMakeCurrent(hdc, hglrc);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<BOOL>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function wglMakeCurrent");
}
return true;
} else {
GAPID_WARNING("Error during calling function wglMakeCurrent");
return false;
}
}
bool Gles::callWglSwapBuffers(Stack* stack, bool pushReturn) {
auto hdc = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("wglSwapBuffers(%p)", hdc);
if (mFunctionStubs.wglSwapBuffers != nullptr) {
mFunctionStubs.wglSwapBuffers(hdc);
} else {
GAPID_WARNING("Attempted to call unsupported function wglSwapBuffers");
}
return true;
} else {
GAPID_WARNING("Error during calling function wglSwapBuffers");
return false;
}
}
bool Gles::callCGLCreateContext(Stack* stack, bool pushReturn) {
auto ctx = stack->pop<CGLContextObj*>();
auto share = stack->pop<void*>();
auto pix = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("CGLCreateContext(%p, %p, %p)", pix, share, ctx);
if (mFunctionStubs.CGLCreateContext != nullptr) {
CGLError return_value = mFunctionStubs.CGLCreateContext(pix, share, ctx);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<CGLError>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGLCreateContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGLCreateContext");
return false;
}
}
bool Gles::callCGLSetCurrentContext(Stack* stack, bool pushReturn) {
auto ctx = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("CGLSetCurrentContext(%p)", ctx);
if (mFunctionStubs.CGLSetCurrentContext != nullptr) {
CGLError return_value = mFunctionStubs.CGLSetCurrentContext(ctx);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<CGLError>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGLSetCurrentContext");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGLSetCurrentContext");
return false;
}
}
bool Gles::callCGLGetSurface(Stack* stack, bool pushReturn) {
auto sid = stack->pop<CGSSurfaceID*>();
auto wid = stack->pop<CGSWindowID*>();
auto cid = stack->pop<CGSConnectionID*>();
auto ctx = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("CGLGetSurface(%p, %p, %p, %p)", ctx, cid, wid, sid);
if (mFunctionStubs.CGLGetSurface != nullptr) {
int return_value = mFunctionStubs.CGLGetSurface(ctx, cid, wid, sid);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGLGetSurface");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGLGetSurface");
return false;
}
}
bool Gles::callCGSGetSurfaceBounds(Stack* stack, bool pushReturn) {
auto bounds = stack->pop<double*>();
auto sid = stack->pop<int32_t>();
auto wid = stack->pop<int32_t>();
auto cid = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("CGSGetSurfaceBounds(%p, %" PRId32 ", %" PRId32 ", %p)", cid, wid, sid, bounds);
if (mFunctionStubs.CGSGetSurfaceBounds != nullptr) {
int return_value = mFunctionStubs.CGSGetSurfaceBounds(cid, wid, sid, bounds);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<int>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGSGetSurfaceBounds");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGSGetSurfaceBounds");
return false;
}
}
bool Gles::callCGLFlushDrawable(Stack* stack, bool pushReturn) {
auto ctx = stack->pop<void*>();
if (stack->isValid()) {
GAPID_INFO("CGLFlushDrawable(%p)", ctx);
if (mFunctionStubs.CGLFlushDrawable != nullptr) {
CGLError return_value = mFunctionStubs.CGLFlushDrawable(ctx);
GAPID_INFO("Returned: %d", return_value);
if (pushReturn) {
stack->push<CGLError>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function CGLFlushDrawable");
}
return true;
} else {
GAPID_WARNING("Error during calling function CGLFlushDrawable");
return false;
}
}
bool Gles::callGlGetQueryObjecti64v(Stack* stack, bool pushReturn) {
auto value = stack->pop<int64_t*>();
auto parameter = stack->pop<GLenum>();
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjecti64v(%" PRIu32 ", %u, %p)", query, parameter, value);
if (mFunctionStubs.glGetQueryObjecti64v != nullptr) {
mFunctionStubs.glGetQueryObjecti64v(query, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjecti64v");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjecti64v");
return false;
}
}
bool Gles::callGlGetQueryObjectui64v(Stack* stack, bool pushReturn) {
auto value = stack->pop<uint64_t*>();
auto parameter = stack->pop<GLenum>();
auto query = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glGetQueryObjectui64v(%" PRIu32 ", %u, %p)", query, parameter, value);
if (mFunctionStubs.glGetQueryObjectui64v != nullptr) {
mFunctionStubs.glGetQueryObjectui64v(query, parameter, value);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetQueryObjectui64v");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetQueryObjectui64v");
return false;
}
}
bool Gles::callGlTexStorage1D(Stack* stack, bool pushReturn) {
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto levels = stack->pop<int32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexStorage1D(%u, %" PRId32 ", %u, %" PRId32 ")", target, levels, internalformat, width);
if (mFunctionStubs.glTexStorage1D != nullptr) {
mFunctionStubs.glTexStorage1D(target, levels, internalformat, width);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexStorage1D");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexStorage1D");
return false;
}
}
bool Gles::callGlBindFragDataLocation(Stack* stack, bool pushReturn) {
auto name = stack->pop<const char*>();
auto color = stack->pop<uint32_t>();
auto program = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glBindFragDataLocation(%" PRIu32 ", %" PRIu32 ", %s)", program, color, name);
if (mFunctionStubs.glBindFragDataLocation != nullptr) {
mFunctionStubs.glBindFragDataLocation(program, color, name);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindFragDataLocation");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindFragDataLocation");
return false;
}
}
bool Gles::callGlAlphaFunc(Stack* stack, bool pushReturn) {
auto ref = stack->pop<float>();
auto func = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glAlphaFunc(%u, %f)", func, ref);
if (mFunctionStubs.glAlphaFunc != nullptr) {
mFunctionStubs.glAlphaFunc(func, ref);
} else {
GAPID_WARNING("Attempted to call unsupported function glAlphaFunc");
}
return true;
} else {
GAPID_WARNING("Error during calling function glAlphaFunc");
return false;
}
}
bool Gles::callGlAlphaFuncx(Stack* stack, bool pushReturn) {
auto ref = stack->pop<int32_t>();
auto func = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glAlphaFuncx(%u, %" PRId32 ")", func, ref);
if (mFunctionStubs.glAlphaFuncx != nullptr) {
mFunctionStubs.glAlphaFuncx(func, ref);
} else {
GAPID_WARNING("Attempted to call unsupported function glAlphaFuncx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glAlphaFuncx");
return false;
}
}
bool Gles::callGlAlphaFuncxOES(Stack* stack, bool pushReturn) {
auto ref = stack->pop<int32_t>();
auto func = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glAlphaFuncxOES(%u, %" PRId32 ")", func, ref);
if (mFunctionStubs.glAlphaFuncxOES != nullptr) {
mFunctionStubs.glAlphaFuncxOES(func, ref);
} else {
GAPID_WARNING("Attempted to call unsupported function glAlphaFuncxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glAlphaFuncxOES");
return false;
}
}
bool Gles::callGlBindFramebufferOES(Stack* stack, bool pushReturn) {
auto framebuffer = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindFramebufferOES(%u, %" PRIu32 ")", target, framebuffer);
if (mFunctionStubs.glBindFramebufferOES != nullptr) {
mFunctionStubs.glBindFramebufferOES(target, framebuffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindFramebufferOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindFramebufferOES");
return false;
}
}
bool Gles::callGlBindRenderbufferOES(Stack* stack, bool pushReturn) {
auto renderbuffer = stack->pop<uint32_t>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBindRenderbufferOES(%u, %" PRIu32 ")", target, renderbuffer);
if (mFunctionStubs.glBindRenderbufferOES != nullptr) {
mFunctionStubs.glBindRenderbufferOES(target, renderbuffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glBindRenderbufferOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBindRenderbufferOES");
return false;
}
}
bool Gles::callGlBlendEquationOES(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationOES(%u)", mode);
if (mFunctionStubs.glBlendEquationOES != nullptr) {
mFunctionStubs.glBlendEquationOES(mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationOES");
return false;
}
}
bool Gles::callGlBlendEquationSeparateOES(Stack* stack, bool pushReturn) {
auto modeAlpha = stack->pop<GLenum>();
auto modeRGB = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendEquationSeparateOES(%u, %u)", modeRGB, modeAlpha);
if (mFunctionStubs.glBlendEquationSeparateOES != nullptr) {
mFunctionStubs.glBlendEquationSeparateOES(modeRGB, modeAlpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendEquationSeparateOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendEquationSeparateOES");
return false;
}
}
bool Gles::callGlBlendFuncSeparateOES(Stack* stack, bool pushReturn) {
auto dstAlpha = stack->pop<GLenum>();
auto srcAlpha = stack->pop<GLenum>();
auto dstRGB = stack->pop<GLenum>();
auto srcRGB = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glBlendFuncSeparateOES(%u, %u, %u, %u)", srcRGB, dstRGB, srcAlpha, dstAlpha);
if (mFunctionStubs.glBlendFuncSeparateOES != nullptr) {
mFunctionStubs.glBlendFuncSeparateOES(srcRGB, dstRGB, srcAlpha, dstAlpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glBlendFuncSeparateOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glBlendFuncSeparateOES");
return false;
}
}
bool Gles::callGlCheckFramebufferStatusOES(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glCheckFramebufferStatusOES(%u)", target);
if (mFunctionStubs.glCheckFramebufferStatusOES != nullptr) {
GLenum return_value = mFunctionStubs.glCheckFramebufferStatusOES(target);
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLenum>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glCheckFramebufferStatusOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCheckFramebufferStatusOES");
return false;
}
}
bool Gles::callGlClearColorx(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<int32_t>();
auto blue = stack->pop<int32_t>();
auto green = stack->pop<int32_t>();
auto red = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glClearColorx(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", red, green, blue, alpha);
if (mFunctionStubs.glClearColorx != nullptr) {
mFunctionStubs.glClearColorx(red, green, blue, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearColorx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearColorx");
return false;
}
}
bool Gles::callGlClearColorxOES(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<int32_t>();
auto blue = stack->pop<int32_t>();
auto green = stack->pop<int32_t>();
auto red = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glClearColorxOES(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", red, green, blue, alpha);
if (mFunctionStubs.glClearColorxOES != nullptr) {
mFunctionStubs.glClearColorxOES(red, green, blue, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearColorxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearColorxOES");
return false;
}
}
bool Gles::callGlClearDepthfOES(Stack* stack, bool pushReturn) {
auto depth = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glClearDepthfOES(%f)", depth);
if (mFunctionStubs.glClearDepthfOES != nullptr) {
mFunctionStubs.glClearDepthfOES(depth);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearDepthfOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearDepthfOES");
return false;
}
}
bool Gles::callGlClearDepthx(Stack* stack, bool pushReturn) {
auto depth = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glClearDepthx(%" PRId32 ")", depth);
if (mFunctionStubs.glClearDepthx != nullptr) {
mFunctionStubs.glClearDepthx(depth);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearDepthx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearDepthx");
return false;
}
}
bool Gles::callGlClearDepthxOES(Stack* stack, bool pushReturn) {
auto depth = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glClearDepthxOES(%" PRId32 ")", depth);
if (mFunctionStubs.glClearDepthxOES != nullptr) {
mFunctionStubs.glClearDepthxOES(depth);
} else {
GAPID_WARNING("Attempted to call unsupported function glClearDepthxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClearDepthxOES");
return false;
}
}
bool Gles::callGlClientActiveTexture(Stack* stack, bool pushReturn) {
auto texture = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClientActiveTexture(%u)", texture);
if (mFunctionStubs.glClientActiveTexture != nullptr) {
mFunctionStubs.glClientActiveTexture(texture);
} else {
GAPID_WARNING("Attempted to call unsupported function glClientActiveTexture");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClientActiveTexture");
return false;
}
}
bool Gles::callGlClipPlanef(Stack* stack, bool pushReturn) {
auto eqn = stack->pop<GLfloat*>();
auto p = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClipPlanef(%u, %p)", p, eqn);
if (mFunctionStubs.glClipPlanef != nullptr) {
mFunctionStubs.glClipPlanef(p, eqn);
} else {
GAPID_WARNING("Attempted to call unsupported function glClipPlanef");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClipPlanef");
return false;
}
}
bool Gles::callGlClipPlanefIMG(Stack* stack, bool pushReturn) {
auto eqn = stack->pop<GLfloat*>();
auto p = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClipPlanefIMG(%u, %p)", p, eqn);
if (mFunctionStubs.glClipPlanefIMG != nullptr) {
mFunctionStubs.glClipPlanefIMG(p, eqn);
} else {
GAPID_WARNING("Attempted to call unsupported function glClipPlanefIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClipPlanefIMG");
return false;
}
}
bool Gles::callGlClipPlanefOES(Stack* stack, bool pushReturn) {
auto equation = stack->pop<GLfloat*>();
auto plane = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClipPlanefOES(%u, %p)", plane, equation);
if (mFunctionStubs.glClipPlanefOES != nullptr) {
mFunctionStubs.glClipPlanefOES(plane, equation);
} else {
GAPID_WARNING("Attempted to call unsupported function glClipPlanefOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClipPlanefOES");
return false;
}
}
bool Gles::callGlClipPlanex(Stack* stack, bool pushReturn) {
auto equation = stack->pop<GLfixed*>();
auto plane = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClipPlanex(%u, %p)", plane, equation);
if (mFunctionStubs.glClipPlanex != nullptr) {
mFunctionStubs.glClipPlanex(plane, equation);
} else {
GAPID_WARNING("Attempted to call unsupported function glClipPlanex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClipPlanex");
return false;
}
}
bool Gles::callGlClipPlanexIMG(Stack* stack, bool pushReturn) {
auto eqn = stack->pop<GLfixed*>();
auto p = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClipPlanexIMG(%u, %p)", p, eqn);
if (mFunctionStubs.glClipPlanexIMG != nullptr) {
mFunctionStubs.glClipPlanexIMG(p, eqn);
} else {
GAPID_WARNING("Attempted to call unsupported function glClipPlanexIMG");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClipPlanexIMG");
return false;
}
}
bool Gles::callGlClipPlanexOES(Stack* stack, bool pushReturn) {
auto equation = stack->pop<GLfixed*>();
auto plane = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glClipPlanexOES(%u, %p)", plane, equation);
if (mFunctionStubs.glClipPlanexOES != nullptr) {
mFunctionStubs.glClipPlanexOES(plane, equation);
} else {
GAPID_WARNING("Attempted to call unsupported function glClipPlanexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glClipPlanexOES");
return false;
}
}
bool Gles::callGlColor4f(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<float>();
auto blue = stack->pop<float>();
auto green = stack->pop<float>();
auto red = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glColor4f(%f, %f, %f, %f)", red, green, blue, alpha);
if (mFunctionStubs.glColor4f != nullptr) {
mFunctionStubs.glColor4f(red, green, blue, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glColor4f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColor4f");
return false;
}
}
bool Gles::callGlColor4ub(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<uint8_t>();
auto blue = stack->pop<uint8_t>();
auto green = stack->pop<uint8_t>();
auto red = stack->pop<uint8_t>();
if (stack->isValid()) {
GAPID_INFO("glColor4ub(%" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ")", red, green, blue, alpha);
if (mFunctionStubs.glColor4ub != nullptr) {
mFunctionStubs.glColor4ub(red, green, blue, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glColor4ub");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColor4ub");
return false;
}
}
bool Gles::callGlColor4x(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<int32_t>();
auto blue = stack->pop<int32_t>();
auto green = stack->pop<int32_t>();
auto red = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glColor4x(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", red, green, blue, alpha);
if (mFunctionStubs.glColor4x != nullptr) {
mFunctionStubs.glColor4x(red, green, blue, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glColor4x");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColor4x");
return false;
}
}
bool Gles::callGlColor4xOES(Stack* stack, bool pushReturn) {
auto alpha = stack->pop<int32_t>();
auto blue = stack->pop<int32_t>();
auto green = stack->pop<int32_t>();
auto red = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glColor4xOES(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", red, green, blue, alpha);
if (mFunctionStubs.glColor4xOES != nullptr) {
mFunctionStubs.glColor4xOES(red, green, blue, alpha);
} else {
GAPID_WARNING("Attempted to call unsupported function glColor4xOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColor4xOES");
return false;
}
}
bool Gles::callGlColorPointer(Stack* stack, bool pushReturn) {
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glColorPointer(%" PRId32 ", %u, %" PRId32 ", %p)", size, type, stride, pointer);
if (mFunctionStubs.glColorPointer != nullptr) {
mFunctionStubs.glColorPointer(size, type, stride, pointer);
} else {
GAPID_WARNING("Attempted to call unsupported function glColorPointer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColorPointer");
return false;
}
}
bool Gles::callGlCurrentPaletteMatrixOES(Stack* stack, bool pushReturn) {
auto matrixpaletteindex = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glCurrentPaletteMatrixOES(%" PRIu32 ")", matrixpaletteindex);
if (mFunctionStubs.glCurrentPaletteMatrixOES != nullptr) {
mFunctionStubs.glCurrentPaletteMatrixOES(matrixpaletteindex);
} else {
GAPID_WARNING("Attempted to call unsupported function glCurrentPaletteMatrixOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glCurrentPaletteMatrixOES");
return false;
}
}
bool Gles::callGlDeleteFramebuffersOES(Stack* stack, bool pushReturn) {
auto framebuffers = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteFramebuffersOES(%" PRId32 ", %p)", n, framebuffers);
if (mFunctionStubs.glDeleteFramebuffersOES != nullptr) {
mFunctionStubs.glDeleteFramebuffersOES(n, framebuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteFramebuffersOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteFramebuffersOES");
return false;
}
}
bool Gles::callGlDeleteRenderbuffersOES(Stack* stack, bool pushReturn) {
auto renderbuffers = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDeleteRenderbuffersOES(%" PRId32 ", %p)", n, renderbuffers);
if (mFunctionStubs.glDeleteRenderbuffersOES != nullptr) {
mFunctionStubs.glDeleteRenderbuffersOES(n, renderbuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glDeleteRenderbuffersOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDeleteRenderbuffersOES");
return false;
}
}
bool Gles::callGlDepthRangefOES(Stack* stack, bool pushReturn) {
auto f = stack->pop<float>();
auto n = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glDepthRangefOES(%f, %f)", n, f);
if (mFunctionStubs.glDepthRangefOES != nullptr) {
mFunctionStubs.glDepthRangefOES(n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthRangefOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthRangefOES");
return false;
}
}
bool Gles::callGlDepthRangex(Stack* stack, bool pushReturn) {
auto f = stack->pop<int32_t>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDepthRangex(%" PRId32 ", %" PRId32 ")", n, f);
if (mFunctionStubs.glDepthRangex != nullptr) {
mFunctionStubs.glDepthRangex(n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthRangex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthRangex");
return false;
}
}
bool Gles::callGlDepthRangexOES(Stack* stack, bool pushReturn) {
auto f = stack->pop<int32_t>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDepthRangexOES(%" PRId32 ", %" PRId32 ")", n, f);
if (mFunctionStubs.glDepthRangexOES != nullptr) {
mFunctionStubs.glDepthRangexOES(n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glDepthRangexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDepthRangexOES");
return false;
}
}
bool Gles::callGlDisableClientState(Stack* stack, bool pushReturn) {
auto array = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glDisableClientState(%u)", array);
if (mFunctionStubs.glDisableClientState != nullptr) {
mFunctionStubs.glDisableClientState(array);
} else {
GAPID_WARNING("Attempted to call unsupported function glDisableClientState");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDisableClientState");
return false;
}
}
bool Gles::callGlDrawTexfOES(Stack* stack, bool pushReturn) {
auto height = stack->pop<float>();
auto width = stack->pop<float>();
auto z = stack->pop<float>();
auto y = stack->pop<float>();
auto x = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glDrawTexfOES(%f, %f, %f, %f, %f)", x, y, z, width, height);
if (mFunctionStubs.glDrawTexfOES != nullptr) {
mFunctionStubs.glDrawTexfOES(x, y, z, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTexfOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTexfOES");
return false;
}
}
bool Gles::callGlDrawTexfvOES(Stack* stack, bool pushReturn) {
auto coords = stack->pop<GLfloat*>();
if (stack->isValid()) {
GAPID_INFO("glDrawTexfvOES(%p)", coords);
if (mFunctionStubs.glDrawTexfvOES != nullptr) {
mFunctionStubs.glDrawTexfvOES(coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTexfvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTexfvOES");
return false;
}
}
bool Gles::callGlDrawTexiOES(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDrawTexiOES(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", x, y, z, width, height);
if (mFunctionStubs.glDrawTexiOES != nullptr) {
mFunctionStubs.glDrawTexiOES(x, y, z, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTexiOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTexiOES");
return false;
}
}
bool Gles::callGlDrawTexivOES(Stack* stack, bool pushReturn) {
auto coords = stack->pop<GLint*>();
if (stack->isValid()) {
GAPID_INFO("glDrawTexivOES(%p)", coords);
if (mFunctionStubs.glDrawTexivOES != nullptr) {
mFunctionStubs.glDrawTexivOES(coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTexivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTexivOES");
return false;
}
}
bool Gles::callGlDrawTexsOES(Stack* stack, bool pushReturn) {
auto height = stack->pop<int16_t>();
auto width = stack->pop<int16_t>();
auto z = stack->pop<int16_t>();
auto y = stack->pop<int16_t>();
auto x = stack->pop<int16_t>();
if (stack->isValid()) {
GAPID_INFO("glDrawTexsOES(%" PRId16 ", %" PRId16 ", %" PRId16 ", %" PRId16 ", %" PRId16 ")", x, y, z, width, height);
if (mFunctionStubs.glDrawTexsOES != nullptr) {
mFunctionStubs.glDrawTexsOES(x, y, z, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTexsOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTexsOES");
return false;
}
}
bool Gles::callGlDrawTexsvOES(Stack* stack, bool pushReturn) {
auto coords = stack->pop<GLshort*>();
if (stack->isValid()) {
GAPID_INFO("glDrawTexsvOES(%p)", coords);
if (mFunctionStubs.glDrawTexsvOES != nullptr) {
mFunctionStubs.glDrawTexsvOES(coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTexsvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTexsvOES");
return false;
}
}
bool Gles::callGlDrawTexxOES(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glDrawTexxOES(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", x, y, z, width, height);
if (mFunctionStubs.glDrawTexxOES != nullptr) {
mFunctionStubs.glDrawTexxOES(x, y, z, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTexxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTexxOES");
return false;
}
}
bool Gles::callGlDrawTexxvOES(Stack* stack, bool pushReturn) {
auto coords = stack->pop<GLfixed*>();
if (stack->isValid()) {
GAPID_INFO("glDrawTexxvOES(%p)", coords);
if (mFunctionStubs.glDrawTexxvOES != nullptr) {
mFunctionStubs.glDrawTexxvOES(coords);
} else {
GAPID_WARNING("Attempted to call unsupported function glDrawTexxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glDrawTexxvOES");
return false;
}
}
bool Gles::callGlEnableClientState(Stack* stack, bool pushReturn) {
auto array = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glEnableClientState(%u)", array);
if (mFunctionStubs.glEnableClientState != nullptr) {
mFunctionStubs.glEnableClientState(array);
} else {
GAPID_WARNING("Attempted to call unsupported function glEnableClientState");
}
return true;
} else {
GAPID_WARNING("Error during calling function glEnableClientState");
return false;
}
}
bool Gles::callGlFogf(Stack* stack, bool pushReturn) {
auto param = stack->pop<float>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFogf(%u, %f)", pname, param);
if (mFunctionStubs.glFogf != nullptr) {
mFunctionStubs.glFogf(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glFogf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFogf");
return false;
}
}
bool Gles::callGlFogfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFogfv(%u, %p)", pname, params);
if (mFunctionStubs.glFogfv != nullptr) {
mFunctionStubs.glFogfv(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glFogfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFogfv");
return false;
}
}
bool Gles::callGlFogx(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFogx(%u, %" PRId32 ")", pname, param);
if (mFunctionStubs.glFogx != nullptr) {
mFunctionStubs.glFogx(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glFogx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFogx");
return false;
}
}
bool Gles::callGlFogxOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFogxOES(%u, %" PRId32 ")", pname, param);
if (mFunctionStubs.glFogxOES != nullptr) {
mFunctionStubs.glFogxOES(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glFogxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFogxOES");
return false;
}
}
bool Gles::callGlFogxv(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFogxv(%u, %p)", pname, param);
if (mFunctionStubs.glFogxv != nullptr) {
mFunctionStubs.glFogxv(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glFogxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFogxv");
return false;
}
}
bool Gles::callGlFogxvOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFogxvOES(%u, %p)", pname, param);
if (mFunctionStubs.glFogxvOES != nullptr) {
mFunctionStubs.glFogxvOES(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glFogxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFogxvOES");
return false;
}
}
bool Gles::callGlFramebufferRenderbufferOES(Stack* stack, bool pushReturn) {
auto renderbuffer = stack->pop<uint32_t>();
auto renderbuffertarget = stack->pop<GLenum>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferRenderbufferOES(%u, %u, %u, %" PRIu32 ")", target, attachment, renderbuffertarget, renderbuffer);
if (mFunctionStubs.glFramebufferRenderbufferOES != nullptr) {
mFunctionStubs.glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferRenderbufferOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferRenderbufferOES");
return false;
}
}
bool Gles::callGlFramebufferTexture2DOES(Stack* stack, bool pushReturn) {
auto level = stack->pop<int32_t>();
auto texture = stack->pop<uint32_t>();
auto textarget = stack->pop<GLenum>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glFramebufferTexture2DOES(%u, %u, %u, %" PRIu32 ", %" PRId32 ")", target, attachment, textarget, texture, level);
if (mFunctionStubs.glFramebufferTexture2DOES != nullptr) {
mFunctionStubs.glFramebufferTexture2DOES(target, attachment, textarget, texture, level);
} else {
GAPID_WARNING("Attempted to call unsupported function glFramebufferTexture2DOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFramebufferTexture2DOES");
return false;
}
}
bool Gles::callGlFrustumf(Stack* stack, bool pushReturn) {
auto f = stack->pop<float>();
auto n = stack->pop<float>();
auto t = stack->pop<float>();
auto b = stack->pop<float>();
auto r = stack->pop<float>();
auto l = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glFrustumf(%f, %f, %f, %f, %f, %f)", l, r, b, t, n, f);
if (mFunctionStubs.glFrustumf != nullptr) {
mFunctionStubs.glFrustumf(l, r, b, t, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glFrustumf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFrustumf");
return false;
}
}
bool Gles::callGlFrustumfOES(Stack* stack, bool pushReturn) {
auto f = stack->pop<float>();
auto n = stack->pop<float>();
auto t = stack->pop<float>();
auto b = stack->pop<float>();
auto r = stack->pop<float>();
auto l = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glFrustumfOES(%f, %f, %f, %f, %f, %f)", l, r, b, t, n, f);
if (mFunctionStubs.glFrustumfOES != nullptr) {
mFunctionStubs.glFrustumfOES(l, r, b, t, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glFrustumfOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFrustumfOES");
return false;
}
}
bool Gles::callGlFrustumx(Stack* stack, bool pushReturn) {
auto f = stack->pop<int32_t>();
auto n = stack->pop<int32_t>();
auto t = stack->pop<int32_t>();
auto b = stack->pop<int32_t>();
auto r = stack->pop<int32_t>();
auto l = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glFrustumx(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", l, r, b, t, n, f);
if (mFunctionStubs.glFrustumx != nullptr) {
mFunctionStubs.glFrustumx(l, r, b, t, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glFrustumx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFrustumx");
return false;
}
}
bool Gles::callGlFrustumxOES(Stack* stack, bool pushReturn) {
auto f = stack->pop<int32_t>();
auto n = stack->pop<int32_t>();
auto t = stack->pop<int32_t>();
auto b = stack->pop<int32_t>();
auto r = stack->pop<int32_t>();
auto l = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glFrustumxOES(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", l, r, b, t, n, f);
if (mFunctionStubs.glFrustumxOES != nullptr) {
mFunctionStubs.glFrustumxOES(l, r, b, t, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glFrustumxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glFrustumxOES");
return false;
}
}
bool Gles::callGlGenFramebuffersOES(Stack* stack, bool pushReturn) {
auto framebuffers = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenFramebuffersOES(%" PRId32 ", %p)", n, framebuffers);
if (mFunctionStubs.glGenFramebuffersOES != nullptr) {
mFunctionStubs.glGenFramebuffersOES(n, framebuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenFramebuffersOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenFramebuffersOES");
return false;
}
}
bool Gles::callGlGenRenderbuffersOES(Stack* stack, bool pushReturn) {
auto renderbuffers = stack->pop<GLuint*>();
auto n = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glGenRenderbuffersOES(%" PRId32 ", %p)", n, renderbuffers);
if (mFunctionStubs.glGenRenderbuffersOES != nullptr) {
mFunctionStubs.glGenRenderbuffersOES(n, renderbuffers);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenRenderbuffersOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenRenderbuffersOES");
return false;
}
}
bool Gles::callGlGenerateMipmapOES(Stack* stack, bool pushReturn) {
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGenerateMipmapOES(%u)", target);
if (mFunctionStubs.glGenerateMipmapOES != nullptr) {
mFunctionStubs.glGenerateMipmapOES(target);
} else {
GAPID_WARNING("Attempted to call unsupported function glGenerateMipmapOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGenerateMipmapOES");
return false;
}
}
bool Gles::callGlGetClipPlanef(Stack* stack, bool pushReturn) {
auto equation = stack->pop<GLfloat*>();
auto plane = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetClipPlanef(%u, %p)", plane, equation);
if (mFunctionStubs.glGetClipPlanef != nullptr) {
mFunctionStubs.glGetClipPlanef(plane, equation);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetClipPlanef");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetClipPlanef");
return false;
}
}
bool Gles::callGlGetClipPlanefOES(Stack* stack, bool pushReturn) {
auto equation = stack->pop<GLfloat*>();
auto plane = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetClipPlanefOES(%u, %p)", plane, equation);
if (mFunctionStubs.glGetClipPlanefOES != nullptr) {
mFunctionStubs.glGetClipPlanefOES(plane, equation);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetClipPlanefOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetClipPlanefOES");
return false;
}
}
bool Gles::callGlGetClipPlanex(Stack* stack, bool pushReturn) {
auto equation = stack->pop<GLfixed*>();
auto plane = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetClipPlanex(%u, %p)", plane, equation);
if (mFunctionStubs.glGetClipPlanex != nullptr) {
mFunctionStubs.glGetClipPlanex(plane, equation);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetClipPlanex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetClipPlanex");
return false;
}
}
bool Gles::callGlGetClipPlanexOES(Stack* stack, bool pushReturn) {
auto equation = stack->pop<GLfixed*>();
auto plane = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetClipPlanexOES(%u, %p)", plane, equation);
if (mFunctionStubs.glGetClipPlanexOES != nullptr) {
mFunctionStubs.glGetClipPlanexOES(plane, equation);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetClipPlanexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetClipPlanexOES");
return false;
}
}
bool Gles::callGlGetFixedv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFixedv(%u, %p)", pname, params);
if (mFunctionStubs.glGetFixedv != nullptr) {
mFunctionStubs.glGetFixedv(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFixedv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFixedv");
return false;
}
}
bool Gles::callGlGetFixedvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFixedvOES(%u, %p)", pname, params);
if (mFunctionStubs.glGetFixedvOES != nullptr) {
mFunctionStubs.glGetFixedvOES(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFixedvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFixedvOES");
return false;
}
}
bool Gles::callGlGetFramebufferAttachmentParameterivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto attachment = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetFramebufferAttachmentParameterivOES(%u, %u, %u, %p)", target, attachment, pname, params);
if (mFunctionStubs.glGetFramebufferAttachmentParameterivOES != nullptr) {
mFunctionStubs.glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetFramebufferAttachmentParameterivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetFramebufferAttachmentParameterivOES");
return false;
}
}
bool Gles::callGlGetLightfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetLightfv(%u, %u, %p)", light, pname, params);
if (mFunctionStubs.glGetLightfv != nullptr) {
mFunctionStubs.glGetLightfv(light, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetLightfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetLightfv");
return false;
}
}
bool Gles::callGlGetLightxv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetLightxv(%u, %u, %p)", light, pname, params);
if (mFunctionStubs.glGetLightxv != nullptr) {
mFunctionStubs.glGetLightxv(light, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetLightxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetLightxv");
return false;
}
}
bool Gles::callGlGetLightxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetLightxvOES(%u, %u, %p)", light, pname, params);
if (mFunctionStubs.glGetLightxvOES != nullptr) {
mFunctionStubs.glGetLightxvOES(light, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetLightxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetLightxvOES");
return false;
}
}
bool Gles::callGlGetMaterialfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetMaterialfv(%u, %u, %p)", face, pname, params);
if (mFunctionStubs.glGetMaterialfv != nullptr) {
mFunctionStubs.glGetMaterialfv(face, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetMaterialfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetMaterialfv");
return false;
}
}
bool Gles::callGlGetMaterialxv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetMaterialxv(%u, %u, %p)", face, pname, params);
if (mFunctionStubs.glGetMaterialxv != nullptr) {
mFunctionStubs.glGetMaterialxv(face, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetMaterialxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetMaterialxv");
return false;
}
}
bool Gles::callGlGetMaterialxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetMaterialxvOES(%u, %u, %p)", face, pname, params);
if (mFunctionStubs.glGetMaterialxvOES != nullptr) {
mFunctionStubs.glGetMaterialxvOES(face, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetMaterialxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetMaterialxvOES");
return false;
}
}
bool Gles::callGlGetRenderbufferParameterivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetRenderbufferParameterivOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetRenderbufferParameterivOES != nullptr) {
mFunctionStubs.glGetRenderbufferParameterivOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetRenderbufferParameterivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetRenderbufferParameterivOES");
return false;
}
}
bool Gles::callGlGetTexEnvfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexEnvfv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexEnvfv != nullptr) {
mFunctionStubs.glGetTexEnvfv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexEnvfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexEnvfv");
return false;
}
}
bool Gles::callGlGetTexEnviv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexEnviv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexEnviv != nullptr) {
mFunctionStubs.glGetTexEnviv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexEnviv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexEnviv");
return false;
}
}
bool Gles::callGlGetTexEnvxv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexEnvxv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexEnvxv != nullptr) {
mFunctionStubs.glGetTexEnvxv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexEnvxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexEnvxv");
return false;
}
}
bool Gles::callGlGetTexEnvxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexEnvxvOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexEnvxvOES != nullptr) {
mFunctionStubs.glGetTexEnvxvOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexEnvxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexEnvxvOES");
return false;
}
}
bool Gles::callGlGetTexGenfvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexGenfvOES(%u, %u, %p)", coord, pname, params);
if (mFunctionStubs.glGetTexGenfvOES != nullptr) {
mFunctionStubs.glGetTexGenfvOES(coord, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexGenfvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexGenfvOES");
return false;
}
}
bool Gles::callGlGetTexGenivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexGenivOES(%u, %u, %p)", coord, pname, params);
if (mFunctionStubs.glGetTexGenivOES != nullptr) {
mFunctionStubs.glGetTexGenivOES(coord, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexGenivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexGenivOES");
return false;
}
}
bool Gles::callGlGetTexGenxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexGenxvOES(%u, %u, %p)", coord, pname, params);
if (mFunctionStubs.glGetTexGenxvOES != nullptr) {
mFunctionStubs.glGetTexGenxvOES(coord, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexGenxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexGenxvOES");
return false;
}
}
bool Gles::callGlGetTexParameterxv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterxv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexParameterxv != nullptr) {
mFunctionStubs.glGetTexParameterxv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterxv");
return false;
}
}
bool Gles::callGlGetTexParameterxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glGetTexParameterxvOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glGetTexParameterxvOES != nullptr) {
mFunctionStubs.glGetTexParameterxvOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glGetTexParameterxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glGetTexParameterxvOES");
return false;
}
}
bool Gles::callGlIsFramebufferOES(Stack* stack, bool pushReturn) {
auto framebuffer = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsFramebufferOES(%" PRIu32 ")", framebuffer);
if (mFunctionStubs.glIsFramebufferOES != nullptr) {
GLboolean return_value = mFunctionStubs.glIsFramebufferOES(framebuffer);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsFramebufferOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsFramebufferOES");
return false;
}
}
bool Gles::callGlIsRenderbufferOES(Stack* stack, bool pushReturn) {
auto renderbuffer = stack->pop<uint32_t>();
if (stack->isValid()) {
GAPID_INFO("glIsRenderbufferOES(%" PRIu32 ")", renderbuffer);
if (mFunctionStubs.glIsRenderbufferOES != nullptr) {
GLboolean return_value = mFunctionStubs.glIsRenderbufferOES(renderbuffer);
GAPID_INFO("Returned: %" PRIu8 "", return_value);
if (pushReturn) {
stack->push<GLboolean>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glIsRenderbufferOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glIsRenderbufferOES");
return false;
}
}
bool Gles::callGlLightModelf(Stack* stack, bool pushReturn) {
auto param = stack->pop<float>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightModelf(%u, %f)", pname, param);
if (mFunctionStubs.glLightModelf != nullptr) {
mFunctionStubs.glLightModelf(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightModelf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightModelf");
return false;
}
}
bool Gles::callGlLightModelfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightModelfv(%u, %p)", pname, params);
if (mFunctionStubs.glLightModelfv != nullptr) {
mFunctionStubs.glLightModelfv(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightModelfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightModelfv");
return false;
}
}
bool Gles::callGlLightModelx(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightModelx(%u, %" PRId32 ")", pname, param);
if (mFunctionStubs.glLightModelx != nullptr) {
mFunctionStubs.glLightModelx(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightModelx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightModelx");
return false;
}
}
bool Gles::callGlLightModelxOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightModelxOES(%u, %" PRId32 ")", pname, param);
if (mFunctionStubs.glLightModelxOES != nullptr) {
mFunctionStubs.glLightModelxOES(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightModelxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightModelxOES");
return false;
}
}
bool Gles::callGlLightModelxv(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightModelxv(%u, %p)", pname, param);
if (mFunctionStubs.glLightModelxv != nullptr) {
mFunctionStubs.glLightModelxv(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightModelxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightModelxv");
return false;
}
}
bool Gles::callGlLightModelxvOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightModelxvOES(%u, %p)", pname, param);
if (mFunctionStubs.glLightModelxvOES != nullptr) {
mFunctionStubs.glLightModelxvOES(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightModelxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightModelxvOES");
return false;
}
}
bool Gles::callGlLightf(Stack* stack, bool pushReturn) {
auto param = stack->pop<float>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightf(%u, %u, %f)", light, pname, param);
if (mFunctionStubs.glLightf != nullptr) {
mFunctionStubs.glLightf(light, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightf");
return false;
}
}
bool Gles::callGlLightfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightfv(%u, %u, %p)", light, pname, params);
if (mFunctionStubs.glLightfv != nullptr) {
mFunctionStubs.glLightfv(light, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightfv");
return false;
}
}
bool Gles::callGlLightx(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightx(%u, %u, %" PRId32 ")", light, pname, param);
if (mFunctionStubs.glLightx != nullptr) {
mFunctionStubs.glLightx(light, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightx");
return false;
}
}
bool Gles::callGlLightxOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightxOES(%u, %u, %" PRId32 ")", light, pname, param);
if (mFunctionStubs.glLightxOES != nullptr) {
mFunctionStubs.glLightxOES(light, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightxOES");
return false;
}
}
bool Gles::callGlLightxv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightxv(%u, %u, %p)", light, pname, params);
if (mFunctionStubs.glLightxv != nullptr) {
mFunctionStubs.glLightxv(light, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightxv");
return false;
}
}
bool Gles::callGlLightxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto light = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLightxvOES(%u, %u, %p)", light, pname, params);
if (mFunctionStubs.glLightxvOES != nullptr) {
mFunctionStubs.glLightxvOES(light, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glLightxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLightxvOES");
return false;
}
}
bool Gles::callGlLineWidthx(Stack* stack, bool pushReturn) {
auto width = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glLineWidthx(%" PRId32 ")", width);
if (mFunctionStubs.glLineWidthx != nullptr) {
mFunctionStubs.glLineWidthx(width);
} else {
GAPID_WARNING("Attempted to call unsupported function glLineWidthx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLineWidthx");
return false;
}
}
bool Gles::callGlLineWidthxOES(Stack* stack, bool pushReturn) {
auto width = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glLineWidthxOES(%" PRId32 ")", width);
if (mFunctionStubs.glLineWidthxOES != nullptr) {
mFunctionStubs.glLineWidthxOES(width);
} else {
GAPID_WARNING("Attempted to call unsupported function glLineWidthxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLineWidthxOES");
return false;
}
}
bool Gles::callGlLoadIdentity(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glLoadIdentity()");
if (mFunctionStubs.glLoadIdentity != nullptr) {
mFunctionStubs.glLoadIdentity();
} else {
GAPID_WARNING("Attempted to call unsupported function glLoadIdentity");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLoadIdentity");
return false;
}
}
bool Gles::callGlLoadMatrixf(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfloat*>();
if (stack->isValid()) {
GAPID_INFO("glLoadMatrixf(%p)", m);
if (mFunctionStubs.glLoadMatrixf != nullptr) {
mFunctionStubs.glLoadMatrixf(m);
} else {
GAPID_WARNING("Attempted to call unsupported function glLoadMatrixf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLoadMatrixf");
return false;
}
}
bool Gles::callGlLoadMatrixx(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfixed*>();
if (stack->isValid()) {
GAPID_INFO("glLoadMatrixx(%p)", m);
if (mFunctionStubs.glLoadMatrixx != nullptr) {
mFunctionStubs.glLoadMatrixx(m);
} else {
GAPID_WARNING("Attempted to call unsupported function glLoadMatrixx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLoadMatrixx");
return false;
}
}
bool Gles::callGlLoadMatrixxOES(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfixed*>();
if (stack->isValid()) {
GAPID_INFO("glLoadMatrixxOES(%p)", m);
if (mFunctionStubs.glLoadMatrixxOES != nullptr) {
mFunctionStubs.glLoadMatrixxOES(m);
} else {
GAPID_WARNING("Attempted to call unsupported function glLoadMatrixxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLoadMatrixxOES");
return false;
}
}
bool Gles::callGlLoadPaletteFromModelViewMatrixOES(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glLoadPaletteFromModelViewMatrixOES()");
if (mFunctionStubs.glLoadPaletteFromModelViewMatrixOES != nullptr) {
mFunctionStubs.glLoadPaletteFromModelViewMatrixOES();
} else {
GAPID_WARNING("Attempted to call unsupported function glLoadPaletteFromModelViewMatrixOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLoadPaletteFromModelViewMatrixOES");
return false;
}
}
bool Gles::callGlLogicOp(Stack* stack, bool pushReturn) {
auto opcode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glLogicOp(%u)", opcode);
if (mFunctionStubs.glLogicOp != nullptr) {
mFunctionStubs.glLogicOp(opcode);
} else {
GAPID_WARNING("Attempted to call unsupported function glLogicOp");
}
return true;
} else {
GAPID_WARNING("Error during calling function glLogicOp");
return false;
}
}
bool Gles::callGlMaterialf(Stack* stack, bool pushReturn) {
auto param = stack->pop<float>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMaterialf(%u, %u, %f)", face, pname, param);
if (mFunctionStubs.glMaterialf != nullptr) {
mFunctionStubs.glMaterialf(face, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glMaterialf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMaterialf");
return false;
}
}
bool Gles::callGlMaterialfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMaterialfv(%u, %u, %p)", face, pname, params);
if (mFunctionStubs.glMaterialfv != nullptr) {
mFunctionStubs.glMaterialfv(face, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glMaterialfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMaterialfv");
return false;
}
}
bool Gles::callGlMaterialx(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMaterialx(%u, %u, %" PRId32 ")", face, pname, param);
if (mFunctionStubs.glMaterialx != nullptr) {
mFunctionStubs.glMaterialx(face, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glMaterialx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMaterialx");
return false;
}
}
bool Gles::callGlMaterialxOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMaterialxOES(%u, %u, %" PRId32 ")", face, pname, param);
if (mFunctionStubs.glMaterialxOES != nullptr) {
mFunctionStubs.glMaterialxOES(face, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glMaterialxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMaterialxOES");
return false;
}
}
bool Gles::callGlMaterialxv(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMaterialxv(%u, %u, %p)", face, pname, param);
if (mFunctionStubs.glMaterialxv != nullptr) {
mFunctionStubs.glMaterialxv(face, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glMaterialxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMaterialxv");
return false;
}
}
bool Gles::callGlMaterialxvOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto face = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMaterialxvOES(%u, %u, %p)", face, pname, param);
if (mFunctionStubs.glMaterialxvOES != nullptr) {
mFunctionStubs.glMaterialxvOES(face, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glMaterialxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMaterialxvOES");
return false;
}
}
bool Gles::callGlMatrixIndexPointerOES(Stack* stack, bool pushReturn) {
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glMatrixIndexPointerOES(%" PRId32 ", %u, %" PRId32 ", %p)", size, type, stride, pointer);
if (mFunctionStubs.glMatrixIndexPointerOES != nullptr) {
mFunctionStubs.glMatrixIndexPointerOES(size, type, stride, pointer);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixIndexPointerOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixIndexPointerOES");
return false;
}
}
bool Gles::callGlMatrixMode(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMatrixMode(%u)", mode);
if (mFunctionStubs.glMatrixMode != nullptr) {
mFunctionStubs.glMatrixMode(mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixMode");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixMode");
return false;
}
}
bool Gles::callGlMultMatrixf(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfloat*>();
if (stack->isValid()) {
GAPID_INFO("glMultMatrixf(%p)", m);
if (mFunctionStubs.glMultMatrixf != nullptr) {
mFunctionStubs.glMultMatrixf(m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultMatrixf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultMatrixf");
return false;
}
}
bool Gles::callGlMultMatrixx(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfixed*>();
if (stack->isValid()) {
GAPID_INFO("glMultMatrixx(%p)", m);
if (mFunctionStubs.glMultMatrixx != nullptr) {
mFunctionStubs.glMultMatrixx(m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultMatrixx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultMatrixx");
return false;
}
}
bool Gles::callGlMultMatrixxOES(Stack* stack, bool pushReturn) {
auto m = stack->pop<GLfixed*>();
if (stack->isValid()) {
GAPID_INFO("glMultMatrixxOES(%p)", m);
if (mFunctionStubs.glMultMatrixxOES != nullptr) {
mFunctionStubs.glMultMatrixxOES(m);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultMatrixxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultMatrixxOES");
return false;
}
}
bool Gles::callGlMultiTexCoord4f(Stack* stack, bool pushReturn) {
auto v3 = stack->pop<float>();
auto v2 = stack->pop<float>();
auto v1 = stack->pop<float>();
auto v0 = stack->pop<float>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiTexCoord4f(%u, %f, %f, %f, %f)", target, v0, v1, v2, v3);
if (mFunctionStubs.glMultiTexCoord4f != nullptr) {
mFunctionStubs.glMultiTexCoord4f(target, v0, v1, v2, v3);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiTexCoord4f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiTexCoord4f");
return false;
}
}
bool Gles::callGlMultiTexCoord4x(Stack* stack, bool pushReturn) {
auto v3 = stack->pop<int32_t>();
auto v2 = stack->pop<int32_t>();
auto v1 = stack->pop<int32_t>();
auto v0 = stack->pop<int32_t>();
auto texture = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiTexCoord4x(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", texture, v0, v1, v2, v3);
if (mFunctionStubs.glMultiTexCoord4x != nullptr) {
mFunctionStubs.glMultiTexCoord4x(texture, v0, v1, v2, v3);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiTexCoord4x");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiTexCoord4x");
return false;
}
}
bool Gles::callGlMultiTexCoord4xOES(Stack* stack, bool pushReturn) {
auto v3 = stack->pop<int32_t>();
auto v2 = stack->pop<int32_t>();
auto v1 = stack->pop<int32_t>();
auto v0 = stack->pop<int32_t>();
auto texture = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glMultiTexCoord4xOES(%u, %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", texture, v0, v1, v2, v3);
if (mFunctionStubs.glMultiTexCoord4xOES != nullptr) {
mFunctionStubs.glMultiTexCoord4xOES(texture, v0, v1, v2, v3);
} else {
GAPID_WARNING("Attempted to call unsupported function glMultiTexCoord4xOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMultiTexCoord4xOES");
return false;
}
}
bool Gles::callGlNormal3f(Stack* stack, bool pushReturn) {
auto nz = stack->pop<float>();
auto ny = stack->pop<float>();
auto nx = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glNormal3f(%f, %f, %f)", nx, ny, nz);
if (mFunctionStubs.glNormal3f != nullptr) {
mFunctionStubs.glNormal3f(nx, ny, nz);
} else {
GAPID_WARNING("Attempted to call unsupported function glNormal3f");
}
return true;
} else {
GAPID_WARNING("Error during calling function glNormal3f");
return false;
}
}
bool Gles::callGlNormal3x(Stack* stack, bool pushReturn) {
auto nz = stack->pop<int32_t>();
auto ny = stack->pop<int32_t>();
auto nx = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glNormal3x(%" PRId32 ", %" PRId32 ", %" PRId32 ")", nx, ny, nz);
if (mFunctionStubs.glNormal3x != nullptr) {
mFunctionStubs.glNormal3x(nx, ny, nz);
} else {
GAPID_WARNING("Attempted to call unsupported function glNormal3x");
}
return true;
} else {
GAPID_WARNING("Error during calling function glNormal3x");
return false;
}
}
bool Gles::callGlNormal3xOES(Stack* stack, bool pushReturn) {
auto nz = stack->pop<int32_t>();
auto ny = stack->pop<int32_t>();
auto nx = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glNormal3xOES(%" PRId32 ", %" PRId32 ", %" PRId32 ")", nx, ny, nz);
if (mFunctionStubs.glNormal3xOES != nullptr) {
mFunctionStubs.glNormal3xOES(nx, ny, nz);
} else {
GAPID_WARNING("Attempted to call unsupported function glNormal3xOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glNormal3xOES");
return false;
}
}
bool Gles::callGlNormalPointer(Stack* stack, bool pushReturn) {
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glNormalPointer(%u, %" PRId32 ", %p)", type, stride, pointer);
if (mFunctionStubs.glNormalPointer != nullptr) {
mFunctionStubs.glNormalPointer(type, stride, pointer);
} else {
GAPID_WARNING("Attempted to call unsupported function glNormalPointer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glNormalPointer");
return false;
}
}
bool Gles::callGlOrthof(Stack* stack, bool pushReturn) {
auto f = stack->pop<float>();
auto n = stack->pop<float>();
auto t = stack->pop<float>();
auto b = stack->pop<float>();
auto r = stack->pop<float>();
auto l = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glOrthof(%f, %f, %f, %f, %f, %f)", l, r, b, t, n, f);
if (mFunctionStubs.glOrthof != nullptr) {
mFunctionStubs.glOrthof(l, r, b, t, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glOrthof");
}
return true;
} else {
GAPID_WARNING("Error during calling function glOrthof");
return false;
}
}
bool Gles::callGlOrthofOES(Stack* stack, bool pushReturn) {
auto f = stack->pop<float>();
auto n = stack->pop<float>();
auto t = stack->pop<float>();
auto b = stack->pop<float>();
auto r = stack->pop<float>();
auto l = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glOrthofOES(%f, %f, %f, %f, %f, %f)", l, r, b, t, n, f);
if (mFunctionStubs.glOrthofOES != nullptr) {
mFunctionStubs.glOrthofOES(l, r, b, t, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glOrthofOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glOrthofOES");
return false;
}
}
bool Gles::callGlOrthox(Stack* stack, bool pushReturn) {
auto f = stack->pop<int32_t>();
auto n = stack->pop<int32_t>();
auto t = stack->pop<int32_t>();
auto b = stack->pop<int32_t>();
auto r = stack->pop<int32_t>();
auto l = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glOrthox(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", l, r, b, t, n, f);
if (mFunctionStubs.glOrthox != nullptr) {
mFunctionStubs.glOrthox(l, r, b, t, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glOrthox");
}
return true;
} else {
GAPID_WARNING("Error during calling function glOrthox");
return false;
}
}
bool Gles::callGlOrthoxOES(Stack* stack, bool pushReturn) {
auto f = stack->pop<int32_t>();
auto n = stack->pop<int32_t>();
auto t = stack->pop<int32_t>();
auto b = stack->pop<int32_t>();
auto r = stack->pop<int32_t>();
auto l = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glOrthoxOES(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", l, r, b, t, n, f);
if (mFunctionStubs.glOrthoxOES != nullptr) {
mFunctionStubs.glOrthoxOES(l, r, b, t, n, f);
} else {
GAPID_WARNING("Attempted to call unsupported function glOrthoxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glOrthoxOES");
return false;
}
}
bool Gles::callGlPointParameterf(Stack* stack, bool pushReturn) {
auto param = stack->pop<float>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPointParameterf(%u, %f)", pname, param);
if (mFunctionStubs.glPointParameterf != nullptr) {
mFunctionStubs.glPointParameterf(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointParameterf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointParameterf");
return false;
}
}
bool Gles::callGlPointParameterfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPointParameterfv(%u, %p)", pname, params);
if (mFunctionStubs.glPointParameterfv != nullptr) {
mFunctionStubs.glPointParameterfv(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointParameterfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointParameterfv");
return false;
}
}
bool Gles::callGlPointParameterx(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPointParameterx(%u, %" PRId32 ")", pname, param);
if (mFunctionStubs.glPointParameterx != nullptr) {
mFunctionStubs.glPointParameterx(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointParameterx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointParameterx");
return false;
}
}
bool Gles::callGlPointParameterxOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPointParameterxOES(%u, %" PRId32 ")", pname, param);
if (mFunctionStubs.glPointParameterxOES != nullptr) {
mFunctionStubs.glPointParameterxOES(pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointParameterxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointParameterxOES");
return false;
}
}
bool Gles::callGlPointParameterxv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPointParameterxv(%u, %p)", pname, params);
if (mFunctionStubs.glPointParameterxv != nullptr) {
mFunctionStubs.glPointParameterxv(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointParameterxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointParameterxv");
return false;
}
}
bool Gles::callGlPointParameterxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPointParameterxvOES(%u, %p)", pname, params);
if (mFunctionStubs.glPointParameterxvOES != nullptr) {
mFunctionStubs.glPointParameterxvOES(pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointParameterxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointParameterxvOES");
return false;
}
}
bool Gles::callGlPointSize(Stack* stack, bool pushReturn) {
auto size = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glPointSize(%f)", size);
if (mFunctionStubs.glPointSize != nullptr) {
mFunctionStubs.glPointSize(size);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointSize");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointSize");
return false;
}
}
bool Gles::callGlPointSizePointerOES(Stack* stack, bool pushReturn) {
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPointSizePointerOES(%u, %" PRId32 ", %p)", type, stride, pointer);
if (mFunctionStubs.glPointSizePointerOES != nullptr) {
mFunctionStubs.glPointSizePointerOES(type, stride, pointer);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointSizePointerOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointSizePointerOES");
return false;
}
}
bool Gles::callGlPointSizex(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glPointSizex(%" PRId32 ")", size);
if (mFunctionStubs.glPointSizex != nullptr) {
mFunctionStubs.glPointSizex(size);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointSizex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointSizex");
return false;
}
}
bool Gles::callGlPointSizexOES(Stack* stack, bool pushReturn) {
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glPointSizexOES(%" PRId32 ")", size);
if (mFunctionStubs.glPointSizexOES != nullptr) {
mFunctionStubs.glPointSizexOES(size);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointSizexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointSizexOES");
return false;
}
}
bool Gles::callGlPolygonOffsetx(Stack* stack, bool pushReturn) {
auto units = stack->pop<int32_t>();
auto factor = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glPolygonOffsetx(%" PRId32 ", %" PRId32 ")", factor, units);
if (mFunctionStubs.glPolygonOffsetx != nullptr) {
mFunctionStubs.glPolygonOffsetx(factor, units);
} else {
GAPID_WARNING("Attempted to call unsupported function glPolygonOffsetx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPolygonOffsetx");
return false;
}
}
bool Gles::callGlPolygonOffsetxOES(Stack* stack, bool pushReturn) {
auto units = stack->pop<int32_t>();
auto factor = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glPolygonOffsetxOES(%" PRId32 ", %" PRId32 ")", factor, units);
if (mFunctionStubs.glPolygonOffsetxOES != nullptr) {
mFunctionStubs.glPolygonOffsetxOES(factor, units);
} else {
GAPID_WARNING("Attempted to call unsupported function glPolygonOffsetxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPolygonOffsetxOES");
return false;
}
}
bool Gles::callGlPopMatrix(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glPopMatrix()");
if (mFunctionStubs.glPopMatrix != nullptr) {
mFunctionStubs.glPopMatrix();
} else {
GAPID_WARNING("Attempted to call unsupported function glPopMatrix");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPopMatrix");
return false;
}
}
bool Gles::callGlPushMatrix(Stack* stack, bool pushReturn) {
if (stack->isValid()) {
GAPID_INFO("glPushMatrix()");
if (mFunctionStubs.glPushMatrix != nullptr) {
mFunctionStubs.glPushMatrix();
} else {
GAPID_WARNING("Attempted to call unsupported function glPushMatrix");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPushMatrix");
return false;
}
}
bool Gles::callGlQueryMatrixxOES(Stack* stack, bool pushReturn) {
auto exponent = stack->pop<GLint*>();
auto mantissa = stack->pop<GLfixed*>();
if (stack->isValid()) {
GAPID_INFO("glQueryMatrixxOES(%p, %p)", mantissa, exponent);
if (mFunctionStubs.glQueryMatrixxOES != nullptr) {
GLbitfield return_value = mFunctionStubs.glQueryMatrixxOES(mantissa, exponent);
GAPID_INFO("Returned: %u", return_value);
if (pushReturn) {
stack->push<GLbitfield>(return_value);
}
} else {
GAPID_WARNING("Attempted to call unsupported function glQueryMatrixxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glQueryMatrixxOES");
return false;
}
}
bool Gles::callGlRenderbufferStorageOES(Stack* stack, bool pushReturn) {
auto height = stack->pop<int32_t>();
auto width = stack->pop<int32_t>();
auto internalformat = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glRenderbufferStorageOES(%u, %u, %" PRId32 ", %" PRId32 ")", target, internalformat, width, height);
if (mFunctionStubs.glRenderbufferStorageOES != nullptr) {
mFunctionStubs.glRenderbufferStorageOES(target, internalformat, width, height);
} else {
GAPID_WARNING("Attempted to call unsupported function glRenderbufferStorageOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRenderbufferStorageOES");
return false;
}
}
bool Gles::callGlRotatef(Stack* stack, bool pushReturn) {
auto z = stack->pop<float>();
auto y = stack->pop<float>();
auto x = stack->pop<float>();
auto angle = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glRotatef(%f, %f, %f, %f)", angle, x, y, z);
if (mFunctionStubs.glRotatef != nullptr) {
mFunctionStubs.glRotatef(angle, x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glRotatef");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRotatef");
return false;
}
}
bool Gles::callGlRotatex(Stack* stack, bool pushReturn) {
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
auto angle = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glRotatex(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", angle, x, y, z);
if (mFunctionStubs.glRotatex != nullptr) {
mFunctionStubs.glRotatex(angle, x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glRotatex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRotatex");
return false;
}
}
bool Gles::callGlRotatexOES(Stack* stack, bool pushReturn) {
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
auto angle = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glRotatexOES(%" PRId32 ", %" PRId32 ", %" PRId32 ", %" PRId32 ")", angle, x, y, z);
if (mFunctionStubs.glRotatexOES != nullptr) {
mFunctionStubs.glRotatexOES(angle, x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glRotatexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glRotatexOES");
return false;
}
}
bool Gles::callGlSampleCoveragex(Stack* stack, bool pushReturn) {
auto invert = stack->pop<uint8_t>();
auto value = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glSampleCoveragex(%" PRId32 ", %" PRIu8 ")", value, invert);
if (mFunctionStubs.glSampleCoveragex != nullptr) {
mFunctionStubs.glSampleCoveragex(value, invert);
} else {
GAPID_WARNING("Attempted to call unsupported function glSampleCoveragex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSampleCoveragex");
return false;
}
}
bool Gles::callGlSampleCoveragexOES(Stack* stack, bool pushReturn) {
auto invert = stack->pop<uint8_t>();
auto value = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glSampleCoveragexOES(%" PRId32 ", %" PRIu8 ")", value, invert);
if (mFunctionStubs.glSampleCoveragexOES != nullptr) {
mFunctionStubs.glSampleCoveragexOES(value, invert);
} else {
GAPID_WARNING("Attempted to call unsupported function glSampleCoveragexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glSampleCoveragexOES");
return false;
}
}
bool Gles::callGlScalef(Stack* stack, bool pushReturn) {
auto z = stack->pop<float>();
auto y = stack->pop<float>();
auto x = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glScalef(%f, %f, %f)", x, y, z);
if (mFunctionStubs.glScalef != nullptr) {
mFunctionStubs.glScalef(x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glScalef");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScalef");
return false;
}
}
bool Gles::callGlScalex(Stack* stack, bool pushReturn) {
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glScalex(%" PRId32 ", %" PRId32 ", %" PRId32 ")", x, y, z);
if (mFunctionStubs.glScalex != nullptr) {
mFunctionStubs.glScalex(x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glScalex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScalex");
return false;
}
}
bool Gles::callGlScalexOES(Stack* stack, bool pushReturn) {
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glScalexOES(%" PRId32 ", %" PRId32 ", %" PRId32 ")", x, y, z);
if (mFunctionStubs.glScalexOES != nullptr) {
mFunctionStubs.glScalexOES(x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glScalexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glScalexOES");
return false;
}
}
bool Gles::callGlShadeModel(Stack* stack, bool pushReturn) {
auto mode = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glShadeModel(%u)", mode);
if (mFunctionStubs.glShadeModel != nullptr) {
mFunctionStubs.glShadeModel(mode);
} else {
GAPID_WARNING("Attempted to call unsupported function glShadeModel");
}
return true;
} else {
GAPID_WARNING("Error during calling function glShadeModel");
return false;
}
}
bool Gles::callGlTexCoordPointer(Stack* stack, bool pushReturn) {
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glTexCoordPointer(%" PRId32 ", %u, %" PRId32 ", %p)", size, type, stride, pointer);
if (mFunctionStubs.glTexCoordPointer != nullptr) {
mFunctionStubs.glTexCoordPointer(size, type, stride, pointer);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexCoordPointer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexCoordPointer");
return false;
}
}
bool Gles::callGlTexEnvf(Stack* stack, bool pushReturn) {
auto param = stack->pop<float>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexEnvf(%u, %u, %f)", target, pname, param);
if (mFunctionStubs.glTexEnvf != nullptr) {
mFunctionStubs.glTexEnvf(target, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexEnvf");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexEnvf");
return false;
}
}
bool Gles::callGlTexEnvfv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexEnvfv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexEnvfv != nullptr) {
mFunctionStubs.glTexEnvfv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexEnvfv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexEnvfv");
return false;
}
}
bool Gles::callGlTexEnvi(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexEnvi(%u, %u, %" PRId32 ")", target, pname, param);
if (mFunctionStubs.glTexEnvi != nullptr) {
mFunctionStubs.glTexEnvi(target, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexEnvi");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexEnvi");
return false;
}
}
bool Gles::callGlTexEnviv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexEnviv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexEnviv != nullptr) {
mFunctionStubs.glTexEnviv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexEnviv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexEnviv");
return false;
}
}
bool Gles::callGlTexEnvx(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexEnvx(%u, %u, %" PRId32 ")", target, pname, param);
if (mFunctionStubs.glTexEnvx != nullptr) {
mFunctionStubs.glTexEnvx(target, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexEnvx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexEnvx");
return false;
}
}
bool Gles::callGlTexEnvxOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexEnvxOES(%u, %u, %" PRId32 ")", target, pname, param);
if (mFunctionStubs.glTexEnvxOES != nullptr) {
mFunctionStubs.glTexEnvxOES(target, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexEnvxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexEnvxOES");
return false;
}
}
bool Gles::callGlTexEnvxv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexEnvxv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexEnvxv != nullptr) {
mFunctionStubs.glTexEnvxv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexEnvxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexEnvxv");
return false;
}
}
bool Gles::callGlTexEnvxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexEnvxvOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexEnvxvOES != nullptr) {
mFunctionStubs.glTexEnvxvOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexEnvxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexEnvxvOES");
return false;
}
}
bool Gles::callGlTexGenfOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<float>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexGenfOES(%u, %u, %f)", coord, pname, param);
if (mFunctionStubs.glTexGenfOES != nullptr) {
mFunctionStubs.glTexGenfOES(coord, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexGenfOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexGenfOES");
return false;
}
}
bool Gles::callGlTexGenfvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfloat*>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexGenfvOES(%u, %u, %p)", coord, pname, params);
if (mFunctionStubs.glTexGenfvOES != nullptr) {
mFunctionStubs.glTexGenfvOES(coord, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexGenfvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexGenfvOES");
return false;
}
}
bool Gles::callGlTexGeniOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexGeniOES(%u, %u, %" PRId32 ")", coord, pname, param);
if (mFunctionStubs.glTexGeniOES != nullptr) {
mFunctionStubs.glTexGeniOES(coord, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexGeniOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexGeniOES");
return false;
}
}
bool Gles::callGlTexGenivOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLint*>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexGenivOES(%u, %u, %p)", coord, pname, params);
if (mFunctionStubs.glTexGenivOES != nullptr) {
mFunctionStubs.glTexGenivOES(coord, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexGenivOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexGenivOES");
return false;
}
}
bool Gles::callGlTexGenxOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexGenxOES(%u, %u, %" PRId32 ")", coord, pname, param);
if (mFunctionStubs.glTexGenxOES != nullptr) {
mFunctionStubs.glTexGenxOES(coord, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexGenxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexGenxOES");
return false;
}
}
bool Gles::callGlTexGenxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto coord = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexGenxvOES(%u, %u, %p)", coord, pname, params);
if (mFunctionStubs.glTexGenxvOES != nullptr) {
mFunctionStubs.glTexGenxvOES(coord, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexGenxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexGenxvOES");
return false;
}
}
bool Gles::callGlTexParameterx(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterx(%u, %u, %" PRId32 ")", target, pname, param);
if (mFunctionStubs.glTexParameterx != nullptr) {
mFunctionStubs.glTexParameterx(target, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterx");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterx");
return false;
}
}
bool Gles::callGlTexParameterxOES(Stack* stack, bool pushReturn) {
auto param = stack->pop<int32_t>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterxOES(%u, %u, %" PRId32 ")", target, pname, param);
if (mFunctionStubs.glTexParameterxOES != nullptr) {
mFunctionStubs.glTexParameterxOES(target, pname, param);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterxOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterxOES");
return false;
}
}
bool Gles::callGlTexParameterxv(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterxv(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterxv != nullptr) {
mFunctionStubs.glTexParameterxv(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterxv");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterxv");
return false;
}
}
bool Gles::callGlTexParameterxvOES(Stack* stack, bool pushReturn) {
auto params = stack->pop<GLfixed*>();
auto pname = stack->pop<GLenum>();
auto target = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glTexParameterxvOES(%u, %u, %p)", target, pname, params);
if (mFunctionStubs.glTexParameterxvOES != nullptr) {
mFunctionStubs.glTexParameterxvOES(target, pname, params);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexParameterxvOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexParameterxvOES");
return false;
}
}
bool Gles::callGlTranslatef(Stack* stack, bool pushReturn) {
auto z = stack->pop<float>();
auto y = stack->pop<float>();
auto x = stack->pop<float>();
if (stack->isValid()) {
GAPID_INFO("glTranslatef(%f, %f, %f)", x, y, z);
if (mFunctionStubs.glTranslatef != nullptr) {
mFunctionStubs.glTranslatef(x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glTranslatef");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTranslatef");
return false;
}
}
bool Gles::callGlTranslatex(Stack* stack, bool pushReturn) {
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glTranslatex(%" PRId32 ", %" PRId32 ", %" PRId32 ")", x, y, z);
if (mFunctionStubs.glTranslatex != nullptr) {
mFunctionStubs.glTranslatex(x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glTranslatex");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTranslatex");
return false;
}
}
bool Gles::callGlTranslatexOES(Stack* stack, bool pushReturn) {
auto z = stack->pop<int32_t>();
auto y = stack->pop<int32_t>();
auto x = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glTranslatexOES(%" PRId32 ", %" PRId32 ", %" PRId32 ")", x, y, z);
if (mFunctionStubs.glTranslatexOES != nullptr) {
mFunctionStubs.glTranslatexOES(x, y, z);
} else {
GAPID_WARNING("Attempted to call unsupported function glTranslatexOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTranslatexOES");
return false;
}
}
bool Gles::callGlVertexPointer(Stack* stack, bool pushReturn) {
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexPointer(%" PRId32 ", %u, %" PRId32 ", %p)", size, type, stride, pointer);
if (mFunctionStubs.glVertexPointer != nullptr) {
mFunctionStubs.glVertexPointer(size, type, stride, pointer);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexPointer");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexPointer");
return false;
}
}
bool Gles::callGlWeightPointerOES(Stack* stack, bool pushReturn) {
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glWeightPointerOES(%" PRId32 ", %u, %" PRId32 ", %p)", size, type, stride, pointer);
if (mFunctionStubs.glWeightPointerOES != nullptr) {
mFunctionStubs.glWeightPointerOES(size, type, stride, pointer);
} else {
GAPID_WARNING("Attempted to call unsupported function glWeightPointerOES");
}
return true;
} else {
GAPID_WARNING("Error during calling function glWeightPointerOES");
return false;
}
}
bool Gles::callGlColorPointerBounds(Stack* stack, bool pushReturn) {
auto count = stack->pop<int32_t>();
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glColorPointerBounds(%" PRId32 ", %u, %" PRId32 ", %p, %" PRId32 ")", size, type, stride, pointer, count);
if (mFunctionStubs.glColorPointerBounds != nullptr) {
mFunctionStubs.glColorPointerBounds(size, type, stride, pointer, count);
} else {
GAPID_WARNING("Attempted to call unsupported function glColorPointerBounds");
}
return true;
} else {
GAPID_WARNING("Error during calling function glColorPointerBounds");
return false;
}
}
bool Gles::callGlNormalPointerBounds(Stack* stack, bool pushReturn) {
auto count = stack->pop<int32_t>();
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glNormalPointerBounds(%u, %" PRId32 ", %p, %" PRId32 ")", type, stride, pointer, count);
if (mFunctionStubs.glNormalPointerBounds != nullptr) {
mFunctionStubs.glNormalPointerBounds(type, stride, pointer, count);
} else {
GAPID_WARNING("Attempted to call unsupported function glNormalPointerBounds");
}
return true;
} else {
GAPID_WARNING("Error during calling function glNormalPointerBounds");
return false;
}
}
bool Gles::callGlTexCoordPointerBounds(Stack* stack, bool pushReturn) {
auto count = stack->pop<int32_t>();
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glTexCoordPointerBounds(%" PRId32 ", %u, %" PRId32 ", %p, %" PRId32 ")", size, type, stride, pointer, count);
if (mFunctionStubs.glTexCoordPointerBounds != nullptr) {
mFunctionStubs.glTexCoordPointerBounds(size, type, stride, pointer, count);
} else {
GAPID_WARNING("Attempted to call unsupported function glTexCoordPointerBounds");
}
return true;
} else {
GAPID_WARNING("Error during calling function glTexCoordPointerBounds");
return false;
}
}
bool Gles::callGlVertexPointerBounds(Stack* stack, bool pushReturn) {
auto count = stack->pop<int32_t>();
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glVertexPointerBounds(%" PRId32 ", %u, %" PRId32 ", %p, %" PRId32 ")", size, type, stride, pointer, count);
if (mFunctionStubs.glVertexPointerBounds != nullptr) {
mFunctionStubs.glVertexPointerBounds(size, type, stride, pointer, count);
} else {
GAPID_WARNING("Attempted to call unsupported function glVertexPointerBounds");
}
return true;
} else {
GAPID_WARNING("Error during calling function glVertexPointerBounds");
return false;
}
}
bool Gles::callGlPointSizePointerOESBounds(Stack* stack, bool pushReturn) {
auto count = stack->pop<int32_t>();
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
if (stack->isValid()) {
GAPID_INFO("glPointSizePointerOESBounds(%u, %" PRId32 ", %p, %" PRId32 ")", type, stride, pointer, count);
if (mFunctionStubs.glPointSizePointerOESBounds != nullptr) {
mFunctionStubs.glPointSizePointerOESBounds(type, stride, pointer, count);
} else {
GAPID_WARNING("Attempted to call unsupported function glPointSizePointerOESBounds");
}
return true;
} else {
GAPID_WARNING("Error during calling function glPointSizePointerOESBounds");
return false;
}
}
bool Gles::callGlMatrixIndexPointerOESBounds(Stack* stack, bool pushReturn) {
auto count = stack->pop<int32_t>();
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glMatrixIndexPointerOESBounds(%" PRId32 ", %u, %" PRId32 ", %p, %" PRId32 ")", size, type, stride, pointer, count);
if (mFunctionStubs.glMatrixIndexPointerOESBounds != nullptr) {
mFunctionStubs.glMatrixIndexPointerOESBounds(size, type, stride, pointer, count);
} else {
GAPID_WARNING("Attempted to call unsupported function glMatrixIndexPointerOESBounds");
}
return true;
} else {
GAPID_WARNING("Error during calling function glMatrixIndexPointerOESBounds");
return false;
}
}
bool Gles::callGlWeightPointerOESBounds(Stack* stack, bool pushReturn) {
auto count = stack->pop<int32_t>();
auto pointer = stack->pop<void*>();
auto stride = stack->pop<int32_t>();
auto type = stack->pop<GLenum>();
auto size = stack->pop<int32_t>();
if (stack->isValid()) {
GAPID_INFO("glWeightPointerOESBounds(%" PRId32 ", %u, %" PRId32 ", %p, %" PRId32 ")", size, type, stride, pointer, count);
if (mFunctionStubs.glWeightPointerOESBounds != nullptr) {
mFunctionStubs.glWeightPointerOESBounds(size, type, stride, pointer, count);
} else {
GAPID_WARNING("Attempted to call unsupported function glWeightPointerOESBounds");
}
return true;
} else {
GAPID_WARNING("Error during calling function glWeightPointerOESBounds");
return false;
}
}
} // namespace gapir