in renderdoc/driver/gl/gl_driver.cpp [3545:5163]
bool WrappedOpenGL::ProcessChunk(ReadSerialiser &ser, GLChunk chunk)
{
gl_CurChunk = chunk;
// there are unfortunately too many special cases with serialisation to be able to re-use the hook
// definition macros here. Aliases forward to their 'real' functions, but we also share
// serialisation between EXT_dsa, ARB_dsa and non-dsa functions. Likewise for the horrible
// glUniform variants where there are loads of functions that serialise the same way with slight
// type differences.
// we handle this here as we don't want a default: in the switch() below - that means we get a
// warning if any GL chunk is missed.
{
SystemChunk system = (SystemChunk)chunk;
if(system == SystemChunk::DriverInit)
{
GLInitParams InitParams;
SERIALISE_ELEMENT(InitParams);
SERIALISE_CHECK_READ_ERRORS();
m_InitChunkIndex = (uint32_t)m_StructuredFile->chunks.size() - 1;
return true;
}
else if(system == SystemChunk::InitialContentsList)
{
GetResourceManager()->CreateInitialContents(ser);
SERIALISE_CHECK_READ_ERRORS();
return true;
}
else if(system == SystemChunk::InitialContents)
{
return GetResourceManager()->Serialise_InitialState(ser, ResourceId(), NULL, NULL);
}
else if(system == SystemChunk::CaptureScope)
{
return Serialise_CaptureScope(ser);
}
else if(system == SystemChunk::CaptureEnd)
{
bool lastSwap =
m_LastChunk == GLChunk::SwapBuffers || m_LastChunk == GLChunk::wglSwapBuffers ||
m_LastChunk == GLChunk::glXSwapBuffers || m_LastChunk == GLChunk::CGLFlushDrawable ||
m_LastChunk == GLChunk::eglSwapBuffers || m_LastChunk == GLChunk::eglPostSubBufferNV ||
m_LastChunk == GLChunk::eglSwapBuffersWithDamageEXT ||
m_LastChunk == GLChunk::eglSwapBuffersWithDamageKHR;
if(IsLoading(m_State) && !lastSwap)
{
AddEvent();
ActionDescription action;
action.customName = "End of Capture";
action.flags |= ActionFlags::Present;
GLuint col = 0;
GL.glGetNamedFramebufferAttachmentParameterivEXT(m_CurrentDefaultFBO, eGL_COLOR_ATTACHMENT0,
eGL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
(GLint *)&col);
action.copyDestination = GetResourceManager()->GetOriginalID(
GetResourceManager()->GetResID(TextureRes(GetCtx(), col)));
AddAction(action);
}
return true;
}
else if(system < SystemChunk::FirstDriverChunk)
{
RDCERR("Unexpected system chunk in capture data: %u", system);
ser.SkipCurrentChunk();
SERIALISE_CHECK_READ_ERRORS();
return true;
}
}
switch(chunk)
{
case GLChunk::DeviceInitialisation:
{
ResourceId vao, fbo;
SERIALISE_ELEMENT(vao).Hidden();
SERIALISE_ELEMENT(fbo).Named("FBO 0 ID"_lit);
SERIALISE_CHECK_READ_ERRORS();
if(IsReplayingAndReading())
{
// legacy behaviour where we had a single global VAO 0. Create a corresponding VAO so that
// it can be bound and have initial contents applied to it
if(vao != ResourceId())
{
glGenVertexArrays(1, &m_Global_VAO0);
glBindVertexArray(m_Global_VAO0);
GetResourceManager()->AddLiveResource(vao, VertexArrayRes(GetCtx(), m_Global_VAO0));
AddResource(vao, ResourceType::StateObject, "Vertex Array");
GetReplay()->GetResourceDesc(vao).SetCustomName("Default VAO");
GetReplay()->GetResourceDesc(vao).initialisationChunks.push_back(m_InitChunkIndex);
}
// similar behaviour for a single global FBO 0.
if(fbo != ResourceId())
CreateReplayBackbuffer(m_GlobalInitParams, fbo, m_Global_FBO0, "Backbuffer");
}
return true;
}
case GLChunk::glContextInit: return Serialise_ContextInit(ser);
case GLChunk::glGenBuffersARB:
case GLChunk::glGenBuffers: return Serialise_glGenBuffers(ser, 0, 0);
case GLChunk::glCreateBuffers: return Serialise_glCreateBuffers(ser, 0, 0);
case GLChunk::glBufferStorage:
case GLChunk::glBufferStorageEXT:
case GLChunk::glNamedBufferStorage:
case GLChunk::glNamedBufferStorageEXT:
return Serialise_glNamedBufferStorageEXT(ser, 0, 0, 0, 0);
case GLChunk::glBufferData:
case GLChunk::glBufferDataARB:
case GLChunk::glNamedBufferData:
case GLChunk::glNamedBufferDataEXT:
return Serialise_glNamedBufferDataEXT(ser, 0, 0, 0, eGL_NONE);
case GLChunk::glBufferSubData:
case GLChunk::glBufferSubDataARB:
case GLChunk::glNamedBufferSubData:
case GLChunk::glNamedBufferSubDataEXT:
return Serialise_glNamedBufferSubDataEXT(ser, 0, 0, 0, 0);
case GLChunk::glCopyBufferSubData:
case GLChunk::glCopyNamedBufferSubData:
case GLChunk::glNamedCopyBufferSubDataEXT:
return Serialise_glNamedCopyBufferSubDataEXT(ser, 0, 0, 0, 0, 0);
case GLChunk::glBindBufferARB:
case GLChunk::glBindBuffer: return Serialise_glBindBuffer(ser, eGL_NONE, 0);
case GLChunk::glBindBufferBaseEXT:
case GLChunk::glBindBufferBase: return Serialise_glBindBufferBase(ser, eGL_NONE, 0, 0);
case GLChunk::glBindBufferRangeEXT:
case GLChunk::glBindBufferRange: return Serialise_glBindBufferRange(ser, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glBindBuffersBase: return Serialise_glBindBuffersBase(ser, eGL_NONE, 0, 0, 0);
case GLChunk::glBindBuffersRange:
return Serialise_glBindBuffersRange(ser, eGL_NONE, 0, 0, 0, 0, 0);
case GLChunk::glUnmapBuffer:
case GLChunk::glUnmapBufferARB:
case GLChunk::glUnmapBufferOES:
case GLChunk::glUnmapNamedBuffer:
case GLChunk::glUnmapNamedBufferEXT: return Serialise_glUnmapNamedBufferEXT(ser, 0);
case GLChunk::CoherentMapWrite:
case GLChunk::glFlushMappedBufferRange:
case GLChunk::glFlushMappedBufferRangeEXT:
case GLChunk::glFlushMappedNamedBufferRange:
case GLChunk::glFlushMappedNamedBufferRangeEXT:
return Serialise_glFlushMappedNamedBufferRangeEXT(ser, 0, 0, 0);
case GLChunk::glGenTransformFeedbacks: return Serialise_glGenTransformFeedbacks(ser, 0, 0);
case GLChunk::glCreateTransformFeedbacks:
return Serialise_glCreateTransformFeedbacks(ser, 0, 0);
case GLChunk::glTransformFeedbackBufferBase:
return Serialise_glTransformFeedbackBufferBase(ser, 0, 0, 0);
case GLChunk::glTransformFeedbackBufferRange:
return Serialise_glTransformFeedbackBufferRange(ser, 0, 0, 0, 0, 0);
case GLChunk::glBindTransformFeedback:
return Serialise_glBindTransformFeedback(ser, eGL_NONE, 0);
case GLChunk::glBeginTransformFeedbackEXT:
case GLChunk::glBeginTransformFeedback:
return Serialise_glBeginTransformFeedback(ser, eGL_NONE);
case GLChunk::glPauseTransformFeedback: return Serialise_glPauseTransformFeedback(ser);
case GLChunk::glResumeTransformFeedback: return Serialise_glResumeTransformFeedback(ser);
case GLChunk::glEndTransformFeedbackEXT:
case GLChunk::glEndTransformFeedback: return Serialise_glEndTransformFeedback(ser);
case GLChunk::glVertexAttribPointer:
case GLChunk::glVertexAttribPointerARB:
case GLChunk::glVertexArrayVertexAttribOffsetEXT:
return Serialise_glVertexArrayVertexAttribOffsetEXT(ser, 0, 0, 0, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glVertexAttribIPointer:
case GLChunk::glVertexAttribIPointerEXT:
case GLChunk::glVertexArrayVertexAttribIOffsetEXT:
return Serialise_glVertexArrayVertexAttribIOffsetEXT(ser, 0, 0, 0, 0, eGL_NONE, 0, 0);
case GLChunk::glVertexAttribLPointer:
case GLChunk::glVertexAttribLPointerEXT:
case GLChunk::glVertexArrayVertexAttribLOffsetEXT:
return Serialise_glVertexArrayVertexAttribLOffsetEXT(ser, 0, 0, 0, 0, eGL_NONE, 0, 0);
case GLChunk::glVertexAttribBinding:
case GLChunk::glVertexArrayAttribBinding:
case GLChunk::glVertexArrayVertexAttribBindingEXT:
return Serialise_glVertexArrayVertexAttribBindingEXT(ser, 0, 0, 0);
case GLChunk::glVertexAttribFormat:
case GLChunk::glVertexArrayAttribFormat:
case GLChunk::glVertexArrayVertexAttribFormatEXT:
return Serialise_glVertexArrayVertexAttribFormatEXT(ser, 0, 0, 0, eGL_NONE, 0, 0);
case GLChunk::glVertexAttribIFormat:
case GLChunk::glVertexArrayAttribIFormat:
case GLChunk::glVertexArrayVertexAttribIFormatEXT:
return Serialise_glVertexArrayVertexAttribIFormatEXT(ser, 0, 0, 0, eGL_NONE, 0);
case GLChunk::glVertexAttribLFormat:
case GLChunk::glVertexArrayAttribLFormat:
case GLChunk::glVertexArrayVertexAttribLFormatEXT:
return Serialise_glVertexArrayVertexAttribLFormatEXT(ser, 0, 0, 0, eGL_NONE, 0);
case GLChunk::glVertexAttribDivisor:
case GLChunk::glVertexAttribDivisorARB:
case GLChunk::glVertexArrayVertexAttribDivisorEXT:
return Serialise_glVertexArrayVertexAttribDivisorEXT(ser, 0, 0, 0);
case GLChunk::glEnableVertexAttribArray:
case GLChunk::glEnableVertexAttribArrayARB:
case GLChunk::glEnableVertexArrayAttrib:
case GLChunk::glEnableVertexArrayAttribEXT:
return Serialise_glEnableVertexArrayAttribEXT(ser, 0, 0);
case GLChunk::glDisableVertexAttribArray:
case GLChunk::glDisableVertexAttribArrayARB:
case GLChunk::glDisableVertexArrayAttrib:
case GLChunk::glDisableVertexArrayAttribEXT:
return Serialise_glDisableVertexArrayAttribEXT(ser, 0, 0);
case GLChunk::glGenVertexArraysOES:
case GLChunk::glGenVertexArrays: return Serialise_glGenVertexArrays(ser, 0, 0);
case GLChunk::glCreateVertexArrays: return Serialise_glCreateVertexArrays(ser, 0, 0);
case GLChunk::glBindVertexArrayOES:
case GLChunk::glBindVertexArray: return Serialise_glBindVertexArray(ser, 0);
case GLChunk::glVertexArrayElementBuffer:
return Serialise_glVertexArrayElementBuffer(ser, 0, 0);
case GLChunk::glBindVertexBuffer:
case GLChunk::glVertexArrayVertexBuffer:
case GLChunk::glVertexArrayBindVertexBufferEXT:
return Serialise_glVertexArrayBindVertexBufferEXT(ser, 0, 0, 0, 0, 0);
case GLChunk::glBindVertexBuffers:
case GLChunk::glVertexArrayVertexBuffers:
return Serialise_glVertexArrayVertexBuffers(ser, 0, 0, 0, 0, 0, 0);
case GLChunk::glVertexBindingDivisor:
case GLChunk::glVertexArrayBindingDivisor:
case GLChunk::glVertexArrayVertexBindingDivisorEXT:
return Serialise_glVertexArrayVertexBindingDivisorEXT(ser, 0, 0, 0);
case GLChunk::glVertexAttrib1d:
case GLChunk::glVertexAttrib1dARB:
case GLChunk::glVertexAttrib1dv:
case GLChunk::glVertexAttrib1dvARB:
case GLChunk::glVertexAttrib1f:
case GLChunk::glVertexAttrib1fARB:
case GLChunk::glVertexAttrib1fv:
case GLChunk::glVertexAttrib1fvARB:
case GLChunk::glVertexAttrib1s:
case GLChunk::glVertexAttrib1sARB:
case GLChunk::glVertexAttrib1sv:
case GLChunk::glVertexAttrib1svARB:
case GLChunk::glVertexAttrib2d:
case GLChunk::glVertexAttrib2dARB:
case GLChunk::glVertexAttrib2dv:
case GLChunk::glVertexAttrib2dvARB:
case GLChunk::glVertexAttrib2f:
case GLChunk::glVertexAttrib2fARB:
case GLChunk::glVertexAttrib2fv:
case GLChunk::glVertexAttrib2fvARB:
case GLChunk::glVertexAttrib2s:
case GLChunk::glVertexAttrib2sARB:
case GLChunk::glVertexAttrib2sv:
case GLChunk::glVertexAttrib2svARB:
case GLChunk::glVertexAttrib3d:
case GLChunk::glVertexAttrib3dARB:
case GLChunk::glVertexAttrib3dv:
case GLChunk::glVertexAttrib3dvARB:
case GLChunk::glVertexAttrib3f:
case GLChunk::glVertexAttrib3fARB:
case GLChunk::glVertexAttrib3fv:
case GLChunk::glVertexAttrib3fvARB:
case GLChunk::glVertexAttrib3s:
case GLChunk::glVertexAttrib3sARB:
case GLChunk::glVertexAttrib3sv:
case GLChunk::glVertexAttrib3svARB:
case GLChunk::glVertexAttrib4bv:
case GLChunk::glVertexAttrib4bvARB:
case GLChunk::glVertexAttrib4d:
case GLChunk::glVertexAttrib4dARB:
case GLChunk::glVertexAttrib4dv:
case GLChunk::glVertexAttrib4dvARB:
case GLChunk::glVertexAttrib4f:
case GLChunk::glVertexAttrib4fARB:
case GLChunk::glVertexAttrib4fv:
case GLChunk::glVertexAttrib4fvARB:
case GLChunk::glVertexAttrib4iv:
case GLChunk::glVertexAttrib4ivARB:
case GLChunk::glVertexAttrib4Nbv:
case GLChunk::glVertexAttrib4NbvARB:
case GLChunk::glVertexAttrib4Niv:
case GLChunk::glVertexAttrib4NivARB:
case GLChunk::glVertexAttrib4Nsv:
case GLChunk::glVertexAttrib4NsvARB:
case GLChunk::glVertexAttrib4Nub:
case GLChunk::glVertexAttrib4Nubv:
case GLChunk::glVertexAttrib4NubvARB:
case GLChunk::glVertexAttrib4Nuiv:
case GLChunk::glVertexAttrib4NuivARB:
case GLChunk::glVertexAttrib4Nusv:
case GLChunk::glVertexAttrib4NusvARB:
case GLChunk::glVertexAttrib4s:
case GLChunk::glVertexAttrib4sARB:
case GLChunk::glVertexAttrib4sv:
case GLChunk::glVertexAttrib4svARB:
case GLChunk::glVertexAttrib4ubv:
case GLChunk::glVertexAttrib4ubvARB:
case GLChunk::glVertexAttrib4uiv:
case GLChunk::glVertexAttrib4uivARB:
case GLChunk::glVertexAttrib4usv:
case GLChunk::glVertexAttrib4usvARB:
case GLChunk::glVertexAttribI1i:
case GLChunk::glVertexAttribI1iEXT:
case GLChunk::glVertexAttribI1iv:
case GLChunk::glVertexAttribI1ivEXT:
case GLChunk::glVertexAttribI1ui:
case GLChunk::glVertexAttribI1uiEXT:
case GLChunk::glVertexAttribI1uiv:
case GLChunk::glVertexAttribI1uivEXT:
case GLChunk::glVertexAttribI2i:
case GLChunk::glVertexAttribI2iEXT:
case GLChunk::glVertexAttribI2iv:
case GLChunk::glVertexAttribI2ivEXT:
case GLChunk::glVertexAttribI2ui:
case GLChunk::glVertexAttribI2uiEXT:
case GLChunk::glVertexAttribI2uiv:
case GLChunk::glVertexAttribI2uivEXT:
case GLChunk::glVertexAttribI3i:
case GLChunk::glVertexAttribI3iEXT:
case GLChunk::glVertexAttribI3iv:
case GLChunk::glVertexAttribI3ivEXT:
case GLChunk::glVertexAttribI3ui:
case GLChunk::glVertexAttribI3uiEXT:
case GLChunk::glVertexAttribI3uiv:
case GLChunk::glVertexAttribI3uivEXT:
case GLChunk::glVertexAttribI4bv:
case GLChunk::glVertexAttribI4bvEXT:
case GLChunk::glVertexAttribI4i:
case GLChunk::glVertexAttribI4iEXT:
case GLChunk::glVertexAttribI4iv:
case GLChunk::glVertexAttribI4ivEXT:
case GLChunk::glVertexAttribI4sv:
case GLChunk::glVertexAttribI4svEXT:
case GLChunk::glVertexAttribI4ubv:
case GLChunk::glVertexAttribI4ubvEXT:
case GLChunk::glVertexAttribI4ui:
case GLChunk::glVertexAttribI4uiEXT:
case GLChunk::glVertexAttribI4uiv:
case GLChunk::glVertexAttribI4uivEXT:
case GLChunk::glVertexAttribI4usv:
case GLChunk::glVertexAttribI4usvEXT:
case GLChunk::glVertexAttribL1d:
case GLChunk::glVertexAttribL1dEXT:
case GLChunk::glVertexAttribL1dv:
case GLChunk::glVertexAttribL1dvEXT:
case GLChunk::glVertexAttribL2d:
case GLChunk::glVertexAttribL2dEXT:
case GLChunk::glVertexAttribL2dv:
case GLChunk::glVertexAttribL2dvEXT:
case GLChunk::glVertexAttribL3d:
case GLChunk::glVertexAttribL3dEXT:
case GLChunk::glVertexAttribL3dv:
case GLChunk::glVertexAttribL3dvEXT:
case GLChunk::glVertexAttribL4d:
case GLChunk::glVertexAttribL4dEXT:
case GLChunk::glVertexAttribL4dv:
case GLChunk::glVertexAttribL4dvEXT:
case GLChunk::glVertexAttribP1ui:
case GLChunk::glVertexAttribP1uiv:
case GLChunk::glVertexAttribP2ui:
case GLChunk::glVertexAttribP2uiv:
case GLChunk::glVertexAttribP3ui:
case GLChunk::glVertexAttribP3uiv:
case GLChunk::glVertexAttribP4ui:
case GLChunk::glVertexAttribP4uiv:
return Serialise_glVertexAttrib(ser, 0, 0, eGL_NONE, 0, 0, Attrib_typemask);
case GLChunk::glLabelObjectEXT:
case GLChunk::glObjectLabelKHR:
case GLChunk::glObjectPtrLabel:
case GLChunk::glObjectPtrLabelKHR:
case GLChunk::glObjectLabel: return Serialise_glObjectLabel(ser, eGL_NONE, 0, 0, 0);
case GLChunk::glDebugMessageInsertARB:
case GLChunk::glDebugMessageInsertKHR:
case GLChunk::glDebugMessageInsert:
return Serialise_glDebugMessageInsert(ser, eGL_NONE, eGL_NONE, 0, eGL_NONE, 0, 0);
case GLChunk::glStringMarkerGREMEDY:
case GLChunk::glInsertEventMarkerEXT: return Serialise_glInsertEventMarkerEXT(ser, 0, 0);
case GLChunk::glPushGroupMarkerEXT:
case GLChunk::glPushDebugGroupKHR:
case GLChunk::glPushDebugGroup: return Serialise_glPushDebugGroup(ser, eGL_NONE, 0, 0, 0);
case GLChunk::glPopGroupMarkerEXT:
case GLChunk::glPopDebugGroupKHR:
case GLChunk::glPopDebugGroup: return Serialise_glPopDebugGroup(ser);
case GLChunk::glDispatchCompute: return Serialise_glDispatchCompute(ser, 0, 0, 0);
case GLChunk::glDispatchComputeGroupSizeARB:
return Serialise_glDispatchComputeGroupSizeARB(ser, 0, 0, 0, 0, 0, 0);
case GLChunk::glDispatchComputeIndirect: return Serialise_glDispatchComputeIndirect(ser, 0);
case GLChunk::glMemoryBarrierEXT:
case GLChunk::glMemoryBarrier: return Serialise_glMemoryBarrier(ser, 0);
case GLChunk::glMemoryBarrierByRegion: return Serialise_glMemoryBarrierByRegion(ser, 0);
case GLChunk::glTextureBarrier: return Serialise_glTextureBarrier(ser);
case GLChunk::glDrawTransformFeedback:
return Serialise_glDrawTransformFeedback(ser, eGL_NONE, 0);
case GLChunk::glDrawTransformFeedbackInstanced:
return Serialise_glDrawTransformFeedbackInstanced(ser, eGL_NONE, 0, 0);
case GLChunk::glDrawTransformFeedbackStream:
return Serialise_glDrawTransformFeedbackStream(ser, eGL_NONE, 0, 0);
case GLChunk::glDrawTransformFeedbackStreamInstanced:
return Serialise_glDrawTransformFeedbackStreamInstanced(ser, eGL_NONE, 0, 0, 0);
case GLChunk::glDrawArrays: return Serialise_glDrawArrays(ser, eGL_NONE, 0, 0);
case GLChunk::glDrawArraysIndirect: return Serialise_glDrawArraysIndirect(ser, eGL_NONE, 0);
case GLChunk::glDrawArraysInstancedARB:
case GLChunk::glDrawArraysInstancedEXT:
case GLChunk::glDrawArraysInstanced:
return Serialise_glDrawArraysInstanced(ser, eGL_NONE, 0, 0, 0);
case GLChunk::glDrawArraysInstancedBaseInstanceEXT:
case GLChunk::glDrawArraysInstancedBaseInstance:
return Serialise_glDrawArraysInstancedBaseInstance(ser, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glDrawElements: return Serialise_glDrawElements(ser, eGL_NONE, 0, eGL_NONE, 0);
case GLChunk::glDrawElementsIndirect:
return Serialise_glDrawElementsIndirect(ser, eGL_NONE, eGL_NONE, 0);
case GLChunk::glDrawRangeElementsEXT:
case GLChunk::glDrawRangeElements:
return Serialise_glDrawRangeElements(ser, eGL_NONE, 0, 0, 0, eGL_NONE, 0);
case GLChunk::glDrawRangeElementsBaseVertexEXT:
case GLChunk::glDrawRangeElementsBaseVertexOES:
case GLChunk::glDrawRangeElementsBaseVertex:
return Serialise_glDrawRangeElementsBaseVertex(ser, eGL_NONE, 0, 0, 0, eGL_NONE, 0, 0);
case GLChunk::glDrawElementsBaseVertexEXT:
case GLChunk::glDrawElementsBaseVertexOES:
case GLChunk::glDrawElementsBaseVertex:
return Serialise_glDrawElementsBaseVertex(ser, eGL_NONE, 0, eGL_NONE, 0, 0);
case GLChunk::glDrawElementsInstancedARB:
case GLChunk::glDrawElementsInstancedEXT:
case GLChunk::glDrawElementsInstanced:
return Serialise_glDrawElementsInstanced(ser, eGL_NONE, 0, eGL_NONE, 0, 0);
case GLChunk::glDrawElementsInstancedBaseInstanceEXT:
case GLChunk::glDrawElementsInstancedBaseInstance:
return Serialise_glDrawElementsInstancedBaseInstance(ser, eGL_NONE, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glDrawElementsInstancedBaseVertexEXT:
case GLChunk::glDrawElementsInstancedBaseVertexOES:
case GLChunk::glDrawElementsInstancedBaseVertex:
return Serialise_glDrawElementsInstancedBaseVertex(ser, eGL_NONE, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glDrawElementsInstancedBaseVertexBaseInstanceEXT:
case GLChunk::glDrawElementsInstancedBaseVertexBaseInstance:
return Serialise_glDrawElementsInstancedBaseVertexBaseInstance(ser, eGL_NONE, 0, eGL_NONE, 0,
0, 0, 0);
case GLChunk::glMultiDrawArraysEXT:
case GLChunk::glMultiDrawArrays: return Serialise_glMultiDrawArrays(ser, eGL_NONE, 0, 0, 0);
case GLChunk::glMultiDrawElements:
return Serialise_glMultiDrawElements(ser, eGL_NONE, 0, eGL_NONE, 0, 0);
case GLChunk::glMultiDrawElementsBaseVertexEXT:
case GLChunk::glMultiDrawElementsBaseVertexOES:
case GLChunk::glMultiDrawElementsBaseVertex:
return Serialise_glMultiDrawElementsBaseVertex(ser, eGL_NONE, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glMultiDrawArraysIndirect:
return Serialise_glMultiDrawArraysIndirect(ser, eGL_NONE, 0, 0, 0);
case GLChunk::glMultiDrawElementsIndirect:
return Serialise_glMultiDrawElementsIndirect(ser, eGL_NONE, eGL_NONE, 0, 0, 0);
case GLChunk::glMultiDrawArraysIndirectCountARB:
case GLChunk::glMultiDrawArraysIndirectCount:
return Serialise_glMultiDrawArraysIndirectCount(ser, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glMultiDrawElementsIndirectCountARB:
case GLChunk::glMultiDrawElementsIndirectCount:
return Serialise_glMultiDrawElementsIndirectCount(ser, eGL_NONE, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glClearBufferfv:
case GLChunk::glClearNamedFramebufferfv:
return Serialise_glClearNamedFramebufferfv(ser, 0, eGL_NONE, 0, 0);
case GLChunk::glClearBufferiv:
case GLChunk::glClearNamedFramebufferiv:
return Serialise_glClearNamedFramebufferiv(ser, 0, eGL_NONE, 0, 0);
case GLChunk::glClearBufferuiv:
case GLChunk::glClearNamedFramebufferuiv:
return Serialise_glClearNamedFramebufferuiv(ser, 0, eGL_NONE, 0, 0);
case GLChunk::glClearBufferfi:
case GLChunk::glClearNamedFramebufferfi:
return Serialise_glClearNamedFramebufferfi(ser, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glClearBufferData:
case GLChunk::glClearNamedBufferData:
case GLChunk::glClearNamedBufferDataEXT:
return Serialise_glClearNamedBufferDataEXT(ser, 0, eGL_NONE, eGL_NONE, eGL_NONE, 0);
case GLChunk::glClearBufferSubData:
case GLChunk::glClearNamedBufferSubData:
case GLChunk::glClearNamedBufferSubDataEXT:
return Serialise_glClearNamedBufferSubDataEXT(ser, 0, eGL_NONE, 0, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glClear: return Serialise_glClear(ser, 0);
case GLChunk::glClearTexImage:
return Serialise_glClearTexImage(ser, 0, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glClearTexSubImage:
return Serialise_glClearTexSubImage(ser, 0, 0, 0, 0, 0, 0, 0, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glGenFramebuffersEXT:
case GLChunk::glGenFramebuffers: return Serialise_glGenFramebuffers(ser, 0, 0);
case GLChunk::glCreateFramebuffers: return Serialise_glCreateFramebuffers(ser, 0, 0);
case GLChunk::glFramebufferTexture:
case GLChunk::glFramebufferTextureOES:
case GLChunk::glFramebufferTextureARB:
case GLChunk::glFramebufferTextureEXT:
case GLChunk::glNamedFramebufferTexture:
case GLChunk::glNamedFramebufferTextureEXT:
return Serialise_glNamedFramebufferTextureEXT(ser, 0, eGL_NONE, 0, 0);
case GLChunk::glFramebufferTexture1D:
case GLChunk::glFramebufferTexture1DEXT:
case GLChunk::glNamedFramebufferTexture1DEXT:
return Serialise_glNamedFramebufferTexture1DEXT(ser, 0, eGL_NONE, eGL_NONE, 0, 0);
case GLChunk::glFramebufferTexture2D:
case GLChunk::glFramebufferTexture2DEXT:
case GLChunk::glNamedFramebufferTexture2DEXT:
return Serialise_glNamedFramebufferTexture2DEXT(ser, 0, eGL_NONE, eGL_NONE, 0, 0);
case GLChunk::glFramebufferTexture2DMultisampleEXT:
return Serialise_glFramebufferTexture2DMultisampleEXT(ser, 0, eGL_NONE, eGL_NONE, eGL_NONE, 0,
0, 0);
case GLChunk::glFramebufferTexture3D:
case GLChunk::glFramebufferTexture3DEXT:
case GLChunk::glFramebufferTexture3DOES:
case GLChunk::glNamedFramebufferTexture3DEXT:
return Serialise_glNamedFramebufferTexture3DEXT(ser, 0, eGL_NONE, eGL_NONE, 0, 0, 0);
case GLChunk::glFramebufferRenderbuffer:
case GLChunk::glFramebufferRenderbufferEXT:
case GLChunk::glNamedFramebufferRenderbuffer:
case GLChunk::glNamedFramebufferRenderbufferEXT:
return Serialise_glNamedFramebufferRenderbufferEXT(ser, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glFramebufferTextureLayer:
case GLChunk::glFramebufferTextureLayerARB:
case GLChunk::glFramebufferTextureLayerEXT:
case GLChunk::glNamedFramebufferTextureLayer:
case GLChunk::glNamedFramebufferTextureLayerEXT:
return Serialise_glNamedFramebufferTextureLayerEXT(ser, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glFramebufferTextureMultiviewOVR:
return Serialise_glFramebufferTextureMultiviewOVR(ser, eGL_NONE, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glFramebufferTextureMultisampleMultiviewOVR:
return Serialise_glFramebufferTextureMultisampleMultiviewOVR(ser, eGL_NONE, eGL_NONE, 0, 0, 0,
0, 0);
case GLChunk::glTextureFoveationParametersQCOM:
return Serialise_glTextureFoveationParametersQCOM(ser, eGL_NONE, 0, 0, 0.0f, 0.0f, 0.0f, 0.0f,
0.0f);
case GLChunk::glFramebufferParameteri:
case GLChunk::glNamedFramebufferParameteri:
case GLChunk::glNamedFramebufferParameteriEXT:
return Serialise_glNamedFramebufferParameteriEXT(ser, 0, eGL_NONE, 0);
case GLChunk::glReadBuffer:
case GLChunk::glNamedFramebufferReadBuffer:
case GLChunk::glFramebufferReadBufferEXT:
return Serialise_glFramebufferReadBufferEXT(ser, 0, eGL_NONE);
case GLChunk::glBindFramebufferEXT:
case GLChunk::glBindFramebuffer: return Serialise_glBindFramebuffer(ser, eGL_NONE, 0);
case GLChunk::glDiscardFramebufferEXT:
case GLChunk::glInvalidateFramebuffer:
case GLChunk::glInvalidateNamedFramebufferData:
return Serialise_glInvalidateNamedFramebufferData(ser, 0, 0, 0);
case GLChunk::glDrawBuffer:
case GLChunk::glNamedFramebufferDrawBuffer:
case GLChunk::glFramebufferDrawBufferEXT:
return Serialise_glFramebufferDrawBufferEXT(ser, 0, eGL_NONE);
case GLChunk::glDrawBuffers:
case GLChunk::glDrawBuffersARB:
case GLChunk::glDrawBuffersEXT:
case GLChunk::glNamedFramebufferDrawBuffers:
case GLChunk::glFramebufferDrawBuffersEXT:
return Serialise_glFramebufferDrawBuffersEXT(ser, 0, 0, 0);
case GLChunk::glBlitFramebuffer:
case GLChunk::glBlitFramebufferEXT:
case GLChunk::glBlitNamedFramebuffer:
return Serialise_glBlitNamedFramebuffer(ser, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, eGL_NONE);
case GLChunk::glGenRenderbuffersEXT:
case GLChunk::glGenRenderbuffers: return Serialise_glGenRenderbuffers(ser, 0, 0);
case GLChunk::glCreateRenderbuffers: return Serialise_glCreateRenderbuffers(ser, 0, 0);
case GLChunk::glRenderbufferStorage:
case GLChunk::glRenderbufferStorageEXT:
case GLChunk::glNamedRenderbufferStorage:
case GLChunk::glNamedRenderbufferStorageEXT:
return Serialise_glNamedRenderbufferStorageEXT(ser, 0, eGL_NONE, 0, 0);
case GLChunk::glRenderbufferStorageMultisample:
case GLChunk::glNamedRenderbufferStorageMultisample:
case GLChunk::glNamedRenderbufferStorageMultisampleEXT:
return Serialise_glNamedRenderbufferStorageMultisampleEXT(ser, 0, 0, eGL_NONE, 0, 0);
// needs to be separate from glRenderbufferStorageMultisample due to driver issues
case GLChunk::glRenderbufferStorageMultisampleEXT:
return Serialise_glRenderbufferStorageMultisampleEXT(ser, 0, 0, eGL_NONE, 0, 0);
case GLChunk::wglDXRegisterObjectNV:
return Serialise_wglDXRegisterObjectNV(ser, GLResource(MakeNullResource), eGL_NONE, 0);
case GLChunk::wglDXLockObjectsNV:
return Serialise_wglDXLockObjectsNV(ser, GLResource(MakeNullResource));
case GLChunk::glFenceSync: return Serialise_glFenceSync(ser, 0, eGL_NONE, 0);
case GLChunk::glClientWaitSync: return Serialise_glClientWaitSync(ser, 0, 0, 0);
case GLChunk::glWaitSync: return Serialise_glWaitSync(ser, 0, 0, 0);
case GLChunk::glGenQueriesARB:
case GLChunk::glGenQueriesEXT:
case GLChunk::glGenQueries: return Serialise_glGenQueries(ser, 0, 0);
case GLChunk::glCreateQueries: return Serialise_glCreateQueries(ser, eGL_NONE, 0, 0);
case GLChunk::glBeginQueryARB:
case GLChunk::glBeginQueryEXT:
case GLChunk::glBeginQuery: return Serialise_glBeginQuery(ser, eGL_NONE, 0);
case GLChunk::glBeginQueryIndexed: return Serialise_glBeginQueryIndexed(ser, eGL_NONE, 0, 0);
case GLChunk::glEndQueryARB:
case GLChunk::glEndQueryEXT:
case GLChunk::glEndQuery: return Serialise_glEndQuery(ser, eGL_NONE);
case GLChunk::glEndQueryIndexed: return Serialise_glEndQueryIndexed(ser, eGL_NONE, 0);
case GLChunk::glBeginConditionalRender:
return Serialise_glBeginConditionalRender(ser, 0, eGL_NONE);
case GLChunk::glEndConditionalRender: return Serialise_glEndConditionalRender(ser);
case GLChunk::glQueryCounterEXT:
case GLChunk::glQueryCounter: return Serialise_glQueryCounter(ser, 0, eGL_NONE);
case GLChunk::glGenSamplers: return Serialise_glGenSamplers(ser, 0, 0);
case GLChunk::glCreateSamplers: return Serialise_glCreateSamplers(ser, 0, 0);
case GLChunk::glBindSampler: return Serialise_glBindSampler(ser, 0, 0);
case GLChunk::glBindSamplers: return Serialise_glBindSamplers(ser, 0, 0, 0);
case GLChunk::glSamplerParameteri: return Serialise_glSamplerParameteri(ser, 0, eGL_NONE, 0);
case GLChunk::glSamplerParameterf: return Serialise_glSamplerParameterf(ser, 0, eGL_NONE, 0);
case GLChunk::glSamplerParameteriv: return Serialise_glSamplerParameteriv(ser, 0, eGL_NONE, 0);
case GLChunk::glSamplerParameterfv: return Serialise_glSamplerParameterfv(ser, 0, eGL_NONE, 0);
case GLChunk::glSamplerParameterIivEXT:
case GLChunk::glSamplerParameterIivOES:
case GLChunk::glSamplerParameterIiv:
return Serialise_glSamplerParameterIiv(ser, 0, eGL_NONE, 0);
case GLChunk::glSamplerParameterIuivEXT:
case GLChunk::glSamplerParameterIuivOES:
case GLChunk::glSamplerParameterIuiv:
return Serialise_glSamplerParameterIuiv(ser, 0, eGL_NONE, 0);
case GLChunk::glCreateShader: return Serialise_glCreateShader(ser, eGL_NONE, 0);
case GLChunk::glShaderSource: return Serialise_glShaderSource(ser, 0, 0, 0, 0);
case GLChunk::glCompileShader: return Serialise_glCompileShader(ser, 0);
case GLChunk::glAttachShader: return Serialise_glAttachShader(ser, 0, 0);
case GLChunk::glDetachShader: return Serialise_glDetachShader(ser, 0, 0);
case GLChunk::glCreateShaderProgramvEXT:
case GLChunk::glCreateShaderProgramv:
return Serialise_glCreateShaderProgramv(ser, eGL_NONE, 0, 0, 0);
case GLChunk::glCreateProgram: return Serialise_glCreateProgram(ser, 0);
case GLChunk::glLinkProgram: return Serialise_glLinkProgram(ser, 0);
case GLChunk::glUniformBlockBinding: return Serialise_glUniformBlockBinding(ser, 0, 0, 0);
case GLChunk::glShaderStorageBlockBinding:
return Serialise_glShaderStorageBlockBinding(ser, 0, 0, 0);
case GLChunk::glBindAttribLocation: return Serialise_glBindAttribLocation(ser, 0, 0, 0);
case GLChunk::glBindFragDataLocationEXT:
case GLChunk::glBindFragDataLocation: return Serialise_glBindFragDataLocation(ser, 0, 0, 0);
case GLChunk::glUniformSubroutinesuiv:
return Serialise_glUniformSubroutinesuiv(ser, eGL_NONE, 0, 0);
case GLChunk::glBindFragDataLocationIndexed:
return Serialise_glBindFragDataLocationIndexed(ser, 0, 0, 0, 0);
case GLChunk::glTransformFeedbackVaryingsEXT:
case GLChunk::glTransformFeedbackVaryings:
return Serialise_glTransformFeedbackVaryings(ser, 0, 0, 0, eGL_NONE);
case GLChunk::glProgramParameteriARB:
case GLChunk::glProgramParameteriEXT:
case GLChunk::glProgramParameteri: return Serialise_glProgramParameteri(ser, 0, eGL_NONE, 0);
case GLChunk::glUseProgram: return Serialise_glUseProgram(ser, 0);
case GLChunk::glUseProgramStagesEXT:
case GLChunk::glUseProgramStages: return Serialise_glUseProgramStages(ser, 0, 0, 0);
case GLChunk::glGenProgramPipelinesEXT:
case GLChunk::glGenProgramPipelines: return Serialise_glGenProgramPipelines(ser, 0, 0);
case GLChunk::glCreateProgramPipelines: return Serialise_glCreateProgramPipelines(ser, 0, 0);
case GLChunk::glBindProgramPipelineEXT:
case GLChunk::glBindProgramPipeline: return Serialise_glBindProgramPipeline(ser, 0);
case GLChunk::glCompileShaderIncludeARB:
return Serialise_glCompileShaderIncludeARB(ser, 0, 0, 0, 0);
case GLChunk::glNamedStringARB: return Serialise_glNamedStringARB(ser, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glDeleteNamedStringARB: return Serialise_glDeleteNamedStringARB(ser, 0, 0);
case GLChunk::glBlendFunc: return Serialise_glBlendFunc(ser, eGL_NONE, eGL_NONE);
case GLChunk::glBlendFunciARB:
case GLChunk::glBlendFunciEXT:
case GLChunk::glBlendFunciOES:
case GLChunk::glBlendFunci: return Serialise_glBlendFunci(ser, 0, eGL_NONE, eGL_NONE);
case GLChunk::glBlendColorEXT:
case GLChunk::glBlendColor: return Serialise_glBlendColor(ser, 0, 0, 0, 0);
case GLChunk::glBlendFuncSeparateARB:
case GLChunk::glBlendFuncSeparate:
return Serialise_glBlendFuncSeparate(ser, eGL_NONE, eGL_NONE, eGL_NONE, eGL_NONE);
case GLChunk::glBlendFuncSeparateiARB:
case GLChunk::glBlendFuncSeparateiEXT:
case GLChunk::glBlendFuncSeparateiOES:
case GLChunk::glBlendFuncSeparatei:
return Serialise_glBlendFuncSeparatei(ser, 0, eGL_NONE, eGL_NONE, eGL_NONE, eGL_NONE);
case GLChunk::glBlendEquationEXT:
case GLChunk::glBlendEquationARB:
case GLChunk::glBlendEquation: return Serialise_glBlendEquation(ser, eGL_NONE);
case GLChunk::glBlendEquationiARB:
case GLChunk::glBlendEquationiEXT:
case GLChunk::glBlendEquationiOES:
case GLChunk::glBlendEquationi: return Serialise_glBlendEquationi(ser, 0, eGL_NONE);
case GLChunk::glBlendEquationSeparateARB:
case GLChunk::glBlendEquationSeparateEXT:
case GLChunk::glBlendEquationSeparate:
return Serialise_glBlendEquationSeparate(ser, eGL_NONE, eGL_NONE);
case GLChunk::glBlendEquationSeparateiARB:
case GLChunk::glBlendEquationSeparateiEXT:
case GLChunk::glBlendEquationSeparateiOES:
case GLChunk::glBlendEquationSeparatei:
return Serialise_glBlendEquationSeparatei(ser, 0, eGL_NONE, eGL_NONE);
case GLChunk::glBlendBarrier:
case GLChunk::glBlendBarrierKHR: return Serialise_glBlendBarrierKHR(ser);
case GLChunk::glLogicOp: return Serialise_glLogicOp(ser, eGL_NONE);
case GLChunk::glStencilFunc: return Serialise_glStencilFunc(ser, eGL_NONE, 0, 0);
case GLChunk::glStencilFuncSeparate:
return Serialise_glStencilFuncSeparate(ser, eGL_NONE, eGL_NONE, 0, 0);
case GLChunk::glStencilMask: return Serialise_glStencilMask(ser, 0);
case GLChunk::glStencilMaskSeparate: return Serialise_glStencilMaskSeparate(ser, eGL_NONE, 0);
case GLChunk::glStencilOp: return Serialise_glStencilOp(ser, eGL_NONE, eGL_NONE, eGL_NONE);
case GLChunk::glStencilOpSeparate:
return Serialise_glStencilOpSeparate(ser, eGL_NONE, eGL_NONE, eGL_NONE, eGL_NONE);
case GLChunk::glClearColor: return Serialise_glClearColor(ser, 0, 0, 0, 0);
case GLChunk::glClearStencil: return Serialise_glClearStencil(ser, 0);
case GLChunk::glClearDepthf:
case GLChunk::glClearDepth: return Serialise_glClearDepth(ser, 0);
case GLChunk::glDepthFunc: return Serialise_glDepthFunc(ser, eGL_NONE);
case GLChunk::glDepthMask: return Serialise_glDepthMask(ser, 0);
case GLChunk::glDepthRange: return Serialise_glDepthRange(ser, 0, 0);
case GLChunk::glDepthRangef: return Serialise_glDepthRangef(ser, 0, 0);
case GLChunk::glDepthRangeIndexedfNV:
case GLChunk::glDepthRangeIndexedfOES:
case GLChunk::glDepthRangeIndexed: return Serialise_glDepthRangeIndexed(ser, 0, 0, 0);
case GLChunk::glDepthRangeArrayfvNV:
case GLChunk::glDepthRangeArrayfvOES:
case GLChunk::glDepthRangeArrayv: return Serialise_glDepthRangeArrayv(ser, 0, 0, 0);
case GLChunk::glDepthBoundsEXT: return Serialise_glDepthBoundsEXT(ser, 0, 0);
case GLChunk::glClipControl: return Serialise_glClipControl(ser, eGL_NONE, eGL_NONE);
case GLChunk::glProvokingVertexEXT:
case GLChunk::glProvokingVertex: return Serialise_glProvokingVertex(ser, eGL_NONE);
case GLChunk::glPrimitiveRestartIndex: return Serialise_glPrimitiveRestartIndex(ser, 0);
case GLChunk::glDisable: return Serialise_glDisable(ser, eGL_NONE);
case GLChunk::glEnable: return Serialise_glEnable(ser, eGL_NONE);
case GLChunk::glDisableiEXT:
case GLChunk::glDisableIndexedEXT:
case GLChunk::glDisableiNV:
case GLChunk::glDisableiOES:
case GLChunk::glDisablei: return Serialise_glDisablei(ser, eGL_NONE, 0);
case GLChunk::glEnableiEXT:
case GLChunk::glEnableIndexedEXT:
case GLChunk::glEnableiNV:
case GLChunk::glEnableiOES:
case GLChunk::glEnablei: return Serialise_glEnablei(ser, eGL_NONE, 0);
case GLChunk::glFrontFace: return Serialise_glFrontFace(ser, eGL_NONE);
case GLChunk::glCullFace: return Serialise_glCullFace(ser, eGL_NONE);
case GLChunk::glHint: return Serialise_glHint(ser, eGL_NONE, eGL_NONE);
case GLChunk::glColorMask: return Serialise_glColorMask(ser, 0, 0, 0, 0);
case GLChunk::glColorMaskiEXT:
case GLChunk::glColorMaskIndexedEXT:
case GLChunk::glColorMaskiOES:
case GLChunk::glColorMaski: return Serialise_glColorMaski(ser, 0, 0, 0, 0, 0);
case GLChunk::glSampleMaski: return Serialise_glSampleMaski(ser, 0, 0);
case GLChunk::glSampleCoverageARB:
case GLChunk::glSampleCoverage: return Serialise_glSampleCoverage(ser, 0, 0);
case GLChunk::glMinSampleShadingARB:
case GLChunk::glMinSampleShadingOES:
case GLChunk::glMinSampleShading: return Serialise_glMinSampleShading(ser, 0);
case GLChunk::glRasterSamplesEXT: return Serialise_glRasterSamplesEXT(ser, 0, 0);
case GLChunk::glPatchParameteri: return Serialise_glPatchParameteri(ser, eGL_NONE, 0);
case GLChunk::glPatchParameterfv: return Serialise_glPatchParameterfv(ser, eGL_NONE, 0);
case GLChunk::glLineWidth: return Serialise_glLineWidth(ser, 0);
case GLChunk::glPointSize: return Serialise_glPointSize(ser, 0);
case GLChunk::glPatchParameteriEXT:
case GLChunk::glPatchParameteriOES:
case GLChunk::glPointParameteri: return Serialise_glPointParameteri(ser, eGL_NONE, 0);
case GLChunk::glPointParameteriv: return Serialise_glPointParameteriv(ser, eGL_NONE, 0);
case GLChunk::glPointParameterfARB:
case GLChunk::glPointParameterfEXT:
case GLChunk::glPointParameterf: return Serialise_glPointParameterf(ser, eGL_NONE, 0);
case GLChunk::glPointParameterfvARB:
case GLChunk::glPointParameterfvEXT:
case GLChunk::glPointParameterfv: return Serialise_glPointParameterfv(ser, eGL_NONE, 0);
case GLChunk::glViewport: return Serialise_glViewport(ser, 0, 0, 0, 0);
case GLChunk::glViewportArrayvNV:
case GLChunk::glViewportArrayvOES:
case GLChunk::glViewportIndexedf:
case GLChunk::glViewportIndexedfNV:
case GLChunk::glViewportIndexedfOES:
case GLChunk::glViewportIndexedfv:
case GLChunk::glViewportIndexedfvNV:
case GLChunk::glViewportIndexedfvOES:
case GLChunk::glViewportArrayv: return Serialise_glViewportArrayv(ser, 0, 0, 0);
case GLChunk::glScissor: return Serialise_glScissor(ser, 0, 0, 0, 0);
case GLChunk::glScissorArrayvNV:
case GLChunk::glScissorArrayvOES:
case GLChunk::glScissorIndexed:
case GLChunk::glScissorIndexedNV:
case GLChunk::glScissorIndexedOES:
case GLChunk::glScissorIndexedv:
case GLChunk::glScissorIndexedvNV:
case GLChunk::glScissorIndexedvOES:
case GLChunk::glScissorArrayv: return Serialise_glScissorArrayv(ser, 0, 0, 0);
case GLChunk::glPolygonMode: return Serialise_glPolygonMode(ser, eGL_NONE, eGL_NONE);
case GLChunk::glPolygonOffset: return Serialise_glPolygonOffset(ser, 0, 0);
case GLChunk::glPolygonOffsetClampEXT:
case GLChunk::glPolygonOffsetClamp: return Serialise_glPolygonOffsetClamp(ser, 0, 0, 0);
case GLChunk::glPrimitiveBoundingBoxEXT:
case GLChunk::glPrimitiveBoundingBoxOES:
case GLChunk::glPrimitiveBoundingBoxARB:
case GLChunk::glPrimitiveBoundingBox:
return Serialise_glPrimitiveBoundingBox(ser, 0, 0, 0, 0, 0, 0, 0, 0);
case GLChunk::glGenTextures: return Serialise_glGenTextures(ser, 0, 0);
case GLChunk::glCreateTextures: return Serialise_glCreateTextures(ser, eGL_NONE, 0, 0);
case GLChunk::glBindTexture: return Serialise_glBindTexture(ser, eGL_NONE, 0);
case GLChunk::glBindTextures: return Serialise_glBindTextures(ser, 0, 0, 0);
case GLChunk::glBindMultiTextureEXT:
return Serialise_glBindMultiTextureEXT(ser, eGL_NONE, eGL_NONE, 0);
case GLChunk::glBindTextureUnit: return Serialise_glBindTextureUnit(ser, 0, 0);
case GLChunk::glBindImageTextureEXT:
case GLChunk::glBindImageTexture:
return Serialise_glBindImageTexture(ser, 0, 0, 0, 0, 0, eGL_NONE, eGL_NONE);
case GLChunk::glBindImageTextures: return Serialise_glBindImageTextures(ser, 0, 0, 0);
case GLChunk::glTextureViewEXT:
case GLChunk::glTextureViewOES:
case GLChunk::glTextureView:
return Serialise_glTextureView(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glGenerateMipmap:
case GLChunk::glGenerateMipmapEXT:
case GLChunk::glGenerateMultiTexMipmapEXT:
case GLChunk::glGenerateTextureMipmap:
case GLChunk::glGenerateTextureMipmapEXT:
return Serialise_glGenerateTextureMipmapEXT(ser, 0, eGL_NONE);
case GLChunk::glCopyImageSubDataEXT:
case GLChunk::glCopyImageSubDataOES:
case GLChunk::glCopyImageSubData:
return Serialise_glCopyImageSubData(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, eGL_NONE, 0, 0, 0, 0, 0,
0, 0);
case GLChunk::glCopyMultiTexSubImage1DEXT:
case GLChunk::glCopyTexSubImage1D:
case GLChunk::glCopyTextureSubImage1D:
case GLChunk::glCopyTextureSubImage1DEXT:
return Serialise_glCopyTextureSubImage1DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0);
case GLChunk::glCopyTexSubImage2D:
case GLChunk::glCopyTextureSubImage2D:
case GLChunk::glCopyMultiTexSubImage2DEXT:
case GLChunk::glCopyTextureSubImage2DEXT:
return Serialise_glCopyTextureSubImage2DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, 0, 0);
case GLChunk::glCopyMultiTexSubImage3DEXT:
case GLChunk::glCopyTexSubImage3D:
case GLChunk::glCopyTexSubImage3DOES:
case GLChunk::glCopyTextureSubImage3D:
case GLChunk::glCopyTextureSubImage3DEXT:
return Serialise_glCopyTextureSubImage3DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, 0, 0, 0);
case GLChunk::glMultiTexParameteriEXT:
case GLChunk::glTexParameteri:
case GLChunk::glTextureParameteri:
case GLChunk::glTextureParameteriEXT:
return Serialise_glTextureParameteriEXT(ser, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexParameterivEXT:
case GLChunk::glTexParameteriv:
case GLChunk::glTextureParameteriv:
case GLChunk::glTextureParameterivEXT:
return Serialise_glTextureParameterivEXT(ser, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexParameterIivEXT:
case GLChunk::glTexParameterIiv:
case GLChunk::glTexParameterIivEXT:
case GLChunk::glTexParameterIivOES:
case GLChunk::glTextureParameterIiv:
case GLChunk::glTextureParameterIivEXT:
return Serialise_glTextureParameterIivEXT(ser, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexParameterIuivEXT:
case GLChunk::glTexParameterIuiv:
case GLChunk::glTexParameterIuivEXT:
case GLChunk::glTexParameterIuivOES:
case GLChunk::glTextureParameterIuiv:
case GLChunk::glTextureParameterIuivEXT:
return Serialise_glTextureParameterIuivEXT(ser, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexParameterfEXT:
case GLChunk::glTexParameterf:
case GLChunk::glTextureParameterf:
case GLChunk::glTextureParameterfEXT:
return Serialise_glTextureParameterfEXT(ser, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexParameterfvEXT:
case GLChunk::glTexParameterfv:
case GLChunk::glTextureParameterfv:
case GLChunk::glTextureParameterfvEXT:
return Serialise_glTextureParameterfvEXT(ser, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glPixelStoref:
case GLChunk::glPixelStorei: return Serialise_glPixelStorei(ser, eGL_NONE, 0);
case GLChunk::glActiveTextureARB:
case GLChunk::glActiveTexture: return Serialise_glActiveTexture(ser, eGL_NONE);
case GLChunk::glMultiTexImage1DEXT:
case GLChunk::glTexImage1D:
case GLChunk::glTextureImage1DEXT:
return Serialise_glTextureImage1DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexImage2DEXT:
case GLChunk::glTexImage2D:
case GLChunk::glTextureImage2DEXT:
return Serialise_glTextureImage2DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexImage3DEXT:
case GLChunk::glTexImage3D:
case GLChunk::glTexImage3DEXT:
case GLChunk::glTexImage3DOES:
case GLChunk::glTextureImage3DEXT:
return Serialise_glTextureImage3DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glCompressedMultiTexImage1DEXT:
case GLChunk::glCompressedTexImage1D:
case GLChunk::glCompressedTexImage1DARB:
case GLChunk::glCompressedTextureImage1DEXT:
return Serialise_glCompressedTextureImage1DEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glCompressedMultiTexImage2DEXT:
case GLChunk::glCompressedTexImage2D:
case GLChunk::glCompressedTexImage2DARB:
case GLChunk::glCompressedTextureImage2DEXT:
return Serialise_glCompressedTextureImage2DEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0, 0);
case GLChunk::glCompressedMultiTexImage3DEXT:
case GLChunk::glCompressedTexImage3D:
case GLChunk::glCompressedTexImage3DARB:
case GLChunk::glCompressedTexImage3DOES:
case GLChunk::glCompressedTextureImage3DEXT:
return Serialise_glCompressedTextureImage3DEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0, 0, 0);
case GLChunk::glCopyTexImage1D:
case GLChunk::glCopyMultiTexImage1DEXT:
case GLChunk::glCopyTextureImage1DEXT:
return Serialise_glCopyTextureImage1DEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glCopyTexImage2D:
case GLChunk::glCopyMultiTexImage2DEXT:
case GLChunk::glCopyTextureImage2DEXT:
return Serialise_glCopyTextureImage2DEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0, 0);
case GLChunk::glTexStorage1D:
case GLChunk::glTexStorage1DEXT:
case GLChunk::glTextureStorage1D:
case GLChunk::glTextureStorage1DEXT:
return Serialise_glTextureStorage1DEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0);
case GLChunk::glTexStorage2D:
case GLChunk::glTexStorage2DEXT:
case GLChunk::glTextureStorage2D:
case GLChunk::glTextureStorage2DEXT:
return Serialise_glTextureStorage2DEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0);
case GLChunk::glTexStorage3D:
case GLChunk::glTexStorage3DEXT:
case GLChunk::glTextureStorage3D:
case GLChunk::glTextureStorage3DEXT:
return Serialise_glTextureStorage3DEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glTexImage2DMultisample:
// technically this isn't equivalent to storage, but we treat it as such because there's no DSA
// variant of this teximage
case GLChunk::glTexStorage2DMultisample:
case GLChunk::glTextureStorage2DMultisample:
case GLChunk::glTextureStorage2DMultisampleEXT:
return Serialise_glTextureStorage2DMultisampleEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glTexImage3DMultisample:
// technically this isn't equivalent to storage, but we treat it as such because there's no DSA
// variant of this teximage
case GLChunk::glTexStorage3DMultisample:
case GLChunk::glTexStorage3DMultisampleOES:
case GLChunk::glTextureStorage3DMultisample:
case GLChunk::glTextureStorage3DMultisampleEXT:
return Serialise_glTextureStorage3DMultisampleEXT(ser, 0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glMultiTexSubImage1DEXT:
case GLChunk::glTexSubImage1D:
case GLChunk::glTextureSubImage1D:
case GLChunk::glTextureSubImage1DEXT:
return Serialise_glTextureSubImage1DEXT(ser, 0, eGL_NONE, 0, 0, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexSubImage2DEXT:
case GLChunk::glTexSubImage2D:
case GLChunk::glTextureSubImage2D:
case GLChunk::glTextureSubImage2DEXT:
return Serialise_glTextureSubImage2DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glMultiTexSubImage3DEXT:
case GLChunk::glTexSubImage3D:
case GLChunk::glTexSubImage3DOES:
case GLChunk::glTextureSubImage3D:
case GLChunk::glTextureSubImage3DEXT:
return Serialise_glTextureSubImage3DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, 0, 0, eGL_NONE,
eGL_NONE, 0);
case GLChunk::glCompressedMultiTexSubImage1DEXT:
case GLChunk::glCompressedTexSubImage1D:
case GLChunk::glCompressedTexSubImage1DARB:
case GLChunk::glCompressedTextureSubImage1D:
case GLChunk::glCompressedTextureSubImage1DEXT:
return Serialise_glCompressedTextureSubImage1DEXT(ser, 0, eGL_NONE, 0, 0, 0, eGL_NONE, 0, 0);
case GLChunk::glCompressedMultiTexSubImage2DEXT:
case GLChunk::glCompressedTexSubImage2D:
case GLChunk::glCompressedTexSubImage2DARB:
case GLChunk::glCompressedTextureSubImage2D:
case GLChunk::glCompressedTextureSubImage2DEXT:
return Serialise_glCompressedTextureSubImage2DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, eGL_NONE,
0, 0);
case GLChunk::glCompressedMultiTexSubImage3DEXT:
case GLChunk::glCompressedTexSubImage3D:
case GLChunk::glCompressedTexSubImage3DARB:
case GLChunk::glCompressedTexSubImage3DOES:
case GLChunk::glCompressedTextureSubImage3D:
case GLChunk::glCompressedTextureSubImage3DEXT:
return Serialise_glCompressedTextureSubImage3DEXT(ser, 0, eGL_NONE, 0, 0, 0, 0, 0, 0, 0,
eGL_NONE, 0, 0);
case GLChunk::glTexBufferRange:
case GLChunk::glTexBufferRangeEXT:
case GLChunk::glTexBufferRangeOES:
case GLChunk::glTextureBufferRange:
case GLChunk::glTextureBufferRangeEXT:
return Serialise_glTextureBufferRangeEXT(ser, 0, eGL_NONE, eGL_NONE, 0, 0, 0);
case GLChunk::glMultiTexBufferEXT:
case GLChunk::glTexBuffer:
case GLChunk::glTexBufferARB:
case GLChunk::glTexBufferEXT:
case GLChunk::glTexBufferOES:
case GLChunk::glTextureBuffer:
case GLChunk::glTextureBufferEXT:
return Serialise_glTextureBufferEXT(ser, 0, eGL_NONE, eGL_NONE, 0);
case GLChunk::glProgramUniform1d:
case GLChunk::glProgramUniform1dEXT:
case GLChunk::glProgramUniform1dv:
case GLChunk::glProgramUniform1dvEXT:
case GLChunk::glProgramUniform1f:
case GLChunk::glProgramUniform1fEXT:
case GLChunk::glProgramUniform1fv:
case GLChunk::glProgramUniform1fvEXT:
case GLChunk::glProgramUniform1i:
case GLChunk::glProgramUniform1iEXT:
case GLChunk::glProgramUniform1iv:
case GLChunk::glProgramUniform1ivEXT:
case GLChunk::glProgramUniform1ui:
case GLChunk::glProgramUniform1uiEXT:
case GLChunk::glProgramUniform1uiv:
case GLChunk::glProgramUniform1uivEXT:
case GLChunk::glProgramUniform2d:
case GLChunk::glProgramUniform2dEXT:
case GLChunk::glProgramUniform2dv:
case GLChunk::glProgramUniform2dvEXT:
case GLChunk::glProgramUniform2f:
case GLChunk::glProgramUniform2fEXT:
case GLChunk::glProgramUniform2fv:
case GLChunk::glProgramUniform2fvEXT:
case GLChunk::glProgramUniform2i:
case GLChunk::glProgramUniform2iEXT:
case GLChunk::glProgramUniform2iv:
case GLChunk::glProgramUniform2ivEXT:
case GLChunk::glProgramUniform2ui:
case GLChunk::glProgramUniform2uiEXT:
case GLChunk::glProgramUniform2uiv:
case GLChunk::glProgramUniform2uivEXT:
case GLChunk::glProgramUniform3d:
case GLChunk::glProgramUniform3dEXT:
case GLChunk::glProgramUniform3dv:
case GLChunk::glProgramUniform3dvEXT:
case GLChunk::glProgramUniform3f:
case GLChunk::glProgramUniform3fEXT:
case GLChunk::glProgramUniform3fv:
case GLChunk::glProgramUniform3fvEXT:
case GLChunk::glProgramUniform3i:
case GLChunk::glProgramUniform3iEXT:
case GLChunk::glProgramUniform3iv:
case GLChunk::glProgramUniform3ivEXT:
case GLChunk::glProgramUniform3ui:
case GLChunk::glProgramUniform3uiEXT:
case GLChunk::glProgramUniform3uiv:
case GLChunk::glProgramUniform3uivEXT:
case GLChunk::glProgramUniform4d:
case GLChunk::glProgramUniform4dEXT:
case GLChunk::glProgramUniform4dv:
case GLChunk::glProgramUniform4dvEXT:
case GLChunk::glProgramUniform4f:
case GLChunk::glProgramUniform4fEXT:
case GLChunk::glProgramUniform4fv:
case GLChunk::glProgramUniform4fvEXT:
case GLChunk::glProgramUniform4i:
case GLChunk::glProgramUniform4iEXT:
case GLChunk::glProgramUniform4iv:
case GLChunk::glProgramUniform4ivEXT:
case GLChunk::glProgramUniform4ui:
case GLChunk::glProgramUniform4uiEXT:
case GLChunk::glProgramUniform4uiv:
case GLChunk::glProgramUniform4uivEXT:
case GLChunk::glUniform1d:
case GLChunk::glUniform1dv:
case GLChunk::glUniform1f:
case GLChunk::glUniform1fARB:
case GLChunk::glUniform1fv:
case GLChunk::glUniform1fvARB:
case GLChunk::glUniform1i:
case GLChunk::glUniform1iARB:
case GLChunk::glUniform1iv:
case GLChunk::glUniform1ivARB:
case GLChunk::glUniform1ui:
case GLChunk::glUniform1uiEXT:
case GLChunk::glUniform1uiv:
case GLChunk::glUniform1uivEXT:
case GLChunk::glUniform2d:
case GLChunk::glUniform2dv:
case GLChunk::glUniform2f:
case GLChunk::glUniform2fARB:
case GLChunk::glUniform2fv:
case GLChunk::glUniform2fvARB:
case GLChunk::glUniform2i:
case GLChunk::glUniform2iARB:
case GLChunk::glUniform2iv:
case GLChunk::glUniform2ivARB:
case GLChunk::glUniform2ui:
case GLChunk::glUniform2uiEXT:
case GLChunk::glUniform2uiv:
case GLChunk::glUniform2uivEXT:
case GLChunk::glUniform3d:
case GLChunk::glUniform3dv:
case GLChunk::glUniform3f:
case GLChunk::glUniform3fARB:
case GLChunk::glUniform3fv:
case GLChunk::glUniform3fvARB:
case GLChunk::glUniform3i:
case GLChunk::glUniform3iARB:
case GLChunk::glUniform3iv:
case GLChunk::glUniform3ivARB:
case GLChunk::glUniform3ui:
case GLChunk::glUniform3uiEXT:
case GLChunk::glUniform3uiv:
case GLChunk::glUniform3uivEXT:
case GLChunk::glUniform4d:
case GLChunk::glUniform4dv:
case GLChunk::glUniform4f:
case GLChunk::glUniform4fARB:
case GLChunk::glUniform4fv:
case GLChunk::glUniform4fvARB:
case GLChunk::glUniform4i:
case GLChunk::glUniform4iARB:
case GLChunk::glUniform4iv:
case GLChunk::glUniform4ivARB:
case GLChunk::glUniform4ui:
case GLChunk::glUniform4uiEXT:
case GLChunk::glUniform4uiv:
case GLChunk::glUniform4uivEXT:
return Serialise_glProgramUniformVector(ser, 0, 0, 0, 0, UNIFORM_UNKNOWN);
case GLChunk::glProgramUniformMatrix2dv:
case GLChunk::glProgramUniformMatrix2dvEXT:
case GLChunk::glProgramUniformMatrix2fv:
case GLChunk::glProgramUniformMatrix2fvEXT:
case GLChunk::glProgramUniformMatrix2x3dv:
case GLChunk::glProgramUniformMatrix2x3dvEXT:
case GLChunk::glProgramUniformMatrix2x3fv:
case GLChunk::glProgramUniformMatrix2x3fvEXT:
case GLChunk::glProgramUniformMatrix2x4dv:
case GLChunk::glProgramUniformMatrix2x4dvEXT:
case GLChunk::glProgramUniformMatrix2x4fv:
case GLChunk::glProgramUniformMatrix2x4fvEXT:
case GLChunk::glProgramUniformMatrix3dv:
case GLChunk::glProgramUniformMatrix3dvEXT:
case GLChunk::glProgramUniformMatrix3fv:
case GLChunk::glProgramUniformMatrix3fvEXT:
case GLChunk::glProgramUniformMatrix3x2dv:
case GLChunk::glProgramUniformMatrix3x2dvEXT:
case GLChunk::glProgramUniformMatrix3x2fv:
case GLChunk::glProgramUniformMatrix3x2fvEXT:
case GLChunk::glProgramUniformMatrix3x4dv:
case GLChunk::glProgramUniformMatrix3x4dvEXT:
case GLChunk::glProgramUniformMatrix3x4fv:
case GLChunk::glProgramUniformMatrix3x4fvEXT:
case GLChunk::glProgramUniformMatrix4dv:
case GLChunk::glProgramUniformMatrix4dvEXT:
case GLChunk::glProgramUniformMatrix4fv:
case GLChunk::glProgramUniformMatrix4fvEXT:
case GLChunk::glProgramUniformMatrix4x2dv:
case GLChunk::glProgramUniformMatrix4x2dvEXT:
case GLChunk::glProgramUniformMatrix4x2fv:
case GLChunk::glProgramUniformMatrix4x2fvEXT:
case GLChunk::glProgramUniformMatrix4x3dv:
case GLChunk::glProgramUniformMatrix4x3dvEXT:
case GLChunk::glProgramUniformMatrix4x3fv:
case GLChunk::glProgramUniformMatrix4x3fvEXT:
case GLChunk::glUniformMatrix2dv:
case GLChunk::glUniformMatrix2fv:
case GLChunk::glUniformMatrix2fvARB:
case GLChunk::glUniformMatrix2x3dv:
case GLChunk::glUniformMatrix2x3fv:
case GLChunk::glUniformMatrix2x4dv:
case GLChunk::glUniformMatrix2x4fv:
case GLChunk::glUniformMatrix3dv:
case GLChunk::glUniformMatrix3fv:
case GLChunk::glUniformMatrix3fvARB:
case GLChunk::glUniformMatrix3x2dv:
case GLChunk::glUniformMatrix3x2fv:
case GLChunk::glUniformMatrix3x4dv:
case GLChunk::glUniformMatrix3x4fv:
case GLChunk::glUniformMatrix4dv:
case GLChunk::glUniformMatrix4fv:
case GLChunk::glUniformMatrix4fvARB:
case GLChunk::glUniformMatrix4x2dv:
case GLChunk::glUniformMatrix4x2fv:
case GLChunk::glUniformMatrix4x3dv:
case GLChunk::glUniformMatrix4x3fv:
return Serialise_glProgramUniformMatrix(ser, 0, 0, 0, 0, 0, UNIFORM_UNKNOWN);
case GLChunk::vrapi_CreateTextureSwapChain:
case GLChunk::vrapi_CreateTextureSwapChain2:
// nothing to do, these chunks are just markers
return true;
case GLChunk::MakeContextCurrent:
// re-use the serialisation for beginning of the frame
return Serialise_BeginCaptureFrame(ser);
case GLChunk::ImplicitThreadSwitch:
{
m_ImplicitThreadSwitches++;
bool ret = Serialise_ContextConfiguration(ser, NULL);
if(!ret)
return false;
return Serialise_BeginCaptureFrame(ser);
}
case GLChunk::ContextConfiguration: return Serialise_ContextConfiguration(ser, NULL);
case GLChunk::glIndirectSubCommand:
// this is a fake chunk generated at runtime as part of indirect draws.
// Just in case it gets exported and imported, completely ignore it.
return true;
case GLChunk::glShaderBinary: return Serialise_glShaderBinary(ser, 0, NULL, eGL_NONE, NULL, 0);
case GLChunk::glSpecializeShaderARB:
case GLChunk::glSpecializeShader:
return Serialise_glSpecializeShader(ser, 0, NULL, 0, NULL, NULL);
case GLChunk::glFinish: return Serialise_glFinish(ser);
case GLChunk::glFlush: return Serialise_glFlush(ser);
case GLChunk::glCreateMemoryObjectsEXT: return Serialise_glCreateMemoryObjectsEXT(ser, 0, NULL);
case GLChunk::glMemoryObjectParameterivEXT:
return Serialise_glMemoryObjectParameterivEXT(ser, 0, eGL_NONE, 0);
case GLChunk::glTexStorageMem1DEXT:
case GLChunk::glTextureStorageMem1DEXT:
return Serialise_glTextureStorageMem1DEXT(ser, 0, 0, eGL_NONE, 0, 0, 0);
case GLChunk::glTexStorageMem2DEXT:
case GLChunk::glTextureStorageMem2DEXT:
return Serialise_glTextureStorageMem2DEXT(ser, 0, 0, eGL_NONE, 0, 0, 0, 0);
case GLChunk::glTexStorageMem2DMultisampleEXT:
case GLChunk::glTextureStorageMem2DMultisampleEXT:
return Serialise_glTextureStorageMem2DMultisampleEXT(ser, 0, 0, eGL_NONE, 0, 0, GL_FALSE, 0, 0);
case GLChunk::glTexStorageMem3DEXT:
case GLChunk::glTextureStorageMem3DEXT:
return Serialise_glTextureStorageMem3DEXT(ser, 0, 0, eGL_NONE, 0, 0, 0, 0, 0);
case GLChunk::glTexStorageMem3DMultisampleEXT:
case GLChunk::glTextureStorageMem3DMultisampleEXT:
return Serialise_glTextureStorageMem3DMultisampleEXT(ser, 0, 0, eGL_NONE, 0, 0, 0, GL_FALSE,
0, 0);
case GLChunk::glBufferStorageMemEXT:
case GLChunk::glNamedBufferStorageMemEXT:
return Serialise_glNamedBufferStorageMemEXT(ser, 0, 0, 0, 0);
case GLChunk::glGenSemaphoresEXT: return Serialise_glGenSemaphoresEXT(ser, 0, NULL);
case GLChunk::glSemaphoreParameterui64vEXT:
return Serialise_glSemaphoreParameterui64vEXT(ser, 0, eGL_NONE, NULL);
case GLChunk::glWaitSemaphoreEXT:
return Serialise_glWaitSemaphoreEXT(ser, 0, 0, NULL, 0, NULL, NULL);
case GLChunk::glSignalSemaphoreEXT:
return Serialise_glSignalSemaphoreEXT(ser, 0, 0, NULL, 0, NULL, NULL);
case GLChunk::glImportMemoryFdEXT: return Serialise_glImportMemoryFdEXT(ser, 0, 0, eGL_NONE, 0);
case GLChunk::glImportSemaphoreFdEXT:
return Serialise_glImportSemaphoreFdEXT(ser, 0, eGL_NONE, 0);
case GLChunk::glImportMemoryWin32HandleEXT:
return Serialise_glImportMemoryWin32HandleEXT(ser, 0, 0, eGL_NONE, NULL);
case GLChunk::glImportMemoryWin32NameEXT:
return Serialise_glImportMemoryWin32NameEXT(ser, 0, 0, eGL_NONE, NULL);
case GLChunk::glImportSemaphoreWin32HandleEXT:
return Serialise_glImportSemaphoreWin32HandleEXT(ser, 0, eGL_NONE, NULL);
case GLChunk::glImportSemaphoreWin32NameEXT:
return Serialise_glImportSemaphoreWin32NameEXT(ser, 0, eGL_NONE, NULL);
case GLChunk::glAcquireKeyedMutexWin32EXT:
return Serialise_glAcquireKeyedMutexWin32EXT(ser, 0, 0, 0);
case GLChunk::glReleaseKeyedMutexWin32EXT:
return Serialise_glReleaseKeyedMutexWin32EXT(ser, 0, 0);
case GLChunk::SwapBuffers:
case GLChunk::wglSwapBuffers:
case GLChunk::glXSwapBuffers:
case GLChunk::CGLFlushDrawable:
case GLChunk::eglSwapBuffers:
case GLChunk::eglPostSubBufferNV:
case GLChunk::eglSwapBuffersWithDamageEXT:
case GLChunk::eglSwapBuffersWithDamageKHR: return Serialise_Present(ser);
case GLChunk::glInvalidateNamedFramebufferSubData:
case GLChunk::glInvalidateSubFramebuffer:
return Serialise_glInvalidateNamedFramebufferSubData(ser, 0, 0, NULL, 0, 0, 0, 0);
case GLChunk::glInvalidateTexImage: return Serialise_glInvalidateTexImage(ser, 0, 0);
case GLChunk::glInvalidateTexSubImage:
return Serialise_glInvalidateTexSubImage(ser, 0, 0, 0, 0, 0, 0, 0, 0);
case GLChunk::glInvalidateBufferData: return Serialise_glInvalidateBufferData(ser, 0);
case GLChunk::glInvalidateBufferSubData:
return Serialise_glInvalidateBufferSubData(ser, 0, 0, 0);
case GLChunk::glGetQueryObjecti64v:
case GLChunk::glGetQueryObjecti64vEXT:
case GLChunk::glGetQueryBufferObjecti64v:
return Serialise_glGetQueryBufferObjecti64v(ser, 0, 0, eGL_NONE, 0);
case GLChunk::glGetQueryObjectiv:
case GLChunk::glGetQueryObjectivARB:
case GLChunk::glGetQueryObjectivEXT:
case GLChunk::glGetQueryBufferObjectiv:
return Serialise_glGetQueryBufferObjectiv(ser, 0, 0, eGL_NONE, 0);
case GLChunk::glGetQueryObjectui64v:
case GLChunk::glGetQueryObjectui64vEXT:
case GLChunk::glGetQueryBufferObjectui64v:
return Serialise_glGetQueryBufferObjectui64v(ser, 0, 0, eGL_NONE, 0);
case GLChunk::glGetQueryObjectuiv:
case GLChunk::glGetQueryObjectuivARB:
case GLChunk::glGetQueryObjectuivEXT:
case GLChunk::glGetQueryBufferObjectuiv:
return Serialise_glGetQueryBufferObjectuiv(ser, 0, 0, eGL_NONE, 0);
// these functions are not currently serialised - they do nothing on replay and are not
// serialised for information (it would be harmless and perhaps useful for the user to see
// where and how they're called).
case GLChunk::glGetActiveAtomicCounterBufferiv:
case GLChunk::glGetActiveAttrib:
case GLChunk::glGetActiveSubroutineName:
case GLChunk::glGetActiveSubroutineUniformiv:
case GLChunk::glGetActiveSubroutineUniformName:
case GLChunk::glGetActiveUniform:
case GLChunk::glGetActiveUniformBlockiv:
case GLChunk::glGetActiveUniformBlockName:
case GLChunk::glGetActiveUniformName:
case GLChunk::glGetActiveUniformsiv:
case GLChunk::glGetAttachedShaders:
case GLChunk::glGetAttribLocation:
case GLChunk::glGetBooleani_v:
case GLChunk::glGetBooleanIndexedvEXT:
case GLChunk::glGetBooleanv:
case GLChunk::glGetBufferParameteri64v:
case GLChunk::glGetBufferParameteriv:
case GLChunk::glGetBufferParameterivARB:
case GLChunk::glGetBufferPointerv:
case GLChunk::glGetBufferPointervARB:
case GLChunk::glGetBufferPointervOES:
case GLChunk::glGetBufferSubData:
case GLChunk::glGetBufferSubDataARB:
case GLChunk::glGetCompressedMultiTexImageEXT:
case GLChunk::glGetCompressedTexImage:
case GLChunk::glGetCompressedTexImageARB:
case GLChunk::glGetCompressedTextureImage:
case GLChunk::glGetCompressedTextureImageEXT:
case GLChunk::glGetCompressedTextureSubImage:
case GLChunk::glGetDebugMessageLog:
case GLChunk::glGetDebugMessageLogARB:
case GLChunk::glGetDebugMessageLogKHR:
case GLChunk::glGetDoublei_v:
case GLChunk::glGetDoublei_vEXT:
case GLChunk::glGetDoubleIndexedvEXT:
case GLChunk::glGetDoublev:
case GLChunk::glGetError:
case GLChunk::glGetFloati_v:
case GLChunk::glGetFloati_vEXT:
case GLChunk::glGetFloati_vNV:
case GLChunk::glGetFloati_vOES:
case GLChunk::glGetFloatIndexedvEXT:
case GLChunk::glGetFloatv:
case GLChunk::glGetFragDataIndex:
case GLChunk::glGetFragDataLocation:
case GLChunk::glGetFragDataLocationEXT:
case GLChunk::glGetFramebufferAttachmentParameteriv:
case GLChunk::glGetFramebufferAttachmentParameterivEXT:
case GLChunk::glGetFramebufferParameteriv:
case GLChunk::glGetFramebufferParameterivEXT:
case GLChunk::glGetGraphicsResetStatus:
case GLChunk::glGetGraphicsResetStatusARB:
case GLChunk::glGetGraphicsResetStatusEXT:
case GLChunk::glGetInteger64i_v:
case GLChunk::glGetInteger64v:
case GLChunk::glGetIntegeri_v:
case GLChunk::glGetIntegerIndexedvEXT:
case GLChunk::glGetIntegerv:
case GLChunk::glGetInternalformati64v:
case GLChunk::glGetInternalformativ:
case GLChunk::glGetMultisamplefv:
case GLChunk::glGetMultiTexImageEXT:
case GLChunk::glGetMultiTexLevelParameterfvEXT:
case GLChunk::glGetMultiTexLevelParameterivEXT:
case GLChunk::glGetMultiTexParameterfvEXT:
case GLChunk::glGetMultiTexParameterIivEXT:
case GLChunk::glGetMultiTexParameterIuivEXT:
case GLChunk::glGetMultiTexParameterivEXT:
case GLChunk::glGetNamedBufferParameteri64v:
case GLChunk::glGetNamedBufferParameteriv:
case GLChunk::glGetNamedBufferParameterivEXT:
case GLChunk::glGetNamedBufferPointerv:
case GLChunk::glGetNamedBufferPointervEXT:
case GLChunk::glGetNamedBufferSubData:
case GLChunk::glGetNamedBufferSubDataEXT:
case GLChunk::glGetNamedFramebufferAttachmentParameteriv:
case GLChunk::glGetNamedFramebufferAttachmentParameterivEXT:
case GLChunk::glGetNamedFramebufferParameteriv:
case GLChunk::glGetNamedFramebufferParameterivEXT:
case GLChunk::glGetNamedProgramivEXT:
case GLChunk::glGetNamedRenderbufferParameteriv:
case GLChunk::glGetNamedRenderbufferParameterivEXT:
case GLChunk::glGetNamedStringARB:
case GLChunk::glGetNamedStringivARB:
case GLChunk::glGetnCompressedTexImage:
case GLChunk::glGetnCompressedTexImageARB:
case GLChunk::glGetnTexImage:
case GLChunk::glGetnTexImageARB:
case GLChunk::glGetnUniformdv:
case GLChunk::glGetnUniformdvARB:
case GLChunk::glGetnUniformfv:
case GLChunk::glGetnUniformfvARB:
case GLChunk::glGetnUniformfvEXT:
case GLChunk::glGetnUniformiv:
case GLChunk::glGetnUniformivARB:
case GLChunk::glGetnUniformivEXT:
case GLChunk::glGetnUniformuiv:
case GLChunk::glGetnUniformuivARB:
case GLChunk::glGetObjectLabel:
case GLChunk::glGetObjectLabelEXT:
case GLChunk::glGetObjectLabelKHR:
case GLChunk::glGetObjectPtrLabel:
case GLChunk::glGetObjectPtrLabelKHR:
case GLChunk::glGetPointeri_vEXT:
case GLChunk::glGetPointerIndexedvEXT:
case GLChunk::glGetPointerv:
case GLChunk::glGetPointervKHR:
case GLChunk::glGetProgramBinary:
case GLChunk::glGetProgramInfoLog:
case GLChunk::glGetProgramInterfaceiv:
case GLChunk::glGetProgramiv:
case GLChunk::glGetProgramPipelineInfoLog:
case GLChunk::glGetProgramPipelineInfoLogEXT:
case GLChunk::glGetProgramPipelineiv:
case GLChunk::glGetProgramPipelineivEXT:
case GLChunk::glGetProgramResourceIndex:
case GLChunk::glGetProgramResourceiv:
case GLChunk::glGetProgramResourceLocation:
case GLChunk::glGetProgramResourceLocationIndex:
case GLChunk::glGetProgramResourceName:
case GLChunk::glGetProgramStageiv:
case GLChunk::glGetQueryIndexediv:
case GLChunk::glGetQueryiv:
case GLChunk::glGetQueryivARB:
case GLChunk::glGetQueryivEXT:
case GLChunk::glGetRenderbufferParameteriv:
case GLChunk::glGetRenderbufferParameterivEXT:
case GLChunk::glGetSamplerParameterfv:
case GLChunk::glGetSamplerParameterIiv:
case GLChunk::glGetSamplerParameterIivEXT:
case GLChunk::glGetSamplerParameterIivOES:
case GLChunk::glGetSamplerParameterIuiv:
case GLChunk::glGetSamplerParameterIuivEXT:
case GLChunk::glGetSamplerParameterIuivOES:
case GLChunk::glGetSamplerParameteriv:
case GLChunk::glGetShaderInfoLog:
case GLChunk::glGetShaderiv:
case GLChunk::glGetShaderPrecisionFormat:
case GLChunk::glGetShaderSource:
case GLChunk::glGetString:
case GLChunk::glGetStringi:
case GLChunk::glGetSubroutineIndex:
case GLChunk::glGetSubroutineUniformLocation:
case GLChunk::glGetSynciv:
case GLChunk::glGetTexImage:
case GLChunk::glGetTexLevelParameterfv:
case GLChunk::glGetTexLevelParameteriv:
case GLChunk::glGetTexParameterfv:
case GLChunk::glGetTexParameterIiv:
case GLChunk::glGetTexParameterIivEXT:
case GLChunk::glGetTexParameterIivOES:
case GLChunk::glGetTexParameterIuiv:
case GLChunk::glGetTexParameterIuivEXT:
case GLChunk::glGetTexParameterIuivOES:
case GLChunk::glGetTexParameteriv:
case GLChunk::glGetTextureImage:
case GLChunk::glGetTextureImageEXT:
case GLChunk::glGetTextureLevelParameterfv:
case GLChunk::glGetTextureLevelParameterfvEXT:
case GLChunk::glGetTextureLevelParameteriv:
case GLChunk::glGetTextureLevelParameterivEXT:
case GLChunk::glGetTextureParameterfv:
case GLChunk::glGetTextureParameterfvEXT:
case GLChunk::glGetTextureParameterIiv:
case GLChunk::glGetTextureParameterIivEXT:
case GLChunk::glGetTextureParameterIuiv:
case GLChunk::glGetTextureParameterIuivEXT:
case GLChunk::glGetTextureParameteriv:
case GLChunk::glGetTextureParameterivEXT:
case GLChunk::glGetTextureSubImage:
case GLChunk::glGetTransformFeedbacki_v:
case GLChunk::glGetTransformFeedbacki64_v:
case GLChunk::glGetTransformFeedbackiv:
case GLChunk::glGetTransformFeedbackVarying:
case GLChunk::glGetTransformFeedbackVaryingEXT:
case GLChunk::glGetUniformBlockIndex:
case GLChunk::glGetUniformdv:
case GLChunk::glGetUniformfv:
case GLChunk::glGetUniformIndices:
case GLChunk::glGetUniformiv:
case GLChunk::glGetUniformLocation:
case GLChunk::glGetUniformSubroutineuiv:
case GLChunk::glGetUniformuiv:
case GLChunk::glGetUniformuivEXT:
case GLChunk::glGetVertexArrayIndexed64iv:
case GLChunk::glGetVertexArrayIndexediv:
case GLChunk::glGetVertexArrayIntegeri_vEXT:
case GLChunk::glGetVertexArrayIntegervEXT:
case GLChunk::glGetVertexArrayiv:
case GLChunk::glGetVertexArrayPointeri_vEXT:
case GLChunk::glGetVertexArrayPointervEXT:
case GLChunk::glGetVertexAttribdv:
case GLChunk::glGetVertexAttribfv:
case GLChunk::glGetVertexAttribIiv:
case GLChunk::glGetVertexAttribIivEXT:
case GLChunk::glGetVertexAttribIuiv:
case GLChunk::glGetVertexAttribIuivEXT:
case GLChunk::glGetVertexAttribiv:
case GLChunk::glGetVertexAttribLdv:
case GLChunk::glGetVertexAttribLdvEXT:
case GLChunk::glGetVertexAttribPointerv:
case GLChunk::glIsBuffer:
case GLChunk::glIsBufferARB:
case GLChunk::glIsEnabled:
case GLChunk::glIsEnabledi:
case GLChunk::glIsEnablediEXT:
case GLChunk::glIsEnabledIndexedEXT:
case GLChunk::glIsEnablediNV:
case GLChunk::glIsEnablediOES:
case GLChunk::glIsFramebuffer:
case GLChunk::glIsFramebufferEXT:
case GLChunk::glIsNamedStringARB:
case GLChunk::glIsProgram:
case GLChunk::glIsProgramPipeline:
case GLChunk::glIsProgramPipelineEXT:
case GLChunk::glIsQuery:
case GLChunk::glIsQueryARB:
case GLChunk::glIsQueryEXT:
case GLChunk::glIsRenderbuffer:
case GLChunk::glIsRenderbufferEXT:
case GLChunk::glIsSampler:
case GLChunk::glIsShader:
case GLChunk::glIsSync:
case GLChunk::glIsTexture:
case GLChunk::glIsTransformFeedback:
case GLChunk::glIsVertexArray:
case GLChunk::glIsVertexArrayOES:
case GLChunk::glValidateProgram:
case GLChunk::glValidateProgramPipeline:
case GLChunk::glValidateProgramPipelineEXT:
case GLChunk::glCheckFramebufferStatus:
case GLChunk::glCheckFramebufferStatusEXT:
case GLChunk::glCheckNamedFramebufferStatus:
case GLChunk::glCheckNamedFramebufferStatusEXT:
case GLChunk::glReadnPixels:
case GLChunk::glReadnPixelsARB:
case GLChunk::glReadnPixelsEXT:
case GLChunk::glClampColor:
case GLChunk::glClampColorARB:
case GLChunk::glReadPixels:
case GLChunk::glDeleteBuffers:
case GLChunk::glDeleteBuffersARB:
case GLChunk::glDeleteFramebuffers:
case GLChunk::glDeleteFramebuffersEXT:
case GLChunk::glDeleteProgram:
case GLChunk::glDeleteProgramPipelines:
case GLChunk::glDeleteProgramPipelinesEXT:
case GLChunk::glDeleteQueries:
case GLChunk::glDeleteQueriesARB:
case GLChunk::glDeleteQueriesEXT:
case GLChunk::glDeleteRenderbuffers:
case GLChunk::glDeleteRenderbuffersEXT:
case GLChunk::glDeleteSamplers:
case GLChunk::glDeleteShader:
case GLChunk::glDeleteSync:
case GLChunk::glDeleteTextures:
case GLChunk::glDeleteTransformFeedbacks:
case GLChunk::glDeleteVertexArrays:
case GLChunk::glDeleteVertexArraysOES:
case GLChunk::glBindRenderbufferEXT:
case GLChunk::glBindRenderbuffer:
case GLChunk::glActiveShaderProgram:
case GLChunk::glActiveShaderProgramEXT:
case GLChunk::glProgramBinary:
case GLChunk::glReleaseShaderCompiler:
case GLChunk::glFrameTerminatorGREMEDY:
case GLChunk::glDebugMessageCallback:
case GLChunk::glDebugMessageCallbackARB:
case GLChunk::glDebugMessageCallbackKHR:
case GLChunk::glDebugMessageControl:
case GLChunk::glDebugMessageControlARB:
case GLChunk::glDebugMessageControlKHR:
case GLChunk::glMapBuffer:
case GLChunk::glMapBufferARB:
case GLChunk::glMapBufferOES:
case GLChunk::glMapBufferRange:
case GLChunk::glMapBufferRangeEXT:
case GLChunk::glMapNamedBuffer:
case GLChunk::glMapNamedBufferEXT:
case GLChunk::glMapNamedBufferRange:
case GLChunk::glMapNamedBufferRangeEXT:
case GLChunk::wglDXSetResourceShareHandleNV:
case GLChunk::wglDXOpenDeviceNV:
case GLChunk::wglDXCloseDeviceNV:
case GLChunk::wglDXUnregisterObjectNV:
case GLChunk::wglDXObjectAccessNV:
case GLChunk::wglDXUnlockObjectsNV:
case GLChunk::glMaxShaderCompilerThreadsARB:
case GLChunk::glMaxShaderCompilerThreadsKHR:
case GLChunk::glGetUnsignedBytevEXT:
case GLChunk::glGetUnsignedBytei_vEXT:
case GLChunk::glDeleteMemoryObjectsEXT:
case GLChunk::glIsMemoryObjectEXT:
case GLChunk::glGetMemoryObjectParameterivEXT:
case GLChunk::glDeleteSemaphoresEXT:
case GLChunk::glIsSemaphoreEXT:
case GLChunk::glGetSemaphoreParameterui64vEXT:
case GLChunk::glBeginPerfQueryINTEL:
case GLChunk::glCreatePerfQueryINTEL:
case GLChunk::glDeletePerfQueryINTEL:
case GLChunk::glEndPerfQueryINTEL:
case GLChunk::glGetFirstPerfQueryIdINTEL:
case GLChunk::glGetNextPerfQueryIdINTEL:
case GLChunk::glGetPerfCounterInfoINTEL:
case GLChunk::glGetPerfQueryDataINTEL:
case GLChunk::glGetPerfQueryIdByNameINTEL:
case GLChunk::glGetPerfQueryInfoINTEL:
case GLChunk::Max:
RDCERR("Unexpected chunk %s, or missing case for processing! Skipping...",
ToStr(chunk).c_str());
ser.SkipCurrentChunk();
return false;
}
return false;
}