// GENERATED FILE - DO NOT EDIT. // Generated by generate_entry_points.py using data from gl.xml and gl_angle_ext.xml. // // Copyright 2020 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // frame_capture_utils_autogen.h: // ANGLE Frame capture types and helper functions. #ifndef LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_ #define LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_ #include "common/PackedEnums.h" namespace angle { enum class ParamType { TAlphaTestFunc, TBufferBinding, TBufferID, TBufferIDConstPointer, TBufferIDPointer, TBufferUsage, TClientVertexArrayType, TCullFaceMode, TDrawElementsType, TFenceNVID, TFenceNVIDConstPointer, TFenceNVIDPointer, TFramebufferID, TFramebufferIDConstPointer, TFramebufferIDPointer, TGLDEBUGPROC, TGLDEBUGPROCKHR, TGLbitfield, TGLboolean, TGLbooleanConstPointer, TGLbooleanPointer, TGLbyte, TGLbyteConstPointer, TGLcharConstPointer, TGLcharConstPointerPointer, TGLcharPointer, TGLclampx, TGLdouble, TGLdoubleConstPointer, TGLdoublePointer, TGLeglClientBufferEXT, TGLeglImageOES, TGLenum, TGLenumConstPointer, TGLenumPointer, TGLfixed, TGLfixedConstPointer, TGLfixedPointer, TGLfloat, TGLfloatConstPointer, TGLfloatPointer, TGLint, TGLint64Pointer, TGLintConstPointer, TGLintPointer, TGLintptr, TGLintptrConstPointer, TGLshort, TGLshortConstPointer, TGLsizei, TGLsizeiConstPointer, TGLsizeiPointer, TGLsizeiptr, TGLsizeiptrConstPointer, TGLsync, TGLubyte, TGLubyteConstPointer, TGLubytePointer, TGLuint, TGLuint64, TGLuint64ConstPointer, TGLuint64Pointer, TGLuintConstPointer, TGLuintPointer, TGLushort, TGLushortConstPointer, TGLushortPointer, TGLvoidConstPointer, TGLvoidConstPointerPointer, TGraphicsResetStatus, THandleType, TLightParameter, TLogicalOperation, TMaterialParameter, TMatrixType, TMemoryObjectID, TMemoryObjectIDConstPointer, TMemoryObjectIDPointer, TPointParameter, TPrimitiveMode, TProgramPipelineID, TProgramPipelineIDConstPointer, TProgramPipelineIDPointer, TProvokingVertexConvention, TQueryID, TQueryIDConstPointer, TQueryIDPointer, TQueryType, TRenderbufferID, TRenderbufferIDConstPointer, TRenderbufferIDPointer, TSamplerID, TSamplerIDConstPointer, TSamplerIDPointer, TSemaphoreID, TSemaphoreIDConstPointer, TSemaphoreIDPointer, TShaderProgramID, TShaderProgramIDConstPointer, TShaderProgramIDPointer, TShaderType, TShadingModel, TTextureEnvParameter, TTextureEnvTarget, TTextureID, TTextureIDConstPointer, TTextureIDPointer, TTextureTarget, TTextureType, TTransformFeedbackID, TTransformFeedbackIDConstPointer, TTransformFeedbackIDPointer, TUniformBlockIndex, TUniformLocation, TVertexArrayID, TVertexArrayIDConstPointer, TVertexArrayIDPointer, TVertexAttribType, TvoidConstPointer, TvoidConstPointerPointer, TvoidPointer, TvoidPointerPointer, }; constexpr uint32_t kParamTypeCount = 122; union ParamValue { gl::AlphaTestFunc AlphaTestFuncVal; gl::BufferBinding BufferBindingVal; gl::BufferID BufferIDVal; const gl::BufferID *BufferIDConstPointerVal; gl::BufferID *BufferIDPointerVal; gl::BufferUsage BufferUsageVal; gl::ClientVertexArrayType ClientVertexArrayTypeVal; gl::CullFaceMode CullFaceModeVal; gl::DrawElementsType DrawElementsTypeVal; gl::FenceNVID FenceNVIDVal; const gl::FenceNVID *FenceNVIDConstPointerVal; gl::FenceNVID *FenceNVIDPointerVal; gl::FramebufferID FramebufferIDVal; const gl::FramebufferID *FramebufferIDConstPointerVal; gl::FramebufferID *FramebufferIDPointerVal; GLDEBUGPROC GLDEBUGPROCVal; GLDEBUGPROCKHR GLDEBUGPROCKHRVal; GLbitfield GLbitfieldVal; GLboolean GLbooleanVal; const GLboolean *GLbooleanConstPointerVal; GLboolean *GLbooleanPointerVal; GLbyte GLbyteVal; const GLbyte *GLbyteConstPointerVal; const GLchar *GLcharConstPointerVal; const GLchar *const *GLcharConstPointerPointerVal; GLchar *GLcharPointerVal; GLclampx GLclampxVal; GLdouble GLdoubleVal; const GLdouble *GLdoubleConstPointerVal; GLdouble *GLdoublePointerVal; GLeglClientBufferEXT GLeglClientBufferEXTVal; GLeglImageOES GLeglImageOESVal; GLenum GLenumVal; const GLenum *GLenumConstPointerVal; GLenum *GLenumPointerVal; GLfixed GLfixedVal; const GLfixed *GLfixedConstPointerVal; GLfixed *GLfixedPointerVal; GLfloat GLfloatVal; const GLfloat *GLfloatConstPointerVal; GLfloat *GLfloatPointerVal; GLint GLintVal; GLint64 *GLint64PointerVal; const GLint *GLintConstPointerVal; GLint *GLintPointerVal; GLintptr GLintptrVal; const GLintptr *GLintptrConstPointerVal; GLshort GLshortVal; const GLshort *GLshortConstPointerVal; GLsizei GLsizeiVal; const GLsizei *GLsizeiConstPointerVal; GLsizei *GLsizeiPointerVal; GLsizeiptr GLsizeiptrVal; const GLsizeiptr *GLsizeiptrConstPointerVal; GLsync GLsyncVal; GLubyte GLubyteVal; const GLubyte *GLubyteConstPointerVal; GLubyte *GLubytePointerVal; GLuint GLuintVal; GLuint64 GLuint64Val; const GLuint64 *GLuint64ConstPointerVal; GLuint64 *GLuint64PointerVal; const GLuint *GLuintConstPointerVal; GLuint *GLuintPointerVal; GLushort GLushortVal; const GLushort *GLushortConstPointerVal; GLushort *GLushortPointerVal; const GLvoid *GLvoidConstPointerVal; const GLvoid *const *GLvoidConstPointerPointerVal; gl::GraphicsResetStatus GraphicsResetStatusVal; gl::HandleType HandleTypeVal; gl::LightParameter LightParameterVal; gl::LogicalOperation LogicalOperationVal; gl::MaterialParameter MaterialParameterVal; gl::MatrixType MatrixTypeVal; gl::MemoryObjectID MemoryObjectIDVal; const gl::MemoryObjectID *MemoryObjectIDConstPointerVal; gl::MemoryObjectID *MemoryObjectIDPointerVal; gl::PointParameter PointParameterVal; gl::PrimitiveMode PrimitiveModeVal; gl::ProgramPipelineID ProgramPipelineIDVal; const gl::ProgramPipelineID *ProgramPipelineIDConstPointerVal; gl::ProgramPipelineID *ProgramPipelineIDPointerVal; gl::ProvokingVertexConvention ProvokingVertexConventionVal; gl::QueryID QueryIDVal; const gl::QueryID *QueryIDConstPointerVal; gl::QueryID *QueryIDPointerVal; gl::QueryType QueryTypeVal; gl::RenderbufferID RenderbufferIDVal; const gl::RenderbufferID *RenderbufferIDConstPointerVal; gl::RenderbufferID *RenderbufferIDPointerVal; gl::SamplerID SamplerIDVal; const gl::SamplerID *SamplerIDConstPointerVal; gl::SamplerID *SamplerIDPointerVal; gl::SemaphoreID SemaphoreIDVal; const gl::SemaphoreID *SemaphoreIDConstPointerVal; gl::SemaphoreID *SemaphoreIDPointerVal; gl::ShaderProgramID ShaderProgramIDVal; const gl::ShaderProgramID *ShaderProgramIDConstPointerVal; gl::ShaderProgramID *ShaderProgramIDPointerVal; gl::ShaderType ShaderTypeVal; gl::ShadingModel ShadingModelVal; gl::TextureEnvParameter TextureEnvParameterVal; gl::TextureEnvTarget TextureEnvTargetVal; gl::TextureID TextureIDVal; const gl::TextureID *TextureIDConstPointerVal; gl::TextureID *TextureIDPointerVal; gl::TextureTarget TextureTargetVal; gl::TextureType TextureTypeVal; gl::TransformFeedbackID TransformFeedbackIDVal; const gl::TransformFeedbackID *TransformFeedbackIDConstPointerVal; gl::TransformFeedbackID *TransformFeedbackIDPointerVal; gl::UniformBlockIndex UniformBlockIndexVal; gl::UniformLocation UniformLocationVal; gl::VertexArrayID VertexArrayIDVal; const gl::VertexArrayID *VertexArrayIDConstPointerVal; gl::VertexArrayID *VertexArrayIDPointerVal; gl::VertexAttribType VertexAttribTypeVal; const void *voidConstPointerVal; const void *const *voidConstPointerPointerVal; void *voidPointerVal; void **voidPointerPointerVal; }; template T GetParamVal(const ParamValue &value); template <> inline gl::AlphaTestFunc GetParamVal( const ParamValue &value) { return value.AlphaTestFuncVal; } template <> inline gl::BufferBinding GetParamVal( const ParamValue &value) { return value.BufferBindingVal; } template <> inline gl::BufferID GetParamVal(const ParamValue &value) { return value.BufferIDVal; } template <> inline const gl::BufferID *GetParamVal( const ParamValue &value) { return value.BufferIDConstPointerVal; } template <> inline gl::BufferID *GetParamVal( const ParamValue &value) { return value.BufferIDPointerVal; } template <> inline gl::BufferUsage GetParamVal( const ParamValue &value) { return value.BufferUsageVal; } template <> inline gl::ClientVertexArrayType GetParamVal(const ParamValue &value) { return value.ClientVertexArrayTypeVal; } template <> inline gl::CullFaceMode GetParamVal( const ParamValue &value) { return value.CullFaceModeVal; } template <> inline gl::DrawElementsType GetParamVal( const ParamValue &value) { return value.DrawElementsTypeVal; } template <> inline gl::FenceNVID GetParamVal(const ParamValue &value) { return value.FenceNVIDVal; } template <> inline const gl::FenceNVID *GetParamVal( const ParamValue &value) { return value.FenceNVIDConstPointerVal; } template <> inline gl::FenceNVID *GetParamVal( const ParamValue &value) { return value.FenceNVIDPointerVal; } template <> inline gl::FramebufferID GetParamVal( const ParamValue &value) { return value.FramebufferIDVal; } template <> inline const gl::FramebufferID *GetParamVal(const ParamValue &value) { return value.FramebufferIDConstPointerVal; } template <> inline gl::FramebufferID *GetParamVal( const ParamValue &value) { return value.FramebufferIDPointerVal; } template <> inline GLDEBUGPROC GetParamVal(const ParamValue &value) { return value.GLDEBUGPROCVal; } template <> inline GLDEBUGPROCKHR GetParamVal( const ParamValue &value) { return value.GLDEBUGPROCKHRVal; } template <> inline GLbitfield GetParamVal(const ParamValue &value) { return value.GLbitfieldVal; } template <> inline GLboolean GetParamVal(const ParamValue &value) { return value.GLbooleanVal; } template <> inline const GLboolean *GetParamVal( const ParamValue &value) { return value.GLbooleanConstPointerVal; } template <> inline GLboolean *GetParamVal(const ParamValue &value) { return value.GLbooleanPointerVal; } template <> inline GLbyte GetParamVal(const ParamValue &value) { return value.GLbyteVal; } template <> inline const GLbyte *GetParamVal( const ParamValue &value) { return value.GLbyteConstPointerVal; } template <> inline const GLchar *GetParamVal( const ParamValue &value) { return value.GLcharConstPointerVal; } template <> inline const GLchar *const * GetParamVal(const ParamValue &value) { return value.GLcharConstPointerPointerVal; } template <> inline GLchar *GetParamVal(const ParamValue &value) { return value.GLcharPointerVal; } template <> inline GLclampx GetParamVal(const ParamValue &value) { return value.GLclampxVal; } template <> inline GLdouble GetParamVal(const ParamValue &value) { return value.GLdoubleVal; } template <> inline const GLdouble *GetParamVal( const ParamValue &value) { return value.GLdoubleConstPointerVal; } template <> inline GLdouble *GetParamVal(const ParamValue &value) { return value.GLdoublePointerVal; } template <> inline GLeglClientBufferEXT GetParamVal( const ParamValue &value) { return value.GLeglClientBufferEXTVal; } template <> inline GLeglImageOES GetParamVal(const ParamValue &value) { return value.GLeglImageOESVal; } template <> inline GLenum GetParamVal(const ParamValue &value) { return value.GLenumVal; } template <> inline const GLenum *GetParamVal( const ParamValue &value) { return value.GLenumConstPointerVal; } template <> inline GLenum *GetParamVal(const ParamValue &value) { return value.GLenumPointerVal; } template <> inline GLfixed GetParamVal(const ParamValue &value) { return value.GLfixedVal; } template <> inline const GLfixed *GetParamVal( const ParamValue &value) { return value.GLfixedConstPointerVal; } template <> inline GLfixed *GetParamVal(const ParamValue &value) { return value.GLfixedPointerVal; } template <> inline GLfloat GetParamVal(const ParamValue &value) { return value.GLfloatVal; } template <> inline const GLfloat *GetParamVal( const ParamValue &value) { return value.GLfloatConstPointerVal; } template <> inline GLfloat *GetParamVal(const ParamValue &value) { return value.GLfloatPointerVal; } template <> inline GLint GetParamVal(const ParamValue &value) { return value.GLintVal; } template <> inline GLint64 *GetParamVal(const ParamValue &value) { return value.GLint64PointerVal; } template <> inline const GLint *GetParamVal( const ParamValue &value) { return value.GLintConstPointerVal; } template <> inline GLint *GetParamVal(const ParamValue &value) { return value.GLintPointerVal; } template <> inline GLintptr GetParamVal(const ParamValue &value) { return value.GLintptrVal; } template <> inline const GLintptr *GetParamVal( const ParamValue &value) { return value.GLintptrConstPointerVal; } template <> inline GLshort GetParamVal(const ParamValue &value) { return value.GLshortVal; } template <> inline const GLshort *GetParamVal( const ParamValue &value) { return value.GLshortConstPointerVal; } template <> inline GLsizei GetParamVal(const ParamValue &value) { return value.GLsizeiVal; } template <> inline const GLsizei *GetParamVal( const ParamValue &value) { return value.GLsizeiConstPointerVal; } template <> inline GLsizei *GetParamVal(const ParamValue &value) { return value.GLsizeiPointerVal; } template <> inline GLsizeiptr GetParamVal(const ParamValue &value) { return value.GLsizeiptrVal; } template <> inline const GLsizeiptr *GetParamVal( const ParamValue &value) { return value.GLsizeiptrConstPointerVal; } template <> inline GLsync GetParamVal(const ParamValue &value) { return value.GLsyncVal; } template <> inline GLubyte GetParamVal(const ParamValue &value) { return value.GLubyteVal; } template <> inline const GLubyte *GetParamVal( const ParamValue &value) { return value.GLubyteConstPointerVal; } template <> inline GLubyte *GetParamVal(const ParamValue &value) { return value.GLubytePointerVal; } template <> inline GLuint GetParamVal(const ParamValue &value) { return value.GLuintVal; } template <> inline GLuint64 GetParamVal(const ParamValue &value) { return value.GLuint64Val; } template <> inline const GLuint64 *GetParamVal( const ParamValue &value) { return value.GLuint64ConstPointerVal; } template <> inline GLuint64 *GetParamVal(const ParamValue &value) { return value.GLuint64PointerVal; } template <> inline const GLuint *GetParamVal( const ParamValue &value) { return value.GLuintConstPointerVal; } template <> inline GLuint *GetParamVal(const ParamValue &value) { return value.GLuintPointerVal; } template <> inline GLushort GetParamVal(const ParamValue &value) { return value.GLushortVal; } template <> inline const GLushort *GetParamVal( const ParamValue &value) { return value.GLushortConstPointerVal; } template <> inline GLushort *GetParamVal(const ParamValue &value) { return value.GLushortPointerVal; } template <> inline const GLvoid *GetParamVal( const ParamValue &value) { return value.GLvoidConstPointerVal; } template <> inline const GLvoid *const * GetParamVal(const ParamValue &value) { return value.GLvoidConstPointerPointerVal; } template <> inline gl::GraphicsResetStatus GetParamVal(const ParamValue &value) { return value.GraphicsResetStatusVal; } template <> inline gl::HandleType GetParamVal(const ParamValue &value) { return value.HandleTypeVal; } template <> inline gl::LightParameter GetParamVal( const ParamValue &value) { return value.LightParameterVal; } template <> inline gl::LogicalOperation GetParamVal( const ParamValue &value) { return value.LogicalOperationVal; } template <> inline gl::MaterialParameter GetParamVal( const ParamValue &value) { return value.MaterialParameterVal; } template <> inline gl::MatrixType GetParamVal(const ParamValue &value) { return value.MatrixTypeVal; } template <> inline gl::MemoryObjectID GetParamVal( const ParamValue &value) { return value.MemoryObjectIDVal; } template <> inline const gl::MemoryObjectID *GetParamVal(const ParamValue &value) { return value.MemoryObjectIDConstPointerVal; } template <> inline gl::MemoryObjectID *GetParamVal( const ParamValue &value) { return value.MemoryObjectIDPointerVal; } template <> inline gl::PointParameter GetParamVal( const ParamValue &value) { return value.PointParameterVal; } template <> inline gl::PrimitiveMode GetParamVal( const ParamValue &value) { return value.PrimitiveModeVal; } template <> inline gl::ProgramPipelineID GetParamVal( const ParamValue &value) { return value.ProgramPipelineIDVal; } template <> inline const gl::ProgramPipelineID * GetParamVal( const ParamValue &value) { return value.ProgramPipelineIDConstPointerVal; } template <> inline gl::ProgramPipelineID * GetParamVal(const ParamValue &value) { return value.ProgramPipelineIDPointerVal; } template <> inline gl::ProvokingVertexConvention GetParamVal( const ParamValue &value) { return value.ProvokingVertexConventionVal; } template <> inline gl::QueryID GetParamVal(const ParamValue &value) { return value.QueryIDVal; } template <> inline const gl::QueryID *GetParamVal( const ParamValue &value) { return value.QueryIDConstPointerVal; } template <> inline gl::QueryID *GetParamVal(const ParamValue &value) { return value.QueryIDPointerVal; } template <> inline gl::QueryType GetParamVal(const ParamValue &value) { return value.QueryTypeVal; } template <> inline gl::RenderbufferID GetParamVal( const ParamValue &value) { return value.RenderbufferIDVal; } template <> inline const gl::RenderbufferID *GetParamVal(const ParamValue &value) { return value.RenderbufferIDConstPointerVal; } template <> inline gl::RenderbufferID *GetParamVal( const ParamValue &value) { return value.RenderbufferIDPointerVal; } template <> inline gl::SamplerID GetParamVal(const ParamValue &value) { return value.SamplerIDVal; } template <> inline const gl::SamplerID *GetParamVal( const ParamValue &value) { return value.SamplerIDConstPointerVal; } template <> inline gl::SamplerID *GetParamVal( const ParamValue &value) { return value.SamplerIDPointerVal; } template <> inline gl::SemaphoreID GetParamVal( const ParamValue &value) { return value.SemaphoreIDVal; } template <> inline const gl::SemaphoreID * GetParamVal(const ParamValue &value) { return value.SemaphoreIDConstPointerVal; } template <> inline gl::SemaphoreID *GetParamVal( const ParamValue &value) { return value.SemaphoreIDPointerVal; } template <> inline gl::ShaderProgramID GetParamVal( const ParamValue &value) { return value.ShaderProgramIDVal; } template <> inline const gl::ShaderProgramID *GetParamVal(const ParamValue &value) { return value.ShaderProgramIDConstPointerVal; } template <> inline gl::ShaderProgramID *GetParamVal( const ParamValue &value) { return value.ShaderProgramIDPointerVal; } template <> inline gl::ShaderType GetParamVal(const ParamValue &value) { return value.ShaderTypeVal; } template <> inline gl::ShadingModel GetParamVal( const ParamValue &value) { return value.ShadingModelVal; } template <> inline gl::TextureEnvParameter GetParamVal(const ParamValue &value) { return value.TextureEnvParameterVal; } template <> inline gl::TextureEnvTarget GetParamVal( const ParamValue &value) { return value.TextureEnvTargetVal; } template <> inline gl::TextureID GetParamVal(const ParamValue &value) { return value.TextureIDVal; } template <> inline const gl::TextureID *GetParamVal( const ParamValue &value) { return value.TextureIDConstPointerVal; } template <> inline gl::TextureID *GetParamVal( const ParamValue &value) { return value.TextureIDPointerVal; } template <> inline gl::TextureTarget GetParamVal( const ParamValue &value) { return value.TextureTargetVal; } template <> inline gl::TextureType GetParamVal( const ParamValue &value) { return value.TextureTypeVal; } template <> inline gl::TransformFeedbackID GetParamVal(const ParamValue &value) { return value.TransformFeedbackIDVal; } template <> inline const gl::TransformFeedbackID * GetParamVal( const ParamValue &value) { return value.TransformFeedbackIDConstPointerVal; } template <> inline gl::TransformFeedbackID *GetParamVal(const ParamValue &value) { return value.TransformFeedbackIDPointerVal; } template <> inline gl::UniformBlockIndex GetParamVal( const ParamValue &value) { return value.UniformBlockIndexVal; } template <> inline gl::UniformLocation GetParamVal( const ParamValue &value) { return value.UniformLocationVal; } template <> inline gl::VertexArrayID GetParamVal( const ParamValue &value) { return value.VertexArrayIDVal; } template <> inline const gl::VertexArrayID *GetParamVal(const ParamValue &value) { return value.VertexArrayIDConstPointerVal; } template <> inline gl::VertexArrayID *GetParamVal( const ParamValue &value) { return value.VertexArrayIDPointerVal; } template <> inline gl::VertexAttribType GetParamVal( const ParamValue &value) { return value.VertexAttribTypeVal; } template <> inline const void *GetParamVal(const ParamValue &value) { return value.voidConstPointerVal; } template <> inline const void *const *GetParamVal( const ParamValue &value) { return value.voidConstPointerPointerVal; } template <> inline void *GetParamVal(const ParamValue &value) { return value.voidPointerVal; } template <> inline void **GetParamVal(const ParamValue &value) { return value.voidPointerPointerVal; } template T GetParamVal(const ParamValue &value) { UNREACHABLE(); return T(); } template T AccessParamValue(ParamType paramType, const ParamValue &value) { switch (paramType) { case ParamType::TAlphaTestFunc: return GetParamVal(value); case ParamType::TBufferBinding: return GetParamVal(value); case ParamType::TBufferID: return GetParamVal(value); case ParamType::TBufferIDConstPointer: return GetParamVal(value); case ParamType::TBufferIDPointer: return GetParamVal(value); case ParamType::TBufferUsage: return GetParamVal(value); case ParamType::TClientVertexArrayType: return GetParamVal(value); case ParamType::TCullFaceMode: return GetParamVal(value); case ParamType::TDrawElementsType: return GetParamVal(value); case ParamType::TFenceNVID: return GetParamVal(value); case ParamType::TFenceNVIDConstPointer: return GetParamVal(value); case ParamType::TFenceNVIDPointer: return GetParamVal(value); case ParamType::TFramebufferID: return GetParamVal(value); case ParamType::TFramebufferIDConstPointer: return GetParamVal(value); case ParamType::TFramebufferIDPointer: return GetParamVal(value); case ParamType::TGLDEBUGPROC: return GetParamVal(value); case ParamType::TGLDEBUGPROCKHR: return GetParamVal(value); case ParamType::TGLbitfield: return GetParamVal(value); case ParamType::TGLboolean: return GetParamVal(value); case ParamType::TGLbooleanConstPointer: return GetParamVal(value); case ParamType::TGLbooleanPointer: return GetParamVal(value); case ParamType::TGLbyte: return GetParamVal(value); case ParamType::TGLbyteConstPointer: return GetParamVal(value); case ParamType::TGLcharConstPointer: return GetParamVal(value); case ParamType::TGLcharConstPointerPointer: return GetParamVal(value); case ParamType::TGLcharPointer: return GetParamVal(value); case ParamType::TGLclampx: return GetParamVal(value); case ParamType::TGLdouble: return GetParamVal(value); case ParamType::TGLdoubleConstPointer: return GetParamVal(value); case ParamType::TGLdoublePointer: return GetParamVal(value); case ParamType::TGLeglClientBufferEXT: return GetParamVal(value); case ParamType::TGLeglImageOES: return GetParamVal(value); case ParamType::TGLenum: return GetParamVal(value); case ParamType::TGLenumConstPointer: return GetParamVal(value); case ParamType::TGLenumPointer: return GetParamVal(value); case ParamType::TGLfixed: return GetParamVal(value); case ParamType::TGLfixedConstPointer: return GetParamVal(value); case ParamType::TGLfixedPointer: return GetParamVal(value); case ParamType::TGLfloat: return GetParamVal(value); case ParamType::TGLfloatConstPointer: return GetParamVal(value); case ParamType::TGLfloatPointer: return GetParamVal(value); case ParamType::TGLint: return GetParamVal(value); case ParamType::TGLint64Pointer: return GetParamVal(value); case ParamType::TGLintConstPointer: return GetParamVal(value); case ParamType::TGLintPointer: return GetParamVal(value); case ParamType::TGLintptr: return GetParamVal(value); case ParamType::TGLintptrConstPointer: return GetParamVal(value); case ParamType::TGLshort: return GetParamVal(value); case ParamType::TGLshortConstPointer: return GetParamVal(value); case ParamType::TGLsizei: return GetParamVal(value); case ParamType::TGLsizeiConstPointer: return GetParamVal(value); case ParamType::TGLsizeiPointer: return GetParamVal(value); case ParamType::TGLsizeiptr: return GetParamVal(value); case ParamType::TGLsizeiptrConstPointer: return GetParamVal(value); case ParamType::TGLsync: return GetParamVal(value); case ParamType::TGLubyte: return GetParamVal(value); case ParamType::TGLubyteConstPointer: return GetParamVal(value); case ParamType::TGLubytePointer: return GetParamVal(value); case ParamType::TGLuint: return GetParamVal(value); case ParamType::TGLuint64: return GetParamVal(value); case ParamType::TGLuint64ConstPointer: return GetParamVal(value); case ParamType::TGLuint64Pointer: return GetParamVal(value); case ParamType::TGLuintConstPointer: return GetParamVal(value); case ParamType::TGLuintPointer: return GetParamVal(value); case ParamType::TGLushort: return GetParamVal(value); case ParamType::TGLushortConstPointer: return GetParamVal(value); case ParamType::TGLushortPointer: return GetParamVal(value); case ParamType::TGLvoidConstPointer: return GetParamVal(value); case ParamType::TGLvoidConstPointerPointer: return GetParamVal(value); case ParamType::TGraphicsResetStatus: return GetParamVal(value); case ParamType::THandleType: return GetParamVal(value); case ParamType::TLightParameter: return GetParamVal(value); case ParamType::TLogicalOperation: return GetParamVal(value); case ParamType::TMaterialParameter: return GetParamVal(value); case ParamType::TMatrixType: return GetParamVal(value); case ParamType::TMemoryObjectID: return GetParamVal(value); case ParamType::TMemoryObjectIDConstPointer: return GetParamVal(value); case ParamType::TMemoryObjectIDPointer: return GetParamVal(value); case ParamType::TPointParameter: return GetParamVal(value); case ParamType::TPrimitiveMode: return GetParamVal(value); case ParamType::TProgramPipelineID: return GetParamVal(value); case ParamType::TProgramPipelineIDConstPointer: return GetParamVal(value); case ParamType::TProgramPipelineIDPointer: return GetParamVal(value); case ParamType::TProvokingVertexConvention: return GetParamVal(value); case ParamType::TQueryID: return GetParamVal(value); case ParamType::TQueryIDConstPointer: return GetParamVal(value); case ParamType::TQueryIDPointer: return GetParamVal(value); case ParamType::TQueryType: return GetParamVal(value); case ParamType::TRenderbufferID: return GetParamVal(value); case ParamType::TRenderbufferIDConstPointer: return GetParamVal(value); case ParamType::TRenderbufferIDPointer: return GetParamVal(value); case ParamType::TSamplerID: return GetParamVal(value); case ParamType::TSamplerIDConstPointer: return GetParamVal(value); case ParamType::TSamplerIDPointer: return GetParamVal(value); case ParamType::TSemaphoreID: return GetParamVal(value); case ParamType::TSemaphoreIDConstPointer: return GetParamVal(value); case ParamType::TSemaphoreIDPointer: return GetParamVal(value); case ParamType::TShaderProgramID: return GetParamVal(value); case ParamType::TShaderProgramIDConstPointer: return GetParamVal(value); case ParamType::TShaderProgramIDPointer: return GetParamVal(value); case ParamType::TShaderType: return GetParamVal(value); case ParamType::TShadingModel: return GetParamVal(value); case ParamType::TTextureEnvParameter: return GetParamVal(value); case ParamType::TTextureEnvTarget: return GetParamVal(value); case ParamType::TTextureID: return GetParamVal(value); case ParamType::TTextureIDConstPointer: return GetParamVal(value); case ParamType::TTextureIDPointer: return GetParamVal(value); case ParamType::TTextureTarget: return GetParamVal(value); case ParamType::TTextureType: return GetParamVal(value); case ParamType::TTransformFeedbackID: return GetParamVal(value); case ParamType::TTransformFeedbackIDConstPointer: return GetParamVal(value); case ParamType::TTransformFeedbackIDPointer: return GetParamVal(value); case ParamType::TUniformBlockIndex: return GetParamVal(value); case ParamType::TUniformLocation: return GetParamVal(value); case ParamType::TVertexArrayID: return GetParamVal(value); case ParamType::TVertexArrayIDConstPointer: return GetParamVal(value); case ParamType::TVertexArrayIDPointer: return GetParamVal(value); case ParamType::TVertexAttribType: return GetParamVal(value); case ParamType::TvoidConstPointer: return GetParamVal(value); case ParamType::TvoidConstPointerPointer: return GetParamVal(value); case ParamType::TvoidPointer: return GetParamVal(value); case ParamType::TvoidPointerPointer: return GetParamVal(value); } } template void SetParamVal(T valueIn, ParamValue *valueOut); template <> inline void SetParamVal(gl::AlphaTestFunc valueIn, ParamValue *valueOut) { valueOut->AlphaTestFuncVal = valueIn; } template <> inline void SetParamVal(gl::BufferBinding valueIn, ParamValue *valueOut) { valueOut->BufferBindingVal = valueIn; } template <> inline void SetParamVal(gl::BufferID valueIn, ParamValue *valueOut) { valueOut->BufferIDVal = valueIn; } template <> inline void SetParamVal(const gl::BufferID *valueIn, ParamValue *valueOut) { valueOut->BufferIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::BufferID *valueIn, ParamValue *valueOut) { valueOut->BufferIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::BufferUsage valueIn, ParamValue *valueOut) { valueOut->BufferUsageVal = valueIn; } template <> inline void SetParamVal(gl::ClientVertexArrayType valueIn, ParamValue *valueOut) { valueOut->ClientVertexArrayTypeVal = valueIn; } template <> inline void SetParamVal(gl::CullFaceMode valueIn, ParamValue *valueOut) { valueOut->CullFaceModeVal = valueIn; } template <> inline void SetParamVal(gl::DrawElementsType valueIn, ParamValue *valueOut) { valueOut->DrawElementsTypeVal = valueIn; } template <> inline void SetParamVal(gl::FenceNVID valueIn, ParamValue *valueOut) { valueOut->FenceNVIDVal = valueIn; } template <> inline void SetParamVal(const gl::FenceNVID *valueIn, ParamValue *valueOut) { valueOut->FenceNVIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::FenceNVID *valueIn, ParamValue *valueOut) { valueOut->FenceNVIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::FramebufferID valueIn, ParamValue *valueOut) { valueOut->FramebufferIDVal = valueIn; } template <> inline void SetParamVal(const gl::FramebufferID *valueIn, ParamValue *valueOut) { valueOut->FramebufferIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::FramebufferID *valueIn, ParamValue *valueOut) { valueOut->FramebufferIDPointerVal = valueIn; } template <> inline void SetParamVal(GLDEBUGPROC valueIn, ParamValue *valueOut) { valueOut->GLDEBUGPROCVal = valueIn; } template <> inline void SetParamVal(GLDEBUGPROCKHR valueIn, ParamValue *valueOut) { valueOut->GLDEBUGPROCKHRVal = valueIn; } template <> inline void SetParamVal(GLbitfield valueIn, ParamValue *valueOut) { valueOut->GLbitfieldVal = valueIn; } template <> inline void SetParamVal(GLboolean valueIn, ParamValue *valueOut) { valueOut->GLbooleanVal = valueIn; } template <> inline void SetParamVal(const GLboolean *valueIn, ParamValue *valueOut) { valueOut->GLbooleanConstPointerVal = valueIn; } template <> inline void SetParamVal(GLboolean *valueIn, ParamValue *valueOut) { valueOut->GLbooleanPointerVal = valueIn; } template <> inline void SetParamVal(GLbyte valueIn, ParamValue *valueOut) { valueOut->GLbyteVal = valueIn; } template <> inline void SetParamVal(const GLbyte *valueIn, ParamValue *valueOut) { valueOut->GLbyteConstPointerVal = valueIn; } template <> inline void SetParamVal(const GLchar *valueIn, ParamValue *valueOut) { valueOut->GLcharConstPointerVal = valueIn; } template <> inline void SetParamVal(const GLchar *const *valueIn, ParamValue *valueOut) { valueOut->GLcharConstPointerPointerVal = valueIn; } template <> inline void SetParamVal(GLchar *valueIn, ParamValue *valueOut) { valueOut->GLcharPointerVal = valueIn; } template <> inline void SetParamVal(GLclampx valueIn, ParamValue *valueOut) { valueOut->GLclampxVal = valueIn; } template <> inline void SetParamVal(GLdouble valueIn, ParamValue *valueOut) { valueOut->GLdoubleVal = valueIn; } template <> inline void SetParamVal(const GLdouble *valueIn, ParamValue *valueOut) { valueOut->GLdoubleConstPointerVal = valueIn; } template <> inline void SetParamVal(GLdouble *valueIn, ParamValue *valueOut) { valueOut->GLdoublePointerVal = valueIn; } template <> inline void SetParamVal(GLeglClientBufferEXT valueIn, ParamValue *valueOut) { valueOut->GLeglClientBufferEXTVal = valueIn; } template <> inline void SetParamVal(GLeglImageOES valueIn, ParamValue *valueOut) { valueOut->GLeglImageOESVal = valueIn; } template <> inline void SetParamVal(GLenum valueIn, ParamValue *valueOut) { valueOut->GLenumVal = valueIn; } template <> inline void SetParamVal(const GLenum *valueIn, ParamValue *valueOut) { valueOut->GLenumConstPointerVal = valueIn; } template <> inline void SetParamVal(GLenum *valueIn, ParamValue *valueOut) { valueOut->GLenumPointerVal = valueIn; } template <> inline void SetParamVal(GLfixed valueIn, ParamValue *valueOut) { valueOut->GLfixedVal = valueIn; } template <> inline void SetParamVal(const GLfixed *valueIn, ParamValue *valueOut) { valueOut->GLfixedConstPointerVal = valueIn; } template <> inline void SetParamVal(GLfixed *valueIn, ParamValue *valueOut) { valueOut->GLfixedPointerVal = valueIn; } template <> inline void SetParamVal(GLfloat valueIn, ParamValue *valueOut) { valueOut->GLfloatVal = valueIn; } template <> inline void SetParamVal(const GLfloat *valueIn, ParamValue *valueOut) { valueOut->GLfloatConstPointerVal = valueIn; } template <> inline void SetParamVal(GLfloat *valueIn, ParamValue *valueOut) { valueOut->GLfloatPointerVal = valueIn; } template <> inline void SetParamVal(GLint valueIn, ParamValue *valueOut) { valueOut->GLintVal = valueIn; } template <> inline void SetParamVal(GLint64 *valueIn, ParamValue *valueOut) { valueOut->GLint64PointerVal = valueIn; } template <> inline void SetParamVal(const GLint *valueIn, ParamValue *valueOut) { valueOut->GLintConstPointerVal = valueIn; } template <> inline void SetParamVal(GLint *valueIn, ParamValue *valueOut) { valueOut->GLintPointerVal = valueIn; } template <> inline void SetParamVal(GLintptr valueIn, ParamValue *valueOut) { valueOut->GLintptrVal = valueIn; } template <> inline void SetParamVal(const GLintptr *valueIn, ParamValue *valueOut) { valueOut->GLintptrConstPointerVal = valueIn; } template <> inline void SetParamVal(GLshort valueIn, ParamValue *valueOut) { valueOut->GLshortVal = valueIn; } template <> inline void SetParamVal(const GLshort *valueIn, ParamValue *valueOut) { valueOut->GLshortConstPointerVal = valueIn; } template <> inline void SetParamVal(GLsizei valueIn, ParamValue *valueOut) { valueOut->GLsizeiVal = valueIn; } template <> inline void SetParamVal(const GLsizei *valueIn, ParamValue *valueOut) { valueOut->GLsizeiConstPointerVal = valueIn; } template <> inline void SetParamVal(GLsizei *valueIn, ParamValue *valueOut) { valueOut->GLsizeiPointerVal = valueIn; } template <> inline void SetParamVal(GLsizeiptr valueIn, ParamValue *valueOut) { valueOut->GLsizeiptrVal = valueIn; } template <> inline void SetParamVal(const GLsizeiptr *valueIn, ParamValue *valueOut) { valueOut->GLsizeiptrConstPointerVal = valueIn; } template <> inline void SetParamVal(GLsync valueIn, ParamValue *valueOut) { valueOut->GLsyncVal = valueIn; } template <> inline void SetParamVal(GLubyte valueIn, ParamValue *valueOut) { valueOut->GLubyteVal = valueIn; } template <> inline void SetParamVal(const GLubyte *valueIn, ParamValue *valueOut) { valueOut->GLubyteConstPointerVal = valueIn; } template <> inline void SetParamVal(GLubyte *valueIn, ParamValue *valueOut) { valueOut->GLubytePointerVal = valueIn; } template <> inline void SetParamVal(GLuint valueIn, ParamValue *valueOut) { valueOut->GLuintVal = valueIn; } template <> inline void SetParamVal(GLuint64 valueIn, ParamValue *valueOut) { valueOut->GLuint64Val = valueIn; } template <> inline void SetParamVal(const GLuint64 *valueIn, ParamValue *valueOut) { valueOut->GLuint64ConstPointerVal = valueIn; } template <> inline void SetParamVal(GLuint64 *valueIn, ParamValue *valueOut) { valueOut->GLuint64PointerVal = valueIn; } template <> inline void SetParamVal(const GLuint *valueIn, ParamValue *valueOut) { valueOut->GLuintConstPointerVal = valueIn; } template <> inline void SetParamVal(GLuint *valueIn, ParamValue *valueOut) { valueOut->GLuintPointerVal = valueIn; } template <> inline void SetParamVal(GLushort valueIn, ParamValue *valueOut) { valueOut->GLushortVal = valueIn; } template <> inline void SetParamVal(const GLushort *valueIn, ParamValue *valueOut) { valueOut->GLushortConstPointerVal = valueIn; } template <> inline void SetParamVal(GLushort *valueIn, ParamValue *valueOut) { valueOut->GLushortPointerVal = valueIn; } template <> inline void SetParamVal(const GLvoid *valueIn, ParamValue *valueOut) { valueOut->GLvoidConstPointerVal = valueIn; } template <> inline void SetParamVal(const GLvoid *const *valueIn, ParamValue *valueOut) { valueOut->GLvoidConstPointerPointerVal = valueIn; } template <> inline void SetParamVal(gl::GraphicsResetStatus valueIn, ParamValue *valueOut) { valueOut->GraphicsResetStatusVal = valueIn; } template <> inline void SetParamVal(gl::HandleType valueIn, ParamValue *valueOut) { valueOut->HandleTypeVal = valueIn; } template <> inline void SetParamVal(gl::LightParameter valueIn, ParamValue *valueOut) { valueOut->LightParameterVal = valueIn; } template <> inline void SetParamVal(gl::LogicalOperation valueIn, ParamValue *valueOut) { valueOut->LogicalOperationVal = valueIn; } template <> inline void SetParamVal(gl::MaterialParameter valueIn, ParamValue *valueOut) { valueOut->MaterialParameterVal = valueIn; } template <> inline void SetParamVal(gl::MatrixType valueIn, ParamValue *valueOut) { valueOut->MatrixTypeVal = valueIn; } template <> inline void SetParamVal(gl::MemoryObjectID valueIn, ParamValue *valueOut) { valueOut->MemoryObjectIDVal = valueIn; } template <> inline void SetParamVal(const gl::MemoryObjectID *valueIn, ParamValue *valueOut) { valueOut->MemoryObjectIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::MemoryObjectID *valueIn, ParamValue *valueOut) { valueOut->MemoryObjectIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::PointParameter valueIn, ParamValue *valueOut) { valueOut->PointParameterVal = valueIn; } template <> inline void SetParamVal(gl::PrimitiveMode valueIn, ParamValue *valueOut) { valueOut->PrimitiveModeVal = valueIn; } template <> inline void SetParamVal(gl::ProgramPipelineID valueIn, ParamValue *valueOut) { valueOut->ProgramPipelineIDVal = valueIn; } template <> inline void SetParamVal( const gl::ProgramPipelineID *valueIn, ParamValue *valueOut) { valueOut->ProgramPipelineIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::ProgramPipelineID *valueIn, ParamValue *valueOut) { valueOut->ProgramPipelineIDPointerVal = valueIn; } template <> inline void SetParamVal( gl::ProvokingVertexConvention valueIn, ParamValue *valueOut) { valueOut->ProvokingVertexConventionVal = valueIn; } template <> inline void SetParamVal(gl::QueryID valueIn, ParamValue *valueOut) { valueOut->QueryIDVal = valueIn; } template <> inline void SetParamVal(const gl::QueryID *valueIn, ParamValue *valueOut) { valueOut->QueryIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::QueryID *valueIn, ParamValue *valueOut) { valueOut->QueryIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::QueryType valueIn, ParamValue *valueOut) { valueOut->QueryTypeVal = valueIn; } template <> inline void SetParamVal(gl::RenderbufferID valueIn, ParamValue *valueOut) { valueOut->RenderbufferIDVal = valueIn; } template <> inline void SetParamVal(const gl::RenderbufferID *valueIn, ParamValue *valueOut) { valueOut->RenderbufferIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::RenderbufferID *valueIn, ParamValue *valueOut) { valueOut->RenderbufferIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::SamplerID valueIn, ParamValue *valueOut) { valueOut->SamplerIDVal = valueIn; } template <> inline void SetParamVal(const gl::SamplerID *valueIn, ParamValue *valueOut) { valueOut->SamplerIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::SamplerID *valueIn, ParamValue *valueOut) { valueOut->SamplerIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::SemaphoreID valueIn, ParamValue *valueOut) { valueOut->SemaphoreIDVal = valueIn; } template <> inline void SetParamVal(const gl::SemaphoreID *valueIn, ParamValue *valueOut) { valueOut->SemaphoreIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::SemaphoreID *valueIn, ParamValue *valueOut) { valueOut->SemaphoreIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::ShaderProgramID valueIn, ParamValue *valueOut) { valueOut->ShaderProgramIDVal = valueIn; } template <> inline void SetParamVal(const gl::ShaderProgramID *valueIn, ParamValue *valueOut) { valueOut->ShaderProgramIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::ShaderProgramID *valueIn, ParamValue *valueOut) { valueOut->ShaderProgramIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::ShaderType valueIn, ParamValue *valueOut) { valueOut->ShaderTypeVal = valueIn; } template <> inline void SetParamVal(gl::ShadingModel valueIn, ParamValue *valueOut) { valueOut->ShadingModelVal = valueIn; } template <> inline void SetParamVal(gl::TextureEnvParameter valueIn, ParamValue *valueOut) { valueOut->TextureEnvParameterVal = valueIn; } template <> inline void SetParamVal(gl::TextureEnvTarget valueIn, ParamValue *valueOut) { valueOut->TextureEnvTargetVal = valueIn; } template <> inline void SetParamVal(gl::TextureID valueIn, ParamValue *valueOut) { valueOut->TextureIDVal = valueIn; } template <> inline void SetParamVal(const gl::TextureID *valueIn, ParamValue *valueOut) { valueOut->TextureIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::TextureID *valueIn, ParamValue *valueOut) { valueOut->TextureIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::TextureTarget valueIn, ParamValue *valueOut) { valueOut->TextureTargetVal = valueIn; } template <> inline void SetParamVal(gl::TextureType valueIn, ParamValue *valueOut) { valueOut->TextureTypeVal = valueIn; } template <> inline void SetParamVal(gl::TransformFeedbackID valueIn, ParamValue *valueOut) { valueOut->TransformFeedbackIDVal = valueIn; } template <> inline void SetParamVal( const gl::TransformFeedbackID *valueIn, ParamValue *valueOut) { valueOut->TransformFeedbackIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::TransformFeedbackID *valueIn, ParamValue *valueOut) { valueOut->TransformFeedbackIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::UniformBlockIndex valueIn, ParamValue *valueOut) { valueOut->UniformBlockIndexVal = valueIn; } template <> inline void SetParamVal(gl::UniformLocation valueIn, ParamValue *valueOut) { valueOut->UniformLocationVal = valueIn; } template <> inline void SetParamVal(gl::VertexArrayID valueIn, ParamValue *valueOut) { valueOut->VertexArrayIDVal = valueIn; } template <> inline void SetParamVal(const gl::VertexArrayID *valueIn, ParamValue *valueOut) { valueOut->VertexArrayIDConstPointerVal = valueIn; } template <> inline void SetParamVal(gl::VertexArrayID *valueIn, ParamValue *valueOut) { valueOut->VertexArrayIDPointerVal = valueIn; } template <> inline void SetParamVal(gl::VertexAttribType valueIn, ParamValue *valueOut) { valueOut->VertexAttribTypeVal = valueIn; } template <> inline void SetParamVal(const void *valueIn, ParamValue *valueOut) { valueOut->voidConstPointerVal = valueIn; } template <> inline void SetParamVal(const void *const *valueIn, ParamValue *valueOut) { valueOut->voidConstPointerPointerVal = valueIn; } template <> inline void SetParamVal(void *valueIn, ParamValue *valueOut) { valueOut->voidPointerVal = valueIn; } template <> inline void SetParamVal(void **valueIn, ParamValue *valueOut) { valueOut->voidPointerPointerVal = valueIn; } template void SetParamVal(T valueIn, ParamValue *valueOut) { UNREACHABLE(); } template void InitParamValue(ParamType paramType, T valueIn, ParamValue *valueOut) { switch (paramType) { case ParamType::TAlphaTestFunc: SetParamVal(valueIn, valueOut); break; case ParamType::TBufferBinding: SetParamVal(valueIn, valueOut); break; case ParamType::TBufferID: SetParamVal(valueIn, valueOut); break; case ParamType::TBufferIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TBufferIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TBufferUsage: SetParamVal(valueIn, valueOut); break; case ParamType::TClientVertexArrayType: SetParamVal(valueIn, valueOut); break; case ParamType::TCullFaceMode: SetParamVal(valueIn, valueOut); break; case ParamType::TDrawElementsType: SetParamVal(valueIn, valueOut); break; case ParamType::TFenceNVID: SetParamVal(valueIn, valueOut); break; case ParamType::TFenceNVIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TFenceNVIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TFramebufferID: SetParamVal(valueIn, valueOut); break; case ParamType::TFramebufferIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TFramebufferIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLDEBUGPROC: SetParamVal(valueIn, valueOut); break; case ParamType::TGLDEBUGPROCKHR: SetParamVal(valueIn, valueOut); break; case ParamType::TGLbitfield: SetParamVal(valueIn, valueOut); break; case ParamType::TGLboolean: SetParamVal(valueIn, valueOut); break; case ParamType::TGLbooleanConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLbooleanPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLbyte: SetParamVal(valueIn, valueOut); break; case ParamType::TGLbyteConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLcharConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLcharConstPointerPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLcharPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLclampx: SetParamVal(valueIn, valueOut); break; case ParamType::TGLdouble: SetParamVal(valueIn, valueOut); break; case ParamType::TGLdoubleConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLdoublePointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLeglClientBufferEXT: SetParamVal(valueIn, valueOut); break; case ParamType::TGLeglImageOES: SetParamVal(valueIn, valueOut); break; case ParamType::TGLenum: SetParamVal(valueIn, valueOut); break; case ParamType::TGLenumConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLenumPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLfixed: SetParamVal(valueIn, valueOut); break; case ParamType::TGLfixedConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLfixedPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLfloat: SetParamVal(valueIn, valueOut); break; case ParamType::TGLfloatConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLfloatPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLint: SetParamVal(valueIn, valueOut); break; case ParamType::TGLint64Pointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLintConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLintPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLintptr: SetParamVal(valueIn, valueOut); break; case ParamType::TGLintptrConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLshort: SetParamVal(valueIn, valueOut); break; case ParamType::TGLshortConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLsizei: SetParamVal(valueIn, valueOut); break; case ParamType::TGLsizeiConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLsizeiPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLsizeiptr: SetParamVal(valueIn, valueOut); break; case ParamType::TGLsizeiptrConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLsync: SetParamVal(valueIn, valueOut); break; case ParamType::TGLubyte: SetParamVal(valueIn, valueOut); break; case ParamType::TGLubyteConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLubytePointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLuint: SetParamVal(valueIn, valueOut); break; case ParamType::TGLuint64: SetParamVal(valueIn, valueOut); break; case ParamType::TGLuint64ConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLuint64Pointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLuintConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLuintPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLushort: SetParamVal(valueIn, valueOut); break; case ParamType::TGLushortConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLushortPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLvoidConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGLvoidConstPointerPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TGraphicsResetStatus: SetParamVal(valueIn, valueOut); break; case ParamType::THandleType: SetParamVal(valueIn, valueOut); break; case ParamType::TLightParameter: SetParamVal(valueIn, valueOut); break; case ParamType::TLogicalOperation: SetParamVal(valueIn, valueOut); break; case ParamType::TMaterialParameter: SetParamVal(valueIn, valueOut); break; case ParamType::TMatrixType: SetParamVal(valueIn, valueOut); break; case ParamType::TMemoryObjectID: SetParamVal(valueIn, valueOut); break; case ParamType::TMemoryObjectIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TMemoryObjectIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TPointParameter: SetParamVal(valueIn, valueOut); break; case ParamType::TPrimitiveMode: SetParamVal(valueIn, valueOut); break; case ParamType::TProgramPipelineID: SetParamVal(valueIn, valueOut); break; case ParamType::TProgramPipelineIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TProgramPipelineIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TProvokingVertexConvention: SetParamVal(valueIn, valueOut); break; case ParamType::TQueryID: SetParamVal(valueIn, valueOut); break; case ParamType::TQueryIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TQueryIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TQueryType: SetParamVal(valueIn, valueOut); break; case ParamType::TRenderbufferID: SetParamVal(valueIn, valueOut); break; case ParamType::TRenderbufferIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TRenderbufferIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TSamplerID: SetParamVal(valueIn, valueOut); break; case ParamType::TSamplerIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TSamplerIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TSemaphoreID: SetParamVal(valueIn, valueOut); break; case ParamType::TSemaphoreIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TSemaphoreIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TShaderProgramID: SetParamVal(valueIn, valueOut); break; case ParamType::TShaderProgramIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TShaderProgramIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TShaderType: SetParamVal(valueIn, valueOut); break; case ParamType::TShadingModel: SetParamVal(valueIn, valueOut); break; case ParamType::TTextureEnvParameter: SetParamVal(valueIn, valueOut); break; case ParamType::TTextureEnvTarget: SetParamVal(valueIn, valueOut); break; case ParamType::TTextureID: SetParamVal(valueIn, valueOut); break; case ParamType::TTextureIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TTextureIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TTextureTarget: SetParamVal(valueIn, valueOut); break; case ParamType::TTextureType: SetParamVal(valueIn, valueOut); break; case ParamType::TTransformFeedbackID: SetParamVal(valueIn, valueOut); break; case ParamType::TTransformFeedbackIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TTransformFeedbackIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TUniformBlockIndex: SetParamVal(valueIn, valueOut); break; case ParamType::TUniformLocation: SetParamVal(valueIn, valueOut); break; case ParamType::TVertexArrayID: SetParamVal(valueIn, valueOut); break; case ParamType::TVertexArrayIDConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TVertexArrayIDPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TVertexAttribType: SetParamVal(valueIn, valueOut); break; case ParamType::TvoidConstPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TvoidConstPointerPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TvoidPointer: SetParamVal(valueIn, valueOut); break; case ParamType::TvoidPointerPointer: SetParamVal(valueIn, valueOut); break; } } struct CallCapture; struct ParamCapture; void WriteParamCaptureReplay(std::ostream &os, const CallCapture &call, const ParamCapture ¶m); const char *ParamTypeToString(ParamType paramType); enum class ResourceIDType { Buffer, FenceNV, Framebuffer, MemoryObject, ProgramPipeline, Query, Renderbuffer, Sampler, Semaphore, ShaderProgram, Texture, TransformFeedback, VertexArray, EnumCount, InvalidEnum = EnumCount }; ResourceIDType GetResourceIDTypeFromParamType(ParamType paramType); const char *GetResourceIDTypeName(ResourceIDType resourceIDType); } // namespace angle #endif // LIBANGLE_FRAME_CAPTURE_UTILS_AUTOGEN_H_