diff options
Diffstat (limited to 'src/opengl')
57 files changed, 15431 insertions, 0 deletions
diff --git a/src/opengl/CMakeLists.txt b/src/opengl/CMakeLists.txt new file mode 100644 index 0000000..4328596 --- /dev/null +++ b/src/opengl/CMakeLists.txt @@ -0,0 +1,21 @@ +project(honey_engine) + +set (GL ${CMAKE_CURRENT_LIST_DIR}) + +target_sources(honey PUBLIC + ${GL}/data.c + ${GL}/drawing.c + ${GL}/shader.c + ${GL}/window.c + ${GL}/texture.c + ${GL}/gl.c +) + + +target_sources(test PUBLIC + ${GL}/gl.test.c + ${GL}/window.test.c +) + + +add_subdirectory(glad) diff --git a/src/opengl/bind.h b/src/opengl/bind.h new file mode 100644 index 0000000..7b0f265 --- /dev/null +++ b/src/opengl/bind.h @@ -0,0 +1,1818 @@ +#ifndef HONEY_GL_H +#define HONEY_GL_H + +#include <lua.h> + +#define GL_FUNCTIONS \ + X("ActiveShaderProgram", glActiveShaderProgram_bind) \ + X("ActiveTexture", glActiveTexture_bind) \ + X("AttachShader", glAttachShader_bind) \ + X("BeginConditionalRender", glBeginConditionalRender_bind) \ + X("BeginQuery", glBeginQuery_bind) \ + X("BeginQuery", glBeginQuery_bind) \ + X("BeginTransformFeedback", glBeginTransformFeedback_bind) \ + X("BindAttribLocation", glBindAttribLocation_bind) \ + X("BindBuffer", glBindBuffer_bind) \ + X("BindBufferBase", glBindBufferBase_bind) \ + X("BindBufferRange", glBindBufferRange_bind) \ + X("BindFragDataLocation", glBindFragDataLocation_bind) \ + X("BindFragDataLocationIndexed", glBindFragDataLocationIndexed_bind) \ + X("BindFramebuffer", glBindFramebuffer_bind) \ + X("BindImageTexture", glBindImageTexture_bind) \ + X("BindProgramPipeline", glBindProgramPipeline_bind) \ + X("BindRenderbuffer", glBindRenderbuffer_bind) \ + X("BindSampler", glBindSampler_bind) \ + X("BindTexture", glBindTexture_bind) \ + X("BindTextureUnit", glBindTextureUnit_bind) \ + X("BindTransformFeedback", glBindTransformFeedback_bind) \ + X("BindVertexArray", glBindVertexArray_bind) \ + X("BindVertexBuffer", glBindVertexBuffer_bind) \ + X("BlendColor", glBlendColor_bind) \ + X("BlendEquation", glBlendEquation_bind) \ + X("BlendEquationi", glBlendEquationi_bind) \ + X("BlendEquationSeparate", glBlendEquationSeparate_bind) \ + X("BlendEquationSeparatei", glBlendEquationSeparatei_bind) \ + X("BlendFunc", glBlendFunc_bind) \ + X("BlendFunci", glBlendFunci_bind) \ + X("BlendFuncSeparate", glBlendFuncSeparate_bind) \ + X("BlendFuncSeparatei", glBlendFuncSeparatei_bind) \ + X("BlitFramebuffer", glBlitFramebuffer_bind) \ + X("BlitNamedFramebuffer", glBlitNamedFramebuffer_bind) \ + X("BufferData", glBufferData_bind) \ + X("BufferStorage", glBufferStorage_bind) \ + X("BufferSubData", glBufferSubData_bind) \ + X("CheckFramebufferStatus", glCheckFramebufferStatus_bind) \ + X("CheckNamedFramebufferStatus", glCheckNamedFramebufferStatus_bind) \ + X("ClampColor", glClampColor_bind) \ + X("Clear", glClear_bind) \ + X("ClearBufferiv", glClearBufferiv_bind) \ + X("ClearBufferuiv", glClearBufferuiv_bind) \ + X("ClearBufferfv", glClearBufferfv_bind) \ + X("ClearBufferfi", glClearBufferfi_bind) \ + X("ClearStencil", glClearStencil_bind) \ + X("ClientWaitSync", glClientWaitSync_bind) \ + X("ColorMask", glColorMask_bind) \ + X("ColorMaski", glColorMaski_bind) \ + X("CompileShader", glCompileShader_bind) \ + X("CompressedTexImage1D", glCompressedTexImage1D_bind) \ + X("CompressedTexImage2D", glCompressedTexImage2D_bind) \ + X("CompressedTexImage3D", glCompressedTexImage3D_bind) \ + X("CompressedTexSubImage1D", glCompressedTexSubImage1D_bind) \ + X("CompressedTexSubImage2D", glCompressedTexSubImage2D_bind) \ + X("CompressedTexSubImage3D", glCompressedTexSubImage3D_bind) \ + X("CopyBufferSubData", glCopyBufferSubData_bind) \ + X("CopyBufferSubData", glCopyBufferSubData_bind) \ + X("CopyTexImage1D", glCopyTexImage1D_bind) \ + X("CopyTexImage2D", glCopyTexImage2D_bind) \ + X("CopyTexSubImage1D", glCopyTexSubImage1D_bind) \ + X("CopyTexSubImage2D", glCopyTexSubImage2D_bind) \ + X("CopyTexSubImage3D", glCopyTexSubImage3D_bind) \ + X("CreateProgram", glCreateProgram_bind) \ + X("CreateShader", glCreateShader_bind) \ + X("CreateShaderProgramv", glCreateShaderProgramv_bind) \ + X("CullFace", glCullFace_bind) \ + X("DeleteBuffers", glDeleteBuffers_bind) \ + X("DeleteFramebuffers", glDeleteFramebuffers_bind) \ + X("DeleteProgram", glDeleteProgram_bind) \ + X("DeleteProgramPipelines", glDeleteProgramPipelines_bind) \ + X("DeleteQueries", glDeleteQueries_bind) \ + X("DeleteRenderbuffers", glDeleteRenderbuffers_bind) \ + X("DeleteSamplers", glDeleteSamplers_bind) \ + X("DeleteShader", glDeleteShader_bind) \ + X("DeleteSync", glDeleteSync_bind) \ + X("DeleteTextures", glDeleteTextures_bind) \ + X("DeleteTransformFeedbacks", glDeleteTransformFeedbacks_bind) \ + X("DeleteVertexArrays", glDeleteVertexArrays_bind) \ + X("DepthFunc", glDepthFunc_bind) \ + X("DepthMask", glDepthMask_bind) \ + X("DepthRange", glDepthRange_bind) \ + X("DepthRangef", glDepthRangef_bind) \ + X("DepthRangeArrayv", glDepthRangeArrayv_bind) \ + X("DepthRangeIndexed", glDepthRangeIndexed_bind) \ + X("DetachShader", glDetachShader_bind) \ + X("Disable", glDisable_bind) \ + X("Disablei", glDisablei_bind) \ + X("DisableVertexAttribArray", glDisableVertexAttribArray_bind) \ + X("DrawArrays", glDrawArrays_bind) \ + X("DrawArraysIndirect", glDrawArraysIndirect_bind) \ + X("DrawArraysInstanced", glDrawArraysInstanced_bind) \ + X("DrawBuffer", glDrawBuffer_bind) \ + X("DrawBuffers", glDrawBuffers_bind) \ + X("DrawElements", glDrawElements_bind) \ + X("DrawElementsBaseVertex", glDrawElementsBaseVertex_bind) \ + X("DrawElementsIndirect", glDrawElementsIndirect_bind) \ + X("DrawElementsInstanced", glDrawElementsInstanced_bind) \ + X("DrawRangeElements", glDrawRangeElements_bind) \ + X("DrawRangeElementsBaseVertex", glDrawRangeElementsBaseVertex_bind) \ + X("DrawTransformFeedback", glDrawTransformFeedback_bind) \ + X("DrawTransformFeedbackStream", glDrawTransformFeedbackStream_bind) \ + X("Enable", glEnable_bind) \ + X("Enablei", glEnablei_bind) \ + X("EnableVertexAttribArray", glEnableVertexAttribArray_bind) \ + X("EndConditionalRender", glEndConditionalRender_bind) \ + X("EndQuery", glEndQuery_bind) \ + X("EndQueryIndexed", glEndQueryIndexed_bind) \ + X("EndTransformFeedback", glEndTransformFeedback_bind) \ + X("FenceSync", glFenceSync_bind) \ + X("Finish", glFinish_bind) \ + X("Flush", glFlush_bind) \ + X("FlushMappedBufferRange", glFlushMappedBufferRange_bind) \ + X("FramebufferRenderbuffer", glFramebufferRenderbuffer_bind) \ + X("FramebufferTexture", glFramebufferTexture_bind) \ + X("FramebufferTexture1D", glFramebufferTexture1D_bind) \ + X("FramebufferTexture2D", glFramebufferTexture2D_bind) \ + X("FramebufferTexture3D", glFramebufferTexture3D_bind) \ + X("FramebufferTextureLayer", glFramebufferTextureLayer_bind) \ + X("FrontFace", glFrontFace_bind) \ + X("GenBuffers", glGenBuffers_bind) \ + X("GenerateMipmap", glGenerateMipmap_bind) \ + X("GenFramebuffers", glGenFramebuffers_bind) \ + X("GenProgramPipelines", glGenProgramPipelines_bind) \ + X("GenQueries", glGenQueries_bind) \ + X("GenRenderbuffers", glGenRenderbuffers_bind) \ + X("GenSamplers", glGenSamplers_bind) \ + X("GenTextures", glGenTextures_bind) \ + X("GenTransformFeedbacks", glGenTransformFeedbacks_bind) \ + X("GenVertexArrays", glGenVertexArrays_bind) \ + X("GetBooleanv", glGetBooleanv_bind) \ + X("GetDoublev", glGetDoublev_bind) \ + X("GetFloatv", glGetFloatv_bind) \ + X("GetIntegerv", glGetIntegerv_bind) \ + X("GetInteger64v", glGetInteger64v_bind) \ + X("GetBooleani_v", glGetBooleani_v_bind) \ + X("GetIntegeri_v", glGetIntegeri_v_bind) \ + X("GetFloati_v", glGetFloati_v_bind) \ + X("GetDoublei_v", glGetDoublei_v_bind) \ + X("GetInteger64i_v", glGetInteger64i_v_bind) \ + X("GetActiveAttrib", glGetActiveAttrib_bind) \ + X("GetActiveSubroutineName", glGetActiveSubroutineName_bind) \ + X("GetActiveSubroutineUniformiv", glGetActiveSubroutineUniformiv_bind) \ + X("GetActiveSubroutineUniformName", glGetActiveSubroutineUniformName_bind) \ + X("GetActiveUniform", glGetActiveUniform_bind) \ + X("GetActiveUniformBlockiv", glGetActiveUniformBlockiv_bind) \ + X("GetActiveUniformBlockName", glGetActiveUniformBlockName_bind) \ + X("GetActiveUniformName", glGetActiveUniformName_bind) \ + X("GetActiveUniformsiv", glGetActiveUniformsiv_bind) \ + X("GetAttachedShaders", glGetAttachedShaders_bind) \ + X("GetAttribLocation", glGetAttribLocation_bind) \ + X("GetBufferParameteriv", glGetBufferParameteriv_bind) \ + X("GetBufferParameteri64v", glGetBufferParameteri64v_bind) \ + X("GetBufferPointerv", glGetBufferPointerv_bind) \ + X("GetBufferSubData", glGetBufferSubData_bind) \ + X("GetCompressedTexImage", glGetCompressedTexImage_bind) \ + X("GetError", glGetError_bind) \ + X("GetFragDataIndex", glGetFragDataIndex_bind) \ + X("GetFragDataLocation", glGetFragDataLocation_bind) \ + X("GetFramebufferAttachmentParameteriv", glGetFramebufferAttachmentParameteriv_bind) \ + X("GetMultisamplefv", glGetMultisamplefv_bind) \ + X("GetUniformfv", glGetUniformfv_bind) \ + X("GetUniformiv", glGetUniformiv_bind) \ + X("GetUniformuiv", glGetUniformuiv_bind) \ + X("GetUniformdv", glGetUniformdv_bind) \ + X("GetProgramiv", glGetProgramiv_bind) \ + X("GetProgramBinary", glGetProgramBinary_bind) \ + X("GetProgramInfoLog", glGetProgramInfoLog_bind) \ + X("GetProgramPipelineiv", glGetProgramPipelineiv_bind) \ + X("GetProgramPipelineInfoLog", glGetProgramPipelineInfoLog_bind) \ + X("GetProgramPipelineiv", glGetProgramPipelineiv_bind) \ + X("GetProgramStageiv", glGetProgramStageiv_bind) \ + X("GetQueryIndexediv", glGetQueryIndexediv_bind) \ + X("GetQueryiv", glGetQueryiv_bind) \ + X("GetRenderbufferParameteriv", glGetRenderbufferParameteriv_bind) \ + X("GetSamplerParameterfv", glGetSamplerParameterfv_bind) \ + X("GetSamplerParameteriv", glGetSamplerParameteriv_bind) \ + X("GetSamplerParameterIiv", glGetSamplerParameterIiv_bind) \ + X("GetSamplerParameterIuiv", glGetSamplerParameterIuiv_bind) \ + X("GetShaderiv", glGetShaderiv_bind) \ + X("GetShaderInfoLog", glGetShaderInfoLog_bind) \ + X("GetShaderiv", glGetShaderiv_bind) \ + X("GetShaderPrecisionFormat", glGetShaderPrecisionFormat_bind) \ + X("GetShaderSource", glGetShaderSource_bind) \ + X("GetString", glGetString_bind) \ + X("GetStringi", glGetStringi_bind) \ + X("GetSubroutineIndex", glGetSubroutineIndex_bind) \ + X("GetSubroutineUniformLocation", glGetSubroutineUniformLocation_bind) \ + X("GetSynciv", glGetSynciv_bind) \ + X("GetTexImage", glGetTexImage_bind) \ + X("GetTexLevelParameterfv", glGetTexLevelParameterfv_bind) \ + X("GetTexLevelParameteriv", glGetTexLevelParameteriv_bind) \ + X("GetTexParameterfv", glGetTexParameterfv_bind) \ + X("GetTexParameteriv", glGetTexParameteriv_bind) \ + X("GetTexParameterIiv", glGetTexParameterIiv_bind) \ + X("GetTexParameterIuiv", glGetTexParameterIuiv_bind) \ + X("GetTransformFeedbackVarying", glGetTransformFeedbackVarying_bind) \ + X("GetUniformBlockIndex", glGetUniformBlockIndex_bind) \ + X("GetUniformIndices", glGetUniformIndices_bind) \ + X("GetUniformLocation", glGetUniformLocation_bind) \ + X("GetUniformSubroutineuiv", glGetUniformSubroutineuiv_bind) \ + X("GetVertexAttribdv", glGetVertexAttribdv_bind) \ + X("GetVertexAttribfv", glGetVertexAttribfv_bind) \ + X("GetVertexAttribiv", glGetVertexAttribiv_bind) \ + X("GetVertexAttribIiv", glGetVertexAttribIiv_bind) \ + X("GetVertexAttribIuiv", glGetVertexAttribIuiv_bind) \ + X("GetVertexAttribLdv", glGetVertexAttribLdv_bind) \ + X("GetVertexAttribPointerv", glGetVertexAttribPointerv_bind) \ + X("Hint", glHint_bind) \ + X("IsBuffer", glIsBuffer_bind) \ + X("IsEnabled", glIsEnabled_bind) \ + X("IsEnabledi", glIsEnabledi_bind) \ + X("IsFramebuffer", glIsFramebuffer_bind) \ + X("IsProgram", glIsProgram_bind) \ + X("IsProgramPipeline", glIsProgramPipeline_bind) \ + X("IsQuery", glIsQuery_bind) \ + X("IsRenderbuffer", glIsRenderbuffer_bind) \ + X("IsSampler", glIsSampler_bind) \ + X("IsShader", glIsShader_bind) \ + X("IsSync", glIsSync_bind) \ + X("IsTexture", glIsTexture_bind) \ + X("IsTransformFeedback", glIsTransformFeedback_bind) \ + X("IsVertexArray", glIsVertexArray_bind) \ + X("LineWidth", glLineWidth_bind) \ + X("LinkProgram", glLinkProgram_bind) \ + X("LogicOp", glLogicOp_bind) \ + X("MapBuffer", glMapBuffer_bind) \ + X("MapBufferRange", glMapBufferRange_bind) \ + X("MinSampleShading", glMinSampleShading_bind) \ + X("MultiDrawArrays", glMultiDrawArrays_bind) \ + X("MultiDrawElements", glMultiDrawElements_bind) \ + X("MultiDrawElementsBaseVertex", glMultiDrawElementsBaseVertex_bind) \ + X("PatchParameteri", glPatchParameteri_bind) \ + X("PatchParameterfv", glPatchParameterfv_bind) \ + X("PauseTransformFeedback", glPauseTransformFeedback_bind) \ + X("PixelStoref", glPixelStoref_bind) \ + X("PixelStorei", glPixelStorei_bind) \ + X("PointParameterf", glPointParameterf_bind) \ + X("PointParameteri", glPointParameteri_bind) \ + X("PointParameterfv", glPointParameterfv_bind) \ + X("PointParameteriv", glPointParameteriv_bind) \ + X("PointSize", glPointSize_bind) \ + X("PolygonMode", glPolygonMode_bind) \ + X("PolygonOffset", glPolygonOffset_bind) \ + X("PrimitiveRestartIndex", glPrimitiveRestartIndex_bind) \ + X("ProgramBinary", glProgramBinary_bind) \ + X("ProgramParameteri", glProgramParameteri_bind) \ + X("ProgramUniform1f", glProgramUniform1f_bind) \ + X("ProgramUniform2f", glProgramUniform2f_bind) \ + X("ProgramUniform3f", glProgramUniform3f_bind) \ + X("ProgramUniform4f", glProgramUniform4f_bind) \ + X("ProgramUniform1i", glProgramUniform1i_bind) \ + X("ProgramUniform2i", glProgramUniform2i_bind) \ + X("ProgramUniform3i", glProgramUniform3i_bind) \ + X("ProgramUniform4i", glProgramUniform4i_bind) \ + X("ProgramUniform1ui", glProgramUniform1ui_bind) \ + X("ProgramUniform2ui", glProgramUniform2ui_bind) \ + X("ProgramUniform3ui", glProgramUniform3ui_bind) \ + X("ProgramUniform4ui", glProgramUniform4ui_bind) \ + X("ProgramUniform1fv", glProgramUniform1fv_bind) \ + X("ProgramUniform2fv", glProgramUniform2fv_bind) \ + X("ProgramUniform3fv", glProgramUniform3fv_bind) \ + X("ProgramUniform4fv", glProgramUniform4fv_bind) \ + X("ProgramUniform1iv", glProgramUniform1iv_bind) \ + X("ProgramUniform2iv", glProgramUniform2iv_bind) \ + X("ProgramUniform3iv", glProgramUniform3iv_bind) \ + X("ProgramUniform4iv", glProgramUniform4iv_bind) \ + X("ProgramUniform1uiv", glProgramUniform1uiv_bind) \ + X("ProgramUniform2uiv", glProgramUniform2uiv_bind) \ + X("ProgramUniform3uiv", glProgramUniform3uiv_bind) \ + X("ProgramUniform4uiv", glProgramUniform4uiv_bind) \ + X("ProgramUniformMatrix2fv", glProgramUniformMatrix2fv_bind) \ + X("ProgramUniformMatrix3fv", glProgramUniformMatrix3fv_bind) \ + X("ProgramUniformMatrix4fv", glProgramUniformMatrix4fv_bind) \ + X("ProgramUniformMatrix2x3fv", glProgramUniformMatrix2x3fv_bind) \ + X("ProgramUniformMatrix3x2fv", glProgramUniformMatrix3x2fv_bind) \ + X("ProgramUniformMatrix2x4fv", glProgramUniformMatrix2x4fv_bind) \ + X("ProgramUniformMatrix4x2fv", glProgramUniformMatrix4x2fv_bind) \ + X("ProgramUniformMatrix3x4fv", glProgramUniformMatrix3x4fv_bind) \ + X("ProgramUniformMatrix4x3fv", glProgramUniformMatrix4x3fv_bind) \ + X("ProvokingVertex", glProvokingVertex_bind) \ + X("QueryCounter", glQueryCounter_bind) \ + X("ReadBuffer", glReadBuffer_bind) \ + X("ReadPixels", glReadPixels_bind) \ + X("ReleaseShaderCompiler", glReleaseShaderCompiler_bind) \ + X("RenderbufferStorage", glRenderbufferStorage_bind) \ + X("RenderbufferStorageMultisample", glRenderbufferStorageMultisample_bind) \ + X("ResumeTransformFeedback", glResumeTransformFeedback_bind) \ + X("SampleCoverage", glSampleCoverage_bind) \ + X("SampleMaski", glSampleMaski_bind) \ + X("SamplerParameterf", glSamplerParameterf_bind) \ + X("SamplerParameteri", glSamplerParameteri_bind) \ + X("SamplerParameterfv", glSamplerParameterfv_bind) \ + X("SamplerParameteriv", glSamplerParameteriv_bind) \ + X("SamplerParameterIiv", glSamplerParameterIiv_bind) \ + X("SamplerParameterIuiv", glSamplerParameterIuiv_bind) \ + X("Scissor", glScissor_bind) \ + X("ScissorArrayv", glScissorArrayv_bind) \ + X("ScissorIndexed", glScissorIndexed_bind) \ + X("ScissorIndexedv", glScissorIndexedv_bind) \ + X("ShaderBinary", glShaderBinary_bind) \ + X("ShaderSource", glShaderSource_bind) \ + X("StencilFunc", glStencilFunc_bind) \ + X("StencilFuncSeparate", glStencilFuncSeparate_bind) \ + X("StencilMask", glStencilMask_bind) \ + X("StencilMaskSeparate", glStencilMaskSeparate_bind) \ + X("StencilOp", glStencilOp_bind) \ + X("StencilOpSeparate", glStencilOpSeparate_bind) \ + X("TexBuffer", glTexBuffer_bind) \ + X("TexImage1D", glTexImage1D_bind) \ + X("TexImage2D", glTexImage2D_bind) \ + X("TexImage2DMultisample", glTexImage2DMultisample_bind) \ + X("TexImage3D", glTexImage3D_bind) \ + X("TexImage3DMultisample", glTexImage3DMultisample_bind) \ + X("TexParameterf", glTexParameterf_bind) \ + X("TexParameteri", glTexParameteri_bind) \ + X("TexParameterfv", glTexParameterfv_bind) \ + X("TexParameteriv", glTexParameteriv_bind) \ + X("TexParameterIiv", glTexParameterIiv_bind) \ + X("TexParameterIuiv", glTexParameterIuiv_bind) \ + X("TexSubImage1D", glTexSubImage1D_bind) \ + X("TexSubImage2D", glTexSubImage2D_bind) \ + X("TexSubImage3D", glTexSubImage3D_bind) \ + X("TransformFeedbackVaryings", glTransformFeedbackVaryings_bind) \ + X("Uniform1f", glUniform1f_bind) \ + X("Uniform2f", glUniform2f_bind) \ + X("Uniform3f", glUniform3f_bind) \ + X("Uniform4f", glUniform4f_bind) \ + X("Uniform1i", glUniform1i_bind) \ + X("Uniform2i", glUniform2i_bind) \ + X("Uniform3i", glUniform3i_bind) \ + X("Uniform4i", glUniform4i_bind) \ + X("Uniform1ui", glUniform1ui_bind) \ + X("Uniform2ui", glUniform2ui_bind) \ + X("Uniform3ui", glUniform3ui_bind) \ + X("Uniform4ui", glUniform4ui_bind) \ + X("Uniform1fv", glUniform1fv_bind) \ + X("Uniform2fv", glUniform2fv_bind) \ + X("Uniform3fv", glUniform3fv_bind) \ + X("Uniform4fv", glUniform4fv_bind) \ + X("Uniform1iv", glUniform1iv_bind) \ + X("Uniform2iv", glUniform2iv_bind) \ + X("Uniform3iv", glUniform3iv_bind) \ + X("Uniform4iv", glUniform4iv_bind) \ + X("Uniform1uiv", glUniform1uiv_bind) \ + X("Uniform2uiv", glUniform2uiv_bind) \ + X("Uniform3uiv", glUniform3uiv_bind) \ + X("Uniform4uiv", glUniform4uiv_bind) \ + X("UniformMatrix2fv", glUniformMatrix2fv_bind) \ + X("UniformMatrix3fv", glUniformMatrix3fv_bind) \ + X("UniformMatrix4fv", glUniformMatrix4fv_bind) \ + X("UniformMatrix2x3fv", glUniformMatrix2x3fv_bind) \ + X("UniformMatrix3x2fv", glUniformMatrix3x2fv_bind) \ + X("UniformMatrix2x4fv", glUniformMatrix2x4fv_bind) \ + X("UniformMatrix4x2fv", glUniformMatrix4x2fv_bind) \ + X("UniformMatrix3x4fv", glUniformMatrix3x4fv_bind) \ + X("UniformMatrix4x3fv", glUniformMatrix4x3fv_bind) \ + X("UniformSubroutinesuiv", glUniformSubroutinesuiv_bind) \ + X("UnmapBuffer", glUnmapBuffer_bind) \ + X("UseProgram", glUseProgram_bind) \ + X("UseProgramStages", glUseProgramStages_bind) \ + X("ValidateProgram", glValidateProgram_bind) \ + X("ValidateProgramPipeline", glValidateProgramPipeline_bind) \ + X("VertexAttrib1f", glVertexAttrib1f_bind) \ + X("VertexAttrib1s", glVertexAttrib1s_bind) \ + X("VertexAttrib1d", glVertexAttrib1d_bind) \ + X("VertexAttribI1i", glVertexAttribI1i_bind) \ + X("VertexAttribI1ui", glVertexAttribI1ui_bind) \ + X("VertexAttrib2f", glVertexAttrib2f_bind) \ + X("VertexAttrib2s", glVertexAttrib2s_bind) \ + X("VertexAttrib2d", glVertexAttrib2d_bind) \ + X("VertexAttribI2i", glVertexAttribI2i_bind) \ + X("VertexAttribI2ui", glVertexAttribI2ui_bind) \ + X("VertexAttrib3f", glVertexAttrib3f_bind) \ + X("VertexAttrib3s", glVertexAttrib3s_bind) \ + X("VertexAttrib3d", glVertexAttrib3d_bind) \ + X("VertexAttribI3i", glVertexAttribI3i_bind) \ + X("VertexAttribI3ui", glVertexAttribI3ui_bind) \ + X("VertexAttrib4f", glVertexAttrib4f_bind) \ + X("VertexAttrib4s", glVertexAttrib4s_bind) \ + X("VertexAttrib4d", glVertexAttrib4d_bind) \ + X("VertexAttrib4Nub", glVertexAttrib4Nub_bind) \ + X("VertexAttribI4i", glVertexAttribI4i_bind) \ + X("VertexAttribI4ui", glVertexAttribI4ui_bind) \ + X("VertexAttribL1d", glVertexAttribL1d_bind) \ + X("VertexAttribL2d", glVertexAttribL2d_bind) \ + X("VertexAttribL3d", glVertexAttribL3d_bind) \ + X("VertexAttribL4d", glVertexAttribL4d_bind) \ + X("VertexAttrib1fv", glVertexAttrib1fv_bind) \ + X("VertexAttrib1sv", glVertexAttrib1sv_bind) \ + X("VertexAttrib1dv", glVertexAttrib1dv_bind) \ + X("VertexAttribI1iv", glVertexAttribI1iv_bind) \ + X("VertexAttribI1uiv", glVertexAttribI1uiv_bind) \ + X("VertexAttrib2fv", glVertexAttrib2fv_bind) \ + X("VertexAttrib2sv", glVertexAttrib2sv_bind) \ + X("VertexAttrib2dv", glVertexAttrib2dv_bind) \ + X("VertexAttribI2iv", glVertexAttribI2iv_bind) \ + X("VertexAttribI2uiv", glVertexAttribI2uiv_bind) \ + X("VertexAttrib3fv", glVertexAttrib3fv_bind) \ + X("VertexAttrib3sv", glVertexAttrib3sv_bind) \ + X("VertexAttrib3dv", glVertexAttrib3dv_bind) \ + X("VertexAttribI3iv", glVertexAttribI3iv_bind) \ + X("VertexAttribI3uiv", glVertexAttribI3uiv_bind) \ + X("VertexAttrib4fv", glVertexAttrib4fv_bind) \ + X("VertexAttrib4sv", glVertexAttrib4sv_bind) \ + X("VertexAttrib4dv", glVertexAttrib4dv_bind) \ + X("VertexAttrib4iv", glVertexAttrib4iv_bind) \ + X("VertexAttrib4bv", glVertexAttrib4bv_bind) \ + X("VertexAttrib4ubv", glVertexAttrib4ubv_bind) \ + X("VertexAttrib4usv", glVertexAttrib4usv_bind) \ + X("VertexAttrib4uiv", glVertexAttrib4uiv_bind) \ + X("VertexAttrib4Nbv", glVertexAttrib4Nbv_bind) \ + X("VertexAttrib4Nsv", glVertexAttrib4Nsv_bind) \ + X("VertexAttrib4Niv", glVertexAttrib4Niv_bind) \ + X("VertexAttrib4Nubv", glVertexAttrib4Nubv_bind) \ + X("VertexAttrib4Nusv", glVertexAttrib4Nusv_bind) \ + X("VertexAttrib4Nuiv", glVertexAttrib4Nuiv_bind) \ + X("VertexAttribI4bv", glVertexAttribI4bv_bind) \ + X("VertexAttribI4ubv", glVertexAttribI4ubv_bind) \ + X("VertexAttribI4sv", glVertexAttribI4sv_bind) \ + X("VertexAttribI4usv", glVertexAttribI4usv_bind) \ + X("VertexAttribI4iv", glVertexAttribI4iv_bind) \ + X("VertexAttribI4uiv", glVertexAttribI4uiv_bind) \ + X("VertexAttribL1dv", glVertexAttribL1dv_bind) \ + X("VertexAttribL2dv", glVertexAttribL2dv_bind) \ + X("VertexAttribL3dv", glVertexAttribL3dv_bind) \ + X("VertexAttribL4dv", glVertexAttribL4dv_bind) \ + X("VertexAttribP1ui", glVertexAttribP1ui_bind) \ + X("VertexAttribP2ui", glVertexAttribP2ui_bind) \ + X("VertexAttribP3ui", glVertexAttribP3ui_bind) \ + X("VertexAttribP4ui", glVertexAttribP4ui_bind) \ + X("VertexAttribPointer", glVertexAttribPointer_bind) \ + X("VertexAttribIPointer", glVertexAttribIPointer_bind) \ + X("Viewport", glViewport_bind) \ + X("ViewportArrayv", glViewportArrayv_bind) \ + X("ViewportIndexedf", glViewportIndexedf_bind) \ + X("ViewportIndexedfv", glViewportIndexedfv_bind) \ + X("WaitSync", glWaitSync_bind) \ + + +#define GL_ENUM \ + X("DEPTH_BUFFER_BIT", GL_DEPTH_BUFFER_BIT) \ + X("STENCIL_BUFFER_BIT", GL_STENCIL_BUFFER_BIT) \ + X("COLOR_BUFFER_BIT", GL_COLOR_BUFFER_BIT) \ + X("FALSE", GL_FALSE) \ + X("TRUE", GL_TRUE) \ + X("POINTS", GL_POINTS) \ + X("LINES", GL_LINES) \ + X("LINE_LOOP", GL_LINE_LOOP) \ + X("LINE_STRIP", GL_LINE_STRIP) \ + X("TRIANGLES", GL_TRIANGLES) \ + X("TRIANGLE_STRIP", GL_TRIANGLE_STRIP) \ + X("TRIANGLE_FAN", GL_TRIANGLE_FAN) \ + X("QUADS", GL_QUADS) \ + X("NEVER", GL_NEVER) \ + X("LESS", GL_LESS) \ + X("EQUAL", GL_EQUAL) \ + X("LEQUAL", GL_LEQUAL) \ + X("GREATER", GL_GREATER) \ + X("NOTEQUAL", GL_NOTEQUAL) \ + X("GEQUAL", GL_GEQUAL) \ + X("ALWAYS", GL_ALWAYS) \ + X("ZERO", GL_ZERO) \ + X("ONE", GL_ONE) \ + X("SRC_COLOR", GL_SRC_COLOR) \ + X("ONE_MINUS_SRC_COLOR", GL_ONE_MINUS_SRC_COLOR) \ + X("SRC_ALPHA", GL_SRC_ALPHA) \ + X("ONE_MINUS_SRC_ALPHA", GL_ONE_MINUS_SRC_ALPHA) \ + X("DST_ALPHA", GL_DST_ALPHA) \ + X("ONE_MINUS_DST_ALPHA", GL_ONE_MINUS_DST_ALPHA) \ + X("DST_COLOR", GL_DST_COLOR) \ + X("ONE_MINUS_DST_COLOR", GL_ONE_MINUS_DST_COLOR) \ + X("SRC_ALPHA_SATURATE", GL_SRC_ALPHA_SATURATE) \ + X("NONE", GL_NONE) \ + X("FRONT_LEFT", GL_FRONT_LEFT) \ + X("FRONT_RIGHT", GL_FRONT_RIGHT) \ + X("BACK_LEFT", GL_BACK_LEFT) \ + X("BACK_RIGHT", GL_BACK_RIGHT) \ + X("FRONT", GL_FRONT) \ + X("BACK", GL_BACK) \ + X("LEFT", GL_LEFT) \ + X("RIGHT", GL_RIGHT) \ + X("FRONT_AND_BACK", GL_FRONT_AND_BACK) \ + X("NO_ERROR", GL_NO_ERROR) \ + X("INVALID_ENUM", GL_INVALID_ENUM) \ + X("INVALID_VALUE", GL_INVALID_VALUE) \ + X("INVALID_OPERATION", GL_INVALID_OPERATION) \ + X("OUT_OF_MEMORY", GL_OUT_OF_MEMORY) \ + X("CW", GL_CW) \ + X("CCW", GL_CCW) \ + X("POINT_SIZE", GL_POINT_SIZE) \ + X("POINT_SIZE_RANGE", GL_POINT_SIZE_RANGE) \ + X("POINT_SIZE_GRANULARITY", GL_POINT_SIZE_GRANULARITY) \ + X("LINE_SMOOTH", GL_LINE_SMOOTH) \ + X("LINE_WIDTH", GL_LINE_WIDTH) \ + X("LINE_WIDTH_RANGE", GL_LINE_WIDTH_RANGE) \ + X("LINE_WIDTH_GRANULARITY", GL_LINE_WIDTH_GRANULARITY) \ + X("POLYGON_MODE", GL_POLYGON_MODE) \ + X("POLYGON_SMOOTH", GL_POLYGON_SMOOTH) \ + X("CULL_FACE", GL_CULL_FACE) \ + X("CULL_FACE_MODE", GL_CULL_FACE_MODE) \ + X("FRONT_FACE", GL_FRONT_FACE) \ + X("DEPTH_RANGE", GL_DEPTH_RANGE) \ + X("DEPTH_TEST", GL_DEPTH_TEST) \ + X("DEPTH_WRITEMASK", GL_DEPTH_WRITEMASK) \ + X("DEPTH_CLEAR_VALUE", GL_DEPTH_CLEAR_VALUE) \ + X("DEPTH_FUNC", GL_DEPTH_FUNC) \ + X("STENCIL_TEST", GL_STENCIL_TEST) \ + X("STENCIL_CLEAR_VALUE", GL_STENCIL_CLEAR_VALUE) \ + X("STENCIL_FUNC", GL_STENCIL_FUNC) \ + X("STENCIL_VALUE_MASK", GL_STENCIL_VALUE_MASK) \ + X("STENCIL_FAIL", GL_STENCIL_FAIL) \ + X("STENCIL_PASS_DEPTH_FAIL", GL_STENCIL_PASS_DEPTH_FAIL) \ + X("STENCIL_PASS_DEPTH_PASS", GL_STENCIL_PASS_DEPTH_PASS) \ + X("STENCIL_REF", GL_STENCIL_REF) \ + X("STENCIL_WRITEMASK", GL_STENCIL_WRITEMASK) \ + X("VIEWPORT", GL_VIEWPORT) \ + X("DITHER", GL_DITHER) \ + X("BLEND_DST", GL_BLEND_DST) \ + X("BLEND_SRC", GL_BLEND_SRC) \ + X("BLEND", GL_BLEND) \ + X("LOGIC_OP_MODE", GL_LOGIC_OP_MODE) \ + X("DRAW_BUFFER", GL_DRAW_BUFFER) \ + X("READ_BUFFER", GL_READ_BUFFER) \ + X("SCISSOR_BOX", GL_SCISSOR_BOX) \ + X("SCISSOR_TEST", GL_SCISSOR_TEST) \ + X("COLOR_CLEAR_VALUE", GL_COLOR_CLEAR_VALUE) \ + X("COLOR_WRITEMASK", GL_COLOR_WRITEMASK) \ + X("DOUBLEBUFFER", GL_DOUBLEBUFFER) \ + X("STEREO", GL_STEREO) \ + X("LINE_SMOOTH_HINT", GL_LINE_SMOOTH_HINT) \ + X("POLYGON_SMOOTH_HINT", GL_POLYGON_SMOOTH_HINT) \ + X("UNPACK_SWAP_BYTES", GL_UNPACK_SWAP_BYTES) \ + X("UNPACK_LSB_FIRST", GL_UNPACK_LSB_FIRST) \ + X("UNPACK_ROW_LENGTH", GL_UNPACK_ROW_LENGTH) \ + X("UNPACK_SKIP_ROWS", GL_UNPACK_SKIP_ROWS) \ + X("UNPACK_SKIP_PIXELS", GL_UNPACK_SKIP_PIXELS) \ + X("UNPACK_ALIGNMENT", GL_UNPACK_ALIGNMENT) \ + X("PACK_SWAP_BYTES", GL_PACK_SWAP_BYTES) \ + X("PACK_LSB_FIRST", GL_PACK_LSB_FIRST) \ + X("PACK_ROW_LENGTH", GL_PACK_ROW_LENGTH) \ + X("PACK_SKIP_ROWS", GL_PACK_SKIP_ROWS) \ + X("PACK_SKIP_PIXELS", GL_PACK_SKIP_PIXELS) \ + X("PACK_ALIGNMENT", GL_PACK_ALIGNMENT) \ + X("MAX_TEXTURE_SIZE", GL_MAX_TEXTURE_SIZE) \ + X("MAX_VIEWPORT_DIMS", GL_MAX_VIEWPORT_DIMS) \ + X("SUBPIXEL_BITS", GL_SUBPIXEL_BITS) \ + X("TEXTURE_1D", GL_TEXTURE_1D) \ + X("TEXTURE_2D", GL_TEXTURE_2D) \ + X("TEXTURE_WIDTH", GL_TEXTURE_WIDTH) \ + X("TEXTURE_HEIGHT", GL_TEXTURE_HEIGHT) \ + X("TEXTURE_BORDER_COLOR", GL_TEXTURE_BORDER_COLOR) \ + X("DONT_CARE", GL_DONT_CARE) \ + X("FASTEST", GL_FASTEST) \ + X("NICEST", GL_NICEST) \ + X("BYTE", GL_BYTE) \ + X("UNSIGNED_BYTE", GL_UNSIGNED_BYTE) \ + X("SHORT", GL_SHORT) \ + X("UNSIGNED_SHORT", GL_UNSIGNED_SHORT) \ + X("INT", GL_INT) \ + X("UNSIGNED_INT", GL_UNSIGNED_INT) \ + X("FLOAT", GL_FLOAT) \ + X("STACK_OVERFLOW", GL_STACK_OVERFLOW) \ + X("STACK_UNDERFLOW", GL_STACK_UNDERFLOW) \ + X("CLEAR", GL_CLEAR) \ + X("AND", GL_AND) \ + X("AND_REVERSE", GL_AND_REVERSE) \ + X("COPY", GL_COPY) \ + X("AND_INVERTED", GL_AND_INVERTED) \ + X("NOOP", GL_NOOP) \ + X("XOR", GL_XOR) \ + X("OR", GL_OR) \ + X("NOR", GL_NOR) \ + X("EQUIV", GL_EQUIV) \ + X("INVERT", GL_INVERT) \ + X("OR_REVERSE", GL_OR_REVERSE) \ + X("COPY_INVERTED", GL_COPY_INVERTED) \ + X("OR_INVERTED", GL_OR_INVERTED) \ + X("NAND", GL_NAND) \ + X("SET", GL_SET) \ + X("TEXTURE", GL_TEXTURE) \ + X("COLOR", GL_COLOR) \ + X("DEPTH", GL_DEPTH) \ + X("STENCIL", GL_STENCIL) \ + X("STENCIL_INDEX", GL_STENCIL_INDEX) \ + X("DEPTH_COMPONENT", GL_DEPTH_COMPONENT) \ + X("RED", GL_RED) \ + X("GREEN", GL_GREEN) \ + X("BLUE", GL_BLUE) \ + X("ALPHA", GL_ALPHA) \ + X("RGB", GL_RGB) \ + X("RGBA", GL_RGBA) \ + X("POINT", GL_POINT) \ + X("LINE", GL_LINE) \ + X("FILL", GL_FILL) \ + X("KEEP", GL_KEEP) \ + X("REPLACE", GL_REPLACE) \ + X("INCR", GL_INCR) \ + X("DECR", GL_DECR) \ + X("VENDOR", GL_VENDOR) \ + X("RENDERER", GL_RENDERER) \ + X("VERSION", GL_VERSION) \ + X("EXTENSIONS", GL_EXTENSIONS) \ + X("NEAREST", GL_NEAREST) \ + X("LINEAR", GL_LINEAR) \ + X("NEAREST_MIPMAP_NEAREST", GL_NEAREST_MIPMAP_NEAREST) \ + X("LINEAR_MIPMAP_NEAREST", GL_LINEAR_MIPMAP_NEAREST) \ + X("NEAREST_MIPMAP_LINEAR", GL_NEAREST_MIPMAP_LINEAR) \ + X("LINEAR_MIPMAP_LINEAR", GL_LINEAR_MIPMAP_LINEAR) \ + X("TEXTURE_MAG_FILTER", GL_TEXTURE_MAG_FILTER) \ + X("TEXTURE_MIN_FILTER", GL_TEXTURE_MIN_FILTER) \ + X("TEXTURE_WRAP_S", GL_TEXTURE_WRAP_S) \ + X("TEXTURE_WRAP_T", GL_TEXTURE_WRAP_T) \ + X("REPEAT", GL_REPEAT) \ + X("CURRENT_BIT", GL_CURRENT_BIT) \ + X("POINT_BIT", GL_POINT_BIT) \ + X("LINE_BIT", GL_LINE_BIT) \ + X("POLYGON_BIT", GL_POLYGON_BIT) \ + X("POLYGON_STIPPLE_BIT", GL_POLYGON_STIPPLE_BIT) \ + X("PIXEL_MODE_BIT", GL_PIXEL_MODE_BIT) \ + X("LIGHTING_BIT", GL_LIGHTING_BIT) \ + X("FOG_BIT", GL_FOG_BIT) \ + X("ACCUM_BUFFER_BIT", GL_ACCUM_BUFFER_BIT) \ + X("VIEWPORT_BIT", GL_VIEWPORT_BIT) \ + X("TRANSFORM_BIT", GL_TRANSFORM_BIT) \ + X("ENABLE_BIT", GL_ENABLE_BIT) \ + X("HINT_BIT", GL_HINT_BIT) \ + X("EVAL_BIT", GL_EVAL_BIT) \ + X("LIST_BIT", GL_LIST_BIT) \ + X("TEXTURE_BIT", GL_TEXTURE_BIT) \ + X("SCISSOR_BIT", GL_SCISSOR_BIT) \ + X("ALL_ATTRIB_BITS", GL_ALL_ATTRIB_BITS) \ + X("QUAD_STRIP", GL_QUAD_STRIP) \ + X("POLYGON", GL_POLYGON) \ + X("ACCUM", GL_ACCUM) \ + X("LOAD", GL_LOAD) \ + X("RETURN", GL_RETURN) \ + X("MULT", GL_MULT) \ + X("ADD", GL_ADD) \ + X("AUX0", GL_AUX0) \ + X("AUX1", GL_AUX1) \ + X("AUX2", GL_AUX2) \ + X("AUX3", GL_AUX3) \ + X("2D", GL_2D) \ + X("3D", GL_3D) \ + X("3D_COLOR", GL_3D_COLOR) \ + X("3D_COLOR_TEXTURE", GL_3D_COLOR_TEXTURE) \ + X("4D_COLOR_TEXTURE", GL_4D_COLOR_TEXTURE) \ + X("PASS_THROUGH_TOKEN", GL_PASS_THROUGH_TOKEN) \ + X("POINT_TOKEN", GL_POINT_TOKEN) \ + X("LINE_TOKEN", GL_LINE_TOKEN) \ + X("POLYGON_TOKEN", GL_POLYGON_TOKEN) \ + X("BITMAP_TOKEN", GL_BITMAP_TOKEN) \ + X("DRAW_PIXEL_TOKEN", GL_DRAW_PIXEL_TOKEN) \ + X("COPY_PIXEL_TOKEN", GL_COPY_PIXEL_TOKEN) \ + X("LINE_RESET_TOKEN", GL_LINE_RESET_TOKEN) \ + X("EXP", GL_EXP) \ + X("EXP2", GL_EXP2) \ + X("COEFF", GL_COEFF) \ + X("ORDER", GL_ORDER) \ + X("DOMAIN", GL_DOMAIN) \ + X("PIXEL_MAP_I_TO_I", GL_PIXEL_MAP_I_TO_I) \ + X("PIXEL_MAP_S_TO_S", GL_PIXEL_MAP_S_TO_S) \ + X("PIXEL_MAP_I_TO_R", GL_PIXEL_MAP_I_TO_R) \ + X("PIXEL_MAP_I_TO_G", GL_PIXEL_MAP_I_TO_G) \ + X("PIXEL_MAP_I_TO_B", GL_PIXEL_MAP_I_TO_B) \ + X("PIXEL_MAP_I_TO_A", GL_PIXEL_MAP_I_TO_A) \ + X("PIXEL_MAP_R_TO_R", GL_PIXEL_MAP_R_TO_R) \ + X("PIXEL_MAP_G_TO_G", GL_PIXEL_MAP_G_TO_G) \ + X("PIXEL_MAP_B_TO_B", GL_PIXEL_MAP_B_TO_B) \ + X("PIXEL_MAP_A_TO_A", GL_PIXEL_MAP_A_TO_A) \ + X("CURRENT_COLOR", GL_CURRENT_COLOR) \ + X("CURRENT_INDEX", GL_CURRENT_INDEX) \ + X("CURRENT_NORMAL", GL_CURRENT_NORMAL) \ + X("CURRENT_TEXTURE_COORDS", GL_CURRENT_TEXTURE_COORDS) \ + X("CURRENT_RASTER_COLOR", GL_CURRENT_RASTER_COLOR) \ + X("CURRENT_RASTER_INDEX", GL_CURRENT_RASTER_INDEX) \ + X("CURRENT_RASTER_TEXTURE_COORDS", GL_CURRENT_RASTER_TEXTURE_COORDS) \ + X("CURRENT_RASTER_POSITION", GL_CURRENT_RASTER_POSITION) \ + X("CURRENT_RASTER_POSITION_VALID", GL_CURRENT_RASTER_POSITION_VALID) \ + X("CURRENT_RASTER_DISTANCE", GL_CURRENT_RASTER_DISTANCE) \ + X("POINT_SMOOTH", GL_POINT_SMOOTH) \ + X("LINE_STIPPLE", GL_LINE_STIPPLE) \ + X("LINE_STIPPLE_PATTERN", GL_LINE_STIPPLE_PATTERN) \ + X("LINE_STIPPLE_REPEAT", GL_LINE_STIPPLE_REPEAT) \ + X("LIST_MODE", GL_LIST_MODE) \ + X("MAX_LIST_NESTING", GL_MAX_LIST_NESTING) \ + X("LIST_BASE", GL_LIST_BASE) \ + X("LIST_INDEX", GL_LIST_INDEX) \ + X("POLYGON_STIPPLE", GL_POLYGON_STIPPLE) \ + X("EDGE_FLAG", GL_EDGE_FLAG) \ + X("LIGHTING", GL_LIGHTING) \ + X("LIGHT_MODEL_LOCAL_VIEWER", GL_LIGHT_MODEL_LOCAL_VIEWER) \ + X("LIGHT_MODEL_TWO_SIDE", GL_LIGHT_MODEL_TWO_SIDE) \ + X("LIGHT_MODEL_AMBIENT", GL_LIGHT_MODEL_AMBIENT) \ + X("SHADE_MODEL", GL_SHADE_MODEL) \ + X("COLOR_MATERIAL_FACE", GL_COLOR_MATERIAL_FACE) \ + X("COLOR_MATERIAL_PARAMETER", GL_COLOR_MATERIAL_PARAMETER) \ + X("COLOR_MATERIAL", GL_COLOR_MATERIAL) \ + X("FOG", GL_FOG) \ + X("FOG_INDEX", GL_FOG_INDEX) \ + X("FOG_DENSITY", GL_FOG_DENSITY) \ + X("FOG_START", GL_FOG_START) \ + X("FOG_END", GL_FOG_END) \ + X("FOG_MODE", GL_FOG_MODE) \ + X("FOG_COLOR", GL_FOG_COLOR) \ + X("ACCUM_CLEAR_VALUE", GL_ACCUM_CLEAR_VALUE) \ + X("MATRIX_MODE", GL_MATRIX_MODE) \ + X("NORMALIZE", GL_NORMALIZE) \ + X("MODELVIEW_STACK_DEPTH", GL_MODELVIEW_STACK_DEPTH) \ + X("PROJECTION_STACK_DEPTH", GL_PROJECTION_STACK_DEPTH) \ + X("TEXTURE_STACK_DEPTH", GL_TEXTURE_STACK_DEPTH) \ + X("MODELVIEW_MATRIX", GL_MODELVIEW_MATRIX) \ + X("PROJECTION_MATRIX", GL_PROJECTION_MATRIX) \ + X("TEXTURE_MATRIX", GL_TEXTURE_MATRIX) \ + X("ATTRIB_STACK_DEPTH", GL_ATTRIB_STACK_DEPTH) \ + X("ALPHA_TEST", GL_ALPHA_TEST) \ + X("ALPHA_TEST_FUNC", GL_ALPHA_TEST_FUNC) \ + X("ALPHA_TEST_REF", GL_ALPHA_TEST_REF) \ + X("LOGIC_OP", GL_LOGIC_OP) \ + X("AUX_BUFFERS", GL_AUX_BUFFERS) \ + X("INDEX_CLEAR_VALUE", GL_INDEX_CLEAR_VALUE) \ + X("INDEX_WRITEMASK", GL_INDEX_WRITEMASK) \ + X("INDEX_MODE", GL_INDEX_MODE) \ + X("RGBA_MODE", GL_RGBA_MODE) \ + X("RENDER_MODE", GL_RENDER_MODE) \ + X("PERSPECTIVE_CORRECTION_HINT", GL_PERSPECTIVE_CORRECTION_HINT) \ + X("POINT_SMOOTH_HINT", GL_POINT_SMOOTH_HINT) \ + X("FOG_HINT", GL_FOG_HINT) \ + X("TEXTURE_GEN_S", GL_TEXTURE_GEN_S) \ + X("TEXTURE_GEN_T", GL_TEXTURE_GEN_T) \ + X("TEXTURE_GEN_R", GL_TEXTURE_GEN_R) \ + X("TEXTURE_GEN_Q", GL_TEXTURE_GEN_Q) \ + X("PIXEL_MAP_I_TO_I_SIZE", GL_PIXEL_MAP_I_TO_I_SIZE) \ + X("PIXEL_MAP_S_TO_S_SIZE", GL_PIXEL_MAP_S_TO_S_SIZE) \ + X("PIXEL_MAP_I_TO_R_SIZE", GL_PIXEL_MAP_I_TO_R_SIZE) \ + X("PIXEL_MAP_I_TO_G_SIZE", GL_PIXEL_MAP_I_TO_G_SIZE) \ + X("PIXEL_MAP_I_TO_B_SIZE", GL_PIXEL_MAP_I_TO_B_SIZE) \ + X("PIXEL_MAP_I_TO_A_SIZE", GL_PIXEL_MAP_I_TO_A_SIZE) \ + X("PIXEL_MAP_R_TO_R_SIZE", GL_PIXEL_MAP_R_TO_R_SIZE) \ + X("PIXEL_MAP_G_TO_G_SIZE", GL_PIXEL_MAP_G_TO_G_SIZE) \ + X("PIXEL_MAP_B_TO_B_SIZE", GL_PIXEL_MAP_B_TO_B_SIZE) \ + X("PIXEL_MAP_A_TO_A_SIZE", GL_PIXEL_MAP_A_TO_A_SIZE) \ + X("MAP_COLOR", GL_MAP_COLOR) \ + X("MAP_STENCIL", GL_MAP_STENCIL) \ + X("INDEX_SHIFT", GL_INDEX_SHIFT) \ + X("INDEX_OFFSET", GL_INDEX_OFFSET) \ + X("RED_SCALE", GL_RED_SCALE) \ + X("RED_BIAS", GL_RED_BIAS) \ + X("ZOOM_X", GL_ZOOM_X) \ + X("ZOOM_Y", GL_ZOOM_Y) \ + X("GREEN_SCALE", GL_GREEN_SCALE) \ + X("GREEN_BIAS", GL_GREEN_BIAS) \ + X("BLUE_SCALE", GL_BLUE_SCALE) \ + X("BLUE_BIAS", GL_BLUE_BIAS) \ + X("ALPHA_SCALE", GL_ALPHA_SCALE) \ + X("ALPHA_BIAS", GL_ALPHA_BIAS) \ + X("DEPTH_SCALE", GL_DEPTH_SCALE) \ + X("DEPTH_BIAS", GL_DEPTH_BIAS) \ + X("MAX_EVAL_ORDER", GL_MAX_EVAL_ORDER) \ + X("MAX_LIGHTS", GL_MAX_LIGHTS) \ + X("MAX_CLIP_PLANES", GL_MAX_CLIP_PLANES) \ + X("MAX_PIXEL_MAP_TABLE", GL_MAX_PIXEL_MAP_TABLE) \ + X("MAX_ATTRIB_STACK_DEPTH", GL_MAX_ATTRIB_STACK_DEPTH) \ + X("MAX_MODELVIEW_STACK_DEPTH", GL_MAX_MODELVIEW_STACK_DEPTH) \ + X("MAX_NAME_STACK_DEPTH", GL_MAX_NAME_STACK_DEPTH) \ + X("MAX_PROJECTION_STACK_DEPTH", GL_MAX_PROJECTION_STACK_DEPTH) \ + X("MAX_TEXTURE_STACK_DEPTH", GL_MAX_TEXTURE_STACK_DEPTH) \ + X("INDEX_BITS", GL_INDEX_BITS) \ + X("RED_BITS", GL_RED_BITS) \ + X("GREEN_BITS", GL_GREEN_BITS) \ + X("BLUE_BITS", GL_BLUE_BITS) \ + X("ALPHA_BITS", GL_ALPHA_BITS) \ + X("DEPTH_BITS", GL_DEPTH_BITS) \ + X("STENCIL_BITS", GL_STENCIL_BITS) \ + X("ACCUM_RED_BITS", GL_ACCUM_RED_BITS) \ + X("ACCUM_GREEN_BITS", GL_ACCUM_GREEN_BITS) \ + X("ACCUM_BLUE_BITS", GL_ACCUM_BLUE_BITS) \ + X("ACCUM_ALPHA_BITS", GL_ACCUM_ALPHA_BITS) \ + X("NAME_STACK_DEPTH", GL_NAME_STACK_DEPTH) \ + X("AUTO_NORMAL", GL_AUTO_NORMAL) \ + X("MAP1_COLOR_4", GL_MAP1_COLOR_4) \ + X("MAP1_INDEX", GL_MAP1_INDEX) \ + X("MAP1_NORMAL", GL_MAP1_NORMAL) \ + X("MAP1_TEXTURE_COORD_1", GL_MAP1_TEXTURE_COORD_1) \ + X("MAP1_TEXTURE_COORD_2", GL_MAP1_TEXTURE_COORD_2) \ + X("MAP1_TEXTURE_COORD_3", GL_MAP1_TEXTURE_COORD_3) \ + X("MAP1_TEXTURE_COORD_4", GL_MAP1_TEXTURE_COORD_4) \ + X("MAP1_VERTEX_3", GL_MAP1_VERTEX_3) \ + X("MAP1_VERTEX_4", GL_MAP1_VERTEX_4) \ + X("MAP2_COLOR_4", GL_MAP2_COLOR_4) \ + X("MAP2_INDEX", GL_MAP2_INDEX) \ + X("MAP2_NORMAL", GL_MAP2_NORMAL) \ + X("MAP2_TEXTURE_COORD_1", GL_MAP2_TEXTURE_COORD_1) \ + X("MAP2_TEXTURE_COORD_2", GL_MAP2_TEXTURE_COORD_2) \ + X("MAP2_TEXTURE_COORD_3", GL_MAP2_TEXTURE_COORD_3) \ + X("MAP2_TEXTURE_COORD_4", GL_MAP2_TEXTURE_COORD_4) \ + X("MAP2_VERTEX_3", GL_MAP2_VERTEX_3) \ + X("MAP2_VERTEX_4", GL_MAP2_VERTEX_4) \ + X("MAP1_GRID_DOMAIN", GL_MAP1_GRID_DOMAIN) \ + X("MAP1_GRID_SEGMENTS", GL_MAP1_GRID_SEGMENTS) \ + X("MAP2_GRID_DOMAIN", GL_MAP2_GRID_DOMAIN) \ + X("MAP2_GRID_SEGMENTS", GL_MAP2_GRID_SEGMENTS) \ + X("TEXTURE_COMPONENTS", GL_TEXTURE_COMPONENTS) \ + X("TEXTURE_BORDER", GL_TEXTURE_BORDER) \ + X("AMBIENT", GL_AMBIENT) \ + X("DIFFUSE", GL_DIFFUSE) \ + X("SPECULAR", GL_SPECULAR) \ + X("POSITION", GL_POSITION) \ + X("SPOT_DIRECTION", GL_SPOT_DIRECTION) \ + X("SPOT_EXPONENT", GL_SPOT_EXPONENT) \ + X("SPOT_CUTOFF", GL_SPOT_CUTOFF) \ + X("CONSTANT_ATTENUATION", GL_CONSTANT_ATTENUATION) \ + X("LINEAR_ATTENUATION", GL_LINEAR_ATTENUATION) \ + X("QUADRATIC_ATTENUATION", GL_QUADRATIC_ATTENUATION) \ + X("COMPILE", GL_COMPILE) \ + X("COMPILE_AND_EXECUTE", GL_COMPILE_AND_EXECUTE) \ + X("2_BYTES", GL_2_BYTES) \ + X("3_BYTES", GL_3_BYTES) \ + X("4_BYTES", GL_4_BYTES) \ + X("EMISSION", GL_EMISSION) \ + X("SHININESS", GL_SHININESS) \ + X("AMBIENT_AND_DIFFUSE", GL_AMBIENT_AND_DIFFUSE) \ + X("COLOR_INDEXES", GL_COLOR_INDEXES) \ + X("MODELVIEW", GL_MODELVIEW) \ + X("PROJECTION", GL_PROJECTION) \ + X("COLOR_INDEX", GL_COLOR_INDEX) \ + X("LUMINANCE", GL_LUMINANCE) \ + X("LUMINANCE_ALPHA", GL_LUMINANCE_ALPHA) \ + X("BITMAP", GL_BITMAP) \ + X("RENDER", GL_RENDER) \ + X("FEEDBACK", GL_FEEDBACK) \ + X("SELECT", GL_SELECT) \ + X("FLAT", GL_FLAT) \ + X("SMOOTH", GL_SMOOTH) \ + X("S", GL_S) \ + X("T", GL_T) \ + X("R", GL_R) \ + X("Q", GL_Q) \ + X("MODULATE", GL_MODULATE) \ + X("DECAL", GL_DECAL) \ + X("TEXTURE_ENV_MODE", GL_TEXTURE_ENV_MODE) \ + X("TEXTURE_ENV_COLOR", GL_TEXTURE_ENV_COLOR) \ + X("TEXTURE_ENV", GL_TEXTURE_ENV) \ + X("EYE_LINEAR", GL_EYE_LINEAR) \ + X("OBJECT_LINEAR", GL_OBJECT_LINEAR) \ + X("SPHERE_MAP", GL_SPHERE_MAP) \ + X("TEXTURE_GEN_MODE", GL_TEXTURE_GEN_MODE) \ + X("OBJECT_PLANE", GL_OBJECT_PLANE) \ + X("EYE_PLANE", GL_EYE_PLANE) \ + X("CLAMP", GL_CLAMP) \ + X("CLIP_PLANE0", GL_CLIP_PLANE0) \ + X("CLIP_PLANE1", GL_CLIP_PLANE1) \ + X("CLIP_PLANE2", GL_CLIP_PLANE2) \ + X("CLIP_PLANE3", GL_CLIP_PLANE3) \ + X("CLIP_PLANE4", GL_CLIP_PLANE4) \ + X("CLIP_PLANE5", GL_CLIP_PLANE5) \ + X("LIGHT0", GL_LIGHT0) \ + X("LIGHT1", GL_LIGHT1) \ + X("LIGHT2", GL_LIGHT2) \ + X("LIGHT3", GL_LIGHT3) \ + X("LIGHT4", GL_LIGHT4) \ + X("LIGHT5", GL_LIGHT5) \ + X("LIGHT6", GL_LIGHT6) \ + X("LIGHT7", GL_LIGHT7) \ + X("COLOR_LOGIC_OP", GL_COLOR_LOGIC_OP) \ + X("POLYGON_OFFSET_UNITS", GL_POLYGON_OFFSET_UNITS) \ + X("POLYGON_OFFSET_POINT", GL_POLYGON_OFFSET_POINT) \ + X("POLYGON_OFFSET_LINE", GL_POLYGON_OFFSET_LINE) \ + X("POLYGON_OFFSET_FILL", GL_POLYGON_OFFSET_FILL) \ + X("POLYGON_OFFSET_FACTOR", GL_POLYGON_OFFSET_FACTOR) \ + X("TEXTURE_BINDING_1D", GL_TEXTURE_BINDING_1D) \ + X("TEXTURE_BINDING_2D", GL_TEXTURE_BINDING_2D) \ + X("TEXTURE_INTERNAL_FORMAT", GL_TEXTURE_INTERNAL_FORMAT) \ + X("TEXTURE_RED_SIZE", GL_TEXTURE_RED_SIZE) \ + X("TEXTURE_GREEN_SIZE", GL_TEXTURE_GREEN_SIZE) \ + X("TEXTURE_BLUE_SIZE", GL_TEXTURE_BLUE_SIZE) \ + X("TEXTURE_ALPHA_SIZE", GL_TEXTURE_ALPHA_SIZE) \ + X("DOUBLE", GL_DOUBLE) \ + X("PROXY_TEXTURE_1D", GL_PROXY_TEXTURE_1D) \ + X("PROXY_TEXTURE_2D", GL_PROXY_TEXTURE_2D) \ + X("R3_G3_B2", GL_R3_G3_B2) \ + X("RGB4", GL_RGB4) \ + X("RGB5", GL_RGB5) \ + X("RGB8", GL_RGB8) \ + X("RGB10", GL_RGB10) \ + X("RGB12", GL_RGB12) \ + X("RGB16", GL_RGB16) \ + X("RGBA2", GL_RGBA2) \ + X("RGBA4", GL_RGBA4) \ + X("RGB5_A1", GL_RGB5_A1) \ + X("RGBA8", GL_RGBA8) \ + X("RGB10_A2", GL_RGB10_A2) \ + X("RGBA12", GL_RGBA12) \ + X("RGBA16", GL_RGBA16) \ + X("CLIENT_PIXEL_STORE_BIT", GL_CLIENT_PIXEL_STORE_BIT) \ + X("CLIENT_VERTEX_ARRAY_BIT", GL_CLIENT_VERTEX_ARRAY_BIT) \ + X("CLIENT_ALL_ATTRIB_BITS", GL_CLIENT_ALL_ATTRIB_BITS) \ + X("VERTEX_ARRAY_POINTER", GL_VERTEX_ARRAY_POINTER) \ + X("NORMAL_ARRAY_POINTER", GL_NORMAL_ARRAY_POINTER) \ + X("COLOR_ARRAY_POINTER", GL_COLOR_ARRAY_POINTER) \ + X("INDEX_ARRAY_POINTER", GL_INDEX_ARRAY_POINTER) \ + X("TEXTURE_COORD_ARRAY_POINTER", GL_TEXTURE_COORD_ARRAY_POINTER) \ + X("EDGE_FLAG_ARRAY_POINTER", GL_EDGE_FLAG_ARRAY_POINTER) \ + X("FEEDBACK_BUFFER_POINTER", GL_FEEDBACK_BUFFER_POINTER) \ + X("SELECTION_BUFFER_POINTER", GL_SELECTION_BUFFER_POINTER) \ + X("CLIENT_ATTRIB_STACK_DEPTH", GL_CLIENT_ATTRIB_STACK_DEPTH) \ + X("INDEX_LOGIC_OP", GL_INDEX_LOGIC_OP) \ + X("MAX_CLIENT_ATTRIB_STACK_DEPTH", GL_MAX_CLIENT_ATTRIB_STACK_DEPTH) \ + X("FEEDBACK_BUFFER_SIZE", GL_FEEDBACK_BUFFER_SIZE) \ + X("FEEDBACK_BUFFER_TYPE", GL_FEEDBACK_BUFFER_TYPE) \ + X("SELECTION_BUFFER_SIZE", GL_SELECTION_BUFFER_SIZE) \ + X("VERTEX_ARRAY", GL_VERTEX_ARRAY) \ + X("NORMAL_ARRAY", GL_NORMAL_ARRAY) \ + X("COLOR_ARRAY", GL_COLOR_ARRAY) \ + X("INDEX_ARRAY", GL_INDEX_ARRAY) \ + X("TEXTURE_COORD_ARRAY", GL_TEXTURE_COORD_ARRAY) \ + X("EDGE_FLAG_ARRAY", GL_EDGE_FLAG_ARRAY) \ + X("VERTEX_ARRAY_SIZE", GL_VERTEX_ARRAY_SIZE) \ + X("VERTEX_ARRAY_TYPE", GL_VERTEX_ARRAY_TYPE) \ + X("VERTEX_ARRAY_STRIDE", GL_VERTEX_ARRAY_STRIDE) \ + X("NORMAL_ARRAY_TYPE", GL_NORMAL_ARRAY_TYPE) \ + X("NORMAL_ARRAY_STRIDE", GL_NORMAL_ARRAY_STRIDE) \ + X("COLOR_ARRAY_SIZE", GL_COLOR_ARRAY_SIZE) \ + X("COLOR_ARRAY_TYPE", GL_COLOR_ARRAY_TYPE) \ + X("COLOR_ARRAY_STRIDE", GL_COLOR_ARRAY_STRIDE) \ + X("INDEX_ARRAY_TYPE", GL_INDEX_ARRAY_TYPE) \ + X("INDEX_ARRAY_STRIDE", GL_INDEX_ARRAY_STRIDE) \ + X("TEXTURE_COORD_ARRAY_SIZE", GL_TEXTURE_COORD_ARRAY_SIZE) \ + X("TEXTURE_COORD_ARRAY_TYPE", GL_TEXTURE_COORD_ARRAY_TYPE) \ + X("TEXTURE_COORD_ARRAY_STRIDE", GL_TEXTURE_COORD_ARRAY_STRIDE) \ + X("EDGE_FLAG_ARRAY_STRIDE", GL_EDGE_FLAG_ARRAY_STRIDE) \ + X("TEXTURE_LUMINANCE_SIZE", GL_TEXTURE_LUMINANCE_SIZE) \ + X("TEXTURE_INTENSITY_SIZE", GL_TEXTURE_INTENSITY_SIZE) \ + X("TEXTURE_PRIORITY", GL_TEXTURE_PRIORITY) \ + X("TEXTURE_RESIDENT", GL_TEXTURE_RESIDENT) \ + X("ALPHA4", GL_ALPHA4) \ + X("ALPHA8", GL_ALPHA8) \ + X("ALPHA12", GL_ALPHA12) \ + X("ALPHA16", GL_ALPHA16) \ + X("LUMINANCE4", GL_LUMINANCE4) \ + X("LUMINANCE8", GL_LUMINANCE8) \ + X("LUMINANCE12", GL_LUMINANCE12) \ + X("LUMINANCE16", GL_LUMINANCE16) \ + X("LUMINANCE4_ALPHA4", GL_LUMINANCE4_ALPHA4) \ + X("LUMINANCE6_ALPHA2", GL_LUMINANCE6_ALPHA2) \ + X("LUMINANCE8_ALPHA8", GL_LUMINANCE8_ALPHA8) \ + X("LUMINANCE12_ALPHA4", GL_LUMINANCE12_ALPHA4) \ + X("LUMINANCE12_ALPHA12", GL_LUMINANCE12_ALPHA12) \ + X("LUMINANCE16_ALPHA16", GL_LUMINANCE16_ALPHA16) \ + X("INTENSITY", GL_INTENSITY) \ + X("INTENSITY4", GL_INTENSITY4) \ + X("INTENSITY8", GL_INTENSITY8) \ + X("INTENSITY12", GL_INTENSITY12) \ + X("INTENSITY16", GL_INTENSITY16) \ + X("V2F", GL_V2F) \ + X("V3F", GL_V3F) \ + X("C4UB_V2F", GL_C4UB_V2F) \ + X("C4UB_V3F", GL_C4UB_V3F) \ + X("C3F_V3F", GL_C3F_V3F) \ + X("N3F_V3F", GL_N3F_V3F) \ + X("C4F_N3F_V3F", GL_C4F_N3F_V3F) \ + X("T2F_V3F", GL_T2F_V3F) \ + X("T4F_V4F", GL_T4F_V4F) \ + X("T2F_C4UB_V3F", GL_T2F_C4UB_V3F) \ + X("T2F_C3F_V3F", GL_T2F_C3F_V3F) \ + X("T2F_N3F_V3F", GL_T2F_N3F_V3F) \ + X("T2F_C4F_N3F_V3F", GL_T2F_C4F_N3F_V3F) \ + X("T4F_C4F_N3F_V4F", GL_T4F_C4F_N3F_V4F) \ + X("UNSIGNED_BYTE_3_3_2", GL_UNSIGNED_BYTE_3_3_2) \ + X("UNSIGNED_SHORT_4_4_4_4", GL_UNSIGNED_SHORT_4_4_4_4) \ + X("UNSIGNED_SHORT_5_5_5_1", GL_UNSIGNED_SHORT_5_5_5_1) \ + X("UNSIGNED_INT_8_8_8_8", GL_UNSIGNED_INT_8_8_8_8) \ + X("UNSIGNED_INT_10_10_10_2", GL_UNSIGNED_INT_10_10_10_2) \ + X("TEXTURE_BINDING_3D", GL_TEXTURE_BINDING_3D) \ + X("PACK_SKIP_IMAGES", GL_PACK_SKIP_IMAGES) \ + X("PACK_IMAGE_HEIGHT", GL_PACK_IMAGE_HEIGHT) \ + X("UNPACK_SKIP_IMAGES", GL_UNPACK_SKIP_IMAGES) \ + X("UNPACK_IMAGE_HEIGHT", GL_UNPACK_IMAGE_HEIGHT) \ + X("TEXTURE_3D", GL_TEXTURE_3D) \ + X("PROXY_TEXTURE_3D", GL_PROXY_TEXTURE_3D) \ + X("TEXTURE_DEPTH", GL_TEXTURE_DEPTH) \ + X("TEXTURE_WRAP_R", GL_TEXTURE_WRAP_R) \ + X("MAX_3D_TEXTURE_SIZE", GL_MAX_3D_TEXTURE_SIZE) \ + X("UNSIGNED_BYTE_2_3_3_REV", GL_UNSIGNED_BYTE_2_3_3_REV) \ + X("UNSIGNED_SHORT_5_6_5", GL_UNSIGNED_SHORT_5_6_5) \ + X("UNSIGNED_SHORT_5_6_5_REV", GL_UNSIGNED_SHORT_5_6_5_REV) \ + X("UNSIGNED_SHORT_4_4_4_4_REV", GL_UNSIGNED_SHORT_4_4_4_4_REV) \ + X("UNSIGNED_SHORT_1_5_5_5_REV", GL_UNSIGNED_SHORT_1_5_5_5_REV) \ + X("UNSIGNED_INT_8_8_8_8_REV", GL_UNSIGNED_INT_8_8_8_8_REV) \ + X("UNSIGNED_INT_2_10_10_10_REV", GL_UNSIGNED_INT_2_10_10_10_REV) \ + X("BGR", GL_BGR) \ + X("BGRA", GL_BGRA) \ + X("MAX_ELEMENTS_VERTICES", GL_MAX_ELEMENTS_VERTICES) \ + X("MAX_ELEMENTS_INDICES", GL_MAX_ELEMENTS_INDICES) \ + X("CLAMP_TO_EDGE", GL_CLAMP_TO_EDGE) \ + X("TEXTURE_MIN_LOD", GL_TEXTURE_MIN_LOD) \ + X("TEXTURE_MAX_LOD", GL_TEXTURE_MAX_LOD) \ + X("TEXTURE_BASE_LEVEL", GL_TEXTURE_BASE_LEVEL) \ + X("TEXTURE_MAX_LEVEL", GL_TEXTURE_MAX_LEVEL) \ + X("SMOOTH_POINT_SIZE_RANGE", GL_SMOOTH_POINT_SIZE_RANGE) \ + X("SMOOTH_POINT_SIZE_GRANULARITY", GL_SMOOTH_POINT_SIZE_GRANULARITY) \ + X("SMOOTH_LINE_WIDTH_RANGE", GL_SMOOTH_LINE_WIDTH_RANGE) \ + X("SMOOTH_LINE_WIDTH_GRANULARITY", GL_SMOOTH_LINE_WIDTH_GRANULARITY) \ + X("ALIASED_LINE_WIDTH_RANGE", GL_ALIASED_LINE_WIDTH_RANGE) \ + X("RESCALE_NORMAL", GL_RESCALE_NORMAL) \ + X("LIGHT_MODEL_COLOR_CONTROL", GL_LIGHT_MODEL_COLOR_CONTROL) \ + X("SINGLE_COLOR", GL_SINGLE_COLOR) \ + X("SEPARATE_SPECULAR_COLOR", GL_SEPARATE_SPECULAR_COLOR) \ + X("ALIASED_POINT_SIZE_RANGE", GL_ALIASED_POINT_SIZE_RANGE) \ + X("TEXTURE0", GL_TEXTURE0) \ + X("TEXTURE1", GL_TEXTURE1) \ + X("TEXTURE2", GL_TEXTURE2) \ + X("TEXTURE3", GL_TEXTURE3) \ + X("TEXTURE4", GL_TEXTURE4) \ + X("TEXTURE5", GL_TEXTURE5) \ + X("TEXTURE6", GL_TEXTURE6) \ + X("TEXTURE7", GL_TEXTURE7) \ + X("TEXTURE8", GL_TEXTURE8) \ + X("TEXTURE9", GL_TEXTURE9) \ + X("TEXTURE10", GL_TEXTURE10) \ + X("TEXTURE11", GL_TEXTURE11) \ + X("TEXTURE12", GL_TEXTURE12) \ + X("TEXTURE13", GL_TEXTURE13) \ + X("TEXTURE14", GL_TEXTURE14) \ + X("TEXTURE15", GL_TEXTURE15) \ + X("TEXTURE16", GL_TEXTURE16) \ + X("TEXTURE17", GL_TEXTURE17) \ + X("TEXTURE18", GL_TEXTURE18) \ + X("TEXTURE19", GL_TEXTURE19) \ + X("TEXTURE20", GL_TEXTURE20) \ + X("TEXTURE21", GL_TEXTURE21) \ + X("TEXTURE22", GL_TEXTURE22) \ + X("TEXTURE23", GL_TEXTURE23) \ + X("TEXTURE24", GL_TEXTURE24) \ + X("TEXTURE25", GL_TEXTURE25) \ + X("TEXTURE26", GL_TEXTURE26) \ + X("TEXTURE27", GL_TEXTURE27) \ + X("TEXTURE28", GL_TEXTURE28) \ + X("TEXTURE29", GL_TEXTURE29) \ + X("TEXTURE30", GL_TEXTURE30) \ + X("TEXTURE31", GL_TEXTURE31) \ + X("ACTIVE_TEXTURE", GL_ACTIVE_TEXTURE) \ + X("MULTISAMPLE", GL_MULTISAMPLE) \ + X("SAMPLE_ALPHA_TO_COVERAGE", GL_SAMPLE_ALPHA_TO_COVERAGE) \ + X("SAMPLE_ALPHA_TO_ONE", GL_SAMPLE_ALPHA_TO_ONE) \ + X("SAMPLE_COVERAGE", GL_SAMPLE_COVERAGE) \ + X("SAMPLE_BUFFERS", GL_SAMPLE_BUFFERS) \ + X("SAMPLES", GL_SAMPLES) \ + X("SAMPLE_COVERAGE_VALUE", GL_SAMPLE_COVERAGE_VALUE) \ + X("SAMPLE_COVERAGE_INVERT", GL_SAMPLE_COVERAGE_INVERT) \ + X("TEXTURE_CUBE_MAP", GL_TEXTURE_CUBE_MAP) \ + X("TEXTURE_BINDING_CUBE_MAP", GL_TEXTURE_BINDING_CUBE_MAP) \ + X("TEXTURE_CUBE_MAP_POSITIVE_X", GL_TEXTURE_CUBE_MAP_POSITIVE_X) \ + X("TEXTURE_CUBE_MAP_NEGATIVE_X", GL_TEXTURE_CUBE_MAP_NEGATIVE_X) \ + X("TEXTURE_CUBE_MAP_POSITIVE_Y", GL_TEXTURE_CUBE_MAP_POSITIVE_Y) \ + X("TEXTURE_CUBE_MAP_NEGATIVE_Y", GL_TEXTURE_CUBE_MAP_NEGATIVE_Y) \ + X("TEXTURE_CUBE_MAP_POSITIVE_Z", GL_TEXTURE_CUBE_MAP_POSITIVE_Z) \ + X("TEXTURE_CUBE_MAP_NEGATIVE_Z", GL_TEXTURE_CUBE_MAP_NEGATIVE_Z) \ + X("PROXY_TEXTURE_CUBE_MAP", GL_PROXY_TEXTURE_CUBE_MAP) \ + X("MAX_CUBE_MAP_TEXTURE_SIZE", GL_MAX_CUBE_MAP_TEXTURE_SIZE) \ + X("COMPRESSED_RGB", GL_COMPRESSED_RGB) \ + X("COMPRESSED_RGBA", GL_COMPRESSED_RGBA) \ + X("TEXTURE_COMPRESSION_HINT", GL_TEXTURE_COMPRESSION_HINT) \ + X("TEXTURE_COMPRESSED_IMAGE_SIZE", GL_TEXTURE_COMPRESSED_IMAGE_SIZE) \ + X("TEXTURE_COMPRESSED", GL_TEXTURE_COMPRESSED) \ + X("NUM_COMPRESSED_TEXTURE_FORMATS", GL_NUM_COMPRESSED_TEXTURE_FORMATS) \ + X("COMPRESSED_TEXTURE_FORMATS", GL_COMPRESSED_TEXTURE_FORMATS) \ + X("CLAMP_TO_BORDER", GL_CLAMP_TO_BORDER) \ + X("CLIENT_ACTIVE_TEXTURE", GL_CLIENT_ACTIVE_TEXTURE) \ + X("MAX_TEXTURE_UNITS", GL_MAX_TEXTURE_UNITS) \ + X("TRANSPOSE_MODELVIEW_MATRIX", GL_TRANSPOSE_MODELVIEW_MATRIX) \ + X("TRANSPOSE_PROJECTION_MATRIX", GL_TRANSPOSE_PROJECTION_MATRIX) \ + X("TRANSPOSE_TEXTURE_MATRIX", GL_TRANSPOSE_TEXTURE_MATRIX) \ + X("TRANSPOSE_COLOR_MATRIX", GL_TRANSPOSE_COLOR_MATRIX) \ + X("MULTISAMPLE_BIT", GL_MULTISAMPLE_BIT) \ + X("NORMAL_MAP", GL_NORMAL_MAP) \ + X("REFLECTION_MAP", GL_REFLECTION_MAP) \ + X("COMPRESSED_ALPHA", GL_COMPRESSED_ALPHA) \ + X("COMPRESSED_LUMINANCE", GL_COMPRESSED_LUMINANCE) \ + X("COMPRESSED_LUMINANCE_ALPHA", GL_COMPRESSED_LUMINANCE_ALPHA) \ + X("COMPRESSED_INTENSITY", GL_COMPRESSED_INTENSITY) \ + X("COMBINE", GL_COMBINE) \ + X("COMBINE_RGB", GL_COMBINE_RGB) \ + X("COMBINE_ALPHA", GL_COMBINE_ALPHA) \ + X("SOURCE0_RGB", GL_SOURCE0_RGB) \ + X("SOURCE1_RGB", GL_SOURCE1_RGB) \ + X("SOURCE2_RGB", GL_SOURCE2_RGB) \ + X("SOURCE0_ALPHA", GL_SOURCE0_ALPHA) \ + X("SOURCE1_ALPHA", GL_SOURCE1_ALPHA) \ + X("SOURCE2_ALPHA", GL_SOURCE2_ALPHA) \ + X("OPERAND0_RGB", GL_OPERAND0_RGB) \ + X("OPERAND1_RGB", GL_OPERAND1_RGB) \ + X("OPERAND2_RGB", GL_OPERAND2_RGB) \ + X("OPERAND0_ALPHA", GL_OPERAND0_ALPHA) \ + X("OPERAND1_ALPHA", GL_OPERAND1_ALPHA) \ + X("OPERAND2_ALPHA", GL_OPERAND2_ALPHA) \ + X("RGB_SCALE", GL_RGB_SCALE) \ + X("ADD_SIGNED", GL_ADD_SIGNED) \ + X("INTERPOLATE", GL_INTERPOLATE) \ + X("SUBTRACT", GL_SUBTRACT) \ + X("CONSTANT", GL_CONSTANT) \ + X("PRIMARY_COLOR", GL_PRIMARY_COLOR) \ + X("PREVIOUS", GL_PREVIOUS) \ + X("DOT3_RGB", GL_DOT3_RGB) \ + X("DOT3_RGBA", GL_DOT3_RGBA) \ + X("BLEND_DST_RGB", GL_BLEND_DST_RGB) \ + X("BLEND_SRC_RGB", GL_BLEND_SRC_RGB) \ + X("BLEND_DST_ALPHA", GL_BLEND_DST_ALPHA) \ + X("BLEND_SRC_ALPHA", GL_BLEND_SRC_ALPHA) \ + X("POINT_FADE_THRESHOLD_SIZE", GL_POINT_FADE_THRESHOLD_SIZE) \ + X("DEPTH_COMPONENT16", GL_DEPTH_COMPONENT16) \ + X("DEPTH_COMPONENT24", GL_DEPTH_COMPONENT24) \ + X("DEPTH_COMPONENT32", GL_DEPTH_COMPONENT32) \ + X("MIRRORED_REPEAT", GL_MIRRORED_REPEAT) \ + X("MAX_TEXTURE_LOD_BIAS", GL_MAX_TEXTURE_LOD_BIAS) \ + X("TEXTURE_LOD_BIAS", GL_TEXTURE_LOD_BIAS) \ + X("INCR_WRAP", GL_INCR_WRAP) \ + X("DECR_WRAP", GL_DECR_WRAP) \ + X("TEXTURE_DEPTH_SIZE", GL_TEXTURE_DEPTH_SIZE) \ + X("TEXTURE_COMPARE_MODE", GL_TEXTURE_COMPARE_MODE) \ + X("TEXTURE_COMPARE_FUNC", GL_TEXTURE_COMPARE_FUNC) \ + X("POINT_SIZE_MIN", GL_POINT_SIZE_MIN) \ + X("POINT_SIZE_MAX", GL_POINT_SIZE_MAX) \ + X("POINT_DISTANCE_ATTENUATION", GL_POINT_DISTANCE_ATTENUATION) \ + X("GENERATE_MIPMAP", GL_GENERATE_MIPMAP) \ + X("GENERATE_MIPMAP_HINT", GL_GENERATE_MIPMAP_HINT) \ + X("FOG_COORDINATE_SOURCE", GL_FOG_COORDINATE_SOURCE) \ + X("FOG_COORDINATE", GL_FOG_COORDINATE) \ + X("FRAGMENT_DEPTH", GL_FRAGMENT_DEPTH) \ + X("CURRENT_FOG_COORDINATE", GL_CURRENT_FOG_COORDINATE) \ + X("FOG_COORDINATE_ARRAY_TYPE", GL_FOG_COORDINATE_ARRAY_TYPE) \ + X("FOG_COORDINATE_ARRAY_STRIDE", GL_FOG_COORDINATE_ARRAY_STRIDE) \ + X("FOG_COORDINATE_ARRAY_POINTER", GL_FOG_COORDINATE_ARRAY_POINTER) \ + X("FOG_COORDINATE_ARRAY", GL_FOG_COORDINATE_ARRAY) \ + X("COLOR_SUM", GL_COLOR_SUM) \ + X("CURRENT_SECONDARY_COLOR", GL_CURRENT_SECONDARY_COLOR) \ + X("SECONDARY_COLOR_ARRAY_SIZE", GL_SECONDARY_COLOR_ARRAY_SIZE) \ + X("SECONDARY_COLOR_ARRAY_TYPE", GL_SECONDARY_COLOR_ARRAY_TYPE) \ + X("SECONDARY_COLOR_ARRAY_STRIDE", GL_SECONDARY_COLOR_ARRAY_STRIDE) \ + X("SECONDARY_COLOR_ARRAY_POINTER", GL_SECONDARY_COLOR_ARRAY_POINTER) \ + X("SECONDARY_COLOR_ARRAY", GL_SECONDARY_COLOR_ARRAY) \ + X("TEXTURE_FILTER_CONTROL", GL_TEXTURE_FILTER_CONTROL) \ + X("DEPTH_TEXTURE_MODE", GL_DEPTH_TEXTURE_MODE) \ + X("COMPARE_R_TO_TEXTURE", GL_COMPARE_R_TO_TEXTURE) \ + X("BLEND_COLOR", GL_BLEND_COLOR) \ + X("BLEND_EQUATION", GL_BLEND_EQUATION) \ + X("CONSTANT_COLOR", GL_CONSTANT_COLOR) \ + X("ONE_MINUS_CONSTANT_COLOR", GL_ONE_MINUS_CONSTANT_COLOR) \ + X("CONSTANT_ALPHA", GL_CONSTANT_ALPHA) \ + X("ONE_MINUS_CONSTANT_ALPHA", GL_ONE_MINUS_CONSTANT_ALPHA) \ + X("FUNC_ADD", GL_FUNC_ADD) \ + X("FUNC_REVERSE_SUBTRACT", GL_FUNC_REVERSE_SUBTRACT) \ + X("FUNC_SUBTRACT", GL_FUNC_SUBTRACT) \ + X("MIN", GL_MIN) \ + X("MAX", GL_MAX) \ + X("BUFFER_SIZE", GL_BUFFER_SIZE) \ + X("BUFFER_USAGE", GL_BUFFER_USAGE) \ + X("QUERY_COUNTER_BITS", GL_QUERY_COUNTER_BITS) \ + X("CURRENT_QUERY", GL_CURRENT_QUERY) \ + X("QUERY_RESULT", GL_QUERY_RESULT) \ + X("QUERY_RESULT_AVAILABLE", GL_QUERY_RESULT_AVAILABLE) \ + X("ARRAY_BUFFER", GL_ARRAY_BUFFER) \ + X("ELEMENT_ARRAY_BUFFER", GL_ELEMENT_ARRAY_BUFFER) \ + X("ARRAY_BUFFER_BINDING", GL_ARRAY_BUFFER_BINDING) \ + X("ELEMENT_ARRAY_BUFFER_BINDING", GL_ELEMENT_ARRAY_BUFFER_BINDING) \ + X("VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) \ + X("READ_ONLY", GL_READ_ONLY) \ + X("WRITE_ONLY", GL_WRITE_ONLY) \ + X("READ_WRITE", GL_READ_WRITE) \ + X("BUFFER_ACCESS", GL_BUFFER_ACCESS) \ + X("BUFFER_MAPPED", GL_BUFFER_MAPPED) \ + X("BUFFER_MAP_POINTER", GL_BUFFER_MAP_POINTER) \ + X("STREAM_DRAW", GL_STREAM_DRAW) \ + X("STREAM_READ", GL_STREAM_READ) \ + X("STREAM_COPY", GL_STREAM_COPY) \ + X("STATIC_DRAW", GL_STATIC_DRAW) \ + X("STATIC_READ", GL_STATIC_READ) \ + X("STATIC_COPY", GL_STATIC_COPY) \ + X("DYNAMIC_DRAW", GL_DYNAMIC_DRAW) \ + X("DYNAMIC_READ", GL_DYNAMIC_READ) \ + X("DYNAMIC_COPY", GL_DYNAMIC_COPY) \ + X("SAMPLES_PASSED", GL_SAMPLES_PASSED) \ + X("SRC1_ALPHA", GL_SRC1_ALPHA) \ + X("VERTEX_ARRAY_BUFFER_BINDING", GL_VERTEX_ARRAY_BUFFER_BINDING) \ + X("NORMAL_ARRAY_BUFFER_BINDING", GL_NORMAL_ARRAY_BUFFER_BINDING) \ + X("COLOR_ARRAY_BUFFER_BINDING", GL_COLOR_ARRAY_BUFFER_BINDING) \ + X("INDEX_ARRAY_BUFFER_BINDING", GL_INDEX_ARRAY_BUFFER_BINDING) \ + X("TEXTURE_COORD_ARRAY_BUFFER_BINDING", GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) \ + X("EDGE_FLAG_ARRAY_BUFFER_BINDING", GL_EDGE_FLAG_ARRAY_BUFFER_BINDING) \ + X("SECONDARY_COLOR_ARRAY_BUFFER_BINDING", GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING) \ + X("FOG_COORDINATE_ARRAY_BUFFER_BINDING", GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING) \ + X("WEIGHT_ARRAY_BUFFER_BINDING", GL_WEIGHT_ARRAY_BUFFER_BINDING) \ + X("FOG_COORD_SRC", GL_FOG_COORD_SRC) \ + X("FOG_COORD", GL_FOG_COORD) \ + X("CURRENT_FOG_COORD", GL_CURRENT_FOG_COORD) \ + X("FOG_COORD_ARRAY_TYPE", GL_FOG_COORD_ARRAY_TYPE) \ + X("FOG_COORD_ARRAY_STRIDE", GL_FOG_COORD_ARRAY_STRIDE) \ + X("FOG_COORD_ARRAY_POINTER", GL_FOG_COORD_ARRAY_POINTER) \ + X("FOG_COORD_ARRAY", GL_FOG_COORD_ARRAY) \ + X("FOG_COORD_ARRAY_BUFFER_BINDING", GL_FOG_COORD_ARRAY_BUFFER_BINDING) \ + X("SRC0_RGB", GL_SRC0_RGB) \ + X("SRC1_RGB", GL_SRC1_RGB) \ + X("SRC2_RGB", GL_SRC2_RGB) \ + X("SRC0_ALPHA", GL_SRC0_ALPHA) \ + X("SRC2_ALPHA", GL_SRC2_ALPHA) \ + X("BLEND_EQUATION_RGB", GL_BLEND_EQUATION_RGB) \ + X("VERTEX_ATTRIB_ARRAY_ENABLED", GL_VERTEX_ATTRIB_ARRAY_ENABLED) \ + X("VERTEX_ATTRIB_ARRAY_SIZE", GL_VERTEX_ATTRIB_ARRAY_SIZE) \ + X("VERTEX_ATTRIB_ARRAY_STRIDE", GL_VERTEX_ATTRIB_ARRAY_STRIDE) \ + X("VERTEX_ATTRIB_ARRAY_TYPE", GL_VERTEX_ATTRIB_ARRAY_TYPE) \ + X("CURRENT_VERTEX_ATTRIB", GL_CURRENT_VERTEX_ATTRIB) \ + X("VERTEX_PROGRAM_POINT_SIZE", GL_VERTEX_PROGRAM_POINT_SIZE) \ + X("VERTEX_ATTRIB_ARRAY_POINTER", GL_VERTEX_ATTRIB_ARRAY_POINTER) \ + X("STENCIL_BACK_FUNC", GL_STENCIL_BACK_FUNC) \ + X("STENCIL_BACK_FAIL", GL_STENCIL_BACK_FAIL) \ + X("STENCIL_BACK_PASS_DEPTH_FAIL", GL_STENCIL_BACK_PASS_DEPTH_FAIL) \ + X("STENCIL_BACK_PASS_DEPTH_PASS", GL_STENCIL_BACK_PASS_DEPTH_PASS) \ + X("MAX_DRAW_BUFFERS", GL_MAX_DRAW_BUFFERS) \ + X("DRAW_BUFFER0", GL_DRAW_BUFFER0) \ + X("DRAW_BUFFER1", GL_DRAW_BUFFER1) \ + X("DRAW_BUFFER2", GL_DRAW_BUFFER2) \ + X("DRAW_BUFFER3", GL_DRAW_BUFFER3) \ + X("DRAW_BUFFER4", GL_DRAW_BUFFER4) \ + X("DRAW_BUFFER5", GL_DRAW_BUFFER5) \ + X("DRAW_BUFFER6", GL_DRAW_BUFFER6) \ + X("DRAW_BUFFER7", GL_DRAW_BUFFER7) \ + X("DRAW_BUFFER8", GL_DRAW_BUFFER8) \ + X("DRAW_BUFFER9", GL_DRAW_BUFFER9) \ + X("DRAW_BUFFER10", GL_DRAW_BUFFER10) \ + X("DRAW_BUFFER11", GL_DRAW_BUFFER11) \ + X("DRAW_BUFFER12", GL_DRAW_BUFFER12) \ + X("DRAW_BUFFER13", GL_DRAW_BUFFER13) \ + X("DRAW_BUFFER14", GL_DRAW_BUFFER14) \ + X("DRAW_BUFFER15", GL_DRAW_BUFFER15) \ + X("BLEND_EQUATION_ALPHA", GL_BLEND_EQUATION_ALPHA) \ + X("MAX_VERTEX_ATTRIBS", GL_MAX_VERTEX_ATTRIBS) \ + X("VERTEX_ATTRIB_ARRAY_NORMALIZED", GL_VERTEX_ATTRIB_ARRAY_NORMALIZED) \ + X("MAX_TEXTURE_IMAGE_UNITS", GL_MAX_TEXTURE_IMAGE_UNITS) \ + X("FRAGMENT_SHADER", GL_FRAGMENT_SHADER) \ + X("VERTEX_SHADER", GL_VERTEX_SHADER) \ + X("MAX_FRAGMENT_UNIFORM_COMPONENTS", GL_MAX_FRAGMENT_UNIFORM_COMPONENTS) \ + X("MAX_VERTEX_UNIFORM_COMPONENTS", GL_MAX_VERTEX_UNIFORM_COMPONENTS) \ + X("MAX_VARYING_FLOATS", GL_MAX_VARYING_FLOATS) \ + X("MAX_VERTEX_TEXTURE_IMAGE_UNITS", GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS) \ + X("MAX_COMBINED_TEXTURE_IMAGE_UNITS", GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS) \ + X("SHADER_TYPE", GL_SHADER_TYPE) \ + X("FLOAT_VEC2", GL_FLOAT_VEC2) \ + X("FLOAT_VEC3", GL_FLOAT_VEC3) \ + X("FLOAT_VEC4", GL_FLOAT_VEC4) \ + X("INT_VEC2", GL_INT_VEC2) \ + X("INT_VEC3", GL_INT_VEC3) \ + X("INT_VEC4", GL_INT_VEC4) \ + X("BOOL", GL_BOOL) \ + X("BOOL_VEC2", GL_BOOL_VEC2) \ + X("BOOL_VEC3", GL_BOOL_VEC3) \ + X("BOOL_VEC4", GL_BOOL_VEC4) \ + X("FLOAT_MAT2", GL_FLOAT_MAT2) \ + X("FLOAT_MAT3", GL_FLOAT_MAT3) \ + X("FLOAT_MAT4", GL_FLOAT_MAT4) \ + X("SAMPLER_1D", GL_SAMPLER_1D) \ + X("SAMPLER_2D", GL_SAMPLER_2D) \ + X("SAMPLER_3D", GL_SAMPLER_3D) \ + X("SAMPLER_CUBE", GL_SAMPLER_CUBE) \ + X("SAMPLER_1D_SHADOW", GL_SAMPLER_1D_SHADOW) \ + X("SAMPLER_2D_SHADOW", GL_SAMPLER_2D_SHADOW) \ + X("DELETE_STATUS", GL_DELETE_STATUS) \ + X("COMPILE_STATUS", GL_COMPILE_STATUS) \ + X("LINK_STATUS", GL_LINK_STATUS) \ + X("VALIDATE_STATUS", GL_VALIDATE_STATUS) \ + X("INFO_LOG_LENGTH", GL_INFO_LOG_LENGTH) \ + X("ATTACHED_SHADERS", GL_ATTACHED_SHADERS) \ + X("ACTIVE_UNIFORMS", GL_ACTIVE_UNIFORMS) \ + X("ACTIVE_UNIFORM_MAX_LENGTH", GL_ACTIVE_UNIFORM_MAX_LENGTH) \ + X("SHADER_SOURCE_LENGTH", GL_SHADER_SOURCE_LENGTH) \ + X("ACTIVE_ATTRIBUTES", GL_ACTIVE_ATTRIBUTES) \ + X("ACTIVE_ATTRIBUTE_MAX_LENGTH", GL_ACTIVE_ATTRIBUTE_MAX_LENGTH) \ + X("FRAGMENT_SHADER_DERIVATIVE_HINT", GL_FRAGMENT_SHADER_DERIVATIVE_HINT) \ + X("SHADING_LANGUAGE_VERSION", GL_SHADING_LANGUAGE_VERSION) \ + X("CURRENT_PROGRAM", GL_CURRENT_PROGRAM) \ + X("POINT_SPRITE_COORD_ORIGIN", GL_POINT_SPRITE_COORD_ORIGIN) \ + X("LOWER_LEFT", GL_LOWER_LEFT) \ + X("UPPER_LEFT", GL_UPPER_LEFT) \ + X("STENCIL_BACK_REF", GL_STENCIL_BACK_REF) \ + X("STENCIL_BACK_VALUE_MASK", GL_STENCIL_BACK_VALUE_MASK) \ + X("STENCIL_BACK_WRITEMASK", GL_STENCIL_BACK_WRITEMASK) \ + X("VERTEX_PROGRAM_TWO_SIDE", GL_VERTEX_PROGRAM_TWO_SIDE) \ + X("POINT_SPRITE", GL_POINT_SPRITE) \ + X("COORD_REPLACE", GL_COORD_REPLACE) \ + X("MAX_TEXTURE_COORDS", GL_MAX_TEXTURE_COORDS) \ + X("PIXEL_PACK_BUFFER", GL_PIXEL_PACK_BUFFER) \ + X("PIXEL_UNPACK_BUFFER", GL_PIXEL_UNPACK_BUFFER) \ + X("PIXEL_PACK_BUFFER_BINDING", GL_PIXEL_PACK_BUFFER_BINDING) \ + X("PIXEL_UNPACK_BUFFER_BINDING", GL_PIXEL_UNPACK_BUFFER_BINDING) \ + X("FLOAT_MAT2x3", GL_FLOAT_MAT2x3) \ + X("FLOAT_MAT2x4", GL_FLOAT_MAT2x4) \ + X("FLOAT_MAT3x2", GL_FLOAT_MAT3x2) \ + X("FLOAT_MAT3x4", GL_FLOAT_MAT3x4) \ + X("FLOAT_MAT4x2", GL_FLOAT_MAT4x2) \ + X("FLOAT_MAT4x3", GL_FLOAT_MAT4x3) \ + X("SRGB", GL_SRGB) \ + X("SRGB8", GL_SRGB8) \ + X("SRGB_ALPHA", GL_SRGB_ALPHA) \ + X("SRGB8_ALPHA8", GL_SRGB8_ALPHA8) \ + X("COMPRESSED_SRGB", GL_COMPRESSED_SRGB) \ + X("COMPRESSED_SRGB_ALPHA", GL_COMPRESSED_SRGB_ALPHA) \ + X("CURRENT_RASTER_SECONDARY_COLOR", GL_CURRENT_RASTER_SECONDARY_COLOR) \ + X("SLUMINANCE_ALPHA", GL_SLUMINANCE_ALPHA) \ + X("SLUMINANCE8_ALPHA8", GL_SLUMINANCE8_ALPHA8) \ + X("SLUMINANCE", GL_SLUMINANCE) \ + X("SLUMINANCE8", GL_SLUMINANCE8) \ + X("COMPRESSED_SLUMINANCE", GL_COMPRESSED_SLUMINANCE) \ + X("COMPRESSED_SLUMINANCE_ALPHA", GL_COMPRESSED_SLUMINANCE_ALPHA) \ + X("COMPARE_REF_TO_TEXTURE", GL_COMPARE_REF_TO_TEXTURE) \ + X("CLIP_DISTANCE0", GL_CLIP_DISTANCE0) \ + X("CLIP_DISTANCE1", GL_CLIP_DISTANCE1) \ + X("CLIP_DISTANCE2", GL_CLIP_DISTANCE2) \ + X("CLIP_DISTANCE3", GL_CLIP_DISTANCE3) \ + X("CLIP_DISTANCE4", GL_CLIP_DISTANCE4) \ + X("CLIP_DISTANCE5", GL_CLIP_DISTANCE5) \ + X("CLIP_DISTANCE6", GL_CLIP_DISTANCE6) \ + X("CLIP_DISTANCE7", GL_CLIP_DISTANCE7) \ + X("MAX_CLIP_DISTANCES", GL_MAX_CLIP_DISTANCES) \ + X("MAJOR_VERSION", GL_MAJOR_VERSION) \ + X("MINOR_VERSION", GL_MINOR_VERSION) \ + X("NUM_EXTENSIONS", GL_NUM_EXTENSIONS) \ + X("CONTEXT_FLAGS", GL_CONTEXT_FLAGS) \ + X("COMPRESSED_RED", GL_COMPRESSED_RED) \ + X("COMPRESSED_RG", GL_COMPRESSED_RG) \ + X("CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT", GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT) \ + X("RGBA32F", GL_RGBA32F) \ + X("RGB32F", GL_RGB32F) \ + X("RGBA16F", GL_RGBA16F) \ + X("RGB16F", GL_RGB16F) \ + X("VERTEX_ATTRIB_ARRAY_INTEGER", GL_VERTEX_ATTRIB_ARRAY_INTEGER) \ + X("MAX_ARRAY_TEXTURE_LAYERS", GL_MAX_ARRAY_TEXTURE_LAYERS) \ + X("MIN_PROGRAM_TEXEL_OFFSET", GL_MIN_PROGRAM_TEXEL_OFFSET) \ + X("MAX_PROGRAM_TEXEL_OFFSET", GL_MAX_PROGRAM_TEXEL_OFFSET) \ + X("CLAMP_READ_COLOR", GL_CLAMP_READ_COLOR) \ + X("FIXED_ONLY", GL_FIXED_ONLY) \ + X("MAX_VARYING_COMPONENTS", GL_MAX_VARYING_COMPONENTS) \ + X("TEXTURE_1D_ARRAY", GL_TEXTURE_1D_ARRAY) \ + X("PROXY_TEXTURE_1D_ARRAY", GL_PROXY_TEXTURE_1D_ARRAY) \ + X("TEXTURE_2D_ARRAY", GL_TEXTURE_2D_ARRAY) \ + X("PROXY_TEXTURE_2D_ARRAY", GL_PROXY_TEXTURE_2D_ARRAY) \ + X("TEXTURE_BINDING_1D_ARRAY", GL_TEXTURE_BINDING_1D_ARRAY) \ + X("TEXTURE_BINDING_2D_ARRAY", GL_TEXTURE_BINDING_2D_ARRAY) \ + X("R11F_G11F_B10F", GL_R11F_G11F_B10F) \ + X("UNSIGNED_INT_10F_11F_11F_REV", GL_UNSIGNED_INT_10F_11F_11F_REV) \ + X("RGB9_E5", GL_RGB9_E5) \ + X("UNSIGNED_INT_5_9_9_9_REV", GL_UNSIGNED_INT_5_9_9_9_REV) \ + X("TEXTURE_SHARED_SIZE", GL_TEXTURE_SHARED_SIZE) \ + X("TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH", GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH) \ + X("TRANSFORM_FEEDBACK_BUFFER_MODE", GL_TRANSFORM_FEEDBACK_BUFFER_MODE) \ + X("MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS", GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS) \ + X("TRANSFORM_FEEDBACK_VARYINGS", GL_TRANSFORM_FEEDBACK_VARYINGS) \ + X("TRANSFORM_FEEDBACK_BUFFER_START", GL_TRANSFORM_FEEDBACK_BUFFER_START) \ + X("TRANSFORM_FEEDBACK_BUFFER_SIZE", GL_TRANSFORM_FEEDBACK_BUFFER_SIZE) \ + X("PRIMITIVES_GENERATED", GL_PRIMITIVES_GENERATED) \ + X("TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN", GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN) \ + X("RASTERIZER_DISCARD", GL_RASTERIZER_DISCARD) \ + X("MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS", GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS) \ + X("MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS) \ + X("INTERLEAVED_ATTRIBS", GL_INTERLEAVED_ATTRIBS) \ + X("SEPARATE_ATTRIBS", GL_SEPARATE_ATTRIBS) \ + X("TRANSFORM_FEEDBACK_BUFFER", GL_TRANSFORM_FEEDBACK_BUFFER) \ + X("TRANSFORM_FEEDBACK_BUFFER_BINDING", GL_TRANSFORM_FEEDBACK_BUFFER_BINDING) \ + X("RGBA32UI", GL_RGBA32UI) \ + X("RGB32UI", GL_RGB32UI) \ + X("RGBA16UI", GL_RGBA16UI) \ + X("RGB16UI", GL_RGB16UI) \ + X("RGBA8UI", GL_RGBA8UI) \ + X("RGB8UI", GL_RGB8UI) \ + X("RGBA32I", GL_RGBA32I) \ + X("RGB32I", GL_RGB32I) \ + X("RGBA16I", GL_RGBA16I) \ + X("RGB16I", GL_RGB16I) \ + X("RGBA8I", GL_RGBA8I) \ + X("RGB8I", GL_RGB8I) \ + X("RED_INTEGER", GL_RED_INTEGER) \ + X("GREEN_INTEGER", GL_GREEN_INTEGER) \ + X("BLUE_INTEGER", GL_BLUE_INTEGER) \ + X("RGB_INTEGER", GL_RGB_INTEGER) \ + X("RGBA_INTEGER", GL_RGBA_INTEGER) \ + X("BGR_INTEGER", GL_BGR_INTEGER) \ + X("BGRA_INTEGER", GL_BGRA_INTEGER) \ + X("SAMPLER_1D_ARRAY", GL_SAMPLER_1D_ARRAY) \ + X("SAMPLER_2D_ARRAY", GL_SAMPLER_2D_ARRAY) \ + X("SAMPLER_1D_ARRAY_SHADOW", GL_SAMPLER_1D_ARRAY_SHADOW) \ + X("SAMPLER_2D_ARRAY_SHADOW", GL_SAMPLER_2D_ARRAY_SHADOW) \ + X("SAMPLER_CUBE_SHADOW", GL_SAMPLER_CUBE_SHADOW) \ + X("UNSIGNED_INT_VEC2", GL_UNSIGNED_INT_VEC2) \ + X("UNSIGNED_INT_VEC3", GL_UNSIGNED_INT_VEC3) \ + X("UNSIGNED_INT_VEC4", GL_UNSIGNED_INT_VEC4) \ + X("INT_SAMPLER_1D", GL_INT_SAMPLER_1D) \ + X("INT_SAMPLER_2D", GL_INT_SAMPLER_2D) \ + X("INT_SAMPLER_3D", GL_INT_SAMPLER_3D) \ + X("INT_SAMPLER_CUBE", GL_INT_SAMPLER_CUBE) \ + X("INT_SAMPLER_1D_ARRAY", GL_INT_SAMPLER_1D_ARRAY) \ + X("INT_SAMPLER_2D_ARRAY", GL_INT_SAMPLER_2D_ARRAY) \ + X("UNSIGNED_INT_SAMPLER_1D", GL_UNSIGNED_INT_SAMPLER_1D) \ + X("UNSIGNED_INT_SAMPLER_2D", GL_UNSIGNED_INT_SAMPLER_2D) \ + X("UNSIGNED_INT_SAMPLER_3D", GL_UNSIGNED_INT_SAMPLER_3D) \ + X("UNSIGNED_INT_SAMPLER_CUBE", GL_UNSIGNED_INT_SAMPLER_CUBE) \ + X("UNSIGNED_INT_SAMPLER_1D_ARRAY", GL_UNSIGNED_INT_SAMPLER_1D_ARRAY) \ + X("UNSIGNED_INT_SAMPLER_2D_ARRAY", GL_UNSIGNED_INT_SAMPLER_2D_ARRAY) \ + X("QUERY_WAIT", GL_QUERY_WAIT) \ + X("QUERY_NO_WAIT", GL_QUERY_NO_WAIT) \ + X("QUERY_BY_REGION_WAIT", GL_QUERY_BY_REGION_WAIT) \ + X("QUERY_BY_REGION_NO_WAIT", GL_QUERY_BY_REGION_NO_WAIT) \ + X("BUFFER_ACCESS_FLAGS", GL_BUFFER_ACCESS_FLAGS) \ + X("BUFFER_MAP_LENGTH", GL_BUFFER_MAP_LENGTH) \ + X("BUFFER_MAP_OFFSET", GL_BUFFER_MAP_OFFSET) \ + X("DEPTH_COMPONENT32F", GL_DEPTH_COMPONENT32F) \ + X("DEPTH32F_STENCIL8", GL_DEPTH32F_STENCIL8) \ + X("FLOAT_32_UNSIGNED_INT_24_8_REV", GL_FLOAT_32_UNSIGNED_INT_24_8_REV) \ + X("INVALID_FRAMEBUFFER_OPERATION", GL_INVALID_FRAMEBUFFER_OPERATION) \ + X("FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING", GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) \ + X("FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE", GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) \ + X("FRAMEBUFFER_ATTACHMENT_RED_SIZE", GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE) \ + X("FRAMEBUFFER_ATTACHMENT_GREEN_SIZE", GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE) \ + X("FRAMEBUFFER_ATTACHMENT_BLUE_SIZE", GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE) \ + X("FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE", GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE) \ + X("FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE", GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE) \ + X("FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE", GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE) \ + X("FRAMEBUFFER_DEFAULT", GL_FRAMEBUFFER_DEFAULT) \ + X("FRAMEBUFFER_UNDEFINED", GL_FRAMEBUFFER_UNDEFINED) \ + X("DEPTH_STENCIL_ATTACHMENT", GL_DEPTH_STENCIL_ATTACHMENT) \ + X("MAX_RENDERBUFFER_SIZE", GL_MAX_RENDERBUFFER_SIZE) \ + X("DEPTH_STENCIL", GL_DEPTH_STENCIL) \ + X("UNSIGNED_INT_24_8", GL_UNSIGNED_INT_24_8) \ + X("DEPTH24_STENCIL8", GL_DEPTH24_STENCIL8) \ + X("TEXTURE_STENCIL_SIZE", GL_TEXTURE_STENCIL_SIZE) \ + X("TEXTURE_RED_TYPE", GL_TEXTURE_RED_TYPE) \ + X("TEXTURE_GREEN_TYPE", GL_TEXTURE_GREEN_TYPE) \ + X("TEXTURE_BLUE_TYPE", GL_TEXTURE_BLUE_TYPE) \ + X("TEXTURE_ALPHA_TYPE", GL_TEXTURE_ALPHA_TYPE) \ + X("TEXTURE_DEPTH_TYPE", GL_TEXTURE_DEPTH_TYPE) \ + X("UNSIGNED_NORMALIZED", GL_UNSIGNED_NORMALIZED) \ + X("FRAMEBUFFER_BINDING", GL_FRAMEBUFFER_BINDING) \ + X("DRAW_FRAMEBUFFER_BINDING", GL_DRAW_FRAMEBUFFER_BINDING) \ + X("RENDERBUFFER_BINDING", GL_RENDERBUFFER_BINDING) \ + X("READ_FRAMEBUFFER", GL_READ_FRAMEBUFFER) \ + X("DRAW_FRAMEBUFFER", GL_DRAW_FRAMEBUFFER) \ + X("READ_FRAMEBUFFER_BINDING", GL_READ_FRAMEBUFFER_BINDING) \ + X("RENDERBUFFER_SAMPLES", GL_RENDERBUFFER_SAMPLES) \ + X("FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) \ + X("FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) \ + X("FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL) \ + X("FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE) \ + X("FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER", GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER) \ + X("FRAMEBUFFER_COMPLETE", GL_FRAMEBUFFER_COMPLETE) \ + X("FRAMEBUFFER_INCOMPLETE_ATTACHMENT", GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT) \ + X("FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT) \ + X("FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER", GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER) \ + X("FRAMEBUFFER_INCOMPLETE_READ_BUFFER", GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER) \ + X("FRAMEBUFFER_UNSUPPORTED", GL_FRAMEBUFFER_UNSUPPORTED) \ + X("MAX_COLOR_ATTACHMENTS", GL_MAX_COLOR_ATTACHMENTS) \ + X("COLOR_ATTACHMENT0", GL_COLOR_ATTACHMENT0) \ + X("COLOR_ATTACHMENT1", GL_COLOR_ATTACHMENT1) \ + X("COLOR_ATTACHMENT2", GL_COLOR_ATTACHMENT2) \ + X("COLOR_ATTACHMENT3", GL_COLOR_ATTACHMENT3) \ + X("COLOR_ATTACHMENT4", GL_COLOR_ATTACHMENT4) \ + X("COLOR_ATTACHMENT5", GL_COLOR_ATTACHMENT5) \ + X("COLOR_ATTACHMENT6", GL_COLOR_ATTACHMENT6) \ + X("COLOR_ATTACHMENT7", GL_COLOR_ATTACHMENT7) \ + X("COLOR_ATTACHMENT8", GL_COLOR_ATTACHMENT8) \ + X("COLOR_ATTACHMENT9", GL_COLOR_ATTACHMENT9) \ + X("COLOR_ATTACHMENT10", GL_COLOR_ATTACHMENT10) \ + X("COLOR_ATTACHMENT11", GL_COLOR_ATTACHMENT11) \ + X("COLOR_ATTACHMENT12", GL_COLOR_ATTACHMENT12) \ + X("COLOR_ATTACHMENT13", GL_COLOR_ATTACHMENT13) \ + X("COLOR_ATTACHMENT14", GL_COLOR_ATTACHMENT14) \ + X("COLOR_ATTACHMENT15", GL_COLOR_ATTACHMENT15) \ + X("COLOR_ATTACHMENT16", GL_COLOR_ATTACHMENT16) \ + X("COLOR_ATTACHMENT17", GL_COLOR_ATTACHMENT17) \ + X("COLOR_ATTACHMENT18", GL_COLOR_ATTACHMENT18) \ + X("COLOR_ATTACHMENT19", GL_COLOR_ATTACHMENT19) \ + X("COLOR_ATTACHMENT20", GL_COLOR_ATTACHMENT20) \ + X("COLOR_ATTACHMENT21", GL_COLOR_ATTACHMENT21) \ + X("COLOR_ATTACHMENT22", GL_COLOR_ATTACHMENT22) \ + X("COLOR_ATTACHMENT23", GL_COLOR_ATTACHMENT23) \ + X("COLOR_ATTACHMENT24", GL_COLOR_ATTACHMENT24) \ + X("COLOR_ATTACHMENT25", GL_COLOR_ATTACHMENT25) \ + X("COLOR_ATTACHMENT26", GL_COLOR_ATTACHMENT26) \ + X("COLOR_ATTACHMENT27", GL_COLOR_ATTACHMENT27) \ + X("COLOR_ATTACHMENT28", GL_COLOR_ATTACHMENT28) \ + X("COLOR_ATTACHMENT29", GL_COLOR_ATTACHMENT29) \ + X("COLOR_ATTACHMENT30", GL_COLOR_ATTACHMENT30) \ + X("COLOR_ATTACHMENT31", GL_COLOR_ATTACHMENT31) \ + X("DEPTH_ATTACHMENT", GL_DEPTH_ATTACHMENT) \ + X("STENCIL_ATTACHMENT", GL_STENCIL_ATTACHMENT) \ + X("FRAMEBUFFER", GL_FRAMEBUFFER) \ + X("RENDERBUFFER", GL_RENDERBUFFER) \ + X("RENDERBUFFER_WIDTH", GL_RENDERBUFFER_WIDTH) \ + X("RENDERBUFFER_HEIGHT", GL_RENDERBUFFER_HEIGHT) \ + X("RENDERBUFFER_INTERNAL_FORMAT", GL_RENDERBUFFER_INTERNAL_FORMAT) \ + X("STENCIL_INDEX1", GL_STENCIL_INDEX1) \ + X("STENCIL_INDEX4", GL_STENCIL_INDEX4) \ + X("STENCIL_INDEX8", GL_STENCIL_INDEX8) \ + X("STENCIL_INDEX16", GL_STENCIL_INDEX16) \ + X("RENDERBUFFER_RED_SIZE", GL_RENDERBUFFER_RED_SIZE) \ + X("RENDERBUFFER_GREEN_SIZE", GL_RENDERBUFFER_GREEN_SIZE) \ + X("RENDERBUFFER_BLUE_SIZE", GL_RENDERBUFFER_BLUE_SIZE) \ + X("RENDERBUFFER_ALPHA_SIZE", GL_RENDERBUFFER_ALPHA_SIZE) \ + X("RENDERBUFFER_DEPTH_SIZE", GL_RENDERBUFFER_DEPTH_SIZE) \ + X("RENDERBUFFER_STENCIL_SIZE", GL_RENDERBUFFER_STENCIL_SIZE) \ + X("FRAMEBUFFER_INCOMPLETE_MULTISAMPLE", GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE) \ + X("MAX_SAMPLES", GL_MAX_SAMPLES) \ + X("INDEX", GL_INDEX) \ + X("TEXTURE_LUMINANCE_TYPE", GL_TEXTURE_LUMINANCE_TYPE) \ + X("TEXTURE_INTENSITY_TYPE", GL_TEXTURE_INTENSITY_TYPE) \ + X("FRAMEBUFFER_SRGB", GL_FRAMEBUFFER_SRGB) \ + X("HALF_FLOAT", GL_HALF_FLOAT) \ + X("MAP_READ_BIT", GL_MAP_READ_BIT) \ + X("MAP_WRITE_BIT", GL_MAP_WRITE_BIT) \ + X("MAP_INVALIDATE_RANGE_BIT", GL_MAP_INVALIDATE_RANGE_BIT) \ + X("MAP_INVALIDATE_BUFFER_BIT", GL_MAP_INVALIDATE_BUFFER_BIT) \ + X("MAP_FLUSH_EXPLICIT_BIT", GL_MAP_FLUSH_EXPLICIT_BIT) \ + X("MAP_UNSYNCHRONIZED_BIT", GL_MAP_UNSYNCHRONIZED_BIT) \ + X("COMPRESSED_RED_RGTC1", GL_COMPRESSED_RED_RGTC1) \ + X("COMPRESSED_SIGNED_RED_RGTC1", GL_COMPRESSED_SIGNED_RED_RGTC1) \ + X("COMPRESSED_RG_RGTC2", GL_COMPRESSED_RG_RGTC2) \ + X("COMPRESSED_SIGNED_RG_RGTC2", GL_COMPRESSED_SIGNED_RG_RGTC2) \ + X("RG", GL_RG) \ + X("RG_INTEGER", GL_RG_INTEGER) \ + X("R8", GL_R8) \ + X("R16", GL_R16) \ + X("RG8", GL_RG8) \ + X("RG16", GL_RG16) \ + X("R16F", GL_R16F) \ + X("R32F", GL_R32F) \ + X("RG16F", GL_RG16F) \ + X("RG32F", GL_RG32F) \ + X("R8I", GL_R8I) \ + X("R8UI", GL_R8UI) \ + X("R16I", GL_R16I) \ + X("R16UI", GL_R16UI) \ + X("R32I", GL_R32I) \ + X("R32UI", GL_R32UI) \ + X("RG8I", GL_RG8I) \ + X("RG8UI", GL_RG8UI) \ + X("RG16I", GL_RG16I) \ + X("RG16UI", GL_RG16UI) \ + X("RG32I", GL_RG32I) \ + X("RG32UI", GL_RG32UI) \ + X("VERTEX_ARRAY_BINDING", GL_VERTEX_ARRAY_BINDING) \ + X("CLAMP_VERTEX_COLOR", GL_CLAMP_VERTEX_COLOR) \ + X("CLAMP_FRAGMENT_COLOR", GL_CLAMP_FRAGMENT_COLOR) \ + X("ALPHA_INTEGER", GL_ALPHA_INTEGER) \ + X("SAMPLER_2D_RECT", GL_SAMPLER_2D_RECT) \ + X("SAMPLER_2D_RECT_SHADOW", GL_SAMPLER_2D_RECT_SHADOW) \ + X("SAMPLER_BUFFER", GL_SAMPLER_BUFFER) \ + X("INT_SAMPLER_2D_RECT", GL_INT_SAMPLER_2D_RECT) \ + X("INT_SAMPLER_BUFFER", GL_INT_SAMPLER_BUFFER) \ + X("UNSIGNED_INT_SAMPLER_2D_RECT", GL_UNSIGNED_INT_SAMPLER_2D_RECT) \ + X("UNSIGNED_INT_SAMPLER_BUFFER", GL_UNSIGNED_INT_SAMPLER_BUFFER) \ + X("TEXTURE_BUFFER", GL_TEXTURE_BUFFER) \ + X("MAX_TEXTURE_BUFFER_SIZE", GL_MAX_TEXTURE_BUFFER_SIZE) \ + X("TEXTURE_BINDING_BUFFER", GL_TEXTURE_BINDING_BUFFER) \ + X("TEXTURE_BUFFER_DATA_STORE_BINDING", GL_TEXTURE_BUFFER_DATA_STORE_BINDING) \ + X("TEXTURE_RECTANGLE", GL_TEXTURE_RECTANGLE) \ + X("TEXTURE_BINDING_RECTANGLE", GL_TEXTURE_BINDING_RECTANGLE) \ + X("PROXY_TEXTURE_RECTANGLE", GL_PROXY_TEXTURE_RECTANGLE) \ + X("MAX_RECTANGLE_TEXTURE_SIZE", GL_MAX_RECTANGLE_TEXTURE_SIZE) \ + X("R8_SNORM", GL_R8_SNORM) \ + X("RG8_SNORM", GL_RG8_SNORM) \ + X("RGB8_SNORM", GL_RGB8_SNORM) \ + X("RGBA8_SNORM", GL_RGBA8_SNORM) \ + X("R16_SNORM", GL_R16_SNORM) \ + X("RG16_SNORM", GL_RG16_SNORM) \ + X("RGB16_SNORM", GL_RGB16_SNORM) \ + X("RGBA16_SNORM", GL_RGBA16_SNORM) \ + X("SIGNED_NORMALIZED", GL_SIGNED_NORMALIZED) \ + X("PRIMITIVE_RESTART", GL_PRIMITIVE_RESTART) \ + X("PRIMITIVE_RESTART_INDEX", GL_PRIMITIVE_RESTART_INDEX) \ + X("COPY_READ_BUFFER", GL_COPY_READ_BUFFER) \ + X("COPY_WRITE_BUFFER", GL_COPY_WRITE_BUFFER) \ + X("UNIFORM_BUFFER", GL_UNIFORM_BUFFER) \ + X("UNIFORM_BUFFER_BINDING", GL_UNIFORM_BUFFER_BINDING) \ + X("UNIFORM_BUFFER_START", GL_UNIFORM_BUFFER_START) \ + X("UNIFORM_BUFFER_SIZE", GL_UNIFORM_BUFFER_SIZE) \ + X("MAX_VERTEX_UNIFORM_BLOCKS", GL_MAX_VERTEX_UNIFORM_BLOCKS) \ + X("MAX_GEOMETRY_UNIFORM_BLOCKS", GL_MAX_GEOMETRY_UNIFORM_BLOCKS) \ + X("MAX_FRAGMENT_UNIFORM_BLOCKS", GL_MAX_FRAGMENT_UNIFORM_BLOCKS) \ + X("MAX_COMBINED_UNIFORM_BLOCKS", GL_MAX_COMBINED_UNIFORM_BLOCKS) \ + X("MAX_UNIFORM_BUFFER_BINDINGS", GL_MAX_UNIFORM_BUFFER_BINDINGS) \ + X("MAX_UNIFORM_BLOCK_SIZE", GL_MAX_UNIFORM_BLOCK_SIZE) \ + X("MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS", GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS) \ + X("MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS", GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS) \ + X("MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS", GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS) \ + X("UNIFORM_BUFFER_OFFSET_ALIGNMENT", GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT) \ + X("ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH", GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH) \ + X("ACTIVE_UNIFORM_BLOCKS", GL_ACTIVE_UNIFORM_BLOCKS) \ + X("UNIFORM_TYPE", GL_UNIFORM_TYPE) \ + X("UNIFORM_SIZE", GL_UNIFORM_SIZE) \ + X("UNIFORM_NAME_LENGTH", GL_UNIFORM_NAME_LENGTH) \ + X("UNIFORM_BLOCK_INDEX", GL_UNIFORM_BLOCK_INDEX) \ + X("UNIFORM_OFFSET", GL_UNIFORM_OFFSET) \ + X("UNIFORM_ARRAY_STRIDE", GL_UNIFORM_ARRAY_STRIDE) \ + X("UNIFORM_MATRIX_STRIDE", GL_UNIFORM_MATRIX_STRIDE) \ + X("UNIFORM_IS_ROW_MAJOR", GL_UNIFORM_IS_ROW_MAJOR) \ + X("UNIFORM_BLOCK_BINDING", GL_UNIFORM_BLOCK_BINDING) \ + X("UNIFORM_BLOCK_DATA_SIZE", GL_UNIFORM_BLOCK_DATA_SIZE) \ + X("UNIFORM_BLOCK_NAME_LENGTH", GL_UNIFORM_BLOCK_NAME_LENGTH) \ + X("UNIFORM_BLOCK_ACTIVE_UNIFORMS", GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS) \ + X("UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES", GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) \ + X("UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER) \ + X("UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER) \ + X("UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER) \ + X("INVALID_INDEX", GL_INVALID_INDEX) \ + X("CONTEXT_CORE_PROFILE_BIT", GL_CONTEXT_CORE_PROFILE_BIT) \ + X("CONTEXT_COMPATIBILITY_PROFILE_BIT", GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) \ + X("LINES_ADJACENCY", GL_LINES_ADJACENCY) \ + X("LINE_STRIP_ADJACENCY", GL_LINE_STRIP_ADJACENCY) \ + X("TRIANGLES_ADJACENCY", GL_TRIANGLES_ADJACENCY) \ + X("TRIANGLE_STRIP_ADJACENCY", GL_TRIANGLE_STRIP_ADJACENCY) \ + X("PROGRAM_POINT_SIZE", GL_PROGRAM_POINT_SIZE) \ + X("MAX_GEOMETRY_TEXTURE_IMAGE_UNITS", GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS) \ + X("FRAMEBUFFER_ATTACHMENT_LAYERED", GL_FRAMEBUFFER_ATTACHMENT_LAYERED) \ + X("FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS", GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS) \ + X("GEOMETRY_SHADER", GL_GEOMETRY_SHADER) \ + X("GEOMETRY_VERTICES_OUT", GL_GEOMETRY_VERTICES_OUT) \ + X("GEOMETRY_INPUT_TYPE", GL_GEOMETRY_INPUT_TYPE) \ + X("GEOMETRY_OUTPUT_TYPE", GL_GEOMETRY_OUTPUT_TYPE) \ + X("MAX_GEOMETRY_UNIFORM_COMPONENTS", GL_MAX_GEOMETRY_UNIFORM_COMPONENTS) \ + X("MAX_GEOMETRY_OUTPUT_VERTICES", GL_MAX_GEOMETRY_OUTPUT_VERTICES) \ + X("MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS", GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS) \ + X("MAX_VERTEX_OUTPUT_COMPONENTS", GL_MAX_VERTEX_OUTPUT_COMPONENTS) \ + X("MAX_GEOMETRY_INPUT_COMPONENTS", GL_MAX_GEOMETRY_INPUT_COMPONENTS) \ + X("MAX_GEOMETRY_OUTPUT_COMPONENTS", GL_MAX_GEOMETRY_OUTPUT_COMPONENTS) \ + X("MAX_FRAGMENT_INPUT_COMPONENTS", GL_MAX_FRAGMENT_INPUT_COMPONENTS) \ + X("CONTEXT_PROFILE_MASK", GL_CONTEXT_PROFILE_MASK) \ + X("DEPTH_CLAMP", GL_DEPTH_CLAMP) \ + X("QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION", GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION) \ + X("FIRST_VERTEX_CONVENTION", GL_FIRST_VERTEX_CONVENTION) \ + X("LAST_VERTEX_CONVENTION", GL_LAST_VERTEX_CONVENTION) \ + X("PROVOKING_VERTEX", GL_PROVOKING_VERTEX) \ + X("TEXTURE_CUBE_MAP_SEAMLESS", GL_TEXTURE_CUBE_MAP_SEAMLESS) \ + X("MAX_SERVER_WAIT_TIMEOUT", GL_MAX_SERVER_WAIT_TIMEOUT) \ + X("OBJECT_TYPE", GL_OBJECT_TYPE) \ + X("SYNC_CONDITION", GL_SYNC_CONDITION) \ + X("SYNC_STATUS", GL_SYNC_STATUS) \ + X("SYNC_FLAGS", GL_SYNC_FLAGS) \ + X("SYNC_FENCE", GL_SYNC_FENCE) \ + X("SYNC_GPU_COMMANDS_COMPLETE", GL_SYNC_GPU_COMMANDS_COMPLETE) \ + X("UNSIGNALED", GL_UNSIGNALED) \ + X("SIGNALED", GL_SIGNALED) \ + X("ALREADY_SIGNALED", GL_ALREADY_SIGNALED) \ + X("TIMEOUT_EXPIRED", GL_TIMEOUT_EXPIRED) \ + X("CONDITION_SATISFIED", GL_CONDITION_SATISFIED) \ + X("WAIT_FAILED", GL_WAIT_FAILED) \ + X("TIMEOUT_IGNORED", GL_TIMEOUT_IGNORED) \ + X("SYNC_FLUSH_COMMANDS_BIT", GL_SYNC_FLUSH_COMMANDS_BIT) \ + X("SAMPLE_POSITION", GL_SAMPLE_POSITION) \ + X("SAMPLE_MASK", GL_SAMPLE_MASK) \ + X("SAMPLE_MASK_VALUE", GL_SAMPLE_MASK_VALUE) \ + X("MAX_SAMPLE_MASK_WORDS", GL_MAX_SAMPLE_MASK_WORDS) \ + X("TEXTURE_2D_MULTISAMPLE", GL_TEXTURE_2D_MULTISAMPLE) \ + X("PROXY_TEXTURE_2D_MULTISAMPLE", GL_PROXY_TEXTURE_2D_MULTISAMPLE) \ + X("TEXTURE_2D_MULTISAMPLE_ARRAY", GL_TEXTURE_2D_MULTISAMPLE_ARRAY) \ + X("PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY", GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY) \ + X("TEXTURE_BINDING_2D_MULTISAMPLE", GL_TEXTURE_BINDING_2D_MULTISAMPLE) \ + X("TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY", GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY) \ + X("TEXTURE_SAMPLES", GL_TEXTURE_SAMPLES) \ + X("TEXTURE_FIXED_SAMPLE_LOCATIONS", GL_TEXTURE_FIXED_SAMPLE_LOCATIONS) \ + X("SAMPLER_2D_MULTISAMPLE", GL_SAMPLER_2D_MULTISAMPLE) \ + X("INT_SAMPLER_2D_MULTISAMPLE", GL_INT_SAMPLER_2D_MULTISAMPLE) \ + X("UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE", GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE) \ + X("SAMPLER_2D_MULTISAMPLE_ARRAY", GL_SAMPLER_2D_MULTISAMPLE_ARRAY) \ + X("INT_SAMPLER_2D_MULTISAMPLE_ARRAY", GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY) \ + X("UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY", GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY) \ + X("MAX_COLOR_TEXTURE_SAMPLES", GL_MAX_COLOR_TEXTURE_SAMPLES) \ + X("MAX_DEPTH_TEXTURE_SAMPLES", GL_MAX_DEPTH_TEXTURE_SAMPLES) \ + X("MAX_INTEGER_SAMPLES", GL_MAX_INTEGER_SAMPLES) \ + X("VERTEX_ATTRIB_ARRAY_DIVISOR", GL_VERTEX_ATTRIB_ARRAY_DIVISOR) \ + X("SRC1_COLOR", GL_SRC1_COLOR) \ + X("ONE_MINUS_SRC1_COLOR", GL_ONE_MINUS_SRC1_COLOR) \ + X("ONE_MINUS_SRC1_ALPHA", GL_ONE_MINUS_SRC1_ALPHA) \ + X("MAX_DUAL_SOURCE_DRAW_BUFFERS", GL_MAX_DUAL_SOURCE_DRAW_BUFFERS) \ + X("ANY_SAMPLES_PASSED", GL_ANY_SAMPLES_PASSED) \ + X("SAMPLER_BINDING", GL_SAMPLER_BINDING) \ + X("RGB10_A2UI", GL_RGB10_A2UI) \ + X("TEXTURE_SWIZZLE_R", GL_TEXTURE_SWIZZLE_R) \ + X("TEXTURE_SWIZZLE_G", GL_TEXTURE_SWIZZLE_G) \ + X("TEXTURE_SWIZZLE_B", GL_TEXTURE_SWIZZLE_B) \ + X("TEXTURE_SWIZZLE_A", GL_TEXTURE_SWIZZLE_A) \ + X("TEXTURE_SWIZZLE_RGBA", GL_TEXTURE_SWIZZLE_RGBA) \ + X("TIME_ELAPSED", GL_TIME_ELAPSED) \ + X("TIMESTAMP", GL_TIMESTAMP) \ + X("INT_2_10_10_10_REV", GL_INT_2_10_10_10_REV) \ + X("SAMPLE_SHADING", GL_SAMPLE_SHADING) \ + X("MIN_SAMPLE_SHADING_VALUE", GL_MIN_SAMPLE_SHADING_VALUE) \ + X("MIN_PROGRAM_TEXTURE_GATHER_OFFSET", GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET) \ + X("MAX_PROGRAM_TEXTURE_GATHER_OFFSET", GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET) \ + X("TEXTURE_CUBE_MAP_ARRAY", GL_TEXTURE_CUBE_MAP_ARRAY) \ + X("TEXTURE_BINDING_CUBE_MAP_ARRAY", GL_TEXTURE_BINDING_CUBE_MAP_ARRAY) \ + X("PROXY_TEXTURE_CUBE_MAP_ARRAY", GL_PROXY_TEXTURE_CUBE_MAP_ARRAY) \ + X("SAMPLER_CUBE_MAP_ARRAY", GL_SAMPLER_CUBE_MAP_ARRAY) \ + X("SAMPLER_CUBE_MAP_ARRAY_SHADOW", GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW) \ + X("INT_SAMPLER_CUBE_MAP_ARRAY", GL_INT_SAMPLER_CUBE_MAP_ARRAY) \ + X("UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY", GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY) \ + X("DRAW_INDIRECT_BUFFER", GL_DRAW_INDIRECT_BUFFER) \ + X("DRAW_INDIRECT_BUFFER_BINDING", GL_DRAW_INDIRECT_BUFFER_BINDING) \ + X("GEOMETRY_SHADER_INVOCATIONS", GL_GEOMETRY_SHADER_INVOCATIONS) \ + X("MAX_GEOMETRY_SHADER_INVOCATIONS", GL_MAX_GEOMETRY_SHADER_INVOCATIONS) \ + X("MIN_FRAGMENT_INTERPOLATION_OFFSET", GL_MIN_FRAGMENT_INTERPOLATION_OFFSET) \ + X("MAX_FRAGMENT_INTERPOLATION_OFFSET", GL_MAX_FRAGMENT_INTERPOLATION_OFFSET) \ + X("FRAGMENT_INTERPOLATION_OFFSET_BITS", GL_FRAGMENT_INTERPOLATION_OFFSET_BITS) \ + X("MAX_VERTEX_STREAMS", GL_MAX_VERTEX_STREAMS) \ + X("DOUBLE_VEC2", GL_DOUBLE_VEC2) \ + X("DOUBLE_VEC3", GL_DOUBLE_VEC3) \ + X("DOUBLE_VEC4", GL_DOUBLE_VEC4) \ + X("DOUBLE_MAT2", GL_DOUBLE_MAT2) \ + X("DOUBLE_MAT3", GL_DOUBLE_MAT3) \ + X("DOUBLE_MAT4", GL_DOUBLE_MAT4) \ + X("DOUBLE_MAT2x3", GL_DOUBLE_MAT2x3) \ + X("DOUBLE_MAT2x4", GL_DOUBLE_MAT2x4) \ + X("DOUBLE_MAT3x2", GL_DOUBLE_MAT3x2) \ + X("DOUBLE_MAT3x4", GL_DOUBLE_MAT3x4) \ + X("DOUBLE_MAT4x2", GL_DOUBLE_MAT4x2) \ + X("DOUBLE_MAT4x3", GL_DOUBLE_MAT4x3) \ + X("ACTIVE_SUBROUTINES", GL_ACTIVE_SUBROUTINES) \ + X("ACTIVE_SUBROUTINE_UNIFORMS", GL_ACTIVE_SUBROUTINE_UNIFORMS) \ + X("ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS", GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS) \ + X("ACTIVE_SUBROUTINE_MAX_LENGTH", GL_ACTIVE_SUBROUTINE_MAX_LENGTH) \ + X("ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH", GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH) \ + X("MAX_SUBROUTINES", GL_MAX_SUBROUTINES) \ + X("MAX_SUBROUTINE_UNIFORM_LOCATIONS", GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS) \ + X("NUM_COMPATIBLE_SUBROUTINES", GL_NUM_COMPATIBLE_SUBROUTINES) \ + X("COMPATIBLE_SUBROUTINES", GL_COMPATIBLE_SUBROUTINES) \ + X("PATCHES", GL_PATCHES) \ + X("PATCH_VERTICES", GL_PATCH_VERTICES) \ + X("PATCH_DEFAULT_INNER_LEVEL", GL_PATCH_DEFAULT_INNER_LEVEL) \ + X("PATCH_DEFAULT_OUTER_LEVEL", GL_PATCH_DEFAULT_OUTER_LEVEL) \ + X("TESS_CONTROL_OUTPUT_VERTICES", GL_TESS_CONTROL_OUTPUT_VERTICES) \ + X("TESS_GEN_MODE", GL_TESS_GEN_MODE) \ + X("TESS_GEN_SPACING", GL_TESS_GEN_SPACING) \ + X("TESS_GEN_VERTEX_ORDER", GL_TESS_GEN_VERTEX_ORDER) \ + X("TESS_GEN_POINT_MODE", GL_TESS_GEN_POINT_MODE) \ + X("ISOLINES", GL_ISOLINES) \ + X("FRACTIONAL_ODD", GL_FRACTIONAL_ODD) \ + X("FRACTIONAL_EVEN", GL_FRACTIONAL_EVEN) \ + X("MAX_PATCH_VERTICES", GL_MAX_PATCH_VERTICES) \ + X("MAX_TESS_GEN_LEVEL", GL_MAX_TESS_GEN_LEVEL) \ + X("MAX_TESS_CONTROL_UNIFORM_COMPONENTS", GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS) \ + X("MAX_TESS_EVALUATION_UNIFORM_COMPONENTS", GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS) \ + X("MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS", GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS) \ + X("MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS", GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS) \ + X("MAX_TESS_CONTROL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS) \ + X("MAX_TESS_PATCH_COMPONENTS", GL_MAX_TESS_PATCH_COMPONENTS) \ + X("MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS) \ + X("MAX_TESS_EVALUATION_OUTPUT_COMPONENTS", GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS) \ + X("MAX_TESS_CONTROL_UNIFORM_BLOCKS", GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS) \ + X("MAX_TESS_EVALUATION_UNIFORM_BLOCKS", GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS) \ + X("MAX_TESS_CONTROL_INPUT_COMPONENTS", GL_MAX_TESS_CONTROL_INPUT_COMPONENTS) \ + X("MAX_TESS_EVALUATION_INPUT_COMPONENTS", GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS) \ + X("MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS", GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS) \ + X("MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS", GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS) \ + X("UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER) \ + X("UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER", GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER) \ + X("TESS_EVALUATION_SHADER", GL_TESS_EVALUATION_SHADER) \ + X("TESS_CONTROL_SHADER", GL_TESS_CONTROL_SHADER) \ + X("TRANSFORM_FEEDBACK", GL_TRANSFORM_FEEDBACK) \ + X("TRANSFORM_FEEDBACK_BUFFER_PAUSED", GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED) \ + X("TRANSFORM_FEEDBACK_BUFFER_ACTIVE", GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE) \ + X("TRANSFORM_FEEDBACK_BINDING", GL_TRANSFORM_FEEDBACK_BINDING) \ + X("MAX_TRANSFORM_FEEDBACK_BUFFERS", GL_MAX_TRANSFORM_FEEDBACK_BUFFERS) \ + X("FIXED", GL_FIXED) \ + X("IMPLEMENTATION_COLOR_READ_TYPE", GL_IMPLEMENTATION_COLOR_READ_TYPE) \ + X("IMPLEMENTATION_COLOR_READ_FORMAT", GL_IMPLEMENTATION_COLOR_READ_FORMAT) \ + X("LOW_FLOAT", GL_LOW_FLOAT) \ + X("MEDIUM_FLOAT", GL_MEDIUM_FLOAT) \ + X("HIGH_FLOAT", GL_HIGH_FLOAT) \ + X("LOW_INT", GL_LOW_INT) \ + X("MEDIUM_INT", GL_MEDIUM_INT) \ + X("HIGH_INT", GL_HIGH_INT) \ + X("SHADER_COMPILER", GL_SHADER_COMPILER) \ + X("SHADER_BINARY_FORMATS", GL_SHADER_BINARY_FORMATS) \ + X("NUM_SHADER_BINARY_FORMATS", GL_NUM_SHADER_BINARY_FORMATS) \ + X("MAX_VERTEX_UNIFORM_VECTORS", GL_MAX_VERTEX_UNIFORM_VECTORS) \ + X("MAX_VARYING_VECTORS", GL_MAX_VARYING_VECTORS) \ + X("MAX_FRAGMENT_UNIFORM_VECTORS", GL_MAX_FRAGMENT_UNIFORM_VECTORS) \ + X("RGB565", GL_RGB565) \ + X("PROGRAM_BINARY_RETRIEVABLE_HINT", GL_PROGRAM_BINARY_RETRIEVABLE_HINT) \ + X("PROGRAM_BINARY_LENGTH", GL_PROGRAM_BINARY_LENGTH) \ + X("NUM_PROGRAM_BINARY_FORMATS", GL_NUM_PROGRAM_BINARY_FORMATS) \ + X("PROGRAM_BINARY_FORMATS", GL_PROGRAM_BINARY_FORMATS) \ + X("VERTEX_SHADER_BIT", GL_VERTEX_SHADER_BIT) \ + X("FRAGMENT_SHADER_BIT", GL_FRAGMENT_SHADER_BIT) \ + X("GEOMETRY_SHADER_BIT", GL_GEOMETRY_SHADER_BIT) \ + X("TESS_CONTROL_SHADER_BIT", GL_TESS_CONTROL_SHADER_BIT) \ + X("TESS_EVALUATION_SHADER_BIT", GL_TESS_EVALUATION_SHADER_BIT) \ + X("ALL_SHADER_BITS", GL_ALL_SHADER_BITS) \ + X("PROGRAM_SEPARABLE", GL_PROGRAM_SEPARABLE) \ + X("ACTIVE_PROGRAM", GL_ACTIVE_PROGRAM) \ + X("PROGRAM_PIPELINE_BINDING", GL_PROGRAM_PIPELINE_BINDING) \ + X("MAX_VIEWPORTS", GL_MAX_VIEWPORTS) \ + X("VIEWPORT_SUBPIXEL_BITS", GL_VIEWPORT_SUBPIXEL_BITS) \ + X("VIEWPORT_BOUNDS_RANGE", GL_VIEWPORT_BOUNDS_RANGE) \ + X("LAYER_PROVOKING_VERTEX", GL_LAYER_PROVOKING_VERTEX) \ + X("VIEWPORT_INDEX_PROVOKING_VERTEX", GL_VIEWPORT_INDEX_PROVOKING_VERTEX) \ + X("UNDEFINED_VERTEX", GL_UNDEFINED_VERTEX) \ + X("VERSION_1_0", GL_VERSION_1_0) \ + + + +#define X(name, func) int func(lua_State *L); +GL_FUNCTIONS +#undef X + +#endif diff --git a/src/opengl/bind/a b/src/opengl/bind/a new file mode 100644 index 0000000..b414962 --- /dev/null +++ b/src/opengl/bind/a @@ -0,0 +1,3 @@ +void glActiveShaderProgram( GLuint pipeline, GLuint program); +void glActiveTexture( GLenum texture); +void glAttachShader( GLuint program, GLuint shader); diff --git a/src/opengl/bind/a.bind b/src/opengl/bind/a.bind new file mode 100644 index 0000000..41eef56 --- /dev/null +++ b/src/opengl/bind/a.bind @@ -0,0 +1,26 @@ +int glActiveShaderProgram_bind(lua_State *L) +{ + GLuint pipeline = luaL_checkinteger(L, 1); + GLuint program = luaL_checkinteger(L, 2); + glActiveShaderProgram(pipeline, program); + return 0; +} + + +int glActiveTexture_bind(lua_State *L) +{ + GLenum texture = luaL_checkinteger(L, 1); + glActiveTexture(texture); + return 0; +} + + +int glAttachShader_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint shader = luaL_checkinteger(L, 2); + glAttachShader(program, shader); + return 0; +} + + diff --git a/src/opengl/bind/b b/src/opengl/bind/b new file mode 100644 index 0000000..e95cea1 --- /dev/null +++ b/src/opengl/bind/b @@ -0,0 +1,35 @@ +void glBeginConditionalRender( GLuint id, GLenum mode); +void glBeginQuery( GLenum target, GLuint id); +void glBeginQuery( GLenum target, GLuint id); +void glBeginTransformFeedback( GLenum primitiveMode); +void glBindAttribLocation( GLuint program, GLuint index, const GLchar *name); +void glBindBuffer( GLenum target, GLuint buffer); +void glBindBufferBase( GLenum target, GLuint index, GLuint buffer); +void glBindBufferRange( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +void glBindFragDataLocation( GLuint program, GLuint colorNumber, const char * name); +void glBindFragDataLocationIndexed( GLuint program, GLuint colorNumber, GLuint index, const char *name); +void glBindFramebuffer( GLenum target, GLuint framebuffer); +void glBindImageTexture( GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +void glBindProgramPipeline( GLuint pipeline); +void glBindRenderbuffer( GLenum target, GLuint renderbuffer); +void glBindSampler( GLuint unit, GLuint sampler); +void glBindTexture( GLenum target, GLuint texture); +void glBindTextureUnit( GLuint unit, GLuint texture); +void glBindTransformFeedback( GLenum target, GLuint id); +void glBindVertexArray( GLuint array); +void glBindVertexBuffer( GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +void glBlendColor( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +void glBlendEquation( GLenum mode); + +void glBlendEquationi( GLuint buf, GLenum mode); +void glBlendEquationSeparate( GLenum modeRGB, GLenum modeAlpha); +void glBlendEquationSeparatei( GLuint buf, GLenum modeRGB, GLenum modeAlpha); +void glBlendFunc( GLenum sfactor, GLenum dfactor); +void glBlendFunci( GLuint buf, GLenum sfactor, GLenum dfactor); +void glBlendFuncSeparate( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +void glBlendFuncSeparatei( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +void glBlitFramebuffer( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +void glBlitNamedFramebuffer( GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +void glBufferData( GLenum target, GLsizeiptr size, const void * data, GLenum usage); +void glBufferStorage( GLenum target, GLsizeiptr size, const void * data, GLbitfield flags); +void glBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, const void * data); diff --git a/src/opengl/bind/b.bind b/src/opengl/bind/b.bind new file mode 100644 index 0000000..ee2cfa0 --- /dev/null +++ b/src/opengl/bind/b.bind @@ -0,0 +1,350 @@ +int glBeginConditionalRender_bind(lua_State *L) +{ + GLuint id = luaL_checkinteger(L, 1); + GLenum mode = luaL_checkinteger(L, 2); + glBeginConditionalRender(id, mode); + return 0; +} + + +int glBeginQuery_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint id = luaL_checkinteger(L, 2); + glBeginQuery(target, id); + return 0; +} + + +int glBeginQuery_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint id = luaL_checkinteger(L, 2); + glBeginQuery(target, id); + return 0; +} + + +int glBeginTransformFeedback_bind(lua_State *L) +{ + GLenum primitiveMode = luaL_checkinteger(L, 1); + glBeginTransformFeedback(primitiveMode); + return 0; +} + + +int glBindAttribLocation_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + const GLchar * name = luaL_checkstring(L, 3); + glBindAttribLocation(program, index, name); + return 0; +} + + +int glBindBuffer_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint buffer = luaL_checkinteger(L, 2); + glBindBuffer(target, buffer); + return 0; +} + + +int glBindBufferBase_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLuint buffer = luaL_checkinteger(L, 3); + glBindBufferBase(target, index, buffer); + return 0; +} + + +int glBindBufferRange_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLuint buffer = luaL_checkinteger(L, 3); + GLintptr offset = luaL_checkinteger(L, 4); + GLsizeiptr size = luaL_checkinteger(L, 5); + glBindBufferRange(target, index, buffer, offset, size); + return 0; +} + + +int glBindFragDataLocation_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint colorNumber = luaL_checkinteger(L, 2); + const char * name = luaL_checkstring(L, 3); + glBindFragDataLocation(program, colorNumber, name); + return 0; +} + + +int glBindFragDataLocationIndexed_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint colorNumber = luaL_checkinteger(L, 2); + GLuint index = luaL_checkinteger(L, 3); + const char * name = luaL_checkstring(L, 4); + glBindFragDataLocationIndexed(program, colorNumber, index, name); + return 0; +} + + +int glBindFramebuffer_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint framebuffer = luaL_checkinteger(L, 2); + glBindFramebuffer(target, framebuffer); + return 0; +} + + +int glBindImageTexture_bind(lua_State *L) +{ + GLuint unit = luaL_checkinteger(L, 1); + GLuint texture = luaL_checkinteger(L, 2); + GLint level = luaL_checkinteger(L, 3); + GLboolean layered = get: GLboolean + GLint layer = luaL_checkinteger(L, 5); + GLenum access = luaL_checkinteger(L, 6); + GLenum format = luaL_checkinteger(L, 7); + glBindImageTexture(unit, texture, level, layered, layer, access, format); + return 0; +} + + +int glBindProgramPipeline_bind(lua_State *L) +{ + GLuint pipeline = luaL_checkinteger(L, 1); + glBindProgramPipeline(pipeline); + return 0; +} + + +int glBindRenderbuffer_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint renderbuffer = luaL_checkinteger(L, 2); + glBindRenderbuffer(target, renderbuffer); + return 0; +} + + +int glBindSampler_bind(lua_State *L) +{ + GLuint unit = luaL_checkinteger(L, 1); + GLuint sampler = luaL_checkinteger(L, 2); + glBindSampler(unit, sampler); + return 0; +} + + +int glBindTexture_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint texture = luaL_checkinteger(L, 2); + glBindTexture(target, texture); + return 0; +} + + +int glBindTextureUnit_bind(lua_State *L) +{ + GLuint unit = luaL_checkinteger(L, 1); + GLuint texture = luaL_checkinteger(L, 2); + glBindTextureUnit(unit, texture); + return 0; +} + + +int glBindTransformFeedback_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint id = luaL_checkinteger(L, 2); + glBindTransformFeedback(target, id); + return 0; +} + + +int glBindVertexArray_bind(lua_State *L) +{ + GLuint array = luaL_checkinteger(L, 1); + glBindVertexArray(array); + return 0; +} + + +int glBindVertexBuffer_bind(lua_State *L) +{ + GLuint bindingindex = luaL_checkinteger(L, 1); + GLuint buffer = luaL_checkinteger(L, 2); + GLintptr offset = luaL_checkinteger(L, 3); + GLsizei stride = luaL_checkinteger(L, 4); + glBindVertexBuffer(bindingindex, buffer, offset, stride); + return 0; +} + + +int glBlendColor_bind(lua_State *L) +{ + GLfloat red = luaL_checknumber(L, 1); + GLfloat green = luaL_checknumber(L, 2); + GLfloat blue = luaL_checknumber(L, 3); + GLfloat alpha = luaL_checknumber(L, 4); + glBlendColor(red, green, blue, alpha); + return 0; +} + + +int glBlendEquation_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + glBlendEquation(mode); + return 0; +} + + +int glBlendEquationi_bind(lua_State *L) +{ + GLuint buf = luaL_checkinteger(L, 1); + GLenum mode = luaL_checkinteger(L, 2); + glBlendEquationi(buf, mode); + return 0; +} + + +int glBlendEquationSeparate_bind(lua_State *L) +{ + GLenum modeRGB = luaL_checkinteger(L, 1); + GLenum modeAlpha = luaL_checkinteger(L, 2); + glBlendEquationSeparate(modeRGB, modeAlpha); + return 0; +} + + +int glBlendEquationSeparatei_bind(lua_State *L) +{ + GLuint buf = luaL_checkinteger(L, 1); + GLenum modeRGB = luaL_checkinteger(L, 2); + GLenum modeAlpha = luaL_checkinteger(L, 3); + glBlendEquationSeparatei(buf, modeRGB, modeAlpha); + return 0; +} + + +int glBlendFunc_bind(lua_State *L) +{ + GLenum sfactor = luaL_checkinteger(L, 1); + GLenum dfactor = luaL_checkinteger(L, 2); + glBlendFunc(sfactor, dfactor); + return 0; +} + + +int glBlendFunci_bind(lua_State *L) +{ + GLuint buf = luaL_checkinteger(L, 1); + GLenum sfactor = luaL_checkinteger(L, 2); + GLenum dfactor = luaL_checkinteger(L, 3); + glBlendFunci(buf, sfactor, dfactor); + return 0; +} + + +int glBlendFuncSeparate_bind(lua_State *L) +{ + GLenum srcRGB = luaL_checkinteger(L, 1); + GLenum dstRGB = luaL_checkinteger(L, 2); + GLenum srcAlpha = luaL_checkinteger(L, 3); + GLenum dstAlpha = luaL_checkinteger(L, 4); + glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); + return 0; +} + + +int glBlendFuncSeparatei_bind(lua_State *L) +{ + GLuint buf = luaL_checkinteger(L, 1); + GLenum srcRGB = luaL_checkinteger(L, 2); + GLenum dstRGB = luaL_checkinteger(L, 3); + GLenum srcAlpha = luaL_checkinteger(L, 4); + GLenum dstAlpha = luaL_checkinteger(L, 5); + glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha); + return 0; +} + + +int glBlitFramebuffer_bind(lua_State *L) +{ + GLint srcX0 = luaL_checkinteger(L, 1); + GLint srcY0 = luaL_checkinteger(L, 2); + GLint srcX1 = luaL_checkinteger(L, 3); + GLint srcY1 = luaL_checkinteger(L, 4); + GLint dstX0 = luaL_checkinteger(L, 5); + GLint dstY0 = luaL_checkinteger(L, 6); + GLint dstX1 = luaL_checkinteger(L, 7); + GLint dstY1 = luaL_checkinteger(L, 8); + GLbitfield mask = luaL_checkinteger(L, 9); + GLenum filter = luaL_checkinteger(L, 10); + glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); + return 0; +} + + +int glBlitNamedFramebuffer_bind(lua_State *L) +{ + GLuint readFramebuffer = luaL_checkinteger(L, 1); + GLuint drawFramebuffer = luaL_checkinteger(L, 2); + GLint srcX0 = luaL_checkinteger(L, 3); + GLint srcY0 = luaL_checkinteger(L, 4); + GLint srcX1 = luaL_checkinteger(L, 5); + GLint srcY1 = luaL_checkinteger(L, 6); + GLint dstX0 = luaL_checkinteger(L, 7); + GLint dstY0 = luaL_checkinteger(L, 8); + GLint dstX1 = luaL_checkinteger(L, 9); + GLint dstY1 = luaL_checkinteger(L, 10); + GLbitfield mask = luaL_checkinteger(L, 11); + GLenum filter = luaL_checkinteger(L, 12); + glBlitNamedFramebuffer(readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); + return 0; +} + + +int glBufferData_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLsizeiptr size = luaL_checkinteger(L, 2); + const void * data = get: const void * + GLenum usage = luaL_checkinteger(L, 4); + glBufferData(target, size, data, usage); + return 0; +} + + +int glBufferStorage_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLsizeiptr size = luaL_checkinteger(L, 2); + const void * data = get: const void * + GLbitfield flags = luaL_checkinteger(L, 4); + glBufferStorage(target, size, data, flags); + return 0; +} + + +int glBufferSubData_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLintptr offset = luaL_checkinteger(L, 2); + GLsizeiptr size = luaL_checkinteger(L, 3); + const void * data = get: const void * + glBufferSubData(target, offset, size, data); + return 0; +} + + diff --git a/src/opengl/bind/c b/src/opengl/bind/c new file mode 100644 index 0000000..a53aa8f --- /dev/null +++ b/src/opengl/bind/c @@ -0,0 +1,31 @@ +GLenum glCheckFramebufferStatus( GLenum target); +GLenum glCheckNamedFramebufferStatus( GLuint framebuffer, GLenum target); +void glClampColor( GLenum target, GLenum clamp); +void glClear( GLbitfield mask); +void glClearBufferiv( GLenum buffer, GLint drawbuffer, const GLint * value); +void glClearBufferuiv( GLenum buffer, GLint drawbuffer, const GLuint * value); +void glClearBufferfv( GLenum buffer, GLint drawbuffer, const GLfloat * value); +void glClearBufferfi( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +void glClearStencil( GLint s); +GLenum glClientWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout); +void glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +void glColorMaski( GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +void glCompileShader( GLuint shader); +void glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data); +void glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data); +void glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data); +void glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data); +void glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data); +void glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data); +void glCopyBufferSubData( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +void glCopyBufferSubData( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +void glCopyTexImage1D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +void glCopyTexImage2D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +void glCopyTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +void glCopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +void glCopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLuint glCreateProgram( void); +GLuint glCreateShader( GLenum shaderType); +GLuint glCreateShaderProgramv( GLenum type, GLsizei count, const char **strings); +void glCullFace( GLenum mode); + diff --git a/src/opengl/bind/c.bind b/src/opengl/bind/c.bind new file mode 100644 index 0000000..1cf6e80 --- /dev/null +++ b/src/opengl/bind/c.bind @@ -0,0 +1,354 @@ +int glCheckFramebufferStatus_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum bind_result = glCheckFramebufferStatus(target); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glCheckNamedFramebufferStatus_bind(lua_State *L) +{ + GLuint framebuffer = luaL_checkinteger(L, 1); + GLenum target = luaL_checkinteger(L, 2); + GLenum bind_result = glCheckNamedFramebufferStatus(framebuffer, target); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glClampColor_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum clamp = luaL_checkinteger(L, 2); + glClampColor(target, clamp); + return 0; +} + + +int glClear_bind(lua_State *L) +{ + GLbitfield mask = luaL_checkinteger(L, 1); + glClear(mask); + return 0; +} + + +int glClearBufferiv_bind(lua_State *L) +{ + GLenum buffer = luaL_checkinteger(L, 1); + GLint drawbuffer = luaL_checkinteger(L, 2); + const GLint * value = get: const GLint * + glClearBufferiv(buffer, drawbuffer, value); + return 0; +} + + +int glClearBufferuiv_bind(lua_State *L) +{ + GLenum buffer = luaL_checkinteger(L, 1); + GLint drawbuffer = luaL_checkinteger(L, 2); + const GLuint * value = get: const GLuint * + glClearBufferuiv(buffer, drawbuffer, value); + return 0; +} + + +int glClearBufferfv_bind(lua_State *L) +{ + GLenum buffer = luaL_checkinteger(L, 1); + GLint drawbuffer = luaL_checkinteger(L, 2); + const GLfloat * value = get: const GLfloat * + glClearBufferfv(buffer, drawbuffer, value); + return 0; +} + + +int glClearBufferfi_bind(lua_State *L) +{ + GLenum buffer = luaL_checkinteger(L, 1); + GLint drawbuffer = luaL_checkinteger(L, 2); + GLfloat depth = luaL_checknumber(L, 3); + GLint stencil = luaL_checkinteger(L, 4); + glClearBufferfi(buffer, drawbuffer, depth, stencil); + return 0; +} + + +int glClearStencil_bind(lua_State *L) +{ + GLint s = luaL_checkinteger(L, 1); + glClearStencil(s); + return 0; +} + + +int glClientWaitSync_bind(lua_State *L) +{ + GLsync sync = luaL_checkinteger(L, 1); + GLbitfield flags = luaL_checkinteger(L, 2); + GLuint64 timeout = luaL_checkinteger(L, 3); + GLenum bind_result = glClientWaitSync(sync, flags, timeout); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glColorMask_bind(lua_State *L) +{ + GLboolean red = get: GLboolean + GLboolean green = get: GLboolean + GLboolean blue = get: GLboolean + GLboolean alpha = get: GLboolean + glColorMask(red, green, blue, alpha); + return 0; +} + + +int glColorMaski_bind(lua_State *L) +{ + GLuint buf = luaL_checkinteger(L, 1); + GLboolean red = get: GLboolean + GLboolean green = get: GLboolean + GLboolean blue = get: GLboolean + GLboolean alpha = get: GLboolean + glColorMaski(buf, red, green, blue, alpha); + return 0; +} + + +int glCompileShader_bind(lua_State *L) +{ + GLuint shader = luaL_checkinteger(L, 1); + glCompileShader(shader); + return 0; +} + + +int glCompressedTexImage1D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLenum internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLint border = luaL_checkinteger(L, 5); + GLsizei imageSize = luaL_checkinteger(L, 6); + const void * data = get: const void * + glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data); + return 0; +} + + +int glCompressedTexImage2D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLenum internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLsizei height = luaL_checkinteger(L, 5); + GLint border = luaL_checkinteger(L, 6); + GLsizei imageSize = luaL_checkinteger(L, 7); + const void * data = get: const void * + glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); + return 0; +} + + +int glCompressedTexImage3D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLenum internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLsizei height = luaL_checkinteger(L, 5); + GLsizei depth = luaL_checkinteger(L, 6); + GLint border = luaL_checkinteger(L, 7); + GLsizei imageSize = luaL_checkinteger(L, 8); + const void * data = get: const void * + glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data); + return 0; +} + + +int glCompressedTexSubImage1D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLenum format = luaL_checkinteger(L, 5); + GLsizei imageSize = luaL_checkinteger(L, 6); + const void * data = get: const void * + glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data); + return 0; +} + + +int glCompressedTexSubImage2D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLint yoffset = luaL_checkinteger(L, 4); + GLsizei width = luaL_checkinteger(L, 5); + GLsizei height = luaL_checkinteger(L, 6); + GLenum format = luaL_checkinteger(L, 7); + GLsizei imageSize = luaL_checkinteger(L, 8); + const void * data = get: const void * + glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); + return 0; +} + + +int glCompressedTexSubImage3D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLint yoffset = luaL_checkinteger(L, 4); + GLint zoffset = luaL_checkinteger(L, 5); + GLsizei width = luaL_checkinteger(L, 6); + GLsizei height = luaL_checkinteger(L, 7); + GLsizei depth = luaL_checkinteger(L, 8); + GLenum format = luaL_checkinteger(L, 9); + GLsizei imageSize = luaL_checkinteger(L, 10); + const void * data = get: const void * + glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); + return 0; +} + + +int glCopyBufferSubData_bind(lua_State *L) +{ + GLenum readTarget = luaL_checkinteger(L, 1); + GLenum writeTarget = luaL_checkinteger(L, 2); + GLintptr readOffset = luaL_checkinteger(L, 3); + GLintptr writeOffset = luaL_checkinteger(L, 4); + GLsizeiptr size = luaL_checkinteger(L, 5); + glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size); + return 0; +} + + +int glCopyBufferSubData_bind(lua_State *L) +{ + GLenum readTarget = luaL_checkinteger(L, 1); + GLenum writeTarget = luaL_checkinteger(L, 2); + GLintptr readOffset = luaL_checkinteger(L, 3); + GLintptr writeOffset = luaL_checkinteger(L, 4); + GLsizeiptr size = luaL_checkinteger(L, 5); + glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size); + return 0; +} + + +int glCopyTexImage1D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLenum internalformat = luaL_checkinteger(L, 3); + GLint x = luaL_checkinteger(L, 4); + GLint y = luaL_checkinteger(L, 5); + GLsizei width = luaL_checkinteger(L, 6); + GLint border = luaL_checkinteger(L, 7); + glCopyTexImage1D(target, level, internalformat, x, y, width, border); + return 0; +} + + +int glCopyTexImage2D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLenum internalformat = luaL_checkinteger(L, 3); + GLint x = luaL_checkinteger(L, 4); + GLint y = luaL_checkinteger(L, 5); + GLsizei width = luaL_checkinteger(L, 6); + GLsizei height = luaL_checkinteger(L, 7); + GLint border = luaL_checkinteger(L, 8); + glCopyTexImage2D(target, level, internalformat, x, y, width, height, border); + return 0; +} + + +int glCopyTexSubImage1D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLint x = luaL_checkinteger(L, 4); + GLint y = luaL_checkinteger(L, 5); + GLsizei width = luaL_checkinteger(L, 6); + glCopyTexSubImage1D(target, level, xoffset, x, y, width); + return 0; +} + + +int glCopyTexSubImage2D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLint yoffset = luaL_checkinteger(L, 4); + GLint x = luaL_checkinteger(L, 5); + GLint y = luaL_checkinteger(L, 6); + GLsizei width = luaL_checkinteger(L, 7); + GLsizei height = luaL_checkinteger(L, 8); + glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); + return 0; +} + + +int glCopyTexSubImage3D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLint yoffset = luaL_checkinteger(L, 4); + GLint zoffset = luaL_checkinteger(L, 5); + GLint x = luaL_checkinteger(L, 6); + GLint y = luaL_checkinteger(L, 7); + GLsizei width = luaL_checkinteger(L, 8); + GLsizei height = luaL_checkinteger(L, 9); + glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height); + return 0; +} + + +int glCreateProgram_bind(lua_State *L) +{ + void = get: + GLuint bind_result = glCreateProgram(void); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glCreateShader_bind(lua_State *L) +{ + GLenum shaderType = luaL_checkinteger(L, 1); + GLuint bind_result = glCreateShader(shaderType); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glCreateShaderProgramv_bind(lua_State *L) +{ + GLenum type = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const char ** strings = get: const char ** + GLuint bind_result = glCreateShaderProgramv(type, count, strings); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glCullFace_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + glCullFace(mode); + return 0; +} + + diff --git a/src/opengl/bind/d b/src/opengl/bind/d new file mode 100644 index 0000000..1437c2e --- /dev/null +++ b/src/opengl/bind/d @@ -0,0 +1,36 @@ +void glDeleteBuffers( GLsizei n, const GLuint * buffers); +void glDeleteFramebuffers( GLsizei n, GLuint *framebuffers); +void glDeleteProgram( GLuint program); +void glDeleteProgramPipelines( GLsizei n, const GLuint *pipelines); +void glDeleteQueries( GLsizei n, const GLuint * ids); +void glDeleteRenderbuffers( GLsizei n, GLuint *renderbuffers); +void glDeleteSamplers( GLsizei n, const GLuint * samplers); +void glDeleteShader( GLuint shader); +void glDeleteSync( GLsync sync); +void glDeleteTextures( GLsizei n, const GLuint * textures); +void glDeleteTransformFeedbacks( GLsizei n, const GLuint *ids); +void glDeleteVertexArrays( GLsizei n, const GLuint *arrays); +void glDepthFunc( GLenum func); +void glDepthMask( GLboolean flag); +void glDepthRange( GLdouble nearVal, GLdouble farVal); +void glDepthRangef( GLfloat nearVal, GLfloat farVal); +void glDepthRangeArrayv( GLuint first, GLsizei count, const GLdouble *v); +void glDepthRangeIndexed( GLuint index, GLdouble nearVal, GLdouble farVal); +void glDetachShader( GLuint program, GLuint shader); +void glDisable( GLenum cap); +void glDisablei( GLenum cap, GLuint index); +void glDisableVertexAttribArray( GLuint index); +void glDrawArrays( GLenum mode, GLint first, GLsizei count); +void glDrawArraysIndirect( GLenum mode, const void *indirect); +void glDrawArraysInstanced( GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +void glDrawBuffer( GLenum buf); +void glDrawBuffers( GLsizei n, const GLenum *bufs); +void glDrawElements( GLenum mode, GLsizei count, GLenum type, const void * indices); +void glDrawElementsBaseVertex( GLenum mode, GLsizei count, GLenum type, void *indices, GLint basevertex); +void glDrawElementsIndirect( GLenum mode, GLenum type, const void *indirect); +void glDrawElementsInstanced( GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount); +void glDrawRangeElements( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices); +void glDrawRangeElementsBaseVertex( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void *indices, GLint basevertex); +void glDrawTransformFeedback( GLenum mode, GLuint id); +void glDrawTransformFeedbackStream( GLenum mode, GLuint id, GLuint stream); + diff --git a/src/opengl/bind/d.bind b/src/opengl/bind/d.bind new file mode 100644 index 0000000..b307029 --- /dev/null +++ b/src/opengl/bind/d.bind @@ -0,0 +1,331 @@ +int glDeleteBuffers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + const GLuint * buffers = get: const GLuint * + glDeleteBuffers(n, buffers); + return 0; +} + + +int glDeleteFramebuffers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * framebuffers = get: GLuint * + glDeleteFramebuffers(n, framebuffers); + return 0; +} + + +int glDeleteProgram_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + glDeleteProgram(program); + return 0; +} + + +int glDeleteProgramPipelines_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + const GLuint * pipelines = get: const GLuint * + glDeleteProgramPipelines(n, pipelines); + return 0; +} + + +int glDeleteQueries_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + const GLuint * ids = get: const GLuint * + glDeleteQueries(n, ids); + return 0; +} + + +int glDeleteRenderbuffers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * renderbuffers = get: GLuint * + glDeleteRenderbuffers(n, renderbuffers); + return 0; +} + + +int glDeleteSamplers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + const GLuint * samplers = get: const GLuint * + glDeleteSamplers(n, samplers); + return 0; +} + + +int glDeleteShader_bind(lua_State *L) +{ + GLuint shader = luaL_checkinteger(L, 1); + glDeleteShader(shader); + return 0; +} + + +int glDeleteSync_bind(lua_State *L) +{ + GLsync sync = luaL_checkinteger(L, 1); + glDeleteSync(sync); + return 0; +} + + +int glDeleteTextures_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + const GLuint * textures = get: const GLuint * + glDeleteTextures(n, textures); + return 0; +} + + +int glDeleteTransformFeedbacks_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + const GLuint * ids = get: const GLuint * + glDeleteTransformFeedbacks(n, ids); + return 0; +} + + +int glDeleteVertexArrays_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + const GLuint * arrays = get: const GLuint * + glDeleteVertexArrays(n, arrays); + return 0; +} + + +int glDepthFunc_bind(lua_State *L) +{ + GLenum func = luaL_checkinteger(L, 1); + glDepthFunc(func); + return 0; +} + + +int glDepthMask_bind(lua_State *L) +{ + GLboolean flag = get: GLboolean + glDepthMask(flag); + return 0; +} + + +int glDepthRange_bind(lua_State *L) +{ + GLdouble nearVal = luaL_checknumber(L, 1); + GLdouble farVal = luaL_checknumber(L, 2); + glDepthRange(nearVal, farVal); + return 0; +} + + +int glDepthRangef_bind(lua_State *L) +{ + GLfloat nearVal = luaL_checknumber(L, 1); + GLfloat farVal = luaL_checknumber(L, 2); + glDepthRangef(nearVal, farVal); + return 0; +} + + +int glDepthRangeArrayv_bind(lua_State *L) +{ + GLuint first = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLdouble * v = get: const GLdouble * + glDepthRangeArrayv(first, count, v); + return 0; +} + + +int glDepthRangeIndexed_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble nearVal = luaL_checknumber(L, 2); + GLdouble farVal = luaL_checknumber(L, 3); + glDepthRangeIndexed(index, nearVal, farVal); + return 0; +} + + +int glDetachShader_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint shader = luaL_checkinteger(L, 2); + glDetachShader(program, shader); + return 0; +} + + +int glDisable_bind(lua_State *L) +{ + GLenum cap = luaL_checkinteger(L, 1); + glDisable(cap); + return 0; +} + + +int glDisablei_bind(lua_State *L) +{ + GLenum cap = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + glDisablei(cap, index); + return 0; +} + + +int glDisableVertexAttribArray_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + glDisableVertexAttribArray(index); + return 0; +} + + +int glDrawArrays_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLint first = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + glDrawArrays(mode, first, count); + return 0; +} + + +int glDrawArraysIndirect_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + const void * indirect = get: const void * + glDrawArraysIndirect(mode, indirect); + return 0; +} + + +int glDrawArraysInstanced_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLint first = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLsizei instancecount = luaL_checkinteger(L, 4); + glDrawArraysInstanced(mode, first, count, instancecount); + return 0; +} + + +int glDrawBuffer_bind(lua_State *L) +{ + GLenum buf = luaL_checkinteger(L, 1); + glDrawBuffer(buf); + return 0; +} + + +int glDrawBuffers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + const GLenum * bufs = get: const GLenum * + glDrawBuffers(n, bufs); + return 0; +} + + +int glDrawElements_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLenum type = luaL_checkinteger(L, 3); + const void * indices = get: const void * + glDrawElements(mode, count, type, indices); + return 0; +} + + +int glDrawElementsBaseVertex_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLenum type = luaL_checkinteger(L, 3); + void * indices = get: void * + GLint basevertex = luaL_checkinteger(L, 5); + glDrawElementsBaseVertex(mode, count, type, indices, basevertex); + return 0; +} + + +int glDrawElementsIndirect_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLenum type = luaL_checkinteger(L, 2); + const void * indirect = get: const void * + glDrawElementsIndirect(mode, type, indirect); + return 0; +} + + +int glDrawElementsInstanced_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLenum type = luaL_checkinteger(L, 3); + const void * indices = get: const void * + GLsizei instancecount = luaL_checkinteger(L, 5); + glDrawElementsInstanced(mode, count, type, indices, instancecount); + return 0; +} + + +int glDrawRangeElements_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLuint start = luaL_checkinteger(L, 2); + GLuint end = luaL_checkinteger(L, 3); + GLsizei count = luaL_checkinteger(L, 4); + GLenum type = luaL_checkinteger(L, 5); + const void * indices = get: const void * + glDrawRangeElements(mode, start, end, count, type, indices); + return 0; +} + + +int glDrawRangeElementsBaseVertex_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLuint start = luaL_checkinteger(L, 2); + GLuint end = luaL_checkinteger(L, 3); + GLsizei count = luaL_checkinteger(L, 4); + GLenum type = luaL_checkinteger(L, 5); + void * indices = get: void * + GLint basevertex = luaL_checkinteger(L, 7); + glDrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex); + return 0; +} + + +int glDrawTransformFeedback_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLuint id = luaL_checkinteger(L, 2); + glDrawTransformFeedback(mode, id); + return 0; +} + + +int glDrawTransformFeedbackStream_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + GLuint id = luaL_checkinteger(L, 2); + GLuint stream = luaL_checkinteger(L, 3); + glDrawTransformFeedbackStream(mode, id, stream); + return 0; +} + + diff --git a/src/opengl/bind/e b/src/opengl/bind/e new file mode 100644 index 0000000..4502836 --- /dev/null +++ b/src/opengl/bind/e @@ -0,0 +1,7 @@ +void glEnable( GLenum cap); +void glEnablei( GLenum cap, GLuint index); +void glEnableVertexAttribArray( GLuint index); +void glEndConditionalRender( void); +void glEndQuery( GLenum target); +void glEndQueryIndexed( GLenum target, GLuint index); +void glEndTransformFeedback(); diff --git a/src/opengl/bind/e.bind b/src/opengl/bind/e.bind new file mode 100644 index 0000000..50332d5 --- /dev/null +++ b/src/opengl/bind/e.bind @@ -0,0 +1,57 @@ +int glEnable_bind(lua_State *L) +{ + GLenum cap = luaL_checkinteger(L, 1); + glEnable(cap); + return 0; +} + + +int glEnablei_bind(lua_State *L) +{ + GLenum cap = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + glEnablei(cap, index); + return 0; +} + + +int glEnableVertexAttribArray_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + glEnableVertexAttribArray(index); + return 0; +} + + +int glEndConditionalRender_bind(lua_State *L) +{ + void = get: + glEndConditionalRender(void); + return 0; +} + + +int glEndQuery_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + glEndQuery(target); + return 0; +} + + +int glEndQueryIndexed_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + glEndQueryIndexed(target, index); + return 0; +} + + +int glEndTransformFeedback_bind(lua_State *L) +{ + glEndTransformFeedback(); + return 0; +} + + diff --git a/src/opengl/bind/f b/src/opengl/bind/f new file mode 100644 index 0000000..63b8140 --- /dev/null +++ b/src/opengl/bind/f @@ -0,0 +1,11 @@ +GLsync glFenceSync( GLenum condition, GLbitfield flags); +void glFinish( void); +void glFlush( void); +void glFlushMappedBufferRange( GLenum target, GLintptr offset, GLsizeiptr length); +void glFramebufferRenderbuffer( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +void glFramebufferTexture( GLenum target, GLenum attachment, GLuint texture, GLint level); +void glFramebufferTexture1D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +void glFramebufferTexture2D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +void glFramebufferTexture3D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); +void glFramebufferTextureLayer( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +void glFrontFace( GLenum mode); diff --git a/src/opengl/bind/f.bind b/src/opengl/bind/f.bind new file mode 100644 index 0000000..de6a297 --- /dev/null +++ b/src/opengl/bind/f.bind @@ -0,0 +1,115 @@ +int glFenceSync_bind(lua_State *L) +{ + GLenum condition = luaL_checkinteger(L, 1); + GLbitfield flags = luaL_checkinteger(L, 2); + GLsync bind_result = glFenceSync(condition, flags); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glFinish_bind(lua_State *L) +{ + void = get: + glFinish(void); + return 0; +} + + +int glFlush_bind(lua_State *L) +{ + void = get: + glFlush(void); + return 0; +} + + +int glFlushMappedBufferRange_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLintptr offset = luaL_checkinteger(L, 2); + GLsizeiptr length = luaL_checkinteger(L, 3); + glFlushMappedBufferRange(target, offset, length); + return 0; +} + + +int glFramebufferRenderbuffer_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum attachment = luaL_checkinteger(L, 2); + GLenum renderbuffertarget = luaL_checkinteger(L, 3); + GLuint renderbuffer = luaL_checkinteger(L, 4); + glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); + return 0; +} + + +int glFramebufferTexture_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum attachment = luaL_checkinteger(L, 2); + GLuint texture = luaL_checkinteger(L, 3); + GLint level = luaL_checkinteger(L, 4); + glFramebufferTexture(target, attachment, texture, level); + return 0; +} + + +int glFramebufferTexture1D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum attachment = luaL_checkinteger(L, 2); + GLenum textarget = luaL_checkinteger(L, 3); + GLuint texture = luaL_checkinteger(L, 4); + GLint level = luaL_checkinteger(L, 5); + glFramebufferTexture1D(target, attachment, textarget, texture, level); + return 0; +} + + +int glFramebufferTexture2D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum attachment = luaL_checkinteger(L, 2); + GLenum textarget = luaL_checkinteger(L, 3); + GLuint texture = luaL_checkinteger(L, 4); + GLint level = luaL_checkinteger(L, 5); + glFramebufferTexture2D(target, attachment, textarget, texture, level); + return 0; +} + + +int glFramebufferTexture3D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum attachment = luaL_checkinteger(L, 2); + GLenum textarget = luaL_checkinteger(L, 3); + GLuint texture = luaL_checkinteger(L, 4); + GLint level = luaL_checkinteger(L, 5); + GLint layer = luaL_checkinteger(L, 6); + glFramebufferTexture3D(target, attachment, textarget, texture, level, layer); + return 0; +} + + +int glFramebufferTextureLayer_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum attachment = luaL_checkinteger(L, 2); + GLuint texture = luaL_checkinteger(L, 3); + GLint level = luaL_checkinteger(L, 4); + GLint layer = luaL_checkinteger(L, 5); + glFramebufferTextureLayer(target, attachment, texture, level, layer); + return 0; +} + + +int glFrontFace_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + glFrontFace(mode); + return 0; +} + + diff --git a/src/opengl/bind/g b/src/opengl/bind/g new file mode 100644 index 0000000..bc61f25 --- /dev/null +++ b/src/opengl/bind/g @@ -0,0 +1,88 @@ +void glGenBuffers( GLsizei n, GLuint * buffers); +void glGenerateMipmap( GLenum target); +void glGenFramebuffers( GLsizei n, GLuint *ids); +void glGenProgramPipelines( GLsizei n, GLuint *pipelines); +void glGenQueries( GLsizei n, GLuint * ids); +void glGenRenderbuffers( GLsizei n, GLuint *renderbuffers); +void glGenSamplers( GLsizei n, GLuint *samplers); +void glGenTextures( GLsizei n, GLuint * textures); +void glGenTransformFeedbacks( GLsizei n, GLuint *ids); +void glGenVertexArrays( GLsizei n, GLuint *arrays); +void glGetBooleanv( GLenum pname, GLboolean * data); +void glGetDoublev( GLenum pname, GLdouble * data); +void glGetFloatv( GLenum pname, GLfloat * data); +void glGetIntegerv( GLenum pname, GLint * data); +void glGetInteger64v( GLenum pname, GLint64 * data); +void glGetBooleani_v( GLenum target, GLuint index, GLboolean * data); +void glGetIntegeri_v( GLenum target, GLuint index, GLint * data); +void glGetFloati_v( GLenum target, GLuint index, GLfloat * data); +void glGetDoublei_v( GLenum target, GLuint index, GLdouble * data); +void glGetInteger64i_v( GLenum target, GLuint index, GLint64 * data); +void glGetActiveAttrib( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +void glGetActiveSubroutineName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +void glGetActiveSubroutineUniformiv( GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +void glGetActiveSubroutineUniformName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +void glGetActiveUniform( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +void glGetActiveUniformBlockiv( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +void glGetActiveUniformBlockName( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +void glGetActiveUniformName( GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +void glGetActiveUniformsiv( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +void glGetAttachedShaders( GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLint glGetAttribLocation( GLuint program, const GLchar *name); +void glGetBufferParameteriv( GLenum target, GLenum value, GLint * data); +void glGetBufferParameteri64v( GLenum target, GLenum value, GLint64 * data); +void glGetBufferPointerv( GLenum target, GLenum pname, void ** params); +void glGetBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, void * data); +void glGetCompressedTexImage( GLenum target, GLint level, void * pixels); +GLenum glGetError( void); +GLint glGetFragDataIndex( GLuint program, const char * name); +GLint glGetFragDataLocation( GLuint program, const char * name); +void glGetFramebufferAttachmentParameteriv( GLenum target, GLenum attachment, GLenum pname, GLint *params); +void glGetMultisamplefv( GLenum pname, GLuint index, GLfloat *val); +void glGetUniformfv( GLuint program, GLint location, GLfloat *params); +void glGetUniformiv( GLuint program, GLint location, GLint *params); +void glGetUniformuiv( GLuint program, GLint location, GLuint *params); +void glGetUniformdv( GLuint program, GLint location, GLdouble *params); +void glGetProgramiv( GLuint program, GLenum pname, GLint *params); +void glGetProgramBinary( GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +void glGetProgramInfoLog( GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog); +void glGetProgramPipelineiv( GLuint pipeline, GLenum pname, GLint *params); +void glGetProgramPipelineInfoLog( GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +void glGetProgramPipelineiv( GLuint pipeline, GLenum pname, GLint *params); +void glGetProgramStageiv( GLuint program, GLenum shadertype, GLenum pname, GLint *values); +void glGetQueryIndexediv( GLenum target, GLuint index, GLenum pname, GLint * params); +void glGetQueryiv( GLenum target, GLenum pname, GLint * params); +void glGetRenderbufferParameteriv( GLenum target, GLenum pname, GLint *params); +void glGetSamplerParameterfv( GLuint sampler, GLenum pname, GLfloat * params); +void glGetSamplerParameteriv( GLuint sampler, GLenum pname, GLint * params); +void glGetSamplerParameterIiv( GLuint sampler, GLenum pname, GLint * params); +void glGetSamplerParameterIuiv( GLuint sampler, GLenum pname, GLuint * params); +void glGetShaderiv( GLuint shader, GLenum pname, GLint *params); +void glGetShaderInfoLog( GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog); +void glGetShaderiv( GLuint shader, GLenum pname, GLint *params); +void glGetShaderPrecisionFormat( GLenum shaderType, GLenum precisionType, GLint *range, GLint *precision); +void glGetShaderSource( GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +const GLubyte * glGetString(GLenum name); +const GLubyte * glGetStringi(GLenum name, GLuint index); +GLuint glGetSubroutineIndex( GLuint program, GLenum shadertype, const GLchar *name); +GLint glGetSubroutineUniformLocation( GLuint program, GLenum shadertype, const GLchar *name); +void glGetSynciv( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +void glGetTexImage( GLenum target, GLint level, GLenum format, GLenum type, void * pixels); +void glGetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat * params); +void glGetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint * params); +void glGetTexParameterfv( GLenum target, GLenum pname, GLfloat * params); +void glGetTexParameteriv( GLenum target, GLenum pname, GLint * params); +void glGetTexParameterIiv( GLenum target, GLenum pname, GLint * params); +void glGetTexParameterIuiv( GLenum target, GLenum pname, GLuint * params); +void glGetTransformFeedbackVarying( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, char *name); +GLuint glGetUniformBlockIndex( GLuint program, const GLchar *uniformBlockName); +void glGetUniformIndices( GLuint program, GLsizei uniformCount, const GLchar **uniformNames, GLuint *uniformIndices); +GLint glGetUniformLocation( GLuint program, const GLchar *name); +void glGetUniformSubroutineuiv( GLenum shadertype, GLint location, GLuint *values); +void glGetVertexAttribdv( GLuint index, GLenum pname, GLdouble *params); +void glGetVertexAttribfv( GLuint index, GLenum pname, GLfloat *params); +void glGetVertexAttribiv( GLuint index, GLenum pname, GLint *params); +void glGetVertexAttribIiv( GLuint index, GLenum pname, GLint *params); +void glGetVertexAttribIuiv( GLuint index, GLenum pname, GLuint *params); +void glGetVertexAttribLdv( GLuint index, GLenum pname, GLdouble *params); +void glGetVertexAttribPointerv( GLuint index, GLenum pname, void **pointer); diff --git a/src/opengl/bind/g.bind b/src/opengl/bind/g.bind new file mode 100644 index 0000000..2c608b8 --- /dev/null +++ b/src/opengl/bind/g.bind @@ -0,0 +1,910 @@ +int glGenBuffers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * buffers = get: GLuint * + glGenBuffers(n, buffers); + return 0; +} + + +int glGenerateMipmap_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + glGenerateMipmap(target); + return 0; +} + + +int glGenFramebuffers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * ids = get: GLuint * + glGenFramebuffers(n, ids); + return 0; +} + + +int glGenProgramPipelines_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * pipelines = get: GLuint * + glGenProgramPipelines(n, pipelines); + return 0; +} + + +int glGenQueries_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * ids = get: GLuint * + glGenQueries(n, ids); + return 0; +} + + +int glGenRenderbuffers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * renderbuffers = get: GLuint * + glGenRenderbuffers(n, renderbuffers); + return 0; +} + + +int glGenSamplers_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * samplers = get: GLuint * + glGenSamplers(n, samplers); + return 0; +} + + +int glGenTextures_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * textures = get: GLuint * + glGenTextures(n, textures); + return 0; +} + + +int glGenTransformFeedbacks_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * ids = get: GLuint * + glGenTransformFeedbacks(n, ids); + return 0; +} + + +int glGenVertexArrays_bind(lua_State *L) +{ + GLsizei n = luaL_checkinteger(L, 1); + GLuint * arrays = get: GLuint * + glGenVertexArrays(n, arrays); + return 0; +} + + +int glGetBooleanv_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLboolean * data = get: GLboolean * + glGetBooleanv(pname, data); + return 0; +} + + +int glGetDoublev_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLdouble * data = get: GLdouble * + glGetDoublev(pname, data); + return 0; +} + + +int glGetFloatv_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLfloat * data = get: GLfloat * + glGetFloatv(pname, data); + return 0; +} + + +int glGetIntegerv_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLint * data = get: GLint * + glGetIntegerv(pname, data); + return 0; +} + + +int glGetInteger64v_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLint64 * data = get: GLint64 * + glGetInteger64v(pname, data); + return 0; +} + + +int glGetBooleani_v_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLboolean * data = get: GLboolean * + glGetBooleani_v(target, index, data); + return 0; +} + + +int glGetIntegeri_v_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLint * data = get: GLint * + glGetIntegeri_v(target, index, data); + return 0; +} + + +int glGetFloati_v_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLfloat * data = get: GLfloat * + glGetFloati_v(target, index, data); + return 0; +} + + +int glGetDoublei_v_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLdouble * data = get: GLdouble * + glGetDoublei_v(target, index, data); + return 0; +} + + +int glGetInteger64i_v_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLint64 * data = get: GLint64 * + glGetInteger64i_v(target, index, data); + return 0; +} + + +int glGetActiveAttrib_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLsizei bufSize = luaL_checkinteger(L, 3); + GLsizei * length = get: GLsizei * + GLint * size = get: GLint * + GLenum * type = get: GLenum * + GLchar * name = luaL_checkstring(L, 7); + glGetActiveAttrib(program, index, bufSize, length, size, type, name); + return 0; +} + + +int glGetActiveSubroutineName_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum shadertype = luaL_checkinteger(L, 2); + GLuint index = luaL_checkinteger(L, 3); + GLsizei bufSize = luaL_checkinteger(L, 4); + GLsizei * length = get: GLsizei * + GLchar * name = luaL_checkstring(L, 6); + glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name); + return 0; +} + + +int glGetActiveSubroutineUniformiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum shadertype = luaL_checkinteger(L, 2); + GLuint index = luaL_checkinteger(L, 3); + GLenum pname = luaL_checkinteger(L, 4); + GLint * values = get: GLint * + glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values); + return 0; +} + + +int glGetActiveSubroutineUniformName_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum shadertype = luaL_checkinteger(L, 2); + GLuint index = luaL_checkinteger(L, 3); + GLsizei bufSize = luaL_checkinteger(L, 4); + GLsizei * length = get: GLsizei * + GLchar * name = luaL_checkstring(L, 6); + glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name); + return 0; +} + + +int glGetActiveUniform_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLsizei bufSize = luaL_checkinteger(L, 3); + GLsizei * length = get: GLsizei * + GLint * size = get: GLint * + GLenum * type = get: GLenum * + GLchar * name = luaL_checkstring(L, 7); + glGetActiveUniform(program, index, bufSize, length, size, type, name); + return 0; +} + + +int glGetActiveUniformBlockiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint uniformBlockIndex = luaL_checkinteger(L, 2); + GLenum pname = luaL_checkinteger(L, 3); + GLint * params = get: GLint * + glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params); + return 0; +} + + +int glGetActiveUniformBlockName_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint uniformBlockIndex = luaL_checkinteger(L, 2); + GLsizei bufSize = luaL_checkinteger(L, 3); + GLsizei * length = get: GLsizei * + GLchar * uniformBlockName = luaL_checkstring(L, 5); + glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName); + return 0; +} + + +int glGetActiveUniformName_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint uniformIndex = luaL_checkinteger(L, 2); + GLsizei bufSize = luaL_checkinteger(L, 3); + GLsizei * length = get: GLsizei * + GLchar * uniformName = luaL_checkstring(L, 5); + glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName); + return 0; +} + + +int glGetActiveUniformsiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLsizei uniformCount = luaL_checkinteger(L, 2); + const GLuint * uniformIndices = get: const GLuint * + GLenum pname = luaL_checkinteger(L, 4); + GLint * params = get: GLint * + glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params); + return 0; +} + + +int glGetAttachedShaders_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLsizei maxCount = luaL_checkinteger(L, 2); + GLsizei * count = get: GLsizei * + GLuint * shaders = get: GLuint * + glGetAttachedShaders(program, maxCount, count, shaders); + return 0; +} + + +int glGetAttribLocation_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + const GLchar * name = luaL_checkstring(L, 2); + GLint bind_result = glGetAttribLocation(program, name); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glGetBufferParameteriv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum value = luaL_checkinteger(L, 2); + GLint * data = get: GLint * + glGetBufferParameteriv(target, value, data); + return 0; +} + + +int glGetBufferParameteri64v_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum value = luaL_checkinteger(L, 2); + GLint64 * data = get: GLint64 * + glGetBufferParameteri64v(target, value, data); + return 0; +} + + +int glGetBufferPointerv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + void ** params = get: void ** + glGetBufferPointerv(target, pname, params); + return 0; +} + + +int glGetBufferSubData_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLintptr offset = luaL_checkinteger(L, 2); + GLsizeiptr size = luaL_checkinteger(L, 3); + void * data = get: void * + glGetBufferSubData(target, offset, size, data); + return 0; +} + + +int glGetCompressedTexImage_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + void * pixels = get: void * + glGetCompressedTexImage(target, level, pixels); + return 0; +} + + +int glGetError_bind(lua_State *L) +{ + void = get: + GLenum bind_result = glGetError(void); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glGetFragDataIndex_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + const char * name = luaL_checkstring(L, 2); + GLint bind_result = glGetFragDataIndex(program, name); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glGetFragDataLocation_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + const char * name = luaL_checkstring(L, 2); + GLint bind_result = glGetFragDataLocation(program, name); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glGetFramebufferAttachmentParameteriv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum attachment = luaL_checkinteger(L, 2); + GLenum pname = luaL_checkinteger(L, 3); + GLint * params = get: GLint * + glGetFramebufferAttachmentParameteriv(target, attachment, pname, params); + return 0; +} + + +int glGetMultisamplefv_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLfloat * val = get: GLfloat * + glGetMultisamplefv(pname, index, val); + return 0; +} + + +int glGetUniformfv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLfloat * params = get: GLfloat * + glGetUniformfv(program, location, params); + return 0; +} + + +int glGetUniformiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetUniformiv(program, location, params); + return 0; +} + + +int glGetUniformuiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLuint * params = get: GLuint * + glGetUniformuiv(program, location, params); + return 0; +} + + +int glGetUniformdv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLdouble * params = get: GLdouble * + glGetUniformdv(program, location, params); + return 0; +} + + +int glGetProgramiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetProgramiv(program, pname, params); + return 0; +} + + +int glGetProgramBinary_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLsizei bufSize = luaL_checkinteger(L, 2); + GLsizei * length = get: GLsizei * + GLenum * binaryFormat = get: GLenum * + void * binary = get: void * + glGetProgramBinary(program, bufSize, length, binaryFormat, binary); + return 0; +} + + +int glGetProgramInfoLog_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLsizei maxLength = luaL_checkinteger(L, 2); + GLsizei * length = get: GLsizei * + GLchar * infoLog = luaL_checkstring(L, 4); + glGetProgramInfoLog(program, maxLength, length, infoLog); + return 0; +} + + +int glGetProgramPipelineiv_bind(lua_State *L) +{ + GLuint pipeline = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetProgramPipelineiv(pipeline, pname, params); + return 0; +} + + +int glGetProgramPipelineInfoLog_bind(lua_State *L) +{ + GLuint pipeline = luaL_checkinteger(L, 1); + GLsizei bufSize = luaL_checkinteger(L, 2); + GLsizei * length = get: GLsizei * + GLchar * infoLog = luaL_checkstring(L, 4); + glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog); + return 0; +} + + +int glGetProgramPipelineiv_bind(lua_State *L) +{ + GLuint pipeline = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetProgramPipelineiv(pipeline, pname, params); + return 0; +} + + +int glGetProgramStageiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum shadertype = luaL_checkinteger(L, 2); + GLenum pname = luaL_checkinteger(L, 3); + GLint * values = get: GLint * + glGetProgramStageiv(program, shadertype, pname, values); + return 0; +} + + +int glGetQueryIndexediv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLenum pname = luaL_checkinteger(L, 3); + GLint * params = get: GLint * + glGetQueryIndexediv(target, index, pname, params); + return 0; +} + + +int glGetQueryiv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetQueryiv(target, pname, params); + return 0; +} + + +int glGetRenderbufferParameteriv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetRenderbufferParameteriv(target, pname, params); + return 0; +} + + +int glGetSamplerParameterfv_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLfloat * params = get: GLfloat * + glGetSamplerParameterfv(sampler, pname, params); + return 0; +} + + +int glGetSamplerParameteriv_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetSamplerParameteriv(sampler, pname, params); + return 0; +} + + +int glGetSamplerParameterIiv_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetSamplerParameterIiv(sampler, pname, params); + return 0; +} + + +int glGetSamplerParameterIuiv_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLuint * params = get: GLuint * + glGetSamplerParameterIuiv(sampler, pname, params); + return 0; +} + + +int glGetShaderiv_bind(lua_State *L) +{ + GLuint shader = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetShaderiv(shader, pname, params); + return 0; +} + + +int glGetShaderInfoLog_bind(lua_State *L) +{ + GLuint shader = luaL_checkinteger(L, 1); + GLsizei maxLength = luaL_checkinteger(L, 2); + GLsizei * length = get: GLsizei * + GLchar * infoLog = luaL_checkstring(L, 4); + glGetShaderInfoLog(shader, maxLength, length, infoLog); + return 0; +} + + +int glGetShaderiv_bind(lua_State *L) +{ + GLuint shader = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetShaderiv(shader, pname, params); + return 0; +} + + +int glGetShaderPrecisionFormat_bind(lua_State *L) +{ + GLenum shaderType = luaL_checkinteger(L, 1); + GLenum precisionType = luaL_checkinteger(L, 2); + GLint * range = get: GLint * + GLint * precision = get: GLint * + glGetShaderPrecisionFormat(shaderType, precisionType, range, precision); + return 0; +} + + +int glGetShaderSource_bind(lua_State *L) +{ + GLuint shader = luaL_checkinteger(L, 1); + GLsizei bufSize = luaL_checkinteger(L, 2); + GLsizei * length = get: GLsizei * + GLchar * source = luaL_checkstring(L, 4); + glGetShaderSource(shader, bufSize, length, source); + return 0; +} + + +int glGetString_bind(lua_State *L) +{ + GLenum name = luaL_checkinteger(L, 1); + const GLubyte * bind_result = glGetString(name); + /* push result */ + return /* count */; +} + + +int glGetStringi_bind(lua_State *L) +{ + GLenum name = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + const GLubyte * bind_result = glGetStringi(name, index); + /* push result */ + return /* count */; +} + + +int glGetSubroutineIndex_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum shadertype = luaL_checkinteger(L, 2); + const GLchar * name = luaL_checkstring(L, 3); + GLuint bind_result = glGetSubroutineIndex(program, shadertype, name); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glGetSubroutineUniformLocation_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum shadertype = luaL_checkinteger(L, 2); + const GLchar * name = luaL_checkstring(L, 3); + GLint bind_result = glGetSubroutineUniformLocation(program, shadertype, name); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glGetSynciv_bind(lua_State *L) +{ + GLsync sync = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLsizei bufSize = luaL_checkinteger(L, 3); + GLsizei * length = get: GLsizei * + GLint * values = get: GLint * + glGetSynciv(sync, pname, bufSize, length, values); + return 0; +} + + +int glGetTexImage_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLenum format = luaL_checkinteger(L, 3); + GLenum type = luaL_checkinteger(L, 4); + void * pixels = get: void * + glGetTexImage(target, level, format, type, pixels); + return 0; +} + + +int glGetTexLevelParameterfv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLenum pname = luaL_checkinteger(L, 3); + GLfloat * params = get: GLfloat * + glGetTexLevelParameterfv(target, level, pname, params); + return 0; +} + + +int glGetTexLevelParameteriv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLenum pname = luaL_checkinteger(L, 3); + GLint * params = get: GLint * + glGetTexLevelParameteriv(target, level, pname, params); + return 0; +} + + +int glGetTexParameterfv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLfloat * params = get: GLfloat * + glGetTexParameterfv(target, pname, params); + return 0; +} + + +int glGetTexParameteriv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetTexParameteriv(target, pname, params); + return 0; +} + + +int glGetTexParameterIiv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetTexParameterIiv(target, pname, params); + return 0; +} + + +int glGetTexParameterIuiv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLuint * params = get: GLuint * + glGetTexParameterIuiv(target, pname, params); + return 0; +} + + +int glGetTransformFeedbackVarying_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLsizei bufSize = luaL_checkinteger(L, 3); + GLsizei * length = get: GLsizei * + GLsizei * size = get: GLsizei * + GLenum * type = get: GLenum * + char * name = luaL_checkstring(L, 7); + glGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name); + return 0; +} + + +int glGetUniformBlockIndex_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + const GLchar * uniformBlockName = luaL_checkstring(L, 2); + GLuint bind_result = glGetUniformBlockIndex(program, uniformBlockName); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glGetUniformIndices_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLsizei uniformCount = luaL_checkinteger(L, 2); + const GLchar ** uniformNames = get: const GLchar ** + GLuint * uniformIndices = get: GLuint * + glGetUniformIndices(program, uniformCount, uniformNames, uniformIndices); + return 0; +} + + +int glGetUniformLocation_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + const GLchar * name = luaL_checkstring(L, 2); + GLint bind_result = glGetUniformLocation(program, name); + lua_pushinteger(L, bind_result); + return 1; +} + + +int glGetUniformSubroutineuiv_bind(lua_State *L) +{ + GLenum shadertype = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLuint * values = get: GLuint * + glGetUniformSubroutineuiv(shadertype, location, values); + return 0; +} + + +int glGetVertexAttribdv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLdouble * params = get: GLdouble * + glGetVertexAttribdv(index, pname, params); + return 0; +} + + +int glGetVertexAttribfv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLfloat * params = get: GLfloat * + glGetVertexAttribfv(index, pname, params); + return 0; +} + + +int glGetVertexAttribiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetVertexAttribiv(index, pname, params); + return 0; +} + + +int glGetVertexAttribIiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint * params = get: GLint * + glGetVertexAttribIiv(index, pname, params); + return 0; +} + + +int glGetVertexAttribIuiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLuint * params = get: GLuint * + glGetVertexAttribIuiv(index, pname, params); + return 0; +} + + +int glGetVertexAttribLdv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLdouble * params = get: GLdouble * + glGetVertexAttribLdv(index, pname, params); + return 0; +} + + +int glGetVertexAttribPointerv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + void ** pointer = get: void ** + glGetVertexAttribPointerv(index, pname, pointer); + return 0; +} + + diff --git a/src/opengl/bind/h b/src/opengl/bind/h new file mode 100644 index 0000000..00590da --- /dev/null +++ b/src/opengl/bind/h @@ -0,0 +1 @@ +void glHint( GLenum target, GLenum mode); diff --git a/src/opengl/bind/h.bind b/src/opengl/bind/h.bind new file mode 100644 index 0000000..7837656 --- /dev/null +++ b/src/opengl/bind/h.bind @@ -0,0 +1,9 @@ +int glHint_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum mode = luaL_checkinteger(L, 2); + glHint(target, mode); + return 0; +} + + diff --git a/src/opengl/bind/i b/src/opengl/bind/i new file mode 100644 index 0000000..6cb0306 --- /dev/null +++ b/src/opengl/bind/i @@ -0,0 +1,14 @@ +GLboolean glIsBuffer( GLuint buffer); +GLboolean glIsEnabled( GLenum cap); +GLboolean glIsEnabledi( GLenum cap, GLuint index); +GLboolean glIsFramebuffer( GLuint framebuffer); +GLboolean glIsProgram( GLuint program); +GLboolean glIsProgramPipeline( GLuint pipeline); +GLboolean glIsQuery( GLuint id); +GLboolean glIsRenderbuffer( GLuint renderbuffer); +GLboolean glIsSampler( GLuint id); +GLboolean glIsShader( GLuint shader); +GLboolean glIsSync( GLsync sync); +GLboolean glIsTexture( GLuint texture); +GLboolean glIsTransformFeedback( GLuint id); +GLboolean glIsVertexArray( GLuint array); diff --git a/src/opengl/bind/i.bind b/src/opengl/bind/i.bind new file mode 100644 index 0000000..044b72b --- /dev/null +++ b/src/opengl/bind/i.bind @@ -0,0 +1,127 @@ +int glIsBuffer_bind(lua_State *L) +{ + GLuint buffer = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsBuffer(buffer); + /* push result */ + return /* count */; +} + + +int glIsEnabled_bind(lua_State *L) +{ + GLenum cap = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsEnabled(cap); + /* push result */ + return /* count */; +} + + +int glIsEnabledi_bind(lua_State *L) +{ + GLenum cap = luaL_checkinteger(L, 1); + GLuint index = luaL_checkinteger(L, 2); + GLboolean bind_result = glIsEnabledi(cap, index); + /* push result */ + return /* count */; +} + + +int glIsFramebuffer_bind(lua_State *L) +{ + GLuint framebuffer = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsFramebuffer(framebuffer); + /* push result */ + return /* count */; +} + + +int glIsProgram_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsProgram(program); + /* push result */ + return /* count */; +} + + +int glIsProgramPipeline_bind(lua_State *L) +{ + GLuint pipeline = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsProgramPipeline(pipeline); + /* push result */ + return /* count */; +} + + +int glIsQuery_bind(lua_State *L) +{ + GLuint id = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsQuery(id); + /* push result */ + return /* count */; +} + + +int glIsRenderbuffer_bind(lua_State *L) +{ + GLuint renderbuffer = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsRenderbuffer(renderbuffer); + /* push result */ + return /* count */; +} + + +int glIsSampler_bind(lua_State *L) +{ + GLuint id = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsSampler(id); + /* push result */ + return /* count */; +} + + +int glIsShader_bind(lua_State *L) +{ + GLuint shader = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsShader(shader); + /* push result */ + return /* count */; +} + + +int glIsSync_bind(lua_State *L) +{ + GLsync sync = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsSync(sync); + /* push result */ + return /* count */; +} + + +int glIsTexture_bind(lua_State *L) +{ + GLuint texture = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsTexture(texture); + /* push result */ + return /* count */; +} + + +int glIsTransformFeedback_bind(lua_State *L) +{ + GLuint id = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsTransformFeedback(id); + /* push result */ + return /* count */; +} + + +int glIsVertexArray_bind(lua_State *L) +{ + GLuint array = luaL_checkinteger(L, 1); + GLboolean bind_result = glIsVertexArray(array); + /* push result */ + return /* count */; +} + + diff --git a/src/opengl/bind/l b/src/opengl/bind/l new file mode 100644 index 0000000..eb6ec73 --- /dev/null +++ b/src/opengl/bind/l @@ -0,0 +1,4 @@ +void glLineWidth( GLfloat width); +void glLinkProgram( GLuint program); +void glLogicOp( GLenum opcode); + diff --git a/src/opengl/bind/l.bind b/src/opengl/bind/l.bind new file mode 100644 index 0000000..1c8601b --- /dev/null +++ b/src/opengl/bind/l.bind @@ -0,0 +1,24 @@ +int glLineWidth_bind(lua_State *L) +{ + GLfloat width = luaL_checknumber(L, 1); + glLineWidth(width); + return 0; +} + + +int glLinkProgram_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + glLinkProgram(program); + return 0; +} + + +int glLogicOp_bind(lua_State *L) +{ + GLenum opcode = luaL_checkinteger(L, 1); + glLogicOp(opcode); + return 0; +} + + diff --git a/src/opengl/bind/m b/src/opengl/bind/m new file mode 100644 index 0000000..a346dd1 --- /dev/null +++ b/src/opengl/bind/m @@ -0,0 +1,7 @@ +void * glMapBuffer( GLenum target, GLenum access); +void * glMapBufferRange( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +void glMinSampleShading( GLfloat value); +void glMultiDrawArrays( GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount); +void glMultiDrawElements( GLenum mode, const GLsizei * count, GLenum type, const void * const * indices, GLsizei drawcount); +void glMultiDrawElementsBaseVertex( GLenum mode, const GLsizei *count, GLenum type, const void * const *indices, GLsizei drawcount, const GLint *basevertex); + diff --git a/src/opengl/bind/m.bind b/src/opengl/bind/m.bind new file mode 100644 index 0000000..e76b3df --- /dev/null +++ b/src/opengl/bind/m.bind @@ -0,0 +1,66 @@ +int glMapBuffer_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum access = luaL_checkinteger(L, 2); + void * bind_result = glMapBuffer(target, access); + /* push result */ + return /* count */; +} + + +int glMapBufferRange_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLintptr offset = luaL_checkinteger(L, 2); + GLsizeiptr length = luaL_checkinteger(L, 3); + GLbitfield access = luaL_checkinteger(L, 4); + void * bind_result = glMapBufferRange(target, offset, length, access); + /* push result */ + return /* count */; +} + + +int glMinSampleShading_bind(lua_State *L) +{ + GLfloat value = luaL_checknumber(L, 1); + glMinSampleShading(value); + return 0; +} + + +int glMultiDrawArrays_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + const GLint * first = get: const GLint * + const GLsizei * count = get: const GLsizei * + GLsizei drawcount = luaL_checkinteger(L, 4); + glMultiDrawArrays(mode, first, count, drawcount); + return 0; +} + + +int glMultiDrawElements_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + const GLsizei * count = get: const GLsizei * + GLenum type = luaL_checkinteger(L, 3); + const void * const * indices = get: const void * const * + GLsizei drawcount = luaL_checkinteger(L, 5); + glMultiDrawElements(mode, count, type, indices, drawcount); + return 0; +} + + +int glMultiDrawElementsBaseVertex_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + const GLsizei * count = get: const GLsizei * + GLenum type = luaL_checkinteger(L, 3); + const void * const * indices = get: const void * const * + GLsizei drawcount = luaL_checkinteger(L, 5); + const GLint * basevertex = get: const GLint * + glMultiDrawElementsBaseVertex(mode, count, type, indices, drawcount, basevertex); + return 0; +} + + diff --git a/src/opengl/bind/p b/src/opengl/bind/p new file mode 100644 index 0000000..98ee850 --- /dev/null +++ b/src/opengl/bind/p @@ -0,0 +1,50 @@ +void glPatchParameteri( GLenum pname, GLint value); +void glPatchParameterfv( GLenum pname, const GLfloat *values); +void glPauseTransformFeedback( void); +void glPixelStoref( GLenum pname, GLfloat param); +void glPixelStorei( GLenum pname, GLint param); +void glPointParameterf( GLenum pname, GLfloat param); +void glPointParameteri( GLenum pname, GLint param); +void glPointParameterfv( GLenum pname, const GLfloat * params); +void glPointParameteriv( GLenum pname, const GLint * params); +void glPointSize( GLfloat size); +void glPolygonMode( GLenum face, GLenum mode); +void glPolygonOffset( GLfloat factor, GLfloat units); +void glPrimitiveRestartIndex( GLuint index); +void glProgramBinary( GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +void glProgramParameteri( GLuint program, GLenum pname, GLint value); +void glProgramUniform1f( GLuint program, GLint location, GLfloat v0); +void glProgramUniform2f( GLuint program, GLint location, GLfloat v0, GLfloat v1); +void glProgramUniform3f( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +void glProgramUniform4f( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +void glProgramUniform1i( GLuint program, GLint location, GLint v0); +void glProgramUniform2i( GLuint program, GLint location, GLint v0, GLint v1); +void glProgramUniform3i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +void glProgramUniform4i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +void glProgramUniform1ui( GLuint program, GLint location, GLuint v0); +void glProgramUniform2ui( GLuint program, GLint location, GLuint v0, GLuint v1); +void glProgramUniform3ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +void glProgramUniform4ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void glProgramUniform1fv( GLuint program, GLint location, GLsizei count, const GLfloat *value); +void glProgramUniform2fv( GLuint program, GLint location, GLsizei count, const GLfloat *value); +void glProgramUniform3fv( GLuint program, GLint location, GLsizei count, const GLfloat *value); +void glProgramUniform4fv( GLuint program, GLint location, GLsizei count, const GLfloat *value); +void glProgramUniform1iv( GLuint program, GLint location, GLsizei count, const GLint *value); +void glProgramUniform2iv( GLuint program, GLint location, GLsizei count, const GLint *value); +void glProgramUniform3iv( GLuint program, GLint location, GLsizei count, const GLint *value); +void glProgramUniform4iv( GLuint program, GLint location, GLsizei count, const GLint *value); +void glProgramUniform1uiv( GLuint program, GLint location, GLsizei count, const GLuint *value); +void glProgramUniform2uiv( GLuint program, GLint location, GLsizei count, const GLuint *value); +void glProgramUniform3uiv( GLuint program, GLint location, GLsizei count, const GLuint *value); +void glProgramUniform4uiv( GLuint program, GLint location, GLsizei count, const GLuint *value); +void glProgramUniformMatrix2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix2x3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix3x2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix2x4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix4x2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix3x4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix4x3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProvokingVertex( GLenum provokeMode); + diff --git a/src/opengl/bind/p.bind b/src/opengl/bind/p.bind new file mode 100644 index 0000000..55411f4 --- /dev/null +++ b/src/opengl/bind/p.bind @@ -0,0 +1,521 @@ +int glPatchParameteri_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLint value = luaL_checkinteger(L, 2); + glPatchParameteri(pname, value); + return 0; +} + + +int glPatchParameterfv_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + const GLfloat * values = get: const GLfloat * + glPatchParameterfv(pname, values); + return 0; +} + + +int glPauseTransformFeedback_bind(lua_State *L) +{ + void = get: + glPauseTransformFeedback(void); + return 0; +} + + +int glPixelStoref_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLfloat param = luaL_checknumber(L, 2); + glPixelStoref(pname, param); + return 0; +} + + +int glPixelStorei_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLint param = luaL_checkinteger(L, 2); + glPixelStorei(pname, param); + return 0; +} + + +int glPointParameterf_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLfloat param = luaL_checknumber(L, 2); + glPointParameterf(pname, param); + return 0; +} + + +int glPointParameteri_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + GLint param = luaL_checkinteger(L, 2); + glPointParameteri(pname, param); + return 0; +} + + +int glPointParameterfv_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + const GLfloat * params = get: const GLfloat * + glPointParameterfv(pname, params); + return 0; +} + + +int glPointParameteriv_bind(lua_State *L) +{ + GLenum pname = luaL_checkinteger(L, 1); + const GLint * params = get: const GLint * + glPointParameteriv(pname, params); + return 0; +} + + +int glPointSize_bind(lua_State *L) +{ + GLfloat size = luaL_checknumber(L, 1); + glPointSize(size); + return 0; +} + + +int glPolygonMode_bind(lua_State *L) +{ + GLenum face = luaL_checkinteger(L, 1); + GLenum mode = luaL_checkinteger(L, 2); + glPolygonMode(face, mode); + return 0; +} + + +int glPolygonOffset_bind(lua_State *L) +{ + GLfloat factor = luaL_checknumber(L, 1); + GLfloat units = luaL_checknumber(L, 2); + glPolygonOffset(factor, units); + return 0; +} + + +int glPrimitiveRestartIndex_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + glPrimitiveRestartIndex(index); + return 0; +} + + +int glProgramBinary_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum binaryFormat = luaL_checkinteger(L, 2); + const void * binary = get: const void * + GLsizei length = luaL_checkinteger(L, 4); + glProgramBinary(program, binaryFormat, binary, length); + return 0; +} + + +int glProgramParameteri_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint value = luaL_checkinteger(L, 3); + glProgramParameteri(program, pname, value); + return 0; +} + + +int glProgramUniform1f_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLfloat v0 = luaL_checknumber(L, 3); + glProgramUniform1f(program, location, v0); + return 0; +} + + +int glProgramUniform2f_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLfloat v0 = luaL_checknumber(L, 3); + GLfloat v1 = luaL_checknumber(L, 4); + glProgramUniform2f(program, location, v0, v1); + return 0; +} + + +int glProgramUniform3f_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLfloat v0 = luaL_checknumber(L, 3); + GLfloat v1 = luaL_checknumber(L, 4); + GLfloat v2 = luaL_checknumber(L, 5); + glProgramUniform3f(program, location, v0, v1, v2); + return 0; +} + + +int glProgramUniform4f_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLfloat v0 = luaL_checknumber(L, 3); + GLfloat v1 = luaL_checknumber(L, 4); + GLfloat v2 = luaL_checknumber(L, 5); + GLfloat v3 = luaL_checknumber(L, 6); + glProgramUniform4f(program, location, v0, v1, v2, v3); + return 0; +} + + +int glProgramUniform1i_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLint v0 = luaL_checkinteger(L, 3); + glProgramUniform1i(program, location, v0); + return 0; +} + + +int glProgramUniform2i_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLint v0 = luaL_checkinteger(L, 3); + GLint v1 = luaL_checkinteger(L, 4); + glProgramUniform2i(program, location, v0, v1); + return 0; +} + + +int glProgramUniform3i_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLint v0 = luaL_checkinteger(L, 3); + GLint v1 = luaL_checkinteger(L, 4); + GLint v2 = luaL_checkinteger(L, 5); + glProgramUniform3i(program, location, v0, v1, v2); + return 0; +} + + +int glProgramUniform4i_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLint v0 = luaL_checkinteger(L, 3); + GLint v1 = luaL_checkinteger(L, 4); + GLint v2 = luaL_checkinteger(L, 5); + GLint v3 = luaL_checkinteger(L, 6); + glProgramUniform4i(program, location, v0, v1, v2, v3); + return 0; +} + + +int glProgramUniform1ui_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLuint v0 = luaL_checkinteger(L, 3); + glProgramUniform1ui(program, location, v0); + return 0; +} + + +int glProgramUniform2ui_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLuint v0 = luaL_checkinteger(L, 3); + GLuint v1 = luaL_checkinteger(L, 4); + glProgramUniform2ui(program, location, v0, v1); + return 0; +} + + +int glProgramUniform3ui_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLuint v0 = luaL_checkinteger(L, 3); + GLuint v1 = luaL_checkinteger(L, 4); + GLuint v2 = luaL_checkinteger(L, 5); + glProgramUniform3ui(program, location, v0, v1, v2); + return 0; +} + + +int glProgramUniform4ui_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLuint v0 = luaL_checkinteger(L, 3); + GLuint v1 = luaL_checkinteger(L, 4); + GLuint v2 = luaL_checkinteger(L, 5); + GLuint v3 = luaL_checkinteger(L, 6); + glProgramUniform4ui(program, location, v0, v1, v2, v3); + return 0; +} + + +int glProgramUniform1fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLfloat * value = get: const GLfloat * + glProgramUniform1fv(program, location, count, value); + return 0; +} + + +int glProgramUniform2fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLfloat * value = get: const GLfloat * + glProgramUniform2fv(program, location, count, value); + return 0; +} + + +int glProgramUniform3fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLfloat * value = get: const GLfloat * + glProgramUniform3fv(program, location, count, value); + return 0; +} + + +int glProgramUniform4fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLfloat * value = get: const GLfloat * + glProgramUniform4fv(program, location, count, value); + return 0; +} + + +int glProgramUniform1iv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLint * value = get: const GLint * + glProgramUniform1iv(program, location, count, value); + return 0; +} + + +int glProgramUniform2iv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLint * value = get: const GLint * + glProgramUniform2iv(program, location, count, value); + return 0; +} + + +int glProgramUniform3iv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLint * value = get: const GLint * + glProgramUniform3iv(program, location, count, value); + return 0; +} + + +int glProgramUniform4iv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLint * value = get: const GLint * + glProgramUniform4iv(program, location, count, value); + return 0; +} + + +int glProgramUniform1uiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLuint * value = get: const GLuint * + glProgramUniform1uiv(program, location, count, value); + return 0; +} + + +int glProgramUniform2uiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLuint * value = get: const GLuint * + glProgramUniform2uiv(program, location, count, value); + return 0; +} + + +int glProgramUniform3uiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLuint * value = get: const GLuint * + glProgramUniform3uiv(program, location, count, value); + return 0; +} + + +int glProgramUniform4uiv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + const GLuint * value = get: const GLuint * + glProgramUniform4uiv(program, location, count, value); + return 0; +} + + +int glProgramUniformMatrix2fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix2fv(program, location, count, transpose, value); + return 0; +} + + +int glProgramUniformMatrix3fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix3fv(program, location, count, transpose, value); + return 0; +} + + +int glProgramUniformMatrix4fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix4fv(program, location, count, transpose, value); + return 0; +} + + +int glProgramUniformMatrix2x3fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix2x3fv(program, location, count, transpose, value); + return 0; +} + + +int glProgramUniformMatrix3x2fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix3x2fv(program, location, count, transpose, value); + return 0; +} + + +int glProgramUniformMatrix2x4fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix2x4fv(program, location, count, transpose, value); + return 0; +} + + +int glProgramUniformMatrix4x2fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix4x2fv(program, location, count, transpose, value); + return 0; +} + + +int glProgramUniformMatrix3x4fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix3x4fv(program, location, count, transpose, value); + return 0; +} + + +int glProgramUniformMatrix4x3fv_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLint location = luaL_checkinteger(L, 2); + GLsizei count = luaL_checkinteger(L, 3); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glProgramUniformMatrix4x3fv(program, location, count, transpose, value); + return 0; +} + + +int glProvokingVertex_bind(lua_State *L) +{ + GLenum provokeMode = luaL_checkinteger(L, 1); + glProvokingVertex(provokeMode); + return 0; +} + + diff --git a/src/opengl/bind/q b/src/opengl/bind/q new file mode 100644 index 0000000..840f97b --- /dev/null +++ b/src/opengl/bind/q @@ -0,0 +1 @@ +void glQueryCounter( GLuint id, GLenum target); diff --git a/src/opengl/bind/q.bind b/src/opengl/bind/q.bind new file mode 100644 index 0000000..7209f1f --- /dev/null +++ b/src/opengl/bind/q.bind @@ -0,0 +1,9 @@ +int glQueryCounter_bind(lua_State *L) +{ + GLuint id = luaL_checkinteger(L, 1); + GLenum target = luaL_checkinteger(L, 2); + glQueryCounter(id, target); + return 0; +} + + diff --git a/src/opengl/bind/r b/src/opengl/bind/r new file mode 100644 index 0000000..f4e581c --- /dev/null +++ b/src/opengl/bind/r @@ -0,0 +1,6 @@ +void glReadBuffer( GLenum mode); +void glReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * data); +void glReleaseShaderCompiler( void); +void glRenderbufferStorage( GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +void glRenderbufferStorageMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void glResumeTransformFeedback( void); diff --git a/src/opengl/bind/r.bind b/src/opengl/bind/r.bind new file mode 100644 index 0000000..d070737 --- /dev/null +++ b/src/opengl/bind/r.bind @@ -0,0 +1,61 @@ +int glReadBuffer_bind(lua_State *L) +{ + GLenum mode = luaL_checkinteger(L, 1); + glReadBuffer(mode); + return 0; +} + + +int glReadPixels_bind(lua_State *L) +{ + GLint x = luaL_checkinteger(L, 1); + GLint y = luaL_checkinteger(L, 2); + GLsizei width = luaL_checkinteger(L, 3); + GLsizei height = luaL_checkinteger(L, 4); + GLenum format = luaL_checkinteger(L, 5); + GLenum type = luaL_checkinteger(L, 6); + void * data = get: void * + glReadPixels(x, y, width, height, format, type, data); + return 0; +} + + +int glReleaseShaderCompiler_bind(lua_State *L) +{ + void = get: + glReleaseShaderCompiler(void); + return 0; +} + + +int glRenderbufferStorage_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum internalformat = luaL_checkinteger(L, 2); + GLsizei width = luaL_checkinteger(L, 3); + GLsizei height = luaL_checkinteger(L, 4); + glRenderbufferStorage(target, internalformat, width, height); + return 0; +} + + +int glRenderbufferStorageMultisample_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLsizei samples = luaL_checkinteger(L, 2); + GLenum internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLsizei height = luaL_checkinteger(L, 5); + glRenderbufferStorageMultisample(target, samples, internalformat, width, height); + return 0; +} + + +int glResumeTransformFeedback_bind(lua_State *L) +{ + void = get: + glResumeTransformFeedback(void); + return 0; +} + + diff --git a/src/opengl/bind/s b/src/opengl/bind/s new file mode 100644 index 0000000..cdddf6b --- /dev/null +++ b/src/opengl/bind/s @@ -0,0 +1,21 @@ +void glSampleCoverage( GLfloat value, GLboolean invert); +void glSampleMaski( GLuint maskNumber, GLbitfield mask); +void glSamplerParameterf( GLuint sampler, GLenum pname, GLfloat param); +void glSamplerParameteri( GLuint sampler, GLenum pname, GLint param); +void glSamplerParameterfv( GLuint sampler, GLenum pname, const GLfloat * params); +void glSamplerParameteriv( GLuint sampler, GLenum pname, const GLint * params); +void glSamplerParameterIiv( GLuint sampler, GLenum pname, const GLint *params); +void glSamplerParameterIuiv( GLuint sampler, GLenum pname, const GLuint *params); +void glScissor( GLint x, GLint y, GLsizei width, GLsizei height); +void glScissorArrayv( GLuint first, GLsizei count, const GLint *v); +void glScissorIndexed( GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +void glScissorIndexedv( GLuint index, const GLint *v); +void glShaderBinary( GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +void glShaderSource( GLuint shader, GLsizei count, const GLchar **string, const GLint *length); +void glStencilFunc( GLenum func, GLint ref, GLuint mask); +void glStencilFuncSeparate( GLenum face, GLenum func, GLint ref, GLuint mask); +void glStencilMask( GLuint mask); +void glStencilMaskSeparate( GLenum face, GLuint mask); +void glStencilOp( GLenum sfail, GLenum dpfail, GLenum dppass); +void glStencilOpSeparate( GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); + diff --git a/src/opengl/bind/s.bind b/src/opengl/bind/s.bind new file mode 100644 index 0000000..256ebe2 --- /dev/null +++ b/src/opengl/bind/s.bind @@ -0,0 +1,202 @@ +int glSampleCoverage_bind(lua_State *L) +{ + GLfloat value = luaL_checknumber(L, 1); + GLboolean invert = get: GLboolean + glSampleCoverage(value, invert); + return 0; +} + + +int glSampleMaski_bind(lua_State *L) +{ + GLuint maskNumber = luaL_checkinteger(L, 1); + GLbitfield mask = luaL_checkinteger(L, 2); + glSampleMaski(maskNumber, mask); + return 0; +} + + +int glSamplerParameterf_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLfloat param = luaL_checknumber(L, 3); + glSamplerParameterf(sampler, pname, param); + return 0; +} + + +int glSamplerParameteri_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint param = luaL_checkinteger(L, 3); + glSamplerParameteri(sampler, pname, param); + return 0; +} + + +int glSamplerParameterfv_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + const GLfloat * params = get: const GLfloat * + glSamplerParameterfv(sampler, pname, params); + return 0; +} + + +int glSamplerParameteriv_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + const GLint * params = get: const GLint * + glSamplerParameteriv(sampler, pname, params); + return 0; +} + + +int glSamplerParameterIiv_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + const GLint * params = get: const GLint * + glSamplerParameterIiv(sampler, pname, params); + return 0; +} + + +int glSamplerParameterIuiv_bind(lua_State *L) +{ + GLuint sampler = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + const GLuint * params = get: const GLuint * + glSamplerParameterIuiv(sampler, pname, params); + return 0; +} + + +int glScissor_bind(lua_State *L) +{ + GLint x = luaL_checkinteger(L, 1); + GLint y = luaL_checkinteger(L, 2); + GLsizei width = luaL_checkinteger(L, 3); + GLsizei height = luaL_checkinteger(L, 4); + glScissor(x, y, width, height); + return 0; +} + + +int glScissorArrayv_bind(lua_State *L) +{ + GLuint first = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLint * v = get: const GLint * + glScissorArrayv(first, count, v); + return 0; +} + + +int glScissorIndexed_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLint left = luaL_checkinteger(L, 2); + GLint bottom = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLsizei height = luaL_checkinteger(L, 5); + glScissorIndexed(index, left, bottom, width, height); + return 0; +} + + +int glScissorIndexedv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLint * v = get: const GLint * + glScissorIndexedv(index, v); + return 0; +} + + +int glShaderBinary_bind(lua_State *L) +{ + GLsizei count = luaL_checkinteger(L, 1); + const GLuint * shaders = get: const GLuint * + GLenum binaryFormat = luaL_checkinteger(L, 3); + const void * binary = get: const void * + GLsizei length = luaL_checkinteger(L, 5); + glShaderBinary(count, shaders, binaryFormat, binary, length); + return 0; +} + + +int glShaderSource_bind(lua_State *L) +{ + GLuint shader = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLchar ** string = get: const GLchar ** + const GLint * length = get: const GLint * + glShaderSource(shader, count, string, length); + return 0; +} + + +int glStencilFunc_bind(lua_State *L) +{ + GLenum func = luaL_checkinteger(L, 1); + GLint ref = luaL_checkinteger(L, 2); + GLuint mask = luaL_checkinteger(L, 3); + glStencilFunc(func, ref, mask); + return 0; +} + + +int glStencilFuncSeparate_bind(lua_State *L) +{ + GLenum face = luaL_checkinteger(L, 1); + GLenum func = luaL_checkinteger(L, 2); + GLint ref = luaL_checkinteger(L, 3); + GLuint mask = luaL_checkinteger(L, 4); + glStencilFuncSeparate(face, func, ref, mask); + return 0; +} + + +int glStencilMask_bind(lua_State *L) +{ + GLuint mask = luaL_checkinteger(L, 1); + glStencilMask(mask); + return 0; +} + + +int glStencilMaskSeparate_bind(lua_State *L) +{ + GLenum face = luaL_checkinteger(L, 1); + GLuint mask = luaL_checkinteger(L, 2); + glStencilMaskSeparate(face, mask); + return 0; +} + + +int glStencilOp_bind(lua_State *L) +{ + GLenum sfail = luaL_checkinteger(L, 1); + GLenum dpfail = luaL_checkinteger(L, 2); + GLenum dppass = luaL_checkinteger(L, 3); + glStencilOp(sfail, dpfail, dppass); + return 0; +} + + +int glStencilOpSeparate_bind(lua_State *L) +{ + GLenum face = luaL_checkinteger(L, 1); + GLenum sfail = luaL_checkinteger(L, 2); + GLenum dpfail = luaL_checkinteger(L, 3); + GLenum dppass = luaL_checkinteger(L, 4); + glStencilOpSeparate(face, sfail, dpfail, dppass); + return 0; +} + + diff --git a/src/opengl/bind/sigs b/src/opengl/bind/sigs new file mode 100644 index 0000000..60479df --- /dev/null +++ b/src/opengl/bind/sigs @@ -0,0 +1,445 @@ +void glActiveShaderProgram( GLuint pipeline, GLuint program); +void glActiveTexture( GLenum texture); +void glAttachShader( GLuint program, GLuint shader); +void glBeginConditionalRender( GLuint id, GLenum mode); +void glBeginQuery( GLenum target, GLuint id); +void glBeginQuery( GLenum target, GLuint id); +void glBeginTransformFeedback( GLenum primitiveMode); +void glBindAttribLocation( GLuint program, GLuint index, const GLchar *name); +void glBindBuffer( GLenum target, GLuint buffer); +void glBindBufferBase( GLenum target, GLuint index, GLuint buffer); +void glBindBufferRange( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +void glBindFragDataLocation( GLuint program, GLuint colorNumber, const char * name); +void glBindFragDataLocationIndexed( GLuint program, GLuint colorNumber, GLuint index, const char *name); +void glBindFramebuffer( GLenum target, GLuint framebuffer); +void glBindImageTexture( GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +void glBindProgramPipeline( GLuint pipeline); +void glBindRenderbuffer( GLenum target, GLuint renderbuffer); +void glBindSampler( GLuint unit, GLuint sampler); +void glBindTexture( GLenum target, GLuint texture); +void glBindTextureUnit( GLuint unit, GLuint texture); +void glBindTransformFeedback( GLenum target, GLuint id); +void glBindVertexArray( GLuint array); +void glBindVertexBuffer( GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +void glBlendColor( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +void glBlendEquation( GLenum mode); + +void glBlendEquationi( GLuint buf, GLenum mode); +void glBlendEquationSeparate( GLenum modeRGB, GLenum modeAlpha); +void glBlendEquationSeparatei( GLuint buf, GLenum modeRGB, GLenum modeAlpha); +void glBlendFunc( GLenum sfactor, GLenum dfactor); +void glBlendFunci( GLuint buf, GLenum sfactor, GLenum dfactor); +void glBlendFuncSeparate( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +void glBlendFuncSeparatei( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +void glBlitFramebuffer( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +void glBlitNamedFramebuffer( GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +void glBufferData( GLenum target, GLsizeiptr size, const void * data, GLenum usage); +void glBufferStorage( GLenum target, GLsizeiptr size, const void * data, GLbitfield flags); +void glBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, const void * data); +GLenum glCheckFramebufferStatus( GLenum target); +GLenum glCheckNamedFramebufferStatus( GLuint framebuffer, GLenum target); +void glClampColor( GLenum target, GLenum clamp); +void glClear( GLbitfield mask); +void glClearBufferiv( GLenum buffer, GLint drawbuffer, const GLint * value); +void glClearBufferuiv( GLenum buffer, GLint drawbuffer, const GLuint * value); +void glClearBufferfv( GLenum buffer, GLint drawbuffer, const GLfloat * value); +void glClearBufferfi( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +void glClearStencil( GLint s); +GLenum glClientWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout); +void glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +void glColorMaski( GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +void glCompileShader( GLuint shader); +void glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data); +void glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data); +void glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data); +void glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data); +void glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data); +void glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data); +void glCopyBufferSubData( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +void glCopyBufferSubData( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +void glCopyTexImage1D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +void glCopyTexImage2D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +void glCopyTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +void glCopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +void glCopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLuint glCreateProgram( void); +GLuint glCreateShader( GLenum shaderType); +GLuint glCreateShaderProgramv( GLenum type, GLsizei count, const char **strings); +void glCullFace( GLenum mode); + +void glDeleteBuffers( GLsizei n, const GLuint * buffers); +void glDeleteFramebuffers( GLsizei n, GLuint *framebuffers); +void glDeleteProgram( GLuint program); +void glDeleteProgramPipelines( GLsizei n, const GLuint *pipelines); +void glDeleteQueries( GLsizei n, const GLuint * ids); +void glDeleteRenderbuffers( GLsizei n, GLuint *renderbuffers); +void glDeleteSamplers( GLsizei n, const GLuint * samplers); +void glDeleteShader( GLuint shader); +void glDeleteSync( GLsync sync); +void glDeleteTextures( GLsizei n, const GLuint * textures); +void glDeleteTransformFeedbacks( GLsizei n, const GLuint *ids); +void glDeleteVertexArrays( GLsizei n, const GLuint *arrays); +void glDepthFunc( GLenum func); +void glDepthMask( GLboolean flag); +void glDepthRange( GLdouble nearVal, GLdouble farVal); +void glDepthRangef( GLfloat nearVal, GLfloat farVal); +void glDepthRangeArrayv( GLuint first, GLsizei count, const GLdouble *v); +void glDepthRangeIndexed( GLuint index, GLdouble nearVal, GLdouble farVal); +void glDetachShader( GLuint program, GLuint shader); +void glDisable( GLenum cap); +void glDisablei( GLenum cap, GLuint index); +void glDisableVertexAttribArray( GLuint index); +void glDrawArrays( GLenum mode, GLint first, GLsizei count); +void glDrawArraysIndirect( GLenum mode, const void *indirect); +void glDrawArraysInstanced( GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +void glDrawBuffer( GLenum buf); +void glDrawBuffers( GLsizei n, const GLenum *bufs); +void glDrawElements( GLenum mode, GLsizei count, GLenum type, const void * indices); +void glDrawElementsBaseVertex( GLenum mode, GLsizei count, GLenum type, void *indices, GLint basevertex); +void glDrawElementsIndirect( GLenum mode, GLenum type, const void *indirect); +void glDrawElementsInstanced( GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount); +void glDrawRangeElements( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices); +void glDrawRangeElementsBaseVertex( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void *indices, GLint basevertex); +void glDrawTransformFeedback( GLenum mode, GLuint id); +void glDrawTransformFeedbackStream( GLenum mode, GLuint id, GLuint stream); + +void glEnable( GLenum cap); +void glEnablei( GLenum cap, GLuint index); +void glEnableVertexAttribArray( GLuint index); +void glEndConditionalRender( void); +void glEndQuery( GLenum target); +void glEndQueryIndexed( GLenum target, GLuint index); +void glEndTransformFeedback(); +GLsync glFenceSync( GLenum condition, GLbitfield flags); +void glFinish( void); +void glFlush( void); +void glFlushMappedBufferRange( GLenum target, GLintptr offset, GLsizeiptr length); +void glFramebufferRenderbuffer( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +void glFramebufferTexture( GLenum target, GLenum attachment, GLuint texture, GLint level); +void glFramebufferTexture1D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +void glFramebufferTexture2D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +void glFramebufferTexture3D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); +void glFramebufferTextureLayer( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +void glFrontFace( GLenum mode); +void glGenBuffers( GLsizei n, GLuint * buffers); +void glGenerateMipmap( GLenum target); +void glGenFramebuffers( GLsizei n, GLuint *ids); +void glGenProgramPipelines( GLsizei n, GLuint *pipelines); +void glGenQueries( GLsizei n, GLuint * ids); +void glGenRenderbuffers( GLsizei n, GLuint *renderbuffers); +void glGenSamplers( GLsizei n, GLuint *samplers); +void glGenTextures( GLsizei n, GLuint * textures); +void glGenTransformFeedbacks( GLsizei n, GLuint *ids); +void glGenVertexArrays( GLsizei n, GLuint *arrays); +void glGetBooleanv( GLenum pname, GLboolean * data); +void glGetDoublev( GLenum pname, GLdouble * data); +void glGetFloatv( GLenum pname, GLfloat * data); +void glGetIntegerv( GLenum pname, GLint * data); +void glGetInteger64v( GLenum pname, GLint64 * data); +void glGetBooleani_v( GLenum target, GLuint index, GLboolean * data); +void glGetIntegeri_v( GLenum target, GLuint index, GLint * data); +void glGetFloati_v( GLenum target, GLuint index, GLfloat * data); +void glGetDoublei_v( GLenum target, GLuint index, GLdouble * data); +void glGetInteger64i_v( GLenum target, GLuint index, GLint64 * data); +void glGetActiveAttrib( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +void glGetActiveSubroutineName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +void glGetActiveSubroutineUniformiv( GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +void glGetActiveSubroutineUniformName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +void glGetActiveUniform( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +void glGetActiveUniformBlockiv( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +void glGetActiveUniformBlockName( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +void glGetActiveUniformName( GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +void glGetActiveUniformsiv( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +void glGetAttachedShaders( GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLint glGetAttribLocation( GLuint program, const GLchar *name); +void glGetBufferParameteriv( GLenum target, GLenum value, GLint * data); +void glGetBufferParameteri64v( GLenum target, GLenum value, GLint64 * data); +void glGetBufferPointerv( GLenum target, GLenum pname, void ** params); +void glGetBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, void * data); +void glGetCompressedTexImage( GLenum target, GLint level, void * pixels); +GLenum glGetError( void); +GLint glGetFragDataIndex( GLuint program, const char * name); +GLint glGetFragDataLocation( GLuint program, const char * name); +void glGetFramebufferAttachmentParameteriv( GLenum target, GLenum attachment, GLenum pname, GLint *params); +void glGetMultisamplefv( GLenum pname, GLuint index, GLfloat *val); +void glGetUniformfv( GLuint program, GLint location, GLfloat *params); +void glGetUniformiv( GLuint program, GLint location, GLint *params); +void glGetUniformuiv( GLuint program, GLint location, GLuint *params); +void glGetUniformdv( GLuint program, GLint location, GLdouble *params); +void glGetProgramiv( GLuint program, GLenum pname, GLint *params); +void glGetProgramBinary( GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +void glGetProgramInfoLog( GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog); +void glGetProgramPipelineiv( GLuint pipeline, GLenum pname, GLint *params); +void glGetProgramPipelineInfoLog( GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +void glGetProgramPipelineiv( GLuint pipeline, GLenum pname, GLint *params); +void glGetProgramStageiv( GLuint program, GLenum shadertype, GLenum pname, GLint *values); +void glGetQueryIndexediv( GLenum target, GLuint index, GLenum pname, GLint * params); +void glGetQueryiv( GLenum target, GLenum pname, GLint * params); +void glGetRenderbufferParameteriv( GLenum target, GLenum pname, GLint *params); +void glGetSamplerParameterfv( GLuint sampler, GLenum pname, GLfloat * params); +void glGetSamplerParameteriv( GLuint sampler, GLenum pname, GLint * params); +void glGetSamplerParameterIiv( GLuint sampler, GLenum pname, GLint * params); +void glGetSamplerParameterIuiv( GLuint sampler, GLenum pname, GLuint * params); +void glGetShaderiv( GLuint shader, GLenum pname, GLint *params); +void glGetShaderInfoLog( GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog); +void glGetShaderiv( GLuint shader, GLenum pname, GLint *params); +void glGetShaderPrecisionFormat( GLenum shaderType, GLenum precisionType, GLint *range, GLint *precision); +void glGetShaderSource( GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +const GLubyte * glGetString(GLenum name); +const GLubyte * glGetStringi(GLenum name, GLuint index); +GLuint glGetSubroutineIndex( GLuint program, GLenum shadertype, const GLchar *name); +GLint glGetSubroutineUniformLocation( GLuint program, GLenum shadertype, const GLchar *name); +void glGetSynciv( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +void glGetTexImage( GLenum target, GLint level, GLenum format, GLenum type, void * pixels); +void glGetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat * params); +void glGetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint * params); +void glGetTexParameterfv( GLenum target, GLenum pname, GLfloat * params); +void glGetTexParameteriv( GLenum target, GLenum pname, GLint * params); +void glGetTexParameterIiv( GLenum target, GLenum pname, GLint * params); +void glGetTexParameterIuiv( GLenum target, GLenum pname, GLuint * params); +void glGetTransformFeedbackVarying( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, char *name); +GLuint glGetUniformBlockIndex( GLuint program, const GLchar *uniformBlockName); +void glGetUniformIndices( GLuint program, GLsizei uniformCount, const GLchar **uniformNames, GLuint *uniformIndices); +GLint glGetUniformLocation( GLuint program, const GLchar *name); +void glGetUniformSubroutineuiv( GLenum shadertype, GLint location, GLuint *values); +void glGetVertexAttribdv( GLuint index, GLenum pname, GLdouble *params); +void glGetVertexAttribfv( GLuint index, GLenum pname, GLfloat *params); +void glGetVertexAttribiv( GLuint index, GLenum pname, GLint *params); +void glGetVertexAttribIiv( GLuint index, GLenum pname, GLint *params); +void glGetVertexAttribIuiv( GLuint index, GLenum pname, GLuint *params); +void glGetVertexAttribLdv( GLuint index, GLenum pname, GLdouble *params); +void glGetVertexAttribPointerv( GLuint index, GLenum pname, void **pointer); +void glHint( GLenum target, GLenum mode); +GLboolean glIsBuffer( GLuint buffer); +GLboolean glIsEnabled( GLenum cap); +GLboolean glIsEnabledi( GLenum cap, GLuint index); +GLboolean glIsFramebuffer( GLuint framebuffer); +GLboolean glIsProgram( GLuint program); +GLboolean glIsProgramPipeline( GLuint pipeline); +GLboolean glIsQuery( GLuint id); +GLboolean glIsRenderbuffer( GLuint renderbuffer); +GLboolean glIsSampler( GLuint id); +GLboolean glIsShader( GLuint shader); +GLboolean glIsSync( GLsync sync); +GLboolean glIsTexture( GLuint texture); +GLboolean glIsTransformFeedback( GLuint id); +GLboolean glIsVertexArray( GLuint array); +void glLineWidth( GLfloat width); +void glLinkProgram( GLuint program); +void glLogicOp( GLenum opcode); + +void * glMapBuffer( GLenum target, GLenum access); +void * glMapBufferRange( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +void glMinSampleShading( GLfloat value); +void glMultiDrawArrays( GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount); +void glMultiDrawElements( GLenum mode, const GLsizei * count, GLenum type, const void * const * indices, GLsizei drawcount); +void glMultiDrawElementsBaseVertex( GLenum mode, const GLsizei *count, GLenum type, const void * const *indices, GLsizei drawcount, const GLint *basevertex); + +void glPatchParameteri( GLenum pname, GLint value); +void glPatchParameterfv( GLenum pname, const GLfloat *values); +void glPauseTransformFeedback( void); +void glPixelStoref( GLenum pname, GLfloat param); +void glPixelStorei( GLenum pname, GLint param); +void glPointParameterf( GLenum pname, GLfloat param); +void glPointParameteri( GLenum pname, GLint param); +void glPointParameterfv( GLenum pname, const GLfloat * params); +void glPointParameteriv( GLenum pname, const GLint * params); +void glPointSize( GLfloat size); +void glPolygonMode( GLenum face, GLenum mode); +void glPolygonOffset( GLfloat factor, GLfloat units); +void glPrimitiveRestartIndex( GLuint index); +void glProgramBinary( GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +void glProgramParameteri( GLuint program, GLenum pname, GLint value); +void glProgramUniform1f( GLuint program, GLint location, GLfloat v0); +void glProgramUniform2f( GLuint program, GLint location, GLfloat v0, GLfloat v1); +void glProgramUniform3f( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +void glProgramUniform4f( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +void glProgramUniform1i( GLuint program, GLint location, GLint v0); +void glProgramUniform2i( GLuint program, GLint location, GLint v0, GLint v1); +void glProgramUniform3i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +void glProgramUniform4i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +void glProgramUniform1ui( GLuint program, GLint location, GLuint v0); +void glProgramUniform2ui( GLuint program, GLint location, GLuint v0, GLuint v1); +void glProgramUniform3ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +void glProgramUniform4ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void glProgramUniform1fv( GLuint program, GLint location, GLsizei count, const GLfloat *value); +void glProgramUniform2fv( GLuint program, GLint location, GLsizei count, const GLfloat *value); +void glProgramUniform3fv( GLuint program, GLint location, GLsizei count, const GLfloat *value); +void glProgramUniform4fv( GLuint program, GLint location, GLsizei count, const GLfloat *value); +void glProgramUniform1iv( GLuint program, GLint location, GLsizei count, const GLint *value); +void glProgramUniform2iv( GLuint program, GLint location, GLsizei count, const GLint *value); +void glProgramUniform3iv( GLuint program, GLint location, GLsizei count, const GLint *value); +void glProgramUniform4iv( GLuint program, GLint location, GLsizei count, const GLint *value); +void glProgramUniform1uiv( GLuint program, GLint location, GLsizei count, const GLuint *value); +void glProgramUniform2uiv( GLuint program, GLint location, GLsizei count, const GLuint *value); +void glProgramUniform3uiv( GLuint program, GLint location, GLsizei count, const GLuint *value); +void glProgramUniform4uiv( GLuint program, GLint location, GLsizei count, const GLuint *value); +void glProgramUniformMatrix2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix2x3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix3x2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix2x4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix4x2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix3x4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProgramUniformMatrix4x3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glProvokingVertex( GLenum provokeMode); + +void glQueryCounter( GLuint id, GLenum target); +void glReadBuffer( GLenum mode); +void glReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * data); +void glReleaseShaderCompiler( void); +void glRenderbufferStorage( GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +void glRenderbufferStorageMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void glResumeTransformFeedback( void); +void glSampleCoverage( GLfloat value, GLboolean invert); +void glSampleMaski( GLuint maskNumber, GLbitfield mask); +void glSamplerParameterf( GLuint sampler, GLenum pname, GLfloat param); +void glSamplerParameteri( GLuint sampler, GLenum pname, GLint param); +void glSamplerParameterfv( GLuint sampler, GLenum pname, const GLfloat * params); +void glSamplerParameteriv( GLuint sampler, GLenum pname, const GLint * params); +void glSamplerParameterIiv( GLuint sampler, GLenum pname, const GLint *params); +void glSamplerParameterIuiv( GLuint sampler, GLenum pname, const GLuint *params); +void glScissor( GLint x, GLint y, GLsizei width, GLsizei height); +void glScissorArrayv( GLuint first, GLsizei count, const GLint *v); +void glScissorIndexed( GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +void glScissorIndexedv( GLuint index, const GLint *v); +void glShaderBinary( GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +void glShaderSource( GLuint shader, GLsizei count, const GLchar **string, const GLint *length); +void glStencilFunc( GLenum func, GLint ref, GLuint mask); +void glStencilFuncSeparate( GLenum face, GLenum func, GLint ref, GLuint mask); +void glStencilMask( GLuint mask); +void glStencilMaskSeparate( GLenum face, GLuint mask); +void glStencilOp( GLenum sfail, GLenum dpfail, GLenum dppass); +void glStencilOpSeparate( GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); + +void glTexBuffer( GLenum target, GLenum internalformat, GLuint buffer); +void glTexImage1D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * data); +void glTexImage2D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * data); +void glTexImage2DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +void glTexImage3D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * data); +void glTexImage3DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +void glTexParameterf( GLenum target, GLenum pname, GLfloat param); +void glTexParameteri( GLenum target, GLenum pname, GLint param); +void glTexParameterfv( GLenum target, GLenum pname, const GLfloat * params); +void glTexParameteriv( GLenum target, GLenum pname, const GLint * params); +void glTexParameterIiv( GLenum target, GLenum pname, const GLint * params); +void glTexParameterIuiv( GLenum target, GLenum pname, const GLuint * params); +void glTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels); +void glTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels); +void glTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels); +void glTransformFeedbackVaryings( GLuint program, GLsizei count, const char **varyings, GLenum bufferMode); +void glUniform1f( GLint location, GLfloat v0); +void glUniform2f( GLint location, GLfloat v0, GLfloat v1); +void glUniform3f( GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +void glUniform4f( GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +void glUniform1i( GLint location, GLint v0); +void glUniform2i( GLint location, GLint v0, GLint v1); +void glUniform3i( GLint location, GLint v0, GLint v1, GLint v2); +void glUniform4i( GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +void glUniform1ui( GLint location, GLuint v0); +void glUniform2ui( GLint location, GLuint v0, GLuint v1); +void glUniform3ui( GLint location, GLuint v0, GLuint v1, GLuint v2); +void glUniform4ui( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void glUniform1fv( GLint location, GLsizei count, const GLfloat *value); +void glUniform2fv( GLint location, GLsizei count, const GLfloat *value); +void glUniform3fv( GLint location, GLsizei count, const GLfloat *value); +void glUniform4fv( GLint location, GLsizei count, const GLfloat *value); +void glUniform1iv( GLint location, GLsizei count, const GLint *value); +void glUniform2iv( GLint location, GLsizei count, const GLint *value); +void glUniform3iv( GLint location, GLsizei count, const GLint *value); +void glUniform4iv( GLint location, GLsizei count, const GLint *value); +void glUniform1uiv( GLint location, GLsizei count, const GLuint *value); +void glUniform2uiv( GLint location, GLsizei count, const GLuint *value); +void glUniform3uiv( GLint location, GLsizei count, const GLuint *value); +void glUniform4uiv( GLint location, GLsizei count, const GLuint *value); +void glUniformMatrix2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix2x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix3x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix2x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix4x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix3x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix4x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformSubroutinesuiv( GLenum shadertype, GLsizei count, const GLuint *indices); +GLboolean glUnmapBuffer( GLenum target); +void glUseProgram( GLuint program); +void glUseProgramStages( GLuint pipeline, GLbitfield stages, GLuint program); +void glValidateProgram( GLuint program); +void glValidateProgramPipeline( GLuint pipeline); +void glVertexAttrib1f( GLuint index, GLfloat v0); +void glVertexAttrib1s( GLuint index, GLshort v0); +void glVertexAttrib1d( GLuint index, GLdouble v0); +void glVertexAttribI1i( GLuint index, GLint v0); +void glVertexAttribI1ui( GLuint index, GLuint v0); +void glVertexAttrib2f( GLuint index, GLfloat v0, GLfloat v1); +void glVertexAttrib2s( GLuint index, GLshort v0, GLshort v1); +void glVertexAttrib2d( GLuint index, GLdouble v0, GLdouble v1); +void glVertexAttribI2i( GLuint index, GLint v0, GLint v1); +void glVertexAttribI2ui( GLuint index, GLuint v0, GLuint v1); +void glVertexAttrib3f( GLuint index, GLfloat v0, GLfloat v1, GLfloat v2); +void glVertexAttrib3s( GLuint index, GLshort v0, GLshort v1, GLshort v2); +void glVertexAttrib3d( GLuint index, GLdouble v0, GLdouble v1, GLdouble v2); +void glVertexAttribI3i( GLuint index, GLint v0, GLint v1, GLint v2); +void glVertexAttribI3ui( GLuint index, GLuint v0, GLuint v1, GLuint v2); +void glVertexAttrib4f( GLuint index, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +void glVertexAttrib4s( GLuint index, GLshort v0, GLshort v1, GLshort v2, GLshort v3); +void glVertexAttrib4d( GLuint index, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +void glVertexAttrib4Nub( GLuint index, GLubyte v0, GLubyte v1, GLubyte v2, GLubyte v3); +void glVertexAttribI4i( GLuint index, GLint v0, GLint v1, GLint v2, GLint v3); +void glVertexAttribI4ui( GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void glVertexAttribL1d( GLuint index, GLdouble v0); +void glVertexAttribL2d( GLuint index, GLdouble v0, GLdouble v1); +void glVertexAttribL3d( GLuint index, GLdouble v0, GLdouble v1, GLdouble v2); +void glVertexAttribL4d( GLuint index, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +void glVertexAttrib1fv( GLuint index, const GLfloat *v); +void glVertexAttrib1sv( GLuint index, const GLshort *v); +void glVertexAttrib1dv( GLuint index, const GLdouble *v); +void glVertexAttribI1iv( GLuint index, const GLint *v); +void glVertexAttribI1uiv( GLuint index, const GLuint *v); +void glVertexAttrib2fv( GLuint index, const GLfloat *v); +void glVertexAttrib2sv( GLuint index, const GLshort *v); +void glVertexAttrib2dv( GLuint index, const GLdouble *v); +void glVertexAttribI2iv( GLuint index, const GLint *v); +void glVertexAttribI2uiv( GLuint index, const GLuint *v); +void glVertexAttrib3fv( GLuint index, const GLfloat *v); +void glVertexAttrib3sv( GLuint index, const GLshort *v); +void glVertexAttrib3dv( GLuint index, const GLdouble *v); +void glVertexAttribI3iv( GLuint index, const GLint *v); +void glVertexAttribI3uiv( GLuint index, const GLuint *v); +void glVertexAttrib4fv( GLuint index, const GLfloat *v); +void glVertexAttrib4sv( GLuint index, const GLshort *v); +void glVertexAttrib4dv( GLuint index, const GLdouble *v); +void glVertexAttrib4iv( GLuint index, const GLint *v); +void glVertexAttrib4bv( GLuint index, const GLbyte *v); +void glVertexAttrib4ubv( GLuint index, const GLubyte *v); +void glVertexAttrib4usv( GLuint index, const GLushort *v); +void glVertexAttrib4uiv( GLuint index, const GLuint *v); +void glVertexAttrib4Nbv( GLuint index, const GLbyte *v); +void glVertexAttrib4Nsv( GLuint index, const GLshort *v); +void glVertexAttrib4Niv( GLuint index, const GLint *v); +void glVertexAttrib4Nubv( GLuint index, const GLubyte *v); +void glVertexAttrib4Nusv( GLuint index, const GLushort *v); +void glVertexAttrib4Nuiv( GLuint index, const GLuint *v); +void glVertexAttribI4bv( GLuint index, const GLbyte *v); +void glVertexAttribI4ubv( GLuint index, const GLubyte *v); +void glVertexAttribI4sv( GLuint index, const GLshort *v); +void glVertexAttribI4usv( GLuint index, const GLushort *v); +void glVertexAttribI4iv( GLuint index, const GLint *v); +void glVertexAttribI4uiv( GLuint index, const GLuint *v); +void glVertexAttribL1dv( GLuint index, const GLdouble *v); +void glVertexAttribL2dv( GLuint index, const GLdouble *v); +void glVertexAttribL3dv( GLuint index, const GLdouble *v); +void glVertexAttribL4dv( GLuint index, const GLdouble *v); +void glVertexAttribP1ui( GLuint index, GLenum type, GLboolean normalized, GLuint value); +void glVertexAttribP2ui( GLuint index, GLenum type, GLboolean normalized, GLuint value); +void glVertexAttribP3ui( GLuint index, GLenum type, GLboolean normalized, GLuint value); +void glVertexAttribP4ui( GLuint index, GLenum type, GLboolean normalized, GLuint value); +void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer); +void glVertexAttribIPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer); +void glViewport( GLint x, GLint y, GLsizei width, GLsizei height); +void glViewportArrayv( GLuint first, GLsizei count, const GLfloat *v); +void glViewportIndexedf( GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +void glViewportIndexedfv( GLuint index, const GLfloat *v); +void glWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout); diff --git a/src/opengl/bind/t b/src/opengl/bind/t new file mode 100644 index 0000000..d503c1e --- /dev/null +++ b/src/opengl/bind/t @@ -0,0 +1,16 @@ +void glTexBuffer( GLenum target, GLenum internalformat, GLuint buffer); +void glTexImage1D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * data); +void glTexImage2D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * data); +void glTexImage2DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +void glTexImage3D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * data); +void glTexImage3DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +void glTexParameterf( GLenum target, GLenum pname, GLfloat param); +void glTexParameteri( GLenum target, GLenum pname, GLint param); +void glTexParameterfv( GLenum target, GLenum pname, const GLfloat * params); +void glTexParameteriv( GLenum target, GLenum pname, const GLint * params); +void glTexParameterIiv( GLenum target, GLenum pname, const GLint * params); +void glTexParameterIuiv( GLenum target, GLenum pname, const GLuint * params); +void glTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels); +void glTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels); +void glTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels); +void glTransformFeedbackVaryings( GLuint program, GLsizei count, const char **varyings, GLenum bufferMode); diff --git a/src/opengl/bind/t.bind b/src/opengl/bind/t.bind new file mode 100644 index 0000000..1a447e7 --- /dev/null +++ b/src/opengl/bind/t.bind @@ -0,0 +1,204 @@ +int glTexBuffer_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum internalformat = luaL_checkinteger(L, 2); + GLuint buffer = luaL_checkinteger(L, 3); + glTexBuffer(target, internalformat, buffer); + return 0; +} + + +int glTexImage1D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLint border = luaL_checkinteger(L, 5); + GLenum format = luaL_checkinteger(L, 6); + GLenum type = luaL_checkinteger(L, 7); + const void * data = get: const void * + glTexImage1D(target, level, internalformat, width, border, format, type, data); + return 0; +} + + +int glTexImage2D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLsizei height = luaL_checkinteger(L, 5); + GLint border = luaL_checkinteger(L, 6); + GLenum format = luaL_checkinteger(L, 7); + GLenum type = luaL_checkinteger(L, 8); + const void * data = get: const void * + glTexImage2D(target, level, internalformat, width, height, border, format, type, data); + return 0; +} + + +int glTexImage2DMultisample_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLsizei samples = luaL_checkinteger(L, 2); + GLenum internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLsizei height = luaL_checkinteger(L, 5); + GLboolean fixedsamplelocations = get: GLboolean + glTexImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations); + return 0; +} + + +int glTexImage3D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLsizei height = luaL_checkinteger(L, 5); + GLsizei depth = luaL_checkinteger(L, 6); + GLint border = luaL_checkinteger(L, 7); + GLenum format = luaL_checkinteger(L, 8); + GLenum type = luaL_checkinteger(L, 9); + const void * data = get: const void * + glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, data); + return 0; +} + + +int glTexImage3DMultisample_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLsizei samples = luaL_checkinteger(L, 2); + GLenum internalformat = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLsizei height = luaL_checkinteger(L, 5); + GLsizei depth = luaL_checkinteger(L, 6); + GLboolean fixedsamplelocations = get: GLboolean + glTexImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations); + return 0; +} + + +int glTexParameterf_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLfloat param = luaL_checknumber(L, 3); + glTexParameterf(target, pname, param); + return 0; +} + + +int glTexParameteri_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + GLint param = luaL_checkinteger(L, 3); + glTexParameteri(target, pname, param); + return 0; +} + + +int glTexParameterfv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + const GLfloat * params = get: const GLfloat * + glTexParameterfv(target, pname, params); + return 0; +} + + +int glTexParameteriv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + const GLint * params = get: const GLint * + glTexParameteriv(target, pname, params); + return 0; +} + + +int glTexParameterIiv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + const GLint * params = get: const GLint * + glTexParameterIiv(target, pname, params); + return 0; +} + + +int glTexParameterIuiv_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLenum pname = luaL_checkinteger(L, 2); + const GLuint * params = get: const GLuint * + glTexParameterIuiv(target, pname, params); + return 0; +} + + +int glTexSubImage1D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLsizei width = luaL_checkinteger(L, 4); + GLenum format = luaL_checkinteger(L, 5); + GLenum type = luaL_checkinteger(L, 6); + const void * pixels = get: const void * + glTexSubImage1D(target, level, xoffset, width, format, type, pixels); + return 0; +} + + +int glTexSubImage2D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLint yoffset = luaL_checkinteger(L, 4); + GLsizei width = luaL_checkinteger(L, 5); + GLsizei height = luaL_checkinteger(L, 6); + GLenum format = luaL_checkinteger(L, 7); + GLenum type = luaL_checkinteger(L, 8); + const void * pixels = get: const void * + glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); + return 0; +} + + +int glTexSubImage3D_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLint level = luaL_checkinteger(L, 2); + GLint xoffset = luaL_checkinteger(L, 3); + GLint yoffset = luaL_checkinteger(L, 4); + GLint zoffset = luaL_checkinteger(L, 5); + GLsizei width = luaL_checkinteger(L, 6); + GLsizei height = luaL_checkinteger(L, 7); + GLsizei depth = luaL_checkinteger(L, 8); + GLenum format = luaL_checkinteger(L, 9); + GLenum type = luaL_checkinteger(L, 10); + const void * pixels = get: const void * + glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); + return 0; +} + + +int glTransformFeedbackVaryings_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const char ** varyings = get: const char ** + GLenum bufferMode = luaL_checkinteger(L, 4); + glTransformFeedbackVaryings(program, count, varyings, bufferMode); + return 0; +} + + diff --git a/src/opengl/bind/u b/src/opengl/bind/u new file mode 100644 index 0000000..7cd3e42 --- /dev/null +++ b/src/opengl/bind/u @@ -0,0 +1,37 @@ +void glUniform1f( GLint location, GLfloat v0); +void glUniform2f( GLint location, GLfloat v0, GLfloat v1); +void glUniform3f( GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +void glUniform4f( GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +void glUniform1i( GLint location, GLint v0); +void glUniform2i( GLint location, GLint v0, GLint v1); +void glUniform3i( GLint location, GLint v0, GLint v1, GLint v2); +void glUniform4i( GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +void glUniform1ui( GLint location, GLuint v0); +void glUniform2ui( GLint location, GLuint v0, GLuint v1); +void glUniform3ui( GLint location, GLuint v0, GLuint v1, GLuint v2); +void glUniform4ui( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void glUniform1fv( GLint location, GLsizei count, const GLfloat *value); +void glUniform2fv( GLint location, GLsizei count, const GLfloat *value); +void glUniform3fv( GLint location, GLsizei count, const GLfloat *value); +void glUniform4fv( GLint location, GLsizei count, const GLfloat *value); +void glUniform1iv( GLint location, GLsizei count, const GLint *value); +void glUniform2iv( GLint location, GLsizei count, const GLint *value); +void glUniform3iv( GLint location, GLsizei count, const GLint *value); +void glUniform4iv( GLint location, GLsizei count, const GLint *value); +void glUniform1uiv( GLint location, GLsizei count, const GLuint *value); +void glUniform2uiv( GLint location, GLsizei count, const GLuint *value); +void glUniform3uiv( GLint location, GLsizei count, const GLuint *value); +void glUniform4uiv( GLint location, GLsizei count, const GLuint *value); +void glUniformMatrix2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix2x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix3x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix2x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix4x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix3x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformMatrix4x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void glUniformSubroutinesuiv( GLenum shadertype, GLsizei count, const GLuint *indices); +GLboolean glUnmapBuffer( GLenum target); +void glUseProgram( GLuint program); +void glUseProgramStages( GLuint pipeline, GLbitfield stages, GLuint program); diff --git a/src/opengl/bind/u.bind b/src/opengl/bind/u.bind new file mode 100644 index 0000000..07785a8 --- /dev/null +++ b/src/opengl/bind/u.bind @@ -0,0 +1,382 @@ +int glUniform1f_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLfloat v0 = luaL_checknumber(L, 2); + glUniform1f(location, v0); + return 0; +} + + +int glUniform2f_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLfloat v0 = luaL_checknumber(L, 2); + GLfloat v1 = luaL_checknumber(L, 3); + glUniform2f(location, v0, v1); + return 0; +} + + +int glUniform3f_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLfloat v0 = luaL_checknumber(L, 2); + GLfloat v1 = luaL_checknumber(L, 3); + GLfloat v2 = luaL_checknumber(L, 4); + glUniform3f(location, v0, v1, v2); + return 0; +} + + +int glUniform4f_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLfloat v0 = luaL_checknumber(L, 2); + GLfloat v1 = luaL_checknumber(L, 3); + GLfloat v2 = luaL_checknumber(L, 4); + GLfloat v3 = luaL_checknumber(L, 5); + glUniform4f(location, v0, v1, v2, v3); + return 0; +} + + +int glUniform1i_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLint v0 = luaL_checkinteger(L, 2); + glUniform1i(location, v0); + return 0; +} + + +int glUniform2i_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLint v0 = luaL_checkinteger(L, 2); + GLint v1 = luaL_checkinteger(L, 3); + glUniform2i(location, v0, v1); + return 0; +} + + +int glUniform3i_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLint v0 = luaL_checkinteger(L, 2); + GLint v1 = luaL_checkinteger(L, 3); + GLint v2 = luaL_checkinteger(L, 4); + glUniform3i(location, v0, v1, v2); + return 0; +} + + +int glUniform4i_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLint v0 = luaL_checkinteger(L, 2); + GLint v1 = luaL_checkinteger(L, 3); + GLint v2 = luaL_checkinteger(L, 4); + GLint v3 = luaL_checkinteger(L, 5); + glUniform4i(location, v0, v1, v2, v3); + return 0; +} + + +int glUniform1ui_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLuint v0 = luaL_checkinteger(L, 2); + glUniform1ui(location, v0); + return 0; +} + + +int glUniform2ui_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLuint v0 = luaL_checkinteger(L, 2); + GLuint v1 = luaL_checkinteger(L, 3); + glUniform2ui(location, v0, v1); + return 0; +} + + +int glUniform3ui_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLuint v0 = luaL_checkinteger(L, 2); + GLuint v1 = luaL_checkinteger(L, 3); + GLuint v2 = luaL_checkinteger(L, 4); + glUniform3ui(location, v0, v1, v2); + return 0; +} + + +int glUniform4ui_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLuint v0 = luaL_checkinteger(L, 2); + GLuint v1 = luaL_checkinteger(L, 3); + GLuint v2 = luaL_checkinteger(L, 4); + GLuint v3 = luaL_checkinteger(L, 5); + glUniform4ui(location, v0, v1, v2, v3); + return 0; +} + + +int glUniform1fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLfloat * value = get: const GLfloat * + glUniform1fv(location, count, value); + return 0; +} + + +int glUniform2fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLfloat * value = get: const GLfloat * + glUniform2fv(location, count, value); + return 0; +} + + +int glUniform3fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLfloat * value = get: const GLfloat * + glUniform3fv(location, count, value); + return 0; +} + + +int glUniform4fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLfloat * value = get: const GLfloat * + glUniform4fv(location, count, value); + return 0; +} + + +int glUniform1iv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLint * value = get: const GLint * + glUniform1iv(location, count, value); + return 0; +} + + +int glUniform2iv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLint * value = get: const GLint * + glUniform2iv(location, count, value); + return 0; +} + + +int glUniform3iv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLint * value = get: const GLint * + glUniform3iv(location, count, value); + return 0; +} + + +int glUniform4iv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLint * value = get: const GLint * + glUniform4iv(location, count, value); + return 0; +} + + +int glUniform1uiv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLuint * value = get: const GLuint * + glUniform1uiv(location, count, value); + return 0; +} + + +int glUniform2uiv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLuint * value = get: const GLuint * + glUniform2uiv(location, count, value); + return 0; +} + + +int glUniform3uiv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLuint * value = get: const GLuint * + glUniform3uiv(location, count, value); + return 0; +} + + +int glUniform4uiv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLuint * value = get: const GLuint * + glUniform4uiv(location, count, value); + return 0; +} + + +int glUniformMatrix2fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix2fv(location, count, transpose, value); + return 0; +} + + +int glUniformMatrix3fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix3fv(location, count, transpose, value); + return 0; +} + + +int glUniformMatrix4fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix4fv(location, count, transpose, value); + return 0; +} + + +int glUniformMatrix2x3fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix2x3fv(location, count, transpose, value); + return 0; +} + + +int glUniformMatrix3x2fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix3x2fv(location, count, transpose, value); + return 0; +} + + +int glUniformMatrix2x4fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix2x4fv(location, count, transpose, value); + return 0; +} + + +int glUniformMatrix4x2fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix4x2fv(location, count, transpose, value); + return 0; +} + + +int glUniformMatrix3x4fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix3x4fv(location, count, transpose, value); + return 0; +} + + +int glUniformMatrix4x3fv_bind(lua_State *L) +{ + GLint location = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + GLboolean transpose = get: GLboolean + const GLfloat * value = get: const GLfloat * + glUniformMatrix4x3fv(location, count, transpose, value); + return 0; +} + + +int glUniformSubroutinesuiv_bind(lua_State *L) +{ + GLenum shadertype = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLuint * indices = get: const GLuint * + glUniformSubroutinesuiv(shadertype, count, indices); + return 0; +} + + +int glUnmapBuffer_bind(lua_State *L) +{ + GLenum target = luaL_checkinteger(L, 1); + GLboolean bind_result = glUnmapBuffer(target); + /* push result */ + return /* count */; +} + + +int glUseProgram_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + glUseProgram(program); + return 0; +} + + +int glUseProgramStages_bind(lua_State *L) +{ + GLuint pipeline = luaL_checkinteger(L, 1); + GLbitfield stages = luaL_checkinteger(L, 2); + GLuint program = luaL_checkinteger(L, 3); + glUseProgramStages(pipeline, stages, program); + return 0; +} + + diff --git a/src/opengl/bind/v b/src/opengl/bind/v new file mode 100644 index 0000000..d6bb3aa --- /dev/null +++ b/src/opengl/bind/v @@ -0,0 +1,76 @@ +void glValidateProgram( GLuint program); +void glValidateProgramPipeline( GLuint pipeline); +void glVertexAttrib1f( GLuint index, GLfloat v0); +void glVertexAttrib1s( GLuint index, GLshort v0); +void glVertexAttrib1d( GLuint index, GLdouble v0); +void glVertexAttribI1i( GLuint index, GLint v0); +void glVertexAttribI1ui( GLuint index, GLuint v0); +void glVertexAttrib2f( GLuint index, GLfloat v0, GLfloat v1); +void glVertexAttrib2s( GLuint index, GLshort v0, GLshort v1); +void glVertexAttrib2d( GLuint index, GLdouble v0, GLdouble v1); +void glVertexAttribI2i( GLuint index, GLint v0, GLint v1); +void glVertexAttribI2ui( GLuint index, GLuint v0, GLuint v1); +void glVertexAttrib3f( GLuint index, GLfloat v0, GLfloat v1, GLfloat v2); +void glVertexAttrib3s( GLuint index, GLshort v0, GLshort v1, GLshort v2); +void glVertexAttrib3d( GLuint index, GLdouble v0, GLdouble v1, GLdouble v2); +void glVertexAttribI3i( GLuint index, GLint v0, GLint v1, GLint v2); +void glVertexAttribI3ui( GLuint index, GLuint v0, GLuint v1, GLuint v2); +void glVertexAttrib4f( GLuint index, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +void glVertexAttrib4s( GLuint index, GLshort v0, GLshort v1, GLshort v2, GLshort v3); +void glVertexAttrib4d( GLuint index, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +void glVertexAttrib4Nub( GLuint index, GLubyte v0, GLubyte v1, GLubyte v2, GLubyte v3); +void glVertexAttribI4i( GLuint index, GLint v0, GLint v1, GLint v2, GLint v3); +void glVertexAttribI4ui( GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void glVertexAttribL1d( GLuint index, GLdouble v0); +void glVertexAttribL2d( GLuint index, GLdouble v0, GLdouble v1); +void glVertexAttribL3d( GLuint index, GLdouble v0, GLdouble v1, GLdouble v2); +void glVertexAttribL4d( GLuint index, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +void glVertexAttrib1fv( GLuint index, const GLfloat *v); +void glVertexAttrib1sv( GLuint index, const GLshort *v); +void glVertexAttrib1dv( GLuint index, const GLdouble *v); +void glVertexAttribI1iv( GLuint index, const GLint *v); +void glVertexAttribI1uiv( GLuint index, const GLuint *v); +void glVertexAttrib2fv( GLuint index, const GLfloat *v); +void glVertexAttrib2sv( GLuint index, const GLshort *v); +void glVertexAttrib2dv( GLuint index, const GLdouble *v); +void glVertexAttribI2iv( GLuint index, const GLint *v); +void glVertexAttribI2uiv( GLuint index, const GLuint *v); +void glVertexAttrib3fv( GLuint index, const GLfloat *v); +void glVertexAttrib3sv( GLuint index, const GLshort *v); +void glVertexAttrib3dv( GLuint index, const GLdouble *v); +void glVertexAttribI3iv( GLuint index, const GLint *v); +void glVertexAttribI3uiv( GLuint index, const GLuint *v); +void glVertexAttrib4fv( GLuint index, const GLfloat *v); +void glVertexAttrib4sv( GLuint index, const GLshort *v); +void glVertexAttrib4dv( GLuint index, const GLdouble *v); +void glVertexAttrib4iv( GLuint index, const GLint *v); +void glVertexAttrib4bv( GLuint index, const GLbyte *v); +void glVertexAttrib4ubv( GLuint index, const GLubyte *v); +void glVertexAttrib4usv( GLuint index, const GLushort *v); +void glVertexAttrib4uiv( GLuint index, const GLuint *v); +void glVertexAttrib4Nbv( GLuint index, const GLbyte *v); +void glVertexAttrib4Nsv( GLuint index, const GLshort *v); +void glVertexAttrib4Niv( GLuint index, const GLint *v); +void glVertexAttrib4Nubv( GLuint index, const GLubyte *v); +void glVertexAttrib4Nusv( GLuint index, const GLushort *v); +void glVertexAttrib4Nuiv( GLuint index, const GLuint *v); +void glVertexAttribI4bv( GLuint index, const GLbyte *v); +void glVertexAttribI4ubv( GLuint index, const GLubyte *v); +void glVertexAttribI4sv( GLuint index, const GLshort *v); +void glVertexAttribI4usv( GLuint index, const GLushort *v); +void glVertexAttribI4iv( GLuint index, const GLint *v); +void glVertexAttribI4uiv( GLuint index, const GLuint *v); +void glVertexAttribL1dv( GLuint index, const GLdouble *v); +void glVertexAttribL2dv( GLuint index, const GLdouble *v); +void glVertexAttribL3dv( GLuint index, const GLdouble *v); +void glVertexAttribL4dv( GLuint index, const GLdouble *v); +void glVertexAttribP1ui( GLuint index, GLenum type, GLboolean normalized, GLuint value); +void glVertexAttribP2ui( GLuint index, GLenum type, GLboolean normalized, GLuint value); +void glVertexAttribP3ui( GLuint index, GLenum type, GLboolean normalized, GLuint value); +void glVertexAttribP4ui( GLuint index, GLenum type, GLboolean normalized, GLuint value); +void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer); +void glVertexAttribIPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer); +void glViewport( GLint x, GLint y, GLsizei width, GLsizei height); +void glViewportArrayv( GLuint first, GLsizei count, const GLfloat *v); +void glViewportIndexedf( GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +void glViewportIndexedfv( GLuint index, const GLfloat *v); diff --git a/src/opengl/bind/v.bind b/src/opengl/bind/v.bind new file mode 100644 index 0000000..ec35e3f --- /dev/null +++ b/src/opengl/bind/v.bind @@ -0,0 +1,742 @@ +int glValidateProgram_bind(lua_State *L) +{ + GLuint program = luaL_checkinteger(L, 1); + glValidateProgram(program); + return 0; +} + + +int glValidateProgramPipeline_bind(lua_State *L) +{ + GLuint pipeline = luaL_checkinteger(L, 1); + glValidateProgramPipeline(pipeline); + return 0; +} + + +int glVertexAttrib1f_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLfloat v0 = luaL_checknumber(L, 2); + glVertexAttrib1f(index, v0); + return 0; +} + + +int glVertexAttrib1s_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLshort v0 = luaL_checkinteger(L, 2); + glVertexAttrib1s(index, v0); + return 0; +} + + +int glVertexAttrib1d_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble v0 = luaL_checknumber(L, 2); + glVertexAttrib1d(index, v0); + return 0; +} + + +int glVertexAttribI1i_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLint v0 = luaL_checkinteger(L, 2); + glVertexAttribI1i(index, v0); + return 0; +} + + +int glVertexAttribI1ui_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLuint v0 = luaL_checkinteger(L, 2); + glVertexAttribI1ui(index, v0); + return 0; +} + + +int glVertexAttrib2f_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLfloat v0 = luaL_checknumber(L, 2); + GLfloat v1 = luaL_checknumber(L, 3); + glVertexAttrib2f(index, v0, v1); + return 0; +} + + +int glVertexAttrib2s_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLshort v0 = luaL_checkinteger(L, 2); + GLshort v1 = luaL_checkinteger(L, 3); + glVertexAttrib2s(index, v0, v1); + return 0; +} + + +int glVertexAttrib2d_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble v0 = luaL_checknumber(L, 2); + GLdouble v1 = luaL_checknumber(L, 3); + glVertexAttrib2d(index, v0, v1); + return 0; +} + + +int glVertexAttribI2i_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLint v0 = luaL_checkinteger(L, 2); + GLint v1 = luaL_checkinteger(L, 3); + glVertexAttribI2i(index, v0, v1); + return 0; +} + + +int glVertexAttribI2ui_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLuint v0 = luaL_checkinteger(L, 2); + GLuint v1 = luaL_checkinteger(L, 3); + glVertexAttribI2ui(index, v0, v1); + return 0; +} + + +int glVertexAttrib3f_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLfloat v0 = luaL_checknumber(L, 2); + GLfloat v1 = luaL_checknumber(L, 3); + GLfloat v2 = luaL_checknumber(L, 4); + glVertexAttrib3f(index, v0, v1, v2); + return 0; +} + + +int glVertexAttrib3s_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLshort v0 = luaL_checkinteger(L, 2); + GLshort v1 = luaL_checkinteger(L, 3); + GLshort v2 = luaL_checkinteger(L, 4); + glVertexAttrib3s(index, v0, v1, v2); + return 0; +} + + +int glVertexAttrib3d_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble v0 = luaL_checknumber(L, 2); + GLdouble v1 = luaL_checknumber(L, 3); + GLdouble v2 = luaL_checknumber(L, 4); + glVertexAttrib3d(index, v0, v1, v2); + return 0; +} + + +int glVertexAttribI3i_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLint v0 = luaL_checkinteger(L, 2); + GLint v1 = luaL_checkinteger(L, 3); + GLint v2 = luaL_checkinteger(L, 4); + glVertexAttribI3i(index, v0, v1, v2); + return 0; +} + + +int glVertexAttribI3ui_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLuint v0 = luaL_checkinteger(L, 2); + GLuint v1 = luaL_checkinteger(L, 3); + GLuint v2 = luaL_checkinteger(L, 4); + glVertexAttribI3ui(index, v0, v1, v2); + return 0; +} + + +int glVertexAttrib4f_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLfloat v0 = luaL_checknumber(L, 2); + GLfloat v1 = luaL_checknumber(L, 3); + GLfloat v2 = luaL_checknumber(L, 4); + GLfloat v3 = luaL_checknumber(L, 5); + glVertexAttrib4f(index, v0, v1, v2, v3); + return 0; +} + + +int glVertexAttrib4s_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLshort v0 = luaL_checkinteger(L, 2); + GLshort v1 = luaL_checkinteger(L, 3); + GLshort v2 = luaL_checkinteger(L, 4); + GLshort v3 = luaL_checkinteger(L, 5); + glVertexAttrib4s(index, v0, v1, v2, v3); + return 0; +} + + +int glVertexAttrib4d_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble v0 = luaL_checknumber(L, 2); + GLdouble v1 = luaL_checknumber(L, 3); + GLdouble v2 = luaL_checknumber(L, 4); + GLdouble v3 = luaL_checknumber(L, 5); + glVertexAttrib4d(index, v0, v1, v2, v3); + return 0; +} + + +int glVertexAttrib4Nub_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLubyte v0 = luaL_checkinteger(L, 2); + GLubyte v1 = luaL_checkinteger(L, 3); + GLubyte v2 = luaL_checkinteger(L, 4); + GLubyte v3 = luaL_checkinteger(L, 5); + glVertexAttrib4Nub(index, v0, v1, v2, v3); + return 0; +} + + +int glVertexAttribI4i_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLint v0 = luaL_checkinteger(L, 2); + GLint v1 = luaL_checkinteger(L, 3); + GLint v2 = luaL_checkinteger(L, 4); + GLint v3 = luaL_checkinteger(L, 5); + glVertexAttribI4i(index, v0, v1, v2, v3); + return 0; +} + + +int glVertexAttribI4ui_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLuint v0 = luaL_checkinteger(L, 2); + GLuint v1 = luaL_checkinteger(L, 3); + GLuint v2 = luaL_checkinteger(L, 4); + GLuint v3 = luaL_checkinteger(L, 5); + glVertexAttribI4ui(index, v0, v1, v2, v3); + return 0; +} + + +int glVertexAttribL1d_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble v0 = luaL_checknumber(L, 2); + glVertexAttribL1d(index, v0); + return 0; +} + + +int glVertexAttribL2d_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble v0 = luaL_checknumber(L, 2); + GLdouble v1 = luaL_checknumber(L, 3); + glVertexAttribL2d(index, v0, v1); + return 0; +} + + +int glVertexAttribL3d_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble v0 = luaL_checknumber(L, 2); + GLdouble v1 = luaL_checknumber(L, 3); + GLdouble v2 = luaL_checknumber(L, 4); + glVertexAttribL3d(index, v0, v1, v2); + return 0; +} + + +int glVertexAttribL4d_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLdouble v0 = luaL_checknumber(L, 2); + GLdouble v1 = luaL_checknumber(L, 3); + GLdouble v2 = luaL_checknumber(L, 4); + GLdouble v3 = luaL_checknumber(L, 5); + glVertexAttribL4d(index, v0, v1, v2, v3); + return 0; +} + + +int glVertexAttrib1fv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLfloat * v = get: const GLfloat * + glVertexAttrib1fv(index, v); + return 0; +} + + +int glVertexAttrib1sv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLshort * v = get: const GLshort * + glVertexAttrib1sv(index, v); + return 0; +} + + +int glVertexAttrib1dv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLdouble * v = get: const GLdouble * + glVertexAttrib1dv(index, v); + return 0; +} + + +int glVertexAttribI1iv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLint * v = get: const GLint * + glVertexAttribI1iv(index, v); + return 0; +} + + +int glVertexAttribI1uiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLuint * v = get: const GLuint * + glVertexAttribI1uiv(index, v); + return 0; +} + + +int glVertexAttrib2fv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLfloat * v = get: const GLfloat * + glVertexAttrib2fv(index, v); + return 0; +} + + +int glVertexAttrib2sv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLshort * v = get: const GLshort * + glVertexAttrib2sv(index, v); + return 0; +} + + +int glVertexAttrib2dv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLdouble * v = get: const GLdouble * + glVertexAttrib2dv(index, v); + return 0; +} + + +int glVertexAttribI2iv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLint * v = get: const GLint * + glVertexAttribI2iv(index, v); + return 0; +} + + +int glVertexAttribI2uiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLuint * v = get: const GLuint * + glVertexAttribI2uiv(index, v); + return 0; +} + + +int glVertexAttrib3fv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLfloat * v = get: const GLfloat * + glVertexAttrib3fv(index, v); + return 0; +} + + +int glVertexAttrib3sv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLshort * v = get: const GLshort * + glVertexAttrib3sv(index, v); + return 0; +} + + +int glVertexAttrib3dv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLdouble * v = get: const GLdouble * + glVertexAttrib3dv(index, v); + return 0; +} + + +int glVertexAttribI3iv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLint * v = get: const GLint * + glVertexAttribI3iv(index, v); + return 0; +} + + +int glVertexAttribI3uiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLuint * v = get: const GLuint * + glVertexAttribI3uiv(index, v); + return 0; +} + + +int glVertexAttrib4fv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLfloat * v = get: const GLfloat * + glVertexAttrib4fv(index, v); + return 0; +} + + +int glVertexAttrib4sv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLshort * v = get: const GLshort * + glVertexAttrib4sv(index, v); + return 0; +} + + +int glVertexAttrib4dv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLdouble * v = get: const GLdouble * + glVertexAttrib4dv(index, v); + return 0; +} + + +int glVertexAttrib4iv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLint * v = get: const GLint * + glVertexAttrib4iv(index, v); + return 0; +} + + +int glVertexAttrib4bv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLbyte * v = get: const GLbyte * + glVertexAttrib4bv(index, v); + return 0; +} + + +int glVertexAttrib4ubv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLubyte * v = get: const GLubyte * + glVertexAttrib4ubv(index, v); + return 0; +} + + +int glVertexAttrib4usv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLushort * v = get: const GLushort * + glVertexAttrib4usv(index, v); + return 0; +} + + +int glVertexAttrib4uiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLuint * v = get: const GLuint * + glVertexAttrib4uiv(index, v); + return 0; +} + + +int glVertexAttrib4Nbv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLbyte * v = get: const GLbyte * + glVertexAttrib4Nbv(index, v); + return 0; +} + + +int glVertexAttrib4Nsv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLshort * v = get: const GLshort * + glVertexAttrib4Nsv(index, v); + return 0; +} + + +int glVertexAttrib4Niv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLint * v = get: const GLint * + glVertexAttrib4Niv(index, v); + return 0; +} + + +int glVertexAttrib4Nubv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLubyte * v = get: const GLubyte * + glVertexAttrib4Nubv(index, v); + return 0; +} + + +int glVertexAttrib4Nusv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLushort * v = get: const GLushort * + glVertexAttrib4Nusv(index, v); + return 0; +} + + +int glVertexAttrib4Nuiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLuint * v = get: const GLuint * + glVertexAttrib4Nuiv(index, v); + return 0; +} + + +int glVertexAttribI4bv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLbyte * v = get: const GLbyte * + glVertexAttribI4bv(index, v); + return 0; +} + + +int glVertexAttribI4ubv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLubyte * v = get: const GLubyte * + glVertexAttribI4ubv(index, v); + return 0; +} + + +int glVertexAttribI4sv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLshort * v = get: const GLshort * + glVertexAttribI4sv(index, v); + return 0; +} + + +int glVertexAttribI4usv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLushort * v = get: const GLushort * + glVertexAttribI4usv(index, v); + return 0; +} + + +int glVertexAttribI4iv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLint * v = get: const GLint * + glVertexAttribI4iv(index, v); + return 0; +} + + +int glVertexAttribI4uiv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLuint * v = get: const GLuint * + glVertexAttribI4uiv(index, v); + return 0; +} + + +int glVertexAttribL1dv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLdouble * v = get: const GLdouble * + glVertexAttribL1dv(index, v); + return 0; +} + + +int glVertexAttribL2dv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLdouble * v = get: const GLdouble * + glVertexAttribL2dv(index, v); + return 0; +} + + +int glVertexAttribL3dv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLdouble * v = get: const GLdouble * + glVertexAttribL3dv(index, v); + return 0; +} + + +int glVertexAttribL4dv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLdouble * v = get: const GLdouble * + glVertexAttribL4dv(index, v); + return 0; +} + + +int glVertexAttribP1ui_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum type = luaL_checkinteger(L, 2); + GLboolean normalized = get: GLboolean + GLuint value = luaL_checkinteger(L, 4); + glVertexAttribP1ui(index, type, normalized, value); + return 0; +} + + +int glVertexAttribP2ui_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum type = luaL_checkinteger(L, 2); + GLboolean normalized = get: GLboolean + GLuint value = luaL_checkinteger(L, 4); + glVertexAttribP2ui(index, type, normalized, value); + return 0; +} + + +int glVertexAttribP3ui_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum type = luaL_checkinteger(L, 2); + GLboolean normalized = get: GLboolean + GLuint value = luaL_checkinteger(L, 4); + glVertexAttribP3ui(index, type, normalized, value); + return 0; +} + + +int glVertexAttribP4ui_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLenum type = luaL_checkinteger(L, 2); + GLboolean normalized = get: GLboolean + GLuint value = luaL_checkinteger(L, 4); + glVertexAttribP4ui(index, type, normalized, value); + return 0; +} + + +int glVertexAttribPointer_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLint size = luaL_checkinteger(L, 2); + GLenum type = luaL_checkinteger(L, 3); + GLboolean normalized = get: GLboolean + GLsizei stride = luaL_checkinteger(L, 5); + const void * pointer = get: const void * + glVertexAttribPointer(index, size, type, normalized, stride, pointer); + return 0; +} + + +int glVertexAttribIPointer_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLint size = luaL_checkinteger(L, 2); + GLenum type = luaL_checkinteger(L, 3); + GLsizei stride = luaL_checkinteger(L, 4); + const void * pointer = get: const void * + glVertexAttribIPointer(index, size, type, stride, pointer); + return 0; +} + + +int glViewport_bind(lua_State *L) +{ + GLint x = luaL_checkinteger(L, 1); + GLint y = luaL_checkinteger(L, 2); + GLsizei width = luaL_checkinteger(L, 3); + GLsizei height = luaL_checkinteger(L, 4); + glViewport(x, y, width, height); + return 0; +} + + +int glViewportArrayv_bind(lua_State *L) +{ + GLuint first = luaL_checkinteger(L, 1); + GLsizei count = luaL_checkinteger(L, 2); + const GLfloat * v = get: const GLfloat * + glViewportArrayv(first, count, v); + return 0; +} + + +int glViewportIndexedf_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + GLfloat x = luaL_checknumber(L, 2); + GLfloat y = luaL_checknumber(L, 3); + GLfloat w = luaL_checknumber(L, 4); + GLfloat h = luaL_checknumber(L, 5); + glViewportIndexedf(index, x, y, w, h); + return 0; +} + + +int glViewportIndexedfv_bind(lua_State *L) +{ + GLuint index = luaL_checkinteger(L, 1); + const GLfloat * v = get: const GLfloat * + glViewportIndexedfv(index, v); + return 0; +} + + diff --git a/src/opengl/bind/w b/src/opengl/bind/w new file mode 100644 index 0000000..1a75379 --- /dev/null +++ b/src/opengl/bind/w @@ -0,0 +1 @@ +void glWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout); diff --git a/src/opengl/bind/w.bind b/src/opengl/bind/w.bind new file mode 100644 index 0000000..6f5210c --- /dev/null +++ b/src/opengl/bind/w.bind @@ -0,0 +1,10 @@ +int glWaitSync_bind(lua_State *L) +{ + GLsync sync = luaL_checkinteger(L, 1); + GLbitfield flags = luaL_checkinteger(L, 2); + GLuint64 timeout = luaL_checkinteger(L, 3); + glWaitSync(sync, flags, timeout); + return 0; +} + + diff --git a/src/opengl/data.c b/src/opengl/data.c new file mode 100644 index 0000000..b7dc581 --- /dev/null +++ b/src/opengl/data.c @@ -0,0 +1,164 @@ +#include <stdlib.h> +#include <stdbool.h> +#include <glad/glad.h> +#include <GLFW/glfw3.h> +#include <lua.h> +#include <lauxlib.h> +#include "util/util.h" +#include "gl.h" + +int gl_create_buffer(lua_State *L); +int gl_bind_buffer(lua_State *L); +int gl_buffer_data(lua_State *L); + +int gl_vertex_array_create(lua_State *L); +int gl_vertex_array_bind(lua_State *L); +int gl_vertex_attrib_pointer(lua_State *L); +int gl_vertex_array_enable_attrib(lua_State *L); + + +void setup_data(lua_State *L, int gl_index) +{ + struct honey_tbl_t tbl[] = { + /* functions */ + H_FUNC("GenBuffers", gl_create_buffer), + H_FUNC("BindBuffer", gl_bind_buffer), + H_FUNC("BufferData", gl_buffer_data), + + H_FUNC("GenVertexArrays", gl_vertex_array_create), + H_FUNC("BindVertexArray", gl_vertex_array_bind), + H_FUNC("VertexAttribPointer", gl_vertex_attrib_pointer), + H_FUNC("EnableVertexAttribArray", gl_vertex_array_enable_attrib), + + /******** enums ********/ + /* buffer bind targets */ + H_INT("ARRAY_BUFFER", GL_ARRAY_BUFFER), + H_INT("ELEMENT_ARRAY_BUFFER", GL_ELEMENT_ARRAY_BUFFER), + + /* buffer usage patters */ + H_INT("STREAM_DRAW", GL_STREAM_DRAW), + H_INT("STATIC_DRAW", GL_STATIC_DRAW), + H_INT("DYNAMIC_DRAW", GL_DYNAMIC_DRAW), + + H_END + }; + create_table(L, tbl); + append_table(L, gl_index, lua_gettop(L)); + lua_pop(L, 1); +} + + +int gl_create_buffer(lua_State *L) +{ + int buf; + glGenBuffers(1, &buf); + lua_pushinteger(L, buf); + return 1; +} + + +int gl_bind_buffer(lua_State *L) +{ + int target = luaL_checkinteger(L, 1); + int buf = luaL_checkinteger(L, 2); + glBindBuffer(target, buf); + return 0; +} + + +#define GET_BUFFER_TYPE(type, name, conversion) \ + void * get_buffer_ ## name (lua_State *L, size_t *sz, int tbl) { \ + size_t len = lua_objlen(L, tbl); \ + *sz = len * sizeof(type); \ + type *buf = malloc(*sz); \ + if (buf == NULL) \ + luaL_error(L, "failed to allocate intermediary buffer"); \ + for (int i=0; i<len; i++) { \ + lua_rawgeti(L, tbl, i+1); \ + if (!lua_isnumber(L, -1)) \ + luaL_error(L, "all elements must be numbers (failed at index %d)", i); \ + buf[i] = conversion(L, -1); \ + lua_pop(L, 1); \ + } \ + return buf; \ + } + +GET_BUFFER_TYPE(unsigned int, uint, lua_tointeger) +GET_BUFFER_TYPE(int, int, lua_tointeger) +GET_BUFFER_TYPE(float, float, lua_tonumber) + +int gl_buffer_data(lua_State *L) +{ + lua_Integer target, type, usage; + target = luaL_checkinteger(L, 1); + type = luaL_checkinteger(L, 2); + luaL_checktype(L, 3, LUA_TTABLE); + int table = 3; + usage = luaL_checkinteger(L, 4); + + /* build raw buffer */ + void *buf; size_t len; + switch(type) { + case GL_UNSIGNED_INT: + buf = get_buffer_uint(L, &len, table); + break; + + case GL_INT: + buf = get_buffer_int(L, &len, table); + break; + + case GL_FLOAT: + buf = get_buffer_float(L, &len, table); + break; + + default: + luaL_error(L, "invalid type"); + } + + /* call */ + glBufferData(target, len, buf, usage); + free(buf); + return 0; +} + + +int gl_vertex_array_create(lua_State *L) +{ + int array; + glGenVertexArrays(1, &array); + lua_pushinteger(L, array); + return 1; +} + + +int gl_vertex_array_bind(lua_State *L) +{ + lua_Integer array = luaL_checkinteger(L, 1); + glBindVertexArray(array); + return 0; +} + + +int gl_vertex_attrib_pointer(lua_State *L) +{ + lua_Integer index, size, stride, offset; + bool normalized; + index = luaL_checkinteger(L, 1); + size = luaL_checkinteger(L, 2); + normalized = lua_toboolean(L, 3); + stride = luaL_checkinteger(L, 4); + offset = luaL_checkinteger(L, 5); + + glVertexAttribPointer(index, size, GL_FLOAT, + normalized, stride*sizeof(float), + (void*) (offset*sizeof(float))); + return 0; +} + + +int gl_vertex_array_enable_attrib(lua_State *L) +{ + lua_Integer index = luaL_checkinteger(L, 1); + glEnableVertexAttribArray(index); + return 0; +} diff --git a/src/opengl/data.test.c b/src/opengl/data.test.c new file mode 100644 index 0000000..143b0ce --- /dev/null +++ b/src/opengl/data.test.c @@ -0,0 +1,216 @@ +#include <string.h> +#include <lua.h> +#include <lauxlib.h> +#include <honeysuckle.h> +#include "test/honey-test.h" + + +int mock_glfwInit_(void); +int mock_hs_throw_error_(lua_State *L, const char *str, ...); +void mock_glfwTerminate_(); +void mock_glBufferData_(int, size_t, const void *, int); + +#define DUMMY_FUNCTION(...) + +#define glfwInit mock_glfwInit_ +#define hs_throw_error mock_hs_throw_error_ +#define glfwTerminate mock_glfwTerminate_ +#undef glBufferData +#define glBufferData mock_glBufferData_ +#define setup_shader DUMMY_FUNCTION +#define setup_drawing DUMMY_FUNCTION +#include "gl/gl.c" +#undef glBufferData +#undef glfwTerminate +#undef hs_throw_error +#undef glfwInit + + +lily_mock_t *mock_hs_throw_error = NULL; +static int mock_hs_throw_error_(lua_State *L, const char *str, ...) +{ + struct lily_mock_arg_t args[] = { + { sizeof(const char *), &str } + }; + lily_mock_store_call(mock_hs_throw_error, args); + + lua_pushstring(L, "some error"); + lua_error(L); + + return 0; +} + +lily_mock_t *mock_glBufferData = NULL; +static void mock_glBufferData_(int target, size_t size, const void *data, int usage) +{ + struct lily_mock_arg_t args[] = { + { sizeof(int), &target }, + { sizeof(size_t), &size }, + { sizeof(int), &usage } + }; + lily_mock_store_call(mock_glBufferData, args); + + int use_ints; lily_get_value(mock_glBufferData, int, &use_ints); + + if (use_ints) { + size_t count = size/sizeof(int); + int *numbers = data; + for (int i=0; i<count; i++) { + lily_store_value(mock_glBufferData, int, numbers[i]); + } + } + else { + size_t count = size/sizeof(float); + float *numbers = data; + for (int i=0; i<count; i++) { + lily_store_value(mock_glBufferData, float, numbers[i]); + } + } +} + + +/* ~~~~~~~~ suite ~~~~~~~~ */ + +void gl_init_succeeds() +{ + lily_mock_use(&mock_glfwInit); + lily_mock_use(&mock_hs_throw_error); + + lua_State *L = luaL_newstate(); + lily_store_value(mock_glfwInit, int, 1); + lua_pushcfunction(L, gl_init); + int err = lua_pcall(L, 0, 0, 0); + lua_close(L); + + lily_assert_int_equal(err, 0); + lily_assert_int_equal(mock_glfwInit->n_calls, 1); + lily_assert_int_equal(mock_hs_throw_error->n_calls, 0); +} + + +void gl_init_fails() +{ + lily_mock_use(&mock_glfwInit); + lily_mock_use(&mock_hs_throw_error); + + lua_State *L = luaL_newstate(); + lily_store_value(mock_glfwInit, int, 0); + lua_pushcfunction(L, gl_init); + int err = lua_pcall(L, 0, 0, 0); + lua_close(L); + + lily_assert_int_equal(err, LUA_ERRRUN); + lily_assert_int_equal(mock_hs_throw_error->n_calls, 1); +} + + +void gl_terminate_works() +{ + lily_mock_use(&mock_glfwTerminate); + + lua_State *L = luaL_newstate(); + lua_pushcfunction(L, gl_terminate); + int err = lua_pcall(L, 0, 0, 0); + lua_close(L); + + lily_assert_int_equal(err, 0); + lily_assert_int_equal(mock_glfwTerminate->n_calls, 1); +} + + +void gl_buffer_float_works() +{ + lily_mock_use(&mock_hs_throw_error); + lily_mock_use(&mock_glBufferData); + lily_store_value(mock_glBufferData, int, 0); // use floats + + lua_State *L = luaL_newstate(); + lua_pushcfunction(L, gl_buffer_data); + lua_pushinteger(L, GL_ARRAY_BUFFER); + lua_pushinteger(L, GL_FLOAT); + hs_create_table(L, + hs_int_num(1, 22), + hs_int_num(2, 33), + hs_int_num(3, 44), + ); + lua_pushinteger(L, GL_STATIC_DRAW); + int err = hs_call(L, 4, 0); + lua_close(L); + + lily_assert_int_equal(err, 0); + lily_assert_int_equal(mock_glBufferData->n_calls, 1); + int target; size_t size; int usage; + struct lily_mock_arg_t args[] = { + { sizeof(int), &target }, + { sizeof(size_t), &size }, + { sizeof(int), &usage } + }; + lily_mock_get_call(mock_glBufferData, args, 0); + lily_assert_int_equal(target, GL_ARRAY_BUFFER); + lily_assert_int_equal(size, 3*sizeof(float)); + lily_assert_int_equal(usage, GL_STATIC_DRAW); + + float n; + lily_get_value(mock_glBufferData, float, &n); + lily_assert_float_equal(n, 22, 0.1); + lily_get_value(mock_glBufferData, float, &n); + lily_assert_float_equal(n, 33, 0.1); + lily_get_value(mock_glBufferData, float, &n); + lily_assert_float_equal(n, 44, 0.1); +} + + +void gl_buffer_int_works() +{ + lily_mock_use(&mock_hs_throw_error); + lily_mock_use(&mock_glBufferData); + lily_store_value(mock_glBufferData, int, 1); // use ints + + lua_State *L = luaL_newstate(); + lua_pushcfunction(L, gl_buffer_data); + lua_pushinteger(L, GL_ARRAY_BUFFER); + lua_pushinteger(L, GL_INT); + hs_create_table(L, + hs_int_num(1, 22), + hs_int_num(2, 33), + hs_int_num(3, 44), + ); + lua_pushinteger(L, GL_STATIC_DRAW); + int err = hs_call(L, 4, 0); + lua_close(L); + + lily_assert_int_equal(err, 0); + lily_assert_int_equal(mock_glBufferData->n_calls, 1); + int target; size_t size; int usage; + struct lily_mock_arg_t args[] = { + { sizeof(int), &target }, + { sizeof(size_t), &size }, + { sizeof(int), &usage } + }; + lily_mock_get_call(mock_glBufferData, args, 0); + lily_assert_int_equal(target, GL_ARRAY_BUFFER); + lily_assert_int_equal(size, 3*sizeof(float)); + lily_assert_int_equal(usage, GL_STATIC_DRAW); + + int n; + lily_get_value(mock_glBufferData, int, &n); + lily_assert_int_equal(n, 22); + lily_get_value(mock_glBufferData, int, &n); + lily_assert_int_equal(n, 33); + lily_get_value(mock_glBufferData, int, &n); + lily_assert_int_equal(n, 44); +} + +void suite_gl() +{ + lily_run_test(gl_init_succeeds); + lily_run_test(gl_init_fails); + lily_run_test(gl_terminate_works); + lily_run_test(gl_buffer_float_works); + lily_run_test(gl_buffer_int_works); + + lily_mock_destroy(mock_glfwInit); + lily_mock_destroy(mock_hs_throw_error); + lily_mock_destroy(mock_glfwTerminate); + lily_mock_destroy(mock_glBufferData); +} diff --git a/src/opengl/drawing.c b/src/opengl/drawing.c new file mode 100644 index 0000000..eeb0496 --- /dev/null +++ b/src/opengl/drawing.c @@ -0,0 +1,127 @@ +#include <glad/glad.h> +#include <GLFW/glfw3.h> +#include <lua.h> +#include <lauxlib.h> +#include "util/util.h" + +int gl_set_viewport(lua_State *L); +int gl_draw_arrays(lua_State *L); +int gl_draw_elements(lua_State *L); +int gl_set_clear_color(lua_State *L); +int gl_clear(lua_State *L); +int gl_gen_framebuffers(lua_State *L); +int gl_bind_framebuffer(lua_State *L); +int gl_framebuffer_texture_2d(lua_State *L); + +void setup_drawing(lua_State *L, int gl_index) +{ + struct honey_tbl_t tbl[] = { + /* functions */ + H_FUNC("DrawArrays", gl_draw_arrays), + H_FUNC("DrawElements", gl_draw_elements), + H_FUNC("ClearColor", gl_set_clear_color), + H_FUNC("Clear", gl_clear), + H_FUNC("Viewport", gl_set_viewport), + + /******** enums ********/ + /* rendering primitives */ + H_INT("POINTS", GL_POINTS), + H_INT("LINES", GL_LINES), + H_INT("TRIANGLES", GL_TRIANGLES), + + /* clear bitmasks */ + H_INT("COLOR_BUFFER_BIT", GL_COLOR_BUFFER_BIT), + H_INT("DEPTH_BUFFER_BIT", GL_DEPTH_BUFFER_BIT), + H_INT("STENCIL_BUFFER_BIT", GL_STENCIL_BUFFER_BIT), + + H_END + }; + create_table(L, tbl); + append_table(L, gl_index, lua_gettop(L)); + lua_pop(L, 1); +} + +int gl_set_clear_color(lua_State *L) +{ + lua_Number r, g, b, a; + r = luaL_checknumber(L, 1); + g = luaL_checknumber(L, 2); + b = luaL_checknumber(L, 3); + a = luaL_checknumber(L, 4); + glClearColor(r, g, b, a); + return 0; +} + + +int gl_clear(lua_State *L) +{ + lua_Integer mask = luaL_checkinteger(L, 1); + glClear(mask); + return 0; +} + + +int gl_draw_arrays(lua_State *L) +{ + lua_Integer mode, first, count; + mode = luaL_checkinteger(L, 1); + first = luaL_checkinteger(L, 2); + count = luaL_checkinteger(L, 3); + glDrawArrays(mode, first, count); + return 0; +} + + +int gl_draw_elements(lua_State *L) +{ + lua_Integer mode, count, type, offset; + mode = luaL_checkinteger(L, 1); + count = luaL_checkinteger(L, 2); + type = luaL_checkinteger(L, 3); + offset = luaL_checkinteger(L, 4); + glDrawElements(mode, count, type, (const void*)offset); + return 0; +} + + +int gl_set_viewport(lua_State *L) +{ + lua_Integer x, y, w, h; + x = luaL_checkinteger(L, 1); + y = luaL_checkinteger(L, 2); + w = luaL_checkinteger(L, 3); + h = luaL_checkinteger(L, 4); + glViewport(x, y, w, h); + return 0; +} + + +int gl_gen_framebuffers(lua_State *L) +{ + int framebuffer; + glGenFramebuffers(1, &framebuffer); + lua_pushinteger(L, framebuffer); + return 1; +} + + +int gl_bind_framebuffer(lua_State *L) +{ + int target = luaL_checkinteger(L, 1); + int framebuffer = luaL_checkinteger(L, 2); + glBindFramebuffer(target, framebuffer); + return 0; +} + + +int gl_framebuffer_texture_2d(lua_State *L) +{ + int target = luaL_checkinteger(L, 1); + int attachment = luaL_checkinteger(L, 2); + int textarget = luaL_checkinteger(L, 3); + int texture = luaL_checkinteger(L, 4); + int level = luaL_checkinteger(L, 5); + + glFramebufferTexture2D(target, attachment, textarget, texture, level); + return 0; +} diff --git a/src/opengl/gl.c b/src/opengl/gl.c new file mode 100644 index 0000000..b8da1ec --- /dev/null +++ b/src/opengl/gl.c @@ -0,0 +1,112 @@ +#include <stdlib.h> +#include <stdbool.h> +#include <glad/glad.h> +#include <GLFW/glfw3.h> +#include <lua.h> +#include <lauxlib.h> +#include "util/util.h" +#include "gl.h" + +/* needs to be here because glad uses macros to define glBufferData */ +#ifdef HONEY_TEST_H +#undef glBufferData +#define glBufferData mock_glBufferData_ +#endif + + +int gl_init(lua_State *L); +int glad_init(lua_State *L); +int gl_terminate(lua_State *L); +int gl_get_error(lua_State *L); +int gl_enable(lua_State *L); +int gl_disable(lua_State *L); + +void setup_gl(lua_State *L, int honey_index) +{ + struct honey_tbl_t tbl[] = { + /* functions */ + H_FUNC("Init", gl_init), + H_FUNC("InitGlad", glad_init), + H_FUNC("Terminate", gl_terminate), + H_FUNC("GetError", gl_get_error), + H_FUNC("Enable", gl_enable), + H_FUNC("Disable", gl_disable), + + /******** enums ********/ + /* data types */ + H_INT("UNSIGNED_BYTE", GL_UNSIGNED_BYTE), + H_INT("UNSIGNED_INT", GL_UNSIGNED_INT), + H_INT("INT", GL_INT), + H_INT("FLOAT", GL_FLOAT), + + /* error types */ + H_INT("NO_ERROR", GL_NO_ERROR), + H_INT("INVALID_ENUM", GL_INVALID_ENUM), + H_INT("INVALID_VALUE", GL_INVALID_VALUE), + H_INT("INVALID_OPERATION", GL_INVALID_OPERATION), + H_INT("INVALID_FRAMEBUFFER_OPERATION", GL_INVALID_FRAMEBUFFER_OPERATION), + H_INT("OUT_OF_MEMORY", GL_OUT_OF_MEMORY), + + /* opengl capabilities */ + H_INT("DEPTH_TEST", GL_DEPTH_TEST), + H_INT("CULL_FACE", GL_CULL_FACE), + + H_END + }; + create_table(L, tbl); + int gl_index = lua_gettop(L); + + setup_shader(L, gl_index); + setup_drawing(L, gl_index); + setup_data(L, gl_index); + setup_texture(L, gl_index); + + lua_setfield(L, honey_index, "gl"); +} + + +int gl_init(lua_State *L) +{ + if (!glfwInit()) { + luaL_error(L, "failed to initialize GLFW"); + } + return 0; +} + + +int glad_init(lua_State *L) +{ + if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { + luaL_error(L, "failed to initialize GLAD"); + } +} + + +int gl_terminate(lua_State *L) +{ + glfwTerminate(); + return 0; +} + + +int gl_get_error(lua_State *L) +{ + lua_pushinteger(L, glGetError()); + return 1; +} + + +int gl_enable(lua_State *L) +{ + lua_Integer cap = luaL_checkinteger(L, 1); + glEnable(cap); + return 0; +} + + +int gl_disable(lua_State *L) +{ + lua_Integer cap = luaL_checkinteger(L, 1); + glDisable(cap); + return 0; +} diff --git a/src/opengl/gl.h b/src/opengl/gl.h new file mode 100644 index 0000000..8aa1ef7 --- /dev/null +++ b/src/opengl/gl.h @@ -0,0 +1,14 @@ +#ifndef HONEY_GL_H +#define HONEY_GL_H + +#include <lua.h> + +void setup_gl(lua_State *L, int honey_index); +void setup_shader(lua_State *L, int gl_index); +void setup_drawing(lua_State *L, int gl_index); +void setup_data(lua_State *L, int gl_index); +void setup_texture(lua_State *L, int gl_index); + +void setup_window(lua_State *L, int honey_index); + +#endif diff --git a/src/opengl/gl.test.c b/src/opengl/gl.test.c new file mode 100644 index 0000000..488126f --- /dev/null +++ b/src/opengl/gl.test.c @@ -0,0 +1,237 @@ +#include <string.h> +#include <lua.h> +#include <lauxlib.h> +#include <honeysuckle.h> +#include "test/honey-test.h" + + +int mock_glfwInit_(void); +int mock_hs_throw_error_(lua_State *L, const char *str, ...); +void mock_glfwTerminate_(); +void mock_glBufferData_(int, size_t, const void *, int); + +#define DUMMY_FUNCTION(...) + +#define glfwInit mock_glfwInit_ +#define hs_throw_error mock_hs_throw_error_ +#define glfwTerminate mock_glfwTerminate_ +#define setup_shader DUMMY_FUNCTION +#define setup_drawing DUMMY_FUNCTION +#define setup_texture DUMMY_FUNCTION +#include "gl/gl.c" +#include "gl/data.c" +#undef glBufferData +#undef glfwTerminate +#undef hs_throw_error +#undef glfwInit + + +lily_mock_t *mock_glfwInit = NULL; +int mock_glfwInit_() +{ + struct lily_mock_arg_t args[] = {}; + lily_mock_store_call(mock_glfwInit, args); + + int result; + lily_get_value(mock_glfwInit, int, &result); + return result; +} + + +lily_mock_t *mock_hs_throw_error = NULL; +int mock_hs_throw_error_(lua_State *L, const char *str, ...) +{ + struct lily_mock_arg_t args[] = { + { sizeof(const char *), &str } + }; + lily_mock_store_call(mock_hs_throw_error, args); + + lua_pushstring(L, "some error"); + lua_error(L); + + return 0; +} + + +lily_mock_t *mock_glfwTerminate = NULL; +void mock_glfwTerminate_() +{ + struct lily_mock_arg_t args[] = {}; + lily_mock_store_call(mock_glfwTerminate, args); +} + + +lily_mock_t *mock_glBufferData = NULL; +void mock_glBufferData_(int target, size_t size, const void *data, int usage) +{ + struct lily_mock_arg_t args[] = { + { sizeof(int), &target }, + { sizeof(size_t), &size }, + { sizeof(int), &usage } + }; + lily_mock_store_call(mock_glBufferData, args); + + int use_ints; lily_get_value(mock_glBufferData, int, &use_ints); + + if (use_ints) { + size_t count = size/sizeof(int); + int *numbers = data; + for (int i=0; i<count; i++) { + lily_store_value(mock_glBufferData, int, numbers[i]); + } + } + else { + size_t count = size/sizeof(float); + float *numbers = data; + for (int i=0; i<count; i++) { + lily_store_value(mock_glBufferData, float, numbers[i]); + } + } +} + + +/* ~~~~~~~~ suite ~~~~~~~~ */ + +void gl_init_succeeds() +{ + lily_mock_use(&mock_glfwInit); + lily_mock_use(&mock_hs_throw_error); + + lua_State *L = luaL_newstate(); + lily_store_value(mock_glfwInit, int, 1); + lua_pushcfunction(L, gl_init); + int err = lua_pcall(L, 0, 0, 0); + lua_close(L); + + lily_assert_int_equal(err, 0); + lily_assert_int_equal(mock_glfwInit->n_calls, 1); + lily_assert_int_equal(mock_hs_throw_error->n_calls, 0); +} + + +void gl_init_fails() +{ + lily_mock_use(&mock_glfwInit); + lily_mock_use(&mock_hs_throw_error); + + lua_State *L = luaL_newstate(); + lily_store_value(mock_glfwInit, int, 0); + lua_pushcfunction(L, gl_init); + int err = lua_pcall(L, 0, 0, 0); + lua_close(L); + + lily_assert_int_equal(err, LUA_ERRRUN); + lily_assert_int_equal(mock_hs_throw_error->n_calls, 1); +} + + +void gl_terminate_works() +{ + lily_mock_use(&mock_glfwTerminate); + + lua_State *L = luaL_newstate(); + lua_pushcfunction(L, gl_terminate); + int err = lua_pcall(L, 0, 0, 0); + lua_close(L); + + lily_assert_int_equal(err, 0); + lily_assert_int_equal(mock_glfwTerminate->n_calls, 1); +} + + +void gl_buffer_float_works() +{ + lily_mock_use(&mock_hs_throw_error); + lily_mock_use(&mock_glBufferData); + lily_store_value(mock_glBufferData, int, 0); // use floats + + lua_State *L = luaL_newstate(); + lua_pushcfunction(L, gl_buffer_data); + lua_pushinteger(L, GL_ARRAY_BUFFER); + lua_pushinteger(L, GL_FLOAT); + hs_create_table(L, + hs_int_num(1, 22), + hs_int_num(2, 33), + hs_int_num(3, 44), + ); + lua_pushinteger(L, GL_STATIC_DRAW); + int err = hs_call(L, 4, 0); + lua_close(L); + + lily_assert_int_equal(err, 0); + lily_assert_int_equal(mock_glBufferData->n_calls, 1); + int target; size_t size; int usage; + struct lily_mock_arg_t args[] = { + { sizeof(int), &target }, + { sizeof(size_t), &size }, + { sizeof(int), &usage } + }; + lily_mock_get_call(mock_glBufferData, args, 0); + lily_assert_int_equal(target, GL_ARRAY_BUFFER); + lily_assert_int_equal(size, 3*sizeof(float)); + lily_assert_int_equal(usage, GL_STATIC_DRAW); + + float n; + lily_get_value(mock_glBufferData, float, &n); + lily_assert_float_equal(n, 22, 0.1); + lily_get_value(mock_glBufferData, float, &n); + lily_assert_float_equal(n, 33, 0.1); + lily_get_value(mock_glBufferData, float, &n); + lily_assert_float_equal(n, 44, 0.1); +} + + +void gl_buffer_int_works() +{ + lily_mock_use(&mock_hs_throw_error); + lily_mock_use(&mock_glBufferData); + lily_store_value(mock_glBufferData, int, 1); // use ints + + lua_State *L = luaL_newstate(); + lua_pushcfunction(L, gl_buffer_data); + lua_pushinteger(L, GL_ARRAY_BUFFER); + lua_pushinteger(L, GL_INT); + hs_create_table(L, + hs_int_num(1, 22), + hs_int_num(2, 33), + hs_int_num(3, 44), + ); + lua_pushinteger(L, GL_STATIC_DRAW); + int err = hs_call(L, 4, 0); + lua_close(L); + + lily_assert_int_equal(err, 0); + lily_assert_int_equal(mock_glBufferData->n_calls, 1); + int target; size_t size; int usage; + struct lily_mock_arg_t args[] = { + { sizeof(int), &target }, + { sizeof(size_t), &size }, + { sizeof(int), &usage } + }; + lily_mock_get_call(mock_glBufferData, args, 0); + lily_assert_int_equal(target, GL_ARRAY_BUFFER); + lily_assert_int_equal(size, 3*sizeof(float)); + lily_assert_int_equal(usage, GL_STATIC_DRAW); + + int n; + lily_get_value(mock_glBufferData, int, &n); + lily_assert_int_equal(n, 22); + lily_get_value(mock_glBufferData, int, &n); + lily_assert_int_equal(n, 33); + lily_get_value(mock_glBufferData, int, &n); + lily_assert_int_equal(n, 44); +} + +void suite_gl() +{ + lily_run_test(gl_init_succeeds); + lily_run_test(gl_init_fails); + lily_run_test(gl_terminate_works); + lily_run_test(gl_buffer_float_works); + lily_run_test(gl_buffer_int_works); + + lily_mock_destroy(mock_glfwInit); + lily_mock_destroy(mock_hs_throw_error); + lily_mock_destroy(mock_glfwTerminate); + lily_mock_destroy(mock_glBufferData); +} diff --git a/src/opengl/glad/CMakeLists.txt b/src/opengl/glad/CMakeLists.txt new file mode 100644 index 0000000..de6a508 --- /dev/null +++ b/src/opengl/glad/CMakeLists.txt @@ -0,0 +1,9 @@ +project(honey-engine) + +target_sources(honey PUBLIC + ${CMAKE_CURRENT_LIST_DIR}/src/glad.c +) + +target_include_directories(honey PUBLIC + ${CMAKE_CURRENT_LIST_DIR}/include +) diff --git a/src/opengl/glad/include/KHR/khrplatform.h b/src/opengl/glad/include/KHR/khrplatform.h new file mode 100644 index 0000000..0164644 --- /dev/null +++ b/src/opengl/glad/include/KHR/khrplatform.h @@ -0,0 +1,311 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2018 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * The master copy of khrplatform.h is maintained in the Khronos EGL + * Registry repository at https://github.com/KhronosGroup/EGL-Registry + * The last semantic modification to khrplatform.h was at commit ID: + * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by filing pull requests or issues on + * the EGL Registry repository linked above. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include <KHR/khrplatform.h> + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) +# define KHRONOS_STATIC 1 +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(KHRONOS_STATIC) + /* If the preprocessor constant KHRONOS_STATIC is defined, make the + * header compatible with static linking. */ +# define KHRONOS_APICALL +#elif defined(_WIN32) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# define KHRONOS_APICALL __attribute__((visibility("default"))) +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using <stdint.h> + */ +#include <stdint.h> +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 +/* + * To support platform where unsigned long cannot be used interchangeably with + * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. + * Ideally, we could just use (u)intptr_t everywhere, but this could result in + * ABI breakage if khronos_uintptr_t is changed from unsigned long to + * unsigned long long or similar (this results in different C++ name mangling). + * To avoid changes for existing platforms, we restrict usage of intptr_t to + * platforms where the size of a pointer is larger than the size of long. + */ +#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) +#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ +#define KHRONOS_USE_INTPTR_T +#endif +#endif + +#elif defined(__VMS ) || defined(__sgi) + +/* + * Using <inttypes.h> + */ +#include <inttypes.h> +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* + * Win32 + */ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* + * Sun or Digital + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* + * Hypothetical platform with no float or int64 support + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* + * Generic fallback + */ +#include <stdint.h> +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* + * Types that are (so far) the same on all platforms + */ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* + * Types that differ between LLP64 and LP64 architectures - in LLP64, + * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears + * to be the only LLP64 architecture in current use. + */ +#ifdef KHRONOS_USE_INTPTR_T +typedef intptr_t khronos_intptr_t; +typedef uintptr_t khronos_uintptr_t; +#elif defined(_WIN64) +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +#endif + +#if defined(_WIN64) +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* + * Float type + */ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types + * + * These types can be used to represent a time interval in nanoseconds or + * an absolute Unadjusted System Time. Unadjusted System Time is the number + * of nanoseconds since some arbitrary system event (e.g. since the last + * time the system booted). The Unadjusted System Time is an unsigned + * 64 bit value that wraps back to 0 every 584 years. Time intervals + * may be either signed or unsigned. + */ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* + * Dummy value used to pad enum types to 32 bits. + */ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* + * Enumerated boolean type + * + * Values other than zero should be considered to be true. Therefore + * comparisons should not be made against KHRONOS_TRUE. + */ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ diff --git a/src/opengl/glad/include/glad/glad.h b/src/opengl/glad/include/glad/glad.h new file mode 100644 index 0000000..a5fe03e --- /dev/null +++ b/src/opengl/glad/include/glad/glad.h @@ -0,0 +1,4133 @@ +/* + + OpenGL loader generated by glad 0.1.36 on Sun Feb 26 22:20:10 2023. + + Language/Generator: C/C++ + Specification: gl + APIs: gl=4.1 + Profile: compatibility + Extensions: + + Loader: True + Local files: False + Omit khrplatform: False + Reproducible: False + + Commandline: + --profile="compatibility" --api="gl=4.1" --generator="c" --spec="gl" --extensions="" + Online: + https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D4.1 +*/ + + +#ifndef __glad_h_ +#define __glad_h_ + +#ifdef __gl_h_ +#error OpenGL header already included, remove this include, glad already provides it +#endif +#define __gl_h_ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define APIENTRY __stdcall +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY APIENTRY +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct gladGLversionStruct { + int major; + int minor; +}; + +typedef void* (* GLADloadproc)(const char *name); + +#ifndef GLAPI +# if defined(GLAD_GLAPI_EXPORT) +# if defined(_WIN32) || defined(__CYGWIN__) +# if defined(GLAD_GLAPI_EXPORT_BUILD) +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllexport)) extern +# else +# define GLAPI __declspec(dllexport) extern +# endif +# else +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllimport)) extern +# else +# define GLAPI __declspec(dllimport) extern +# endif +# endif +# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD) +# define GLAPI __attribute__ ((visibility ("default"))) extern +# else +# define GLAPI extern +# endif +# else +# define GLAPI extern +# endif +#endif + +GLAPI struct gladGLversionStruct GLVersion; + +GLAPI int gladLoadGL(void); + +GLAPI int gladLoadGLLoader(GLADloadproc); + +#include <KHR/khrplatform.h> +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef khronos_int8_t GLbyte; +typedef khronos_uint8_t GLubyte; +typedef khronos_int16_t GLshort; +typedef khronos_uint16_t GLushort; +typedef int GLint; +typedef unsigned int GLuint; +typedef khronos_int32_t GLclampx; +typedef int GLsizei; +typedef khronos_float_t GLfloat; +typedef khronos_float_t GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void *GLeglClientBufferEXT; +typedef void *GLeglImageOES; +typedef char GLchar; +typedef char GLcharARB; +#ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif +typedef khronos_uint16_t GLhalf; +typedef khronos_uint16_t GLhalfARB; +typedef khronos_int32_t GLfixed; +typedef khronos_intptr_t GLintptr; +typedef khronos_intptr_t GLintptrARB; +typedef khronos_ssize_t GLsizeiptr; +typedef khronos_ssize_t GLsizeiptrARB; +typedef khronos_int64_t GLint64; +typedef khronos_int64_t GLint64EXT; +typedef khronos_uint64_t GLuint64; +typedef khronos_uint64_t GLuint64EXT; +typedef struct __GLsync *GLsync; +struct _cl_context; +struct _cl_event; +typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); +typedef unsigned short GLhalfNV; +typedef GLintptr GLvdpauSurfaceNV; +typedef void (APIENTRY *GLVULKANPROCNV)(void); +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_FALSE 0 +#define GL_TRUE 1 +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_VIEWPORT 0x0BA2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +#define GL_TEXTURE 0x1702 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_REPEAT 0x2901 +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_LOGIC_OP 0x0BF1 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_COLOR_INDEX 0x1900 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_BITMAP 0x1A00 +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_ENV 0x2300 +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 +#define GL_CLAMP 0x2900 +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_DOUBLE 0x140A +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_RESCALE_NORMAL 0x803A +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_MULTISAMPLE_BIT 0x20000000 +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_COMPARE_R_TO_TEXTURE 0x884E +#define GL_BLEND_COLOR 0x8005 +#define GL_BLEND_EQUATION 0x8009 +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_FUNC_SUBTRACT 0x800A +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#define GL_SRC1_ALPHA 0x8589 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC2_ALPHA 0x858A +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_COLOR_ATTACHMENT16 0x8CF0 +#define GL_COLOR_ATTACHMENT17 0x8CF1 +#define GL_COLOR_ATTACHMENT18 0x8CF2 +#define GL_COLOR_ATTACHMENT19 0x8CF3 +#define GL_COLOR_ATTACHMENT20 0x8CF4 +#define GL_COLOR_ATTACHMENT21 0x8CF5 +#define GL_COLOR_ATTACHMENT22 0x8CF6 +#define GL_COLOR_ATTACHMENT23 0x8CF7 +#define GL_COLOR_ATTACHMENT24 0x8CF8 +#define GL_COLOR_ATTACHMENT25 0x8CF9 +#define GL_COLOR_ATTACHMENT26 0x8CFA +#define GL_COLOR_ATTACHMENT27 0x8CFB +#define GL_COLOR_ATTACHMENT28 0x8CFC +#define GL_COLOR_ATTACHMENT29 0x8CFD +#define GL_COLOR_ATTACHMENT30 0x8CFE +#define GL_COLOR_ATTACHMENT31 0x8CFF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#define GL_INDEX 0x8222 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#define GL_HALF_FLOAT 0x140B +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_ALPHA_INTEGER 0x8D97 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFF +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +#define GL_DEPTH_CLAMP 0x864F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_SRC1_COLOR 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#define GL_SAMPLER_BINDING 0x8919 +#define GL_RGB10_A2UI 0x906F +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 +#define GL_INT_2_10_10_10_REV 0x8D9F +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MAX_VERTEX_STREAMS 0x8E71 +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +#define GL_PATCHES 0x000E +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_ISOLINES 0x8E7A +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_RGB565 0x8D62 +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +#ifndef GL_VERSION_1_0 +#define GL_VERSION_1_0 1 +GLAPI int GLAD_GL_VERSION_1_0; +typedef void (APIENTRYP PFNGLCULLFACEPROC)(GLenum mode); +GLAPI PFNGLCULLFACEPROC glad_glCullFace; +#define glCullFace glad_glCullFace +typedef void (APIENTRYP PFNGLFRONTFACEPROC)(GLenum mode); +GLAPI PFNGLFRONTFACEPROC glad_glFrontFace; +#define glFrontFace glad_glFrontFace +typedef void (APIENTRYP PFNGLHINTPROC)(GLenum target, GLenum mode); +GLAPI PFNGLHINTPROC glad_glHint; +#define glHint glad_glHint +typedef void (APIENTRYP PFNGLLINEWIDTHPROC)(GLfloat width); +GLAPI PFNGLLINEWIDTHPROC glad_glLineWidth; +#define glLineWidth glad_glLineWidth +typedef void (APIENTRYP PFNGLPOINTSIZEPROC)(GLfloat size); +GLAPI PFNGLPOINTSIZEPROC glad_glPointSize; +#define glPointSize glad_glPointSize +typedef void (APIENTRYP PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode); +GLAPI PFNGLPOLYGONMODEPROC glad_glPolygonMode; +#define glPolygonMode glad_glPolygonMode +typedef void (APIENTRYP PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLSCISSORPROC glad_glScissor; +#define glScissor glad_glScissor +typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param); +GLAPI PFNGLTEXPARAMETERFPROC glad_glTexParameterf; +#define glTexParameterf glad_glTexParameterf +typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params); +GLAPI PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; +#define glTexParameterfv glad_glTexParameterfv +typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); +GLAPI PFNGLTEXPARAMETERIPROC glad_glTexParameteri; +#define glTexParameteri glad_glTexParameteri +typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params); +GLAPI PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; +#define glTexParameteriv glad_glTexParameteriv +typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXIMAGE1DPROC glad_glTexImage1D; +#define glTexImage1D glad_glTexImage1D +typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXIMAGE2DPROC glad_glTexImage2D; +#define glTexImage2D glad_glTexImage2D +typedef void (APIENTRYP PFNGLDRAWBUFFERPROC)(GLenum buf); +GLAPI PFNGLDRAWBUFFERPROC glad_glDrawBuffer; +#define glDrawBuffer glad_glDrawBuffer +typedef void (APIENTRYP PFNGLCLEARPROC)(GLbitfield mask); +GLAPI PFNGLCLEARPROC glad_glClear; +#define glClear glad_glClear +typedef void (APIENTRYP PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLCLEARCOLORPROC glad_glClearColor; +#define glClearColor glad_glClearColor +typedef void (APIENTRYP PFNGLCLEARSTENCILPROC)(GLint s); +GLAPI PFNGLCLEARSTENCILPROC glad_glClearStencil; +#define glClearStencil glad_glClearStencil +typedef void (APIENTRYP PFNGLCLEARDEPTHPROC)(GLdouble depth); +GLAPI PFNGLCLEARDEPTHPROC glad_glClearDepth; +#define glClearDepth glad_glClearDepth +typedef void (APIENTRYP PFNGLSTENCILMASKPROC)(GLuint mask); +GLAPI PFNGLSTENCILMASKPROC glad_glStencilMask; +#define glStencilMask glad_glStencilMask +typedef void (APIENTRYP PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI PFNGLCOLORMASKPROC glad_glColorMask; +#define glColorMask glad_glColorMask +typedef void (APIENTRYP PFNGLDEPTHMASKPROC)(GLboolean flag); +GLAPI PFNGLDEPTHMASKPROC glad_glDepthMask; +#define glDepthMask glad_glDepthMask +typedef void (APIENTRYP PFNGLDISABLEPROC)(GLenum cap); +GLAPI PFNGLDISABLEPROC glad_glDisable; +#define glDisable glad_glDisable +typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap); +GLAPI PFNGLENABLEPROC glad_glEnable; +#define glEnable glad_glEnable +typedef void (APIENTRYP PFNGLFINISHPROC)(void); +GLAPI PFNGLFINISHPROC glad_glFinish; +#define glFinish glad_glFinish +typedef void (APIENTRYP PFNGLFLUSHPROC)(void); +GLAPI PFNGLFLUSHPROC glad_glFlush; +#define glFlush glad_glFlush +typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); +GLAPI PFNGLBLENDFUNCPROC glad_glBlendFunc; +#define glBlendFunc glad_glBlendFunc +typedef void (APIENTRYP PFNGLLOGICOPPROC)(GLenum opcode); +GLAPI PFNGLLOGICOPPROC glad_glLogicOp; +#define glLogicOp glad_glLogicOp +typedef void (APIENTRYP PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask); +GLAPI PFNGLSTENCILFUNCPROC glad_glStencilFunc; +#define glStencilFunc glad_glStencilFunc +typedef void (APIENTRYP PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass); +GLAPI PFNGLSTENCILOPPROC glad_glStencilOp; +#define glStencilOp glad_glStencilOp +typedef void (APIENTRYP PFNGLDEPTHFUNCPROC)(GLenum func); +GLAPI PFNGLDEPTHFUNCPROC glad_glDepthFunc; +#define glDepthFunc glad_glDepthFunc +typedef void (APIENTRYP PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLPIXELSTOREFPROC glad_glPixelStoref; +#define glPixelStoref glad_glPixelStoref +typedef void (APIENTRYP PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param); +GLAPI PFNGLPIXELSTOREIPROC glad_glPixelStorei; +#define glPixelStorei glad_glPixelStorei +typedef void (APIENTRYP PFNGLREADBUFFERPROC)(GLenum src); +GLAPI PFNGLREADBUFFERPROC glad_glReadBuffer; +#define glReadBuffer glad_glReadBuffer +typedef void (APIENTRYP PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +GLAPI PFNGLREADPIXELSPROC glad_glReadPixels; +#define glReadPixels glad_glReadPixels +typedef void (APIENTRYP PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *data); +GLAPI PFNGLGETBOOLEANVPROC glad_glGetBooleanv; +#define glGetBooleanv glad_glGetBooleanv +typedef void (APIENTRYP PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data); +GLAPI PFNGLGETDOUBLEVPROC glad_glGetDoublev; +#define glGetDoublev glad_glGetDoublev +typedef GLenum (APIENTRYP PFNGLGETERRORPROC)(void); +GLAPI PFNGLGETERRORPROC glad_glGetError; +#define glGetError glad_glGetError +typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data); +GLAPI PFNGLGETFLOATVPROC glad_glGetFloatv; +#define glGetFloatv glad_glGetFloatv +typedef void (APIENTRYP PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data); +GLAPI PFNGLGETINTEGERVPROC glad_glGetIntegerv; +#define glGetIntegerv glad_glGetIntegerv +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC)(GLenum name); +GLAPI PFNGLGETSTRINGPROC glad_glGetString; +#define glGetString glad_glGetString +typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GLAPI PFNGLGETTEXIMAGEPROC glad_glGetTexImage; +#define glGetTexImage glad_glGetTexImage +typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; +#define glGetTexParameterfv glad_glGetTexParameterfv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; +#define glGetTexParameteriv glad_glGetTexParameteriv +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; +#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; +#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv +typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap); +GLAPI PFNGLISENABLEDPROC glad_glIsEnabled; +#define glIsEnabled glad_glIsEnabled +typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f); +GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange; +#define glDepthRange glad_glDepthRange +typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLVIEWPORTPROC glad_glViewport; +#define glViewport glad_glViewport +typedef void (APIENTRYP PFNGLNEWLISTPROC)(GLuint list, GLenum mode); +GLAPI PFNGLNEWLISTPROC glad_glNewList; +#define glNewList glad_glNewList +typedef void (APIENTRYP PFNGLENDLISTPROC)(void); +GLAPI PFNGLENDLISTPROC glad_glEndList; +#define glEndList glad_glEndList +typedef void (APIENTRYP PFNGLCALLLISTPROC)(GLuint list); +GLAPI PFNGLCALLLISTPROC glad_glCallList; +#define glCallList glad_glCallList +typedef void (APIENTRYP PFNGLCALLLISTSPROC)(GLsizei n, GLenum type, const void *lists); +GLAPI PFNGLCALLLISTSPROC glad_glCallLists; +#define glCallLists glad_glCallLists +typedef void (APIENTRYP PFNGLDELETELISTSPROC)(GLuint list, GLsizei range); +GLAPI PFNGLDELETELISTSPROC glad_glDeleteLists; +#define glDeleteLists glad_glDeleteLists +typedef GLuint (APIENTRYP PFNGLGENLISTSPROC)(GLsizei range); +GLAPI PFNGLGENLISTSPROC glad_glGenLists; +#define glGenLists glad_glGenLists +typedef void (APIENTRYP PFNGLLISTBASEPROC)(GLuint base); +GLAPI PFNGLLISTBASEPROC glad_glListBase; +#define glListBase glad_glListBase +typedef void (APIENTRYP PFNGLBEGINPROC)(GLenum mode); +GLAPI PFNGLBEGINPROC glad_glBegin; +#define glBegin glad_glBegin +typedef void (APIENTRYP PFNGLBITMAPPROC)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +GLAPI PFNGLBITMAPPROC glad_glBitmap; +#define glBitmap glad_glBitmap +typedef void (APIENTRYP PFNGLCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); +GLAPI PFNGLCOLOR3BPROC glad_glColor3b; +#define glColor3b glad_glColor3b +typedef void (APIENTRYP PFNGLCOLOR3BVPROC)(const GLbyte *v); +GLAPI PFNGLCOLOR3BVPROC glad_glColor3bv; +#define glColor3bv glad_glColor3bv +typedef void (APIENTRYP PFNGLCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); +GLAPI PFNGLCOLOR3DPROC glad_glColor3d; +#define glColor3d glad_glColor3d +typedef void (APIENTRYP PFNGLCOLOR3DVPROC)(const GLdouble *v); +GLAPI PFNGLCOLOR3DVPROC glad_glColor3dv; +#define glColor3dv glad_glColor3dv +typedef void (APIENTRYP PFNGLCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); +GLAPI PFNGLCOLOR3FPROC glad_glColor3f; +#define glColor3f glad_glColor3f +typedef void (APIENTRYP PFNGLCOLOR3FVPROC)(const GLfloat *v); +GLAPI PFNGLCOLOR3FVPROC glad_glColor3fv; +#define glColor3fv glad_glColor3fv +typedef void (APIENTRYP PFNGLCOLOR3IPROC)(GLint red, GLint green, GLint blue); +GLAPI PFNGLCOLOR3IPROC glad_glColor3i; +#define glColor3i glad_glColor3i +typedef void (APIENTRYP PFNGLCOLOR3IVPROC)(const GLint *v); +GLAPI PFNGLCOLOR3IVPROC glad_glColor3iv; +#define glColor3iv glad_glColor3iv +typedef void (APIENTRYP PFNGLCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); +GLAPI PFNGLCOLOR3SPROC glad_glColor3s; +#define glColor3s glad_glColor3s +typedef void (APIENTRYP PFNGLCOLOR3SVPROC)(const GLshort *v); +GLAPI PFNGLCOLOR3SVPROC glad_glColor3sv; +#define glColor3sv glad_glColor3sv +typedef void (APIENTRYP PFNGLCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); +GLAPI PFNGLCOLOR3UBPROC glad_glColor3ub; +#define glColor3ub glad_glColor3ub +typedef void (APIENTRYP PFNGLCOLOR3UBVPROC)(const GLubyte *v); +GLAPI PFNGLCOLOR3UBVPROC glad_glColor3ubv; +#define glColor3ubv glad_glColor3ubv +typedef void (APIENTRYP PFNGLCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); +GLAPI PFNGLCOLOR3UIPROC glad_glColor3ui; +#define glColor3ui glad_glColor3ui +typedef void (APIENTRYP PFNGLCOLOR3UIVPROC)(const GLuint *v); +GLAPI PFNGLCOLOR3UIVPROC glad_glColor3uiv; +#define glColor3uiv glad_glColor3uiv +typedef void (APIENTRYP PFNGLCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); +GLAPI PFNGLCOLOR3USPROC glad_glColor3us; +#define glColor3us glad_glColor3us +typedef void (APIENTRYP PFNGLCOLOR3USVPROC)(const GLushort *v); +GLAPI PFNGLCOLOR3USVPROC glad_glColor3usv; +#define glColor3usv glad_glColor3usv +typedef void (APIENTRYP PFNGLCOLOR4BPROC)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +GLAPI PFNGLCOLOR4BPROC glad_glColor4b; +#define glColor4b glad_glColor4b +typedef void (APIENTRYP PFNGLCOLOR4BVPROC)(const GLbyte *v); +GLAPI PFNGLCOLOR4BVPROC glad_glColor4bv; +#define glColor4bv glad_glColor4bv +typedef void (APIENTRYP PFNGLCOLOR4DPROC)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +GLAPI PFNGLCOLOR4DPROC glad_glColor4d; +#define glColor4d glad_glColor4d +typedef void (APIENTRYP PFNGLCOLOR4DVPROC)(const GLdouble *v); +GLAPI PFNGLCOLOR4DVPROC glad_glColor4dv; +#define glColor4dv glad_glColor4dv +typedef void (APIENTRYP PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLCOLOR4FPROC glad_glColor4f; +#define glColor4f glad_glColor4f +typedef void (APIENTRYP PFNGLCOLOR4FVPROC)(const GLfloat *v); +GLAPI PFNGLCOLOR4FVPROC glad_glColor4fv; +#define glColor4fv glad_glColor4fv +typedef void (APIENTRYP PFNGLCOLOR4IPROC)(GLint red, GLint green, GLint blue, GLint alpha); +GLAPI PFNGLCOLOR4IPROC glad_glColor4i; +#define glColor4i glad_glColor4i +typedef void (APIENTRYP PFNGLCOLOR4IVPROC)(const GLint *v); +GLAPI PFNGLCOLOR4IVPROC glad_glColor4iv; +#define glColor4iv glad_glColor4iv +typedef void (APIENTRYP PFNGLCOLOR4SPROC)(GLshort red, GLshort green, GLshort blue, GLshort alpha); +GLAPI PFNGLCOLOR4SPROC glad_glColor4s; +#define glColor4s glad_glColor4s +typedef void (APIENTRYP PFNGLCOLOR4SVPROC)(const GLshort *v); +GLAPI PFNGLCOLOR4SVPROC glad_glColor4sv; +#define glColor4sv glad_glColor4sv +typedef void (APIENTRYP PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +GLAPI PFNGLCOLOR4UBPROC glad_glColor4ub; +#define glColor4ub glad_glColor4ub +typedef void (APIENTRYP PFNGLCOLOR4UBVPROC)(const GLubyte *v); +GLAPI PFNGLCOLOR4UBVPROC glad_glColor4ubv; +#define glColor4ubv glad_glColor4ubv +typedef void (APIENTRYP PFNGLCOLOR4UIPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha); +GLAPI PFNGLCOLOR4UIPROC glad_glColor4ui; +#define glColor4ui glad_glColor4ui +typedef void (APIENTRYP PFNGLCOLOR4UIVPROC)(const GLuint *v); +GLAPI PFNGLCOLOR4UIVPROC glad_glColor4uiv; +#define glColor4uiv glad_glColor4uiv +typedef void (APIENTRYP PFNGLCOLOR4USPROC)(GLushort red, GLushort green, GLushort blue, GLushort alpha); +GLAPI PFNGLCOLOR4USPROC glad_glColor4us; +#define glColor4us glad_glColor4us +typedef void (APIENTRYP PFNGLCOLOR4USVPROC)(const GLushort *v); +GLAPI PFNGLCOLOR4USVPROC glad_glColor4usv; +#define glColor4usv glad_glColor4usv +typedef void (APIENTRYP PFNGLEDGEFLAGPROC)(GLboolean flag); +GLAPI PFNGLEDGEFLAGPROC glad_glEdgeFlag; +#define glEdgeFlag glad_glEdgeFlag +typedef void (APIENTRYP PFNGLEDGEFLAGVPROC)(const GLboolean *flag); +GLAPI PFNGLEDGEFLAGVPROC glad_glEdgeFlagv; +#define glEdgeFlagv glad_glEdgeFlagv +typedef void (APIENTRYP PFNGLENDPROC)(void); +GLAPI PFNGLENDPROC glad_glEnd; +#define glEnd glad_glEnd +typedef void (APIENTRYP PFNGLINDEXDPROC)(GLdouble c); +GLAPI PFNGLINDEXDPROC glad_glIndexd; +#define glIndexd glad_glIndexd +typedef void (APIENTRYP PFNGLINDEXDVPROC)(const GLdouble *c); +GLAPI PFNGLINDEXDVPROC glad_glIndexdv; +#define glIndexdv glad_glIndexdv +typedef void (APIENTRYP PFNGLINDEXFPROC)(GLfloat c); +GLAPI PFNGLINDEXFPROC glad_glIndexf; +#define glIndexf glad_glIndexf +typedef void (APIENTRYP PFNGLINDEXFVPROC)(const GLfloat *c); +GLAPI PFNGLINDEXFVPROC glad_glIndexfv; +#define glIndexfv glad_glIndexfv +typedef void (APIENTRYP PFNGLINDEXIPROC)(GLint c); +GLAPI PFNGLINDEXIPROC glad_glIndexi; +#define glIndexi glad_glIndexi +typedef void (APIENTRYP PFNGLINDEXIVPROC)(const GLint *c); +GLAPI PFNGLINDEXIVPROC glad_glIndexiv; +#define glIndexiv glad_glIndexiv +typedef void (APIENTRYP PFNGLINDEXSPROC)(GLshort c); +GLAPI PFNGLINDEXSPROC glad_glIndexs; +#define glIndexs glad_glIndexs +typedef void (APIENTRYP PFNGLINDEXSVPROC)(const GLshort *c); +GLAPI PFNGLINDEXSVPROC glad_glIndexsv; +#define glIndexsv glad_glIndexsv +typedef void (APIENTRYP PFNGLNORMAL3BPROC)(GLbyte nx, GLbyte ny, GLbyte nz); +GLAPI PFNGLNORMAL3BPROC glad_glNormal3b; +#define glNormal3b glad_glNormal3b +typedef void (APIENTRYP PFNGLNORMAL3BVPROC)(const GLbyte *v); +GLAPI PFNGLNORMAL3BVPROC glad_glNormal3bv; +#define glNormal3bv glad_glNormal3bv +typedef void (APIENTRYP PFNGLNORMAL3DPROC)(GLdouble nx, GLdouble ny, GLdouble nz); +GLAPI PFNGLNORMAL3DPROC glad_glNormal3d; +#define glNormal3d glad_glNormal3d +typedef void (APIENTRYP PFNGLNORMAL3DVPROC)(const GLdouble *v); +GLAPI PFNGLNORMAL3DVPROC glad_glNormal3dv; +#define glNormal3dv glad_glNormal3dv +typedef void (APIENTRYP PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI PFNGLNORMAL3FPROC glad_glNormal3f; +#define glNormal3f glad_glNormal3f +typedef void (APIENTRYP PFNGLNORMAL3FVPROC)(const GLfloat *v); +GLAPI PFNGLNORMAL3FVPROC glad_glNormal3fv; +#define glNormal3fv glad_glNormal3fv +typedef void (APIENTRYP PFNGLNORMAL3IPROC)(GLint nx, GLint ny, GLint nz); +GLAPI PFNGLNORMAL3IPROC glad_glNormal3i; +#define glNormal3i glad_glNormal3i +typedef void (APIENTRYP PFNGLNORMAL3IVPROC)(const GLint *v); +GLAPI PFNGLNORMAL3IVPROC glad_glNormal3iv; +#define glNormal3iv glad_glNormal3iv +typedef void (APIENTRYP PFNGLNORMAL3SPROC)(GLshort nx, GLshort ny, GLshort nz); +GLAPI PFNGLNORMAL3SPROC glad_glNormal3s; +#define glNormal3s glad_glNormal3s +typedef void (APIENTRYP PFNGLNORMAL3SVPROC)(const GLshort *v); +GLAPI PFNGLNORMAL3SVPROC glad_glNormal3sv; +#define glNormal3sv glad_glNormal3sv +typedef void (APIENTRYP PFNGLRASTERPOS2DPROC)(GLdouble x, GLdouble y); +GLAPI PFNGLRASTERPOS2DPROC glad_glRasterPos2d; +#define glRasterPos2d glad_glRasterPos2d +typedef void (APIENTRYP PFNGLRASTERPOS2DVPROC)(const GLdouble *v); +GLAPI PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv; +#define glRasterPos2dv glad_glRasterPos2dv +typedef void (APIENTRYP PFNGLRASTERPOS2FPROC)(GLfloat x, GLfloat y); +GLAPI PFNGLRASTERPOS2FPROC glad_glRasterPos2f; +#define glRasterPos2f glad_glRasterPos2f +typedef void (APIENTRYP PFNGLRASTERPOS2FVPROC)(const GLfloat *v); +GLAPI PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv; +#define glRasterPos2fv glad_glRasterPos2fv +typedef void (APIENTRYP PFNGLRASTERPOS2IPROC)(GLint x, GLint y); +GLAPI PFNGLRASTERPOS2IPROC glad_glRasterPos2i; +#define glRasterPos2i glad_glRasterPos2i +typedef void (APIENTRYP PFNGLRASTERPOS2IVPROC)(const GLint *v); +GLAPI PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv; +#define glRasterPos2iv glad_glRasterPos2iv +typedef void (APIENTRYP PFNGLRASTERPOS2SPROC)(GLshort x, GLshort y); +GLAPI PFNGLRASTERPOS2SPROC glad_glRasterPos2s; +#define glRasterPos2s glad_glRasterPos2s +typedef void (APIENTRYP PFNGLRASTERPOS2SVPROC)(const GLshort *v); +GLAPI PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv; +#define glRasterPos2sv glad_glRasterPos2sv +typedef void (APIENTRYP PFNGLRASTERPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLRASTERPOS3DPROC glad_glRasterPos3d; +#define glRasterPos3d glad_glRasterPos3d +typedef void (APIENTRYP PFNGLRASTERPOS3DVPROC)(const GLdouble *v); +GLAPI PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv; +#define glRasterPos3dv glad_glRasterPos3dv +typedef void (APIENTRYP PFNGLRASTERPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLRASTERPOS3FPROC glad_glRasterPos3f; +#define glRasterPos3f glad_glRasterPos3f +typedef void (APIENTRYP PFNGLRASTERPOS3FVPROC)(const GLfloat *v); +GLAPI PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv; +#define glRasterPos3fv glad_glRasterPos3fv +typedef void (APIENTRYP PFNGLRASTERPOS3IPROC)(GLint x, GLint y, GLint z); +GLAPI PFNGLRASTERPOS3IPROC glad_glRasterPos3i; +#define glRasterPos3i glad_glRasterPos3i +typedef void (APIENTRYP PFNGLRASTERPOS3IVPROC)(const GLint *v); +GLAPI PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv; +#define glRasterPos3iv glad_glRasterPos3iv +typedef void (APIENTRYP PFNGLRASTERPOS3SPROC)(GLshort x, GLshort y, GLshort z); +GLAPI PFNGLRASTERPOS3SPROC glad_glRasterPos3s; +#define glRasterPos3s glad_glRasterPos3s +typedef void (APIENTRYP PFNGLRASTERPOS3SVPROC)(const GLshort *v); +GLAPI PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv; +#define glRasterPos3sv glad_glRasterPos3sv +typedef void (APIENTRYP PFNGLRASTERPOS4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLRASTERPOS4DPROC glad_glRasterPos4d; +#define glRasterPos4d glad_glRasterPos4d +typedef void (APIENTRYP PFNGLRASTERPOS4DVPROC)(const GLdouble *v); +GLAPI PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv; +#define glRasterPos4dv glad_glRasterPos4dv +typedef void (APIENTRYP PFNGLRASTERPOS4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI PFNGLRASTERPOS4FPROC glad_glRasterPos4f; +#define glRasterPos4f glad_glRasterPos4f +typedef void (APIENTRYP PFNGLRASTERPOS4FVPROC)(const GLfloat *v); +GLAPI PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv; +#define glRasterPos4fv glad_glRasterPos4fv +typedef void (APIENTRYP PFNGLRASTERPOS4IPROC)(GLint x, GLint y, GLint z, GLint w); +GLAPI PFNGLRASTERPOS4IPROC glad_glRasterPos4i; +#define glRasterPos4i glad_glRasterPos4i +typedef void (APIENTRYP PFNGLRASTERPOS4IVPROC)(const GLint *v); +GLAPI PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv; +#define glRasterPos4iv glad_glRasterPos4iv +typedef void (APIENTRYP PFNGLRASTERPOS4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI PFNGLRASTERPOS4SPROC glad_glRasterPos4s; +#define glRasterPos4s glad_glRasterPos4s +typedef void (APIENTRYP PFNGLRASTERPOS4SVPROC)(const GLshort *v); +GLAPI PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv; +#define glRasterPos4sv glad_glRasterPos4sv +typedef void (APIENTRYP PFNGLRECTDPROC)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +GLAPI PFNGLRECTDPROC glad_glRectd; +#define glRectd glad_glRectd +typedef void (APIENTRYP PFNGLRECTDVPROC)(const GLdouble *v1, const GLdouble *v2); +GLAPI PFNGLRECTDVPROC glad_glRectdv; +#define glRectdv glad_glRectdv +typedef void (APIENTRYP PFNGLRECTFPROC)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +GLAPI PFNGLRECTFPROC glad_glRectf; +#define glRectf glad_glRectf +typedef void (APIENTRYP PFNGLRECTFVPROC)(const GLfloat *v1, const GLfloat *v2); +GLAPI PFNGLRECTFVPROC glad_glRectfv; +#define glRectfv glad_glRectfv +typedef void (APIENTRYP PFNGLRECTIPROC)(GLint x1, GLint y1, GLint x2, GLint y2); +GLAPI PFNGLRECTIPROC glad_glRecti; +#define glRecti glad_glRecti +typedef void (APIENTRYP PFNGLRECTIVPROC)(const GLint *v1, const GLint *v2); +GLAPI PFNGLRECTIVPROC glad_glRectiv; +#define glRectiv glad_glRectiv +typedef void (APIENTRYP PFNGLRECTSPROC)(GLshort x1, GLshort y1, GLshort x2, GLshort y2); +GLAPI PFNGLRECTSPROC glad_glRects; +#define glRects glad_glRects +typedef void (APIENTRYP PFNGLRECTSVPROC)(const GLshort *v1, const GLshort *v2); +GLAPI PFNGLRECTSVPROC glad_glRectsv; +#define glRectsv glad_glRectsv +typedef void (APIENTRYP PFNGLTEXCOORD1DPROC)(GLdouble s); +GLAPI PFNGLTEXCOORD1DPROC glad_glTexCoord1d; +#define glTexCoord1d glad_glTexCoord1d +typedef void (APIENTRYP PFNGLTEXCOORD1DVPROC)(const GLdouble *v); +GLAPI PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv; +#define glTexCoord1dv glad_glTexCoord1dv +typedef void (APIENTRYP PFNGLTEXCOORD1FPROC)(GLfloat s); +GLAPI PFNGLTEXCOORD1FPROC glad_glTexCoord1f; +#define glTexCoord1f glad_glTexCoord1f +typedef void (APIENTRYP PFNGLTEXCOORD1FVPROC)(const GLfloat *v); +GLAPI PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv; +#define glTexCoord1fv glad_glTexCoord1fv +typedef void (APIENTRYP PFNGLTEXCOORD1IPROC)(GLint s); +GLAPI PFNGLTEXCOORD1IPROC glad_glTexCoord1i; +#define glTexCoord1i glad_glTexCoord1i +typedef void (APIENTRYP PFNGLTEXCOORD1IVPROC)(const GLint *v); +GLAPI PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv; +#define glTexCoord1iv glad_glTexCoord1iv +typedef void (APIENTRYP PFNGLTEXCOORD1SPROC)(GLshort s); +GLAPI PFNGLTEXCOORD1SPROC glad_glTexCoord1s; +#define glTexCoord1s glad_glTexCoord1s +typedef void (APIENTRYP PFNGLTEXCOORD1SVPROC)(const GLshort *v); +GLAPI PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv; +#define glTexCoord1sv glad_glTexCoord1sv +typedef void (APIENTRYP PFNGLTEXCOORD2DPROC)(GLdouble s, GLdouble t); +GLAPI PFNGLTEXCOORD2DPROC glad_glTexCoord2d; +#define glTexCoord2d glad_glTexCoord2d +typedef void (APIENTRYP PFNGLTEXCOORD2DVPROC)(const GLdouble *v); +GLAPI PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv; +#define glTexCoord2dv glad_glTexCoord2dv +typedef void (APIENTRYP PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t); +GLAPI PFNGLTEXCOORD2FPROC glad_glTexCoord2f; +#define glTexCoord2f glad_glTexCoord2f +typedef void (APIENTRYP PFNGLTEXCOORD2FVPROC)(const GLfloat *v); +GLAPI PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv; +#define glTexCoord2fv glad_glTexCoord2fv +typedef void (APIENTRYP PFNGLTEXCOORD2IPROC)(GLint s, GLint t); +GLAPI PFNGLTEXCOORD2IPROC glad_glTexCoord2i; +#define glTexCoord2i glad_glTexCoord2i +typedef void (APIENTRYP PFNGLTEXCOORD2IVPROC)(const GLint *v); +GLAPI PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv; +#define glTexCoord2iv glad_glTexCoord2iv +typedef void (APIENTRYP PFNGLTEXCOORD2SPROC)(GLshort s, GLshort t); +GLAPI PFNGLTEXCOORD2SPROC glad_glTexCoord2s; +#define glTexCoord2s glad_glTexCoord2s +typedef void (APIENTRYP PFNGLTEXCOORD2SVPROC)(const GLshort *v); +GLAPI PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv; +#define glTexCoord2sv glad_glTexCoord2sv +typedef void (APIENTRYP PFNGLTEXCOORD3DPROC)(GLdouble s, GLdouble t, GLdouble r); +GLAPI PFNGLTEXCOORD3DPROC glad_glTexCoord3d; +#define glTexCoord3d glad_glTexCoord3d +typedef void (APIENTRYP PFNGLTEXCOORD3DVPROC)(const GLdouble *v); +GLAPI PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv; +#define glTexCoord3dv glad_glTexCoord3dv +typedef void (APIENTRYP PFNGLTEXCOORD3FPROC)(GLfloat s, GLfloat t, GLfloat r); +GLAPI PFNGLTEXCOORD3FPROC glad_glTexCoord3f; +#define glTexCoord3f glad_glTexCoord3f +typedef void (APIENTRYP PFNGLTEXCOORD3FVPROC)(const GLfloat *v); +GLAPI PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv; +#define glTexCoord3fv glad_glTexCoord3fv +typedef void (APIENTRYP PFNGLTEXCOORD3IPROC)(GLint s, GLint t, GLint r); +GLAPI PFNGLTEXCOORD3IPROC glad_glTexCoord3i; +#define glTexCoord3i glad_glTexCoord3i +typedef void (APIENTRYP PFNGLTEXCOORD3IVPROC)(const GLint *v); +GLAPI PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv; +#define glTexCoord3iv glad_glTexCoord3iv +typedef void (APIENTRYP PFNGLTEXCOORD3SPROC)(GLshort s, GLshort t, GLshort r); +GLAPI PFNGLTEXCOORD3SPROC glad_glTexCoord3s; +#define glTexCoord3s glad_glTexCoord3s +typedef void (APIENTRYP PFNGLTEXCOORD3SVPROC)(const GLshort *v); +GLAPI PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv; +#define glTexCoord3sv glad_glTexCoord3sv +typedef void (APIENTRYP PFNGLTEXCOORD4DPROC)(GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI PFNGLTEXCOORD4DPROC glad_glTexCoord4d; +#define glTexCoord4d glad_glTexCoord4d +typedef void (APIENTRYP PFNGLTEXCOORD4DVPROC)(const GLdouble *v); +GLAPI PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv; +#define glTexCoord4dv glad_glTexCoord4dv +typedef void (APIENTRYP PFNGLTEXCOORD4FPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI PFNGLTEXCOORD4FPROC glad_glTexCoord4f; +#define glTexCoord4f glad_glTexCoord4f +typedef void (APIENTRYP PFNGLTEXCOORD4FVPROC)(const GLfloat *v); +GLAPI PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv; +#define glTexCoord4fv glad_glTexCoord4fv +typedef void (APIENTRYP PFNGLTEXCOORD4IPROC)(GLint s, GLint t, GLint r, GLint q); +GLAPI PFNGLTEXCOORD4IPROC glad_glTexCoord4i; +#define glTexCoord4i glad_glTexCoord4i +typedef void (APIENTRYP PFNGLTEXCOORD4IVPROC)(const GLint *v); +GLAPI PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv; +#define glTexCoord4iv glad_glTexCoord4iv +typedef void (APIENTRYP PFNGLTEXCOORD4SPROC)(GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI PFNGLTEXCOORD4SPROC glad_glTexCoord4s; +#define glTexCoord4s glad_glTexCoord4s +typedef void (APIENTRYP PFNGLTEXCOORD4SVPROC)(const GLshort *v); +GLAPI PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv; +#define glTexCoord4sv glad_glTexCoord4sv +typedef void (APIENTRYP PFNGLVERTEX2DPROC)(GLdouble x, GLdouble y); +GLAPI PFNGLVERTEX2DPROC glad_glVertex2d; +#define glVertex2d glad_glVertex2d +typedef void (APIENTRYP PFNGLVERTEX2DVPROC)(const GLdouble *v); +GLAPI PFNGLVERTEX2DVPROC glad_glVertex2dv; +#define glVertex2dv glad_glVertex2dv +typedef void (APIENTRYP PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y); +GLAPI PFNGLVERTEX2FPROC glad_glVertex2f; +#define glVertex2f glad_glVertex2f +typedef void (APIENTRYP PFNGLVERTEX2FVPROC)(const GLfloat *v); +GLAPI PFNGLVERTEX2FVPROC glad_glVertex2fv; +#define glVertex2fv glad_glVertex2fv +typedef void (APIENTRYP PFNGLVERTEX2IPROC)(GLint x, GLint y); +GLAPI PFNGLVERTEX2IPROC glad_glVertex2i; +#define glVertex2i glad_glVertex2i +typedef void (APIENTRYP PFNGLVERTEX2IVPROC)(const GLint *v); +GLAPI PFNGLVERTEX2IVPROC glad_glVertex2iv; +#define glVertex2iv glad_glVertex2iv +typedef void (APIENTRYP PFNGLVERTEX2SPROC)(GLshort x, GLshort y); +GLAPI PFNGLVERTEX2SPROC glad_glVertex2s; +#define glVertex2s glad_glVertex2s +typedef void (APIENTRYP PFNGLVERTEX2SVPROC)(const GLshort *v); +GLAPI PFNGLVERTEX2SVPROC glad_glVertex2sv; +#define glVertex2sv glad_glVertex2sv +typedef void (APIENTRYP PFNGLVERTEX3DPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLVERTEX3DPROC glad_glVertex3d; +#define glVertex3d glad_glVertex3d +typedef void (APIENTRYP PFNGLVERTEX3DVPROC)(const GLdouble *v); +GLAPI PFNGLVERTEX3DVPROC glad_glVertex3dv; +#define glVertex3dv glad_glVertex3dv +typedef void (APIENTRYP PFNGLVERTEX3FPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLVERTEX3FPROC glad_glVertex3f; +#define glVertex3f glad_glVertex3f +typedef void (APIENTRYP PFNGLVERTEX3FVPROC)(const GLfloat *v); +GLAPI PFNGLVERTEX3FVPROC glad_glVertex3fv; +#define glVertex3fv glad_glVertex3fv +typedef void (APIENTRYP PFNGLVERTEX3IPROC)(GLint x, GLint y, GLint z); +GLAPI PFNGLVERTEX3IPROC glad_glVertex3i; +#define glVertex3i glad_glVertex3i +typedef void (APIENTRYP PFNGLVERTEX3IVPROC)(const GLint *v); +GLAPI PFNGLVERTEX3IVPROC glad_glVertex3iv; +#define glVertex3iv glad_glVertex3iv +typedef void (APIENTRYP PFNGLVERTEX3SPROC)(GLshort x, GLshort y, GLshort z); +GLAPI PFNGLVERTEX3SPROC glad_glVertex3s; +#define glVertex3s glad_glVertex3s +typedef void (APIENTRYP PFNGLVERTEX3SVPROC)(const GLshort *v); +GLAPI PFNGLVERTEX3SVPROC glad_glVertex3sv; +#define glVertex3sv glad_glVertex3sv +typedef void (APIENTRYP PFNGLVERTEX4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLVERTEX4DPROC glad_glVertex4d; +#define glVertex4d glad_glVertex4d +typedef void (APIENTRYP PFNGLVERTEX4DVPROC)(const GLdouble *v); +GLAPI PFNGLVERTEX4DVPROC glad_glVertex4dv; +#define glVertex4dv glad_glVertex4dv +typedef void (APIENTRYP PFNGLVERTEX4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI PFNGLVERTEX4FPROC glad_glVertex4f; +#define glVertex4f glad_glVertex4f +typedef void (APIENTRYP PFNGLVERTEX4FVPROC)(const GLfloat *v); +GLAPI PFNGLVERTEX4FVPROC glad_glVertex4fv; +#define glVertex4fv glad_glVertex4fv +typedef void (APIENTRYP PFNGLVERTEX4IPROC)(GLint x, GLint y, GLint z, GLint w); +GLAPI PFNGLVERTEX4IPROC glad_glVertex4i; +#define glVertex4i glad_glVertex4i +typedef void (APIENTRYP PFNGLVERTEX4IVPROC)(const GLint *v); +GLAPI PFNGLVERTEX4IVPROC glad_glVertex4iv; +#define glVertex4iv glad_glVertex4iv +typedef void (APIENTRYP PFNGLVERTEX4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI PFNGLVERTEX4SPROC glad_glVertex4s; +#define glVertex4s glad_glVertex4s +typedef void (APIENTRYP PFNGLVERTEX4SVPROC)(const GLshort *v); +GLAPI PFNGLVERTEX4SVPROC glad_glVertex4sv; +#define glVertex4sv glad_glVertex4sv +typedef void (APIENTRYP PFNGLCLIPPLANEPROC)(GLenum plane, const GLdouble *equation); +GLAPI PFNGLCLIPPLANEPROC glad_glClipPlane; +#define glClipPlane glad_glClipPlane +typedef void (APIENTRYP PFNGLCOLORMATERIALPROC)(GLenum face, GLenum mode); +GLAPI PFNGLCOLORMATERIALPROC glad_glColorMaterial; +#define glColorMaterial glad_glColorMaterial +typedef void (APIENTRYP PFNGLFOGFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLFOGFPROC glad_glFogf; +#define glFogf glad_glFogf +typedef void (APIENTRYP PFNGLFOGFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLFOGFVPROC glad_glFogfv; +#define glFogfv glad_glFogfv +typedef void (APIENTRYP PFNGLFOGIPROC)(GLenum pname, GLint param); +GLAPI PFNGLFOGIPROC glad_glFogi; +#define glFogi glad_glFogi +typedef void (APIENTRYP PFNGLFOGIVPROC)(GLenum pname, const GLint *params); +GLAPI PFNGLFOGIVPROC glad_glFogiv; +#define glFogiv glad_glFogiv +typedef void (APIENTRYP PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param); +GLAPI PFNGLLIGHTFPROC glad_glLightf; +#define glLightf glad_glLightf +typedef void (APIENTRYP PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat *params); +GLAPI PFNGLLIGHTFVPROC glad_glLightfv; +#define glLightfv glad_glLightfv +typedef void (APIENTRYP PFNGLLIGHTIPROC)(GLenum light, GLenum pname, GLint param); +GLAPI PFNGLLIGHTIPROC glad_glLighti; +#define glLighti glad_glLighti +typedef void (APIENTRYP PFNGLLIGHTIVPROC)(GLenum light, GLenum pname, const GLint *params); +GLAPI PFNGLLIGHTIVPROC glad_glLightiv; +#define glLightiv glad_glLightiv +typedef void (APIENTRYP PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLLIGHTMODELFPROC glad_glLightModelf; +#define glLightModelf glad_glLightModelf +typedef void (APIENTRYP PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLLIGHTMODELFVPROC glad_glLightModelfv; +#define glLightModelfv glad_glLightModelfv +typedef void (APIENTRYP PFNGLLIGHTMODELIPROC)(GLenum pname, GLint param); +GLAPI PFNGLLIGHTMODELIPROC glad_glLightModeli; +#define glLightModeli glad_glLightModeli +typedef void (APIENTRYP PFNGLLIGHTMODELIVPROC)(GLenum pname, const GLint *params); +GLAPI PFNGLLIGHTMODELIVPROC glad_glLightModeliv; +#define glLightModeliv glad_glLightModeliv +typedef void (APIENTRYP PFNGLLINESTIPPLEPROC)(GLint factor, GLushort pattern); +GLAPI PFNGLLINESTIPPLEPROC glad_glLineStipple; +#define glLineStipple glad_glLineStipple +typedef void (APIENTRYP PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param); +GLAPI PFNGLMATERIALFPROC glad_glMaterialf; +#define glMaterialf glad_glMaterialf +typedef void (APIENTRYP PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat *params); +GLAPI PFNGLMATERIALFVPROC glad_glMaterialfv; +#define glMaterialfv glad_glMaterialfv +typedef void (APIENTRYP PFNGLMATERIALIPROC)(GLenum face, GLenum pname, GLint param); +GLAPI PFNGLMATERIALIPROC glad_glMateriali; +#define glMateriali glad_glMateriali +typedef void (APIENTRYP PFNGLMATERIALIVPROC)(GLenum face, GLenum pname, const GLint *params); +GLAPI PFNGLMATERIALIVPROC glad_glMaterialiv; +#define glMaterialiv glad_glMaterialiv +typedef void (APIENTRYP PFNGLPOLYGONSTIPPLEPROC)(const GLubyte *mask); +GLAPI PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple; +#define glPolygonStipple glad_glPolygonStipple +typedef void (APIENTRYP PFNGLSHADEMODELPROC)(GLenum mode); +GLAPI PFNGLSHADEMODELPROC glad_glShadeModel; +#define glShadeModel glad_glShadeModel +typedef void (APIENTRYP PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param); +GLAPI PFNGLTEXENVFPROC glad_glTexEnvf; +#define glTexEnvf glad_glTexEnvf +typedef void (APIENTRYP PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat *params); +GLAPI PFNGLTEXENVFVPROC glad_glTexEnvfv; +#define glTexEnvfv glad_glTexEnvfv +typedef void (APIENTRYP PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param); +GLAPI PFNGLTEXENVIPROC glad_glTexEnvi; +#define glTexEnvi glad_glTexEnvi +typedef void (APIENTRYP PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint *params); +GLAPI PFNGLTEXENVIVPROC glad_glTexEnviv; +#define glTexEnviv glad_glTexEnviv +typedef void (APIENTRYP PFNGLTEXGENDPROC)(GLenum coord, GLenum pname, GLdouble param); +GLAPI PFNGLTEXGENDPROC glad_glTexGend; +#define glTexGend glad_glTexGend +typedef void (APIENTRYP PFNGLTEXGENDVPROC)(GLenum coord, GLenum pname, const GLdouble *params); +GLAPI PFNGLTEXGENDVPROC glad_glTexGendv; +#define glTexGendv glad_glTexGendv +typedef void (APIENTRYP PFNGLTEXGENFPROC)(GLenum coord, GLenum pname, GLfloat param); +GLAPI PFNGLTEXGENFPROC glad_glTexGenf; +#define glTexGenf glad_glTexGenf +typedef void (APIENTRYP PFNGLTEXGENFVPROC)(GLenum coord, GLenum pname, const GLfloat *params); +GLAPI PFNGLTEXGENFVPROC glad_glTexGenfv; +#define glTexGenfv glad_glTexGenfv +typedef void (APIENTRYP PFNGLTEXGENIPROC)(GLenum coord, GLenum pname, GLint param); +GLAPI PFNGLTEXGENIPROC glad_glTexGeni; +#define glTexGeni glad_glTexGeni +typedef void (APIENTRYP PFNGLTEXGENIVPROC)(GLenum coord, GLenum pname, const GLint *params); +GLAPI PFNGLTEXGENIVPROC glad_glTexGeniv; +#define glTexGeniv glad_glTexGeniv +typedef void (APIENTRYP PFNGLFEEDBACKBUFFERPROC)(GLsizei size, GLenum type, GLfloat *buffer); +GLAPI PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer; +#define glFeedbackBuffer glad_glFeedbackBuffer +typedef void (APIENTRYP PFNGLSELECTBUFFERPROC)(GLsizei size, GLuint *buffer); +GLAPI PFNGLSELECTBUFFERPROC glad_glSelectBuffer; +#define glSelectBuffer glad_glSelectBuffer +typedef GLint (APIENTRYP PFNGLRENDERMODEPROC)(GLenum mode); +GLAPI PFNGLRENDERMODEPROC glad_glRenderMode; +#define glRenderMode glad_glRenderMode +typedef void (APIENTRYP PFNGLINITNAMESPROC)(void); +GLAPI PFNGLINITNAMESPROC glad_glInitNames; +#define glInitNames glad_glInitNames +typedef void (APIENTRYP PFNGLLOADNAMEPROC)(GLuint name); +GLAPI PFNGLLOADNAMEPROC glad_glLoadName; +#define glLoadName glad_glLoadName +typedef void (APIENTRYP PFNGLPASSTHROUGHPROC)(GLfloat token); +GLAPI PFNGLPASSTHROUGHPROC glad_glPassThrough; +#define glPassThrough glad_glPassThrough +typedef void (APIENTRYP PFNGLPOPNAMEPROC)(void); +GLAPI PFNGLPOPNAMEPROC glad_glPopName; +#define glPopName glad_glPopName +typedef void (APIENTRYP PFNGLPUSHNAMEPROC)(GLuint name); +GLAPI PFNGLPUSHNAMEPROC glad_glPushName; +#define glPushName glad_glPushName +typedef void (APIENTRYP PFNGLCLEARACCUMPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLCLEARACCUMPROC glad_glClearAccum; +#define glClearAccum glad_glClearAccum +typedef void (APIENTRYP PFNGLCLEARINDEXPROC)(GLfloat c); +GLAPI PFNGLCLEARINDEXPROC glad_glClearIndex; +#define glClearIndex glad_glClearIndex +typedef void (APIENTRYP PFNGLINDEXMASKPROC)(GLuint mask); +GLAPI PFNGLINDEXMASKPROC glad_glIndexMask; +#define glIndexMask glad_glIndexMask +typedef void (APIENTRYP PFNGLACCUMPROC)(GLenum op, GLfloat value); +GLAPI PFNGLACCUMPROC glad_glAccum; +#define glAccum glad_glAccum +typedef void (APIENTRYP PFNGLPOPATTRIBPROC)(void); +GLAPI PFNGLPOPATTRIBPROC glad_glPopAttrib; +#define glPopAttrib glad_glPopAttrib +typedef void (APIENTRYP PFNGLPUSHATTRIBPROC)(GLbitfield mask); +GLAPI PFNGLPUSHATTRIBPROC glad_glPushAttrib; +#define glPushAttrib glad_glPushAttrib +typedef void (APIENTRYP PFNGLMAP1DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +GLAPI PFNGLMAP1DPROC glad_glMap1d; +#define glMap1d glad_glMap1d +typedef void (APIENTRYP PFNGLMAP1FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +GLAPI PFNGLMAP1FPROC glad_glMap1f; +#define glMap1f glad_glMap1f +typedef void (APIENTRYP PFNGLMAP2DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +GLAPI PFNGLMAP2DPROC glad_glMap2d; +#define glMap2d glad_glMap2d +typedef void (APIENTRYP PFNGLMAP2FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +GLAPI PFNGLMAP2FPROC glad_glMap2f; +#define glMap2f glad_glMap2f +typedef void (APIENTRYP PFNGLMAPGRID1DPROC)(GLint un, GLdouble u1, GLdouble u2); +GLAPI PFNGLMAPGRID1DPROC glad_glMapGrid1d; +#define glMapGrid1d glad_glMapGrid1d +typedef void (APIENTRYP PFNGLMAPGRID1FPROC)(GLint un, GLfloat u1, GLfloat u2); +GLAPI PFNGLMAPGRID1FPROC glad_glMapGrid1f; +#define glMapGrid1f glad_glMapGrid1f +typedef void (APIENTRYP PFNGLMAPGRID2DPROC)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +GLAPI PFNGLMAPGRID2DPROC glad_glMapGrid2d; +#define glMapGrid2d glad_glMapGrid2d +typedef void (APIENTRYP PFNGLMAPGRID2FPROC)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +GLAPI PFNGLMAPGRID2FPROC glad_glMapGrid2f; +#define glMapGrid2f glad_glMapGrid2f +typedef void (APIENTRYP PFNGLEVALCOORD1DPROC)(GLdouble u); +GLAPI PFNGLEVALCOORD1DPROC glad_glEvalCoord1d; +#define glEvalCoord1d glad_glEvalCoord1d +typedef void (APIENTRYP PFNGLEVALCOORD1DVPROC)(const GLdouble *u); +GLAPI PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv; +#define glEvalCoord1dv glad_glEvalCoord1dv +typedef void (APIENTRYP PFNGLEVALCOORD1FPROC)(GLfloat u); +GLAPI PFNGLEVALCOORD1FPROC glad_glEvalCoord1f; +#define glEvalCoord1f glad_glEvalCoord1f +typedef void (APIENTRYP PFNGLEVALCOORD1FVPROC)(const GLfloat *u); +GLAPI PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv; +#define glEvalCoord1fv glad_glEvalCoord1fv +typedef void (APIENTRYP PFNGLEVALCOORD2DPROC)(GLdouble u, GLdouble v); +GLAPI PFNGLEVALCOORD2DPROC glad_glEvalCoord2d; +#define glEvalCoord2d glad_glEvalCoord2d +typedef void (APIENTRYP PFNGLEVALCOORD2DVPROC)(const GLdouble *u); +GLAPI PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv; +#define glEvalCoord2dv glad_glEvalCoord2dv +typedef void (APIENTRYP PFNGLEVALCOORD2FPROC)(GLfloat u, GLfloat v); +GLAPI PFNGLEVALCOORD2FPROC glad_glEvalCoord2f; +#define glEvalCoord2f glad_glEvalCoord2f +typedef void (APIENTRYP PFNGLEVALCOORD2FVPROC)(const GLfloat *u); +GLAPI PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv; +#define glEvalCoord2fv glad_glEvalCoord2fv +typedef void (APIENTRYP PFNGLEVALMESH1PROC)(GLenum mode, GLint i1, GLint i2); +GLAPI PFNGLEVALMESH1PROC glad_glEvalMesh1; +#define glEvalMesh1 glad_glEvalMesh1 +typedef void (APIENTRYP PFNGLEVALPOINT1PROC)(GLint i); +GLAPI PFNGLEVALPOINT1PROC glad_glEvalPoint1; +#define glEvalPoint1 glad_glEvalPoint1 +typedef void (APIENTRYP PFNGLEVALMESH2PROC)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +GLAPI PFNGLEVALMESH2PROC glad_glEvalMesh2; +#define glEvalMesh2 glad_glEvalMesh2 +typedef void (APIENTRYP PFNGLEVALPOINT2PROC)(GLint i, GLint j); +GLAPI PFNGLEVALPOINT2PROC glad_glEvalPoint2; +#define glEvalPoint2 glad_glEvalPoint2 +typedef void (APIENTRYP PFNGLALPHAFUNCPROC)(GLenum func, GLfloat ref); +GLAPI PFNGLALPHAFUNCPROC glad_glAlphaFunc; +#define glAlphaFunc glad_glAlphaFunc +typedef void (APIENTRYP PFNGLPIXELZOOMPROC)(GLfloat xfactor, GLfloat yfactor); +GLAPI PFNGLPIXELZOOMPROC glad_glPixelZoom; +#define glPixelZoom glad_glPixelZoom +typedef void (APIENTRYP PFNGLPIXELTRANSFERFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf; +#define glPixelTransferf glad_glPixelTransferf +typedef void (APIENTRYP PFNGLPIXELTRANSFERIPROC)(GLenum pname, GLint param); +GLAPI PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi; +#define glPixelTransferi glad_glPixelTransferi +typedef void (APIENTRYP PFNGLPIXELMAPFVPROC)(GLenum map, GLsizei mapsize, const GLfloat *values); +GLAPI PFNGLPIXELMAPFVPROC glad_glPixelMapfv; +#define glPixelMapfv glad_glPixelMapfv +typedef void (APIENTRYP PFNGLPIXELMAPUIVPROC)(GLenum map, GLsizei mapsize, const GLuint *values); +GLAPI PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv; +#define glPixelMapuiv glad_glPixelMapuiv +typedef void (APIENTRYP PFNGLPIXELMAPUSVPROC)(GLenum map, GLsizei mapsize, const GLushort *values); +GLAPI PFNGLPIXELMAPUSVPROC glad_glPixelMapusv; +#define glPixelMapusv glad_glPixelMapusv +typedef void (APIENTRYP PFNGLCOPYPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +GLAPI PFNGLCOPYPIXELSPROC glad_glCopyPixels; +#define glCopyPixels glad_glCopyPixels +typedef void (APIENTRYP PFNGLDRAWPIXELSPROC)(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLDRAWPIXELSPROC glad_glDrawPixels; +#define glDrawPixels glad_glDrawPixels +typedef void (APIENTRYP PFNGLGETCLIPPLANEPROC)(GLenum plane, GLdouble *equation); +GLAPI PFNGLGETCLIPPLANEPROC glad_glGetClipPlane; +#define glGetClipPlane glad_glGetClipPlane +typedef void (APIENTRYP PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat *params); +GLAPI PFNGLGETLIGHTFVPROC glad_glGetLightfv; +#define glGetLightfv glad_glGetLightfv +typedef void (APIENTRYP PFNGLGETLIGHTIVPROC)(GLenum light, GLenum pname, GLint *params); +GLAPI PFNGLGETLIGHTIVPROC glad_glGetLightiv; +#define glGetLightiv glad_glGetLightiv +typedef void (APIENTRYP PFNGLGETMAPDVPROC)(GLenum target, GLenum query, GLdouble *v); +GLAPI PFNGLGETMAPDVPROC glad_glGetMapdv; +#define glGetMapdv glad_glGetMapdv +typedef void (APIENTRYP PFNGLGETMAPFVPROC)(GLenum target, GLenum query, GLfloat *v); +GLAPI PFNGLGETMAPFVPROC glad_glGetMapfv; +#define glGetMapfv glad_glGetMapfv +typedef void (APIENTRYP PFNGLGETMAPIVPROC)(GLenum target, GLenum query, GLint *v); +GLAPI PFNGLGETMAPIVPROC glad_glGetMapiv; +#define glGetMapiv glad_glGetMapiv +typedef void (APIENTRYP PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat *params); +GLAPI PFNGLGETMATERIALFVPROC glad_glGetMaterialfv; +#define glGetMaterialfv glad_glGetMaterialfv +typedef void (APIENTRYP PFNGLGETMATERIALIVPROC)(GLenum face, GLenum pname, GLint *params); +GLAPI PFNGLGETMATERIALIVPROC glad_glGetMaterialiv; +#define glGetMaterialiv glad_glGetMaterialiv +typedef void (APIENTRYP PFNGLGETPIXELMAPFVPROC)(GLenum map, GLfloat *values); +GLAPI PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv; +#define glGetPixelMapfv glad_glGetPixelMapfv +typedef void (APIENTRYP PFNGLGETPIXELMAPUIVPROC)(GLenum map, GLuint *values); +GLAPI PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv; +#define glGetPixelMapuiv glad_glGetPixelMapuiv +typedef void (APIENTRYP PFNGLGETPIXELMAPUSVPROC)(GLenum map, GLushort *values); +GLAPI PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv; +#define glGetPixelMapusv glad_glGetPixelMapusv +typedef void (APIENTRYP PFNGLGETPOLYGONSTIPPLEPROC)(GLubyte *mask); +GLAPI PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple; +#define glGetPolygonStipple glad_glGetPolygonStipple +typedef void (APIENTRYP PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv; +#define glGetTexEnvfv glad_glGetTexEnvfv +typedef void (APIENTRYP PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXENVIVPROC glad_glGetTexEnviv; +#define glGetTexEnviv glad_glGetTexEnviv +typedef void (APIENTRYP PFNGLGETTEXGENDVPROC)(GLenum coord, GLenum pname, GLdouble *params); +GLAPI PFNGLGETTEXGENDVPROC glad_glGetTexGendv; +#define glGetTexGendv glad_glGetTexGendv +typedef void (APIENTRYP PFNGLGETTEXGENFVPROC)(GLenum coord, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXGENFVPROC glad_glGetTexGenfv; +#define glGetTexGenfv glad_glGetTexGenfv +typedef void (APIENTRYP PFNGLGETTEXGENIVPROC)(GLenum coord, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXGENIVPROC glad_glGetTexGeniv; +#define glGetTexGeniv glad_glGetTexGeniv +typedef GLboolean (APIENTRYP PFNGLISLISTPROC)(GLuint list); +GLAPI PFNGLISLISTPROC glad_glIsList; +#define glIsList glad_glIsList +typedef void (APIENTRYP PFNGLFRUSTUMPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI PFNGLFRUSTUMPROC glad_glFrustum; +#define glFrustum glad_glFrustum +typedef void (APIENTRYP PFNGLLOADIDENTITYPROC)(void); +GLAPI PFNGLLOADIDENTITYPROC glad_glLoadIdentity; +#define glLoadIdentity glad_glLoadIdentity +typedef void (APIENTRYP PFNGLLOADMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLLOADMATRIXFPROC glad_glLoadMatrixf; +#define glLoadMatrixf glad_glLoadMatrixf +typedef void (APIENTRYP PFNGLLOADMATRIXDPROC)(const GLdouble *m); +GLAPI PFNGLLOADMATRIXDPROC glad_glLoadMatrixd; +#define glLoadMatrixd glad_glLoadMatrixd +typedef void (APIENTRYP PFNGLMATRIXMODEPROC)(GLenum mode); +GLAPI PFNGLMATRIXMODEPROC glad_glMatrixMode; +#define glMatrixMode glad_glMatrixMode +typedef void (APIENTRYP PFNGLMULTMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLMULTMATRIXFPROC glad_glMultMatrixf; +#define glMultMatrixf glad_glMultMatrixf +typedef void (APIENTRYP PFNGLMULTMATRIXDPROC)(const GLdouble *m); +GLAPI PFNGLMULTMATRIXDPROC glad_glMultMatrixd; +#define glMultMatrixd glad_glMultMatrixd +typedef void (APIENTRYP PFNGLORTHOPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI PFNGLORTHOPROC glad_glOrtho; +#define glOrtho glad_glOrtho +typedef void (APIENTRYP PFNGLPOPMATRIXPROC)(void); +GLAPI PFNGLPOPMATRIXPROC glad_glPopMatrix; +#define glPopMatrix glad_glPopMatrix +typedef void (APIENTRYP PFNGLPUSHMATRIXPROC)(void); +GLAPI PFNGLPUSHMATRIXPROC glad_glPushMatrix; +#define glPushMatrix glad_glPushMatrix +typedef void (APIENTRYP PFNGLROTATEDPROC)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLROTATEDPROC glad_glRotated; +#define glRotated glad_glRotated +typedef void (APIENTRYP PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLROTATEFPROC glad_glRotatef; +#define glRotatef glad_glRotatef +typedef void (APIENTRYP PFNGLSCALEDPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLSCALEDPROC glad_glScaled; +#define glScaled glad_glScaled +typedef void (APIENTRYP PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLSCALEFPROC glad_glScalef; +#define glScalef glad_glScalef +typedef void (APIENTRYP PFNGLTRANSLATEDPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLTRANSLATEDPROC glad_glTranslated; +#define glTranslated glad_glTranslated +typedef void (APIENTRYP PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLTRANSLATEFPROC glad_glTranslatef; +#define glTranslatef glad_glTranslatef +#endif +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 +GLAPI int GLAD_GL_VERSION_1_1; +typedef void (APIENTRYP PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count); +GLAPI PFNGLDRAWARRAYSPROC glad_glDrawArrays; +#define glDrawArrays glad_glDrawArrays +typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices); +GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements; +#define glDrawElements glad_glDrawElements +typedef void (APIENTRYP PFNGLGETPOINTERVPROC)(GLenum pname, void **params); +GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv; +#define glGetPointerv glad_glGetPointerv +typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units); +GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; +#define glPolygonOffset glad_glPolygonOffset +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; +#define glCopyTexImage1D glad_glCopyTexImage1D +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; +#define glCopyTexImage2D glad_glCopyTexImage2D +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; +#define glCopyTexSubImage1D glad_glCopyTexSubImage1D +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; +#define glCopyTexSubImage2D glad_glCopyTexSubImage2D +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; +#define glTexSubImage1D glad_glTexSubImage1D +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; +#define glTexSubImage2D glad_glTexSubImage2D +typedef void (APIENTRYP PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture); +GLAPI PFNGLBINDTEXTUREPROC glad_glBindTexture; +#define glBindTexture glad_glBindTexture +typedef void (APIENTRYP PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures); +GLAPI PFNGLDELETETEXTURESPROC glad_glDeleteTextures; +#define glDeleteTextures glad_glDeleteTextures +typedef void (APIENTRYP PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures); +GLAPI PFNGLGENTEXTURESPROC glad_glGenTextures; +#define glGenTextures glad_glGenTextures +typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture); +GLAPI PFNGLISTEXTUREPROC glad_glIsTexture; +#define glIsTexture glad_glIsTexture +typedef void (APIENTRYP PFNGLARRAYELEMENTPROC)(GLint i); +GLAPI PFNGLARRAYELEMENTPROC glad_glArrayElement; +#define glArrayElement glad_glArrayElement +typedef void (APIENTRYP PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLCOLORPOINTERPROC glad_glColorPointer; +#define glColorPointer glad_glColorPointer +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEPROC)(GLenum array); +GLAPI PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState; +#define glDisableClientState glad_glDisableClientState +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERPROC)(GLsizei stride, const void *pointer); +GLAPI PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer; +#define glEdgeFlagPointer glad_glEdgeFlagPointer +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEPROC)(GLenum array); +GLAPI PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState; +#define glEnableClientState glad_glEnableClientState +typedef void (APIENTRYP PFNGLINDEXPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLINDEXPOINTERPROC glad_glIndexPointer; +#define glIndexPointer glad_glIndexPointer +typedef void (APIENTRYP PFNGLINTERLEAVEDARRAYSPROC)(GLenum format, GLsizei stride, const void *pointer); +GLAPI PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays; +#define glInterleavedArrays glad_glInterleavedArrays +typedef void (APIENTRYP PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLNORMALPOINTERPROC glad_glNormalPointer; +#define glNormalPointer glad_glNormalPointer +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer; +#define glTexCoordPointer glad_glTexCoordPointer +typedef void (APIENTRYP PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXPOINTERPROC glad_glVertexPointer; +#define glVertexPointer glad_glVertexPointer +typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTPROC)(GLsizei n, const GLuint *textures, GLboolean *residences); +GLAPI PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident; +#define glAreTexturesResident glad_glAreTexturesResident +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESPROC)(GLsizei n, const GLuint *textures, const GLfloat *priorities); +GLAPI PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures; +#define glPrioritizeTextures glad_glPrioritizeTextures +typedef void (APIENTRYP PFNGLINDEXUBPROC)(GLubyte c); +GLAPI PFNGLINDEXUBPROC glad_glIndexub; +#define glIndexub glad_glIndexub +typedef void (APIENTRYP PFNGLINDEXUBVPROC)(const GLubyte *c); +GLAPI PFNGLINDEXUBVPROC glad_glIndexubv; +#define glIndexubv glad_glIndexubv +typedef void (APIENTRYP PFNGLPOPCLIENTATTRIBPROC)(void); +GLAPI PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib; +#define glPopClientAttrib glad_glPopClientAttrib +typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBPROC)(GLbitfield mask); +GLAPI PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib; +#define glPushClientAttrib glad_glPushClientAttrib +#endif +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +GLAPI int GLAD_GL_VERSION_1_2; +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +GLAPI PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; +#define glDrawRangeElements glad_glDrawRangeElements +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXIMAGE3DPROC glad_glTexImage3D; +#define glTexImage3D glad_glTexImage3D +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; +#define glTexSubImage3D glad_glTexSubImage3D +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; +#define glCopyTexSubImage3D glad_glCopyTexSubImage3D +#endif +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +GLAPI int GLAD_GL_VERSION_1_3; +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture); +GLAPI PFNGLACTIVETEXTUREPROC glad_glActiveTexture; +#define glActiveTexture glad_glActiveTexture +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert); +GLAPI PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; +#define glSampleCoverage glad_glSampleCoverage +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; +#define glCompressedTexImage3D glad_glCompressedTexImage3D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; +#define glCompressedTexImage2D glad_glCompressedTexImage2D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; +#define glCompressedTexImage1D glad_glCompressedTexImage1D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; +#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; +#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; +#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img); +GLAPI PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; +#define glGetCompressedTexImage glad_glGetCompressedTexImage +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture); +GLAPI PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture; +#define glClientActiveTexture glad_glClientActiveTexture +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s); +GLAPI PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d; +#define glMultiTexCoord1d glad_glMultiTexCoord1d +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble *v); +GLAPI PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv; +#define glMultiTexCoord1dv glad_glMultiTexCoord1dv +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s); +GLAPI PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f; +#define glMultiTexCoord1f glad_glMultiTexCoord1f +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat *v); +GLAPI PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv; +#define glMultiTexCoord1fv glad_glMultiTexCoord1fv +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s); +GLAPI PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i; +#define glMultiTexCoord1i glad_glMultiTexCoord1i +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint *v); +GLAPI PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv; +#define glMultiTexCoord1iv glad_glMultiTexCoord1iv +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s); +GLAPI PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s; +#define glMultiTexCoord1s glad_glMultiTexCoord1s +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort *v); +GLAPI PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv; +#define glMultiTexCoord1sv glad_glMultiTexCoord1sv +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t); +GLAPI PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d; +#define glMultiTexCoord2d glad_glMultiTexCoord2d +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble *v); +GLAPI PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv; +#define glMultiTexCoord2dv glad_glMultiTexCoord2dv +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t); +GLAPI PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f; +#define glMultiTexCoord2f glad_glMultiTexCoord2f +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat *v); +GLAPI PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv; +#define glMultiTexCoord2fv glad_glMultiTexCoord2fv +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t); +GLAPI PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i; +#define glMultiTexCoord2i glad_glMultiTexCoord2i +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint *v); +GLAPI PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv; +#define glMultiTexCoord2iv glad_glMultiTexCoord2iv +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t); +GLAPI PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s; +#define glMultiTexCoord2s glad_glMultiTexCoord2s +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort *v); +GLAPI PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv; +#define glMultiTexCoord2sv glad_glMultiTexCoord2sv +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d; +#define glMultiTexCoord3d glad_glMultiTexCoord3d +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble *v); +GLAPI PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv; +#define glMultiTexCoord3dv glad_glMultiTexCoord3dv +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f; +#define glMultiTexCoord3f glad_glMultiTexCoord3f +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat *v); +GLAPI PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv; +#define glMultiTexCoord3fv glad_glMultiTexCoord3fv +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r); +GLAPI PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i; +#define glMultiTexCoord3i glad_glMultiTexCoord3i +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint *v); +GLAPI PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv; +#define glMultiTexCoord3iv glad_glMultiTexCoord3iv +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s; +#define glMultiTexCoord3s glad_glMultiTexCoord3s +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort *v); +GLAPI PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv; +#define glMultiTexCoord3sv glad_glMultiTexCoord3sv +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d; +#define glMultiTexCoord4d glad_glMultiTexCoord4d +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble *v); +GLAPI PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv; +#define glMultiTexCoord4dv glad_glMultiTexCoord4dv +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f; +#define glMultiTexCoord4f glad_glMultiTexCoord4f +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat *v); +GLAPI PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv; +#define glMultiTexCoord4fv glad_glMultiTexCoord4fv +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i; +#define glMultiTexCoord4i glad_glMultiTexCoord4i +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint *v); +GLAPI PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv; +#define glMultiTexCoord4iv glad_glMultiTexCoord4iv +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s; +#define glMultiTexCoord4s glad_glMultiTexCoord4s +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort *v); +GLAPI PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv; +#define glMultiTexCoord4sv glad_glMultiTexCoord4sv +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf; +#define glLoadTransposeMatrixf glad_glLoadTransposeMatrixf +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble *m); +GLAPI PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd; +#define glLoadTransposeMatrixd glad_glLoadTransposeMatrixd +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf; +#define glMultTransposeMatrixf glad_glMultTransposeMatrixf +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble *m); +GLAPI PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd; +#define glMultTransposeMatrixd glad_glMultTransposeMatrixd +#endif +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +GLAPI int GLAD_GL_VERSION_1_4; +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +GLAPI PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; +#define glBlendFuncSeparate glad_glBlendFuncSeparate +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +GLAPI PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; +#define glMultiDrawArrays glad_glMultiDrawArrays +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); +GLAPI PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; +#define glMultiDrawElements glad_glMultiDrawElements +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; +#define glPointParameterf glad_glPointParameterf +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; +#define glPointParameterfv glad_glPointParameterfv +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param); +GLAPI PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; +#define glPointParameteri glad_glPointParameteri +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params); +GLAPI PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; +#define glPointParameteriv glad_glPointParameteriv +typedef void (APIENTRYP PFNGLFOGCOORDFPROC)(GLfloat coord); +GLAPI PFNGLFOGCOORDFPROC glad_glFogCoordf; +#define glFogCoordf glad_glFogCoordf +typedef void (APIENTRYP PFNGLFOGCOORDFVPROC)(const GLfloat *coord); +GLAPI PFNGLFOGCOORDFVPROC glad_glFogCoordfv; +#define glFogCoordfv glad_glFogCoordfv +typedef void (APIENTRYP PFNGLFOGCOORDDPROC)(GLdouble coord); +GLAPI PFNGLFOGCOORDDPROC glad_glFogCoordd; +#define glFogCoordd glad_glFogCoordd +typedef void (APIENTRYP PFNGLFOGCOORDDVPROC)(const GLdouble *coord); +GLAPI PFNGLFOGCOORDDVPROC glad_glFogCoorddv; +#define glFogCoorddv glad_glFogCoorddv +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer; +#define glFogCoordPointer glad_glFogCoordPointer +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); +GLAPI PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b; +#define glSecondaryColor3b glad_glSecondaryColor3b +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte *v); +GLAPI PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv; +#define glSecondaryColor3bv glad_glSecondaryColor3bv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); +GLAPI PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d; +#define glSecondaryColor3d glad_glSecondaryColor3d +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble *v); +GLAPI PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv; +#define glSecondaryColor3dv glad_glSecondaryColor3dv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); +GLAPI PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f; +#define glSecondaryColor3f glad_glSecondaryColor3f +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat *v); +GLAPI PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv; +#define glSecondaryColor3fv glad_glSecondaryColor3fv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue); +GLAPI PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i; +#define glSecondaryColor3i glad_glSecondaryColor3i +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC)(const GLint *v); +GLAPI PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv; +#define glSecondaryColor3iv glad_glSecondaryColor3iv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); +GLAPI PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s; +#define glSecondaryColor3s glad_glSecondaryColor3s +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC)(const GLshort *v); +GLAPI PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv; +#define glSecondaryColor3sv glad_glSecondaryColor3sv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); +GLAPI PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub; +#define glSecondaryColor3ub glad_glSecondaryColor3ub +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte *v); +GLAPI PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv; +#define glSecondaryColor3ubv glad_glSecondaryColor3ubv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); +GLAPI PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui; +#define glSecondaryColor3ui glad_glSecondaryColor3ui +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint *v); +GLAPI PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv; +#define glSecondaryColor3uiv glad_glSecondaryColor3uiv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); +GLAPI PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us; +#define glSecondaryColor3us glad_glSecondaryColor3us +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC)(const GLushort *v); +GLAPI PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv; +#define glSecondaryColor3usv glad_glSecondaryColor3usv +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer; +#define glSecondaryColorPointer glad_glSecondaryColorPointer +typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y); +GLAPI PFNGLWINDOWPOS2DPROC glad_glWindowPos2d; +#define glWindowPos2d glad_glWindowPos2d +typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC)(const GLdouble *v); +GLAPI PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv; +#define glWindowPos2dv glad_glWindowPos2dv +typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y); +GLAPI PFNGLWINDOWPOS2FPROC glad_glWindowPos2f; +#define glWindowPos2f glad_glWindowPos2f +typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC)(const GLfloat *v); +GLAPI PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv; +#define glWindowPos2fv glad_glWindowPos2fv +typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC)(GLint x, GLint y); +GLAPI PFNGLWINDOWPOS2IPROC glad_glWindowPos2i; +#define glWindowPos2i glad_glWindowPos2i +typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC)(const GLint *v); +GLAPI PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv; +#define glWindowPos2iv glad_glWindowPos2iv +typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y); +GLAPI PFNGLWINDOWPOS2SPROC glad_glWindowPos2s; +#define glWindowPos2s glad_glWindowPos2s +typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC)(const GLshort *v); +GLAPI PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv; +#define glWindowPos2sv glad_glWindowPos2sv +typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLWINDOWPOS3DPROC glad_glWindowPos3d; +#define glWindowPos3d glad_glWindowPos3d +typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC)(const GLdouble *v); +GLAPI PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv; +#define glWindowPos3dv glad_glWindowPos3dv +typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLWINDOWPOS3FPROC glad_glWindowPos3f; +#define glWindowPos3f glad_glWindowPos3f +typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC)(const GLfloat *v); +GLAPI PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv; +#define glWindowPos3fv glad_glWindowPos3fv +typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z); +GLAPI PFNGLWINDOWPOS3IPROC glad_glWindowPos3i; +#define glWindowPos3i glad_glWindowPos3i +typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC)(const GLint *v); +GLAPI PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv; +#define glWindowPos3iv glad_glWindowPos3iv +typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z); +GLAPI PFNGLWINDOWPOS3SPROC glad_glWindowPos3s; +#define glWindowPos3s glad_glWindowPos3s +typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC)(const GLshort *v); +GLAPI PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv; +#define glWindowPos3sv glad_glWindowPos3sv +typedef void (APIENTRYP PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLBLENDCOLORPROC glad_glBlendColor; +#define glBlendColor glad_glBlendColor +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC)(GLenum mode); +GLAPI PFNGLBLENDEQUATIONPROC glad_glBlendEquation; +#define glBlendEquation glad_glBlendEquation +#endif +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +GLAPI int GLAD_GL_VERSION_1_5; +typedef void (APIENTRYP PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids); +GLAPI PFNGLGENQUERIESPROC glad_glGenQueries; +#define glGenQueries glad_glGenQueries +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids); +GLAPI PFNGLDELETEQUERIESPROC glad_glDeleteQueries; +#define glDeleteQueries glad_glDeleteQueries +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC)(GLuint id); +GLAPI PFNGLISQUERYPROC glad_glIsQuery; +#define glIsQuery glad_glIsQuery +typedef void (APIENTRYP PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); +GLAPI PFNGLBEGINQUERYPROC glad_glBeginQuery; +#define glBeginQuery glad_glBeginQuery +typedef void (APIENTRYP PFNGLENDQUERYPROC)(GLenum target); +GLAPI PFNGLENDQUERYPROC glad_glEndQuery; +#define glEndQuery glad_glEndQuery +typedef void (APIENTRYP PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETQUERYIVPROC glad_glGetQueryiv; +#define glGetQueryiv glad_glGetQueryiv +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params); +GLAPI PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; +#define glGetQueryObjectiv glad_glGetQueryObjectiv +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params); +GLAPI PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; +#define glGetQueryObjectuiv glad_glGetQueryObjectuiv +typedef void (APIENTRYP PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); +GLAPI PFNGLBINDBUFFERPROC glad_glBindBuffer; +#define glBindBuffer glad_glBindBuffer +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers); +GLAPI PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; +#define glDeleteBuffers glad_glDeleteBuffers +typedef void (APIENTRYP PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers); +GLAPI PFNGLGENBUFFERSPROC glad_glGenBuffers; +#define glGenBuffers glad_glGenBuffers +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC)(GLuint buffer); +GLAPI PFNGLISBUFFERPROC glad_glIsBuffer; +#define glIsBuffer glad_glIsBuffer +typedef void (APIENTRYP PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void *data, GLenum usage); +GLAPI PFNGLBUFFERDATAPROC glad_glBufferData; +#define glBufferData glad_glBufferData +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; +#define glBufferSubData glad_glBufferSubData +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void *data); +GLAPI PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; +#define glGetBufferSubData glad_glGetBufferSubData +typedef void * (APIENTRYP PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); +GLAPI PFNGLMAPBUFFERPROC glad_glMapBuffer; +#define glMapBuffer glad_glMapBuffer +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC)(GLenum target); +GLAPI PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; +#define glUnmapBuffer glad_glUnmapBuffer +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; +#define glGetBufferParameteriv glad_glGetBufferParameteriv +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void **params); +GLAPI PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; +#define glGetBufferPointerv glad_glGetBufferPointerv +#endif +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +GLAPI int GLAD_GL_VERSION_2_0; +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha); +GLAPI PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; +#define glBlendEquationSeparate glad_glBlendEquationSeparate +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs); +GLAPI PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; +#define glDrawBuffers glad_glDrawBuffers +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; +#define glStencilOpSeparate glad_glStencilOpSeparate +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask); +GLAPI PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; +#define glStencilFuncSeparate glad_glStencilFuncSeparate +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask); +GLAPI PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; +#define glStencilMaskSeparate glad_glStencilMaskSeparate +typedef void (APIENTRYP PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); +GLAPI PFNGLATTACHSHADERPROC glad_glAttachShader; +#define glAttachShader glad_glAttachShader +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name); +GLAPI PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; +#define glBindAttribLocation glad_glBindAttribLocation +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader); +GLAPI PFNGLCOMPILESHADERPROC glad_glCompileShader; +#define glCompileShader glad_glCompileShader +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC)(void); +GLAPI PFNGLCREATEPROGRAMPROC glad_glCreateProgram; +#define glCreateProgram glad_glCreateProgram +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC)(GLenum type); +GLAPI PFNGLCREATESHADERPROC glad_glCreateShader; +#define glCreateShader glad_glCreateShader +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC)(GLuint program); +GLAPI PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; +#define glDeleteProgram glad_glDeleteProgram +typedef void (APIENTRYP PFNGLDELETESHADERPROC)(GLuint shader); +GLAPI PFNGLDELETESHADERPROC glad_glDeleteShader; +#define glDeleteShader glad_glDeleteShader +typedef void (APIENTRYP PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); +GLAPI PFNGLDETACHSHADERPROC glad_glDetachShader; +#define glDetachShader glad_glDetachShader +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); +GLAPI PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; +#define glDisableVertexAttribArray glad_glDisableVertexAttribArray +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); +GLAPI PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; +#define glEnableVertexAttribArray glad_glEnableVertexAttribArray +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; +#define glGetActiveAttrib glad_glGetActiveAttrib +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; +#define glGetActiveUniform glad_glGetActiveUniform +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLAPI PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; +#define glGetAttachedShaders glad_glGetAttachedShaders +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name); +GLAPI PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; +#define glGetAttribLocation glad_glGetAttribLocation +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params); +GLAPI PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; +#define glGetProgramiv glad_glGetProgramiv +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; +#define glGetProgramInfoLog glad_glGetProgramInfoLog +typedef void (APIENTRYP PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params); +GLAPI PFNGLGETSHADERIVPROC glad_glGetShaderiv; +#define glGetShaderiv glad_glGetShaderiv +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; +#define glGetShaderInfoLog glad_glGetShaderInfoLog +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +GLAPI PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; +#define glGetShaderSource glad_glGetShaderSource +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name); +GLAPI PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; +#define glGetUniformLocation glad_glGetUniformLocation +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params); +GLAPI PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; +#define glGetUniformfv glad_glGetUniformfv +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params); +GLAPI PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; +#define glGetUniformiv glad_glGetUniformiv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params); +GLAPI PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; +#define glGetVertexAttribdv glad_glGetVertexAttribdv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params); +GLAPI PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; +#define glGetVertexAttribfv glad_glGetVertexAttribfv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params); +GLAPI PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; +#define glGetVertexAttribiv glad_glGetVertexAttribiv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void **pointer); +GLAPI PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; +#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC)(GLuint program); +GLAPI PFNGLISPROGRAMPROC glad_glIsProgram; +#define glIsProgram glad_glIsProgram +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC)(GLuint shader); +GLAPI PFNGLISSHADERPROC glad_glIsShader; +#define glIsShader glad_glIsShader +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC)(GLuint program); +GLAPI PFNGLLINKPROGRAMPROC glad_glLinkProgram; +#define glLinkProgram glad_glLinkProgram +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +GLAPI PFNGLSHADERSOURCEPROC glad_glShaderSource; +#define glShaderSource glad_glShaderSource +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC)(GLuint program); +GLAPI PFNGLUSEPROGRAMPROC glad_glUseProgram; +#define glUseProgram glad_glUseProgram +typedef void (APIENTRYP PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); +GLAPI PFNGLUNIFORM1FPROC glad_glUniform1f; +#define glUniform1f glad_glUniform1f +typedef void (APIENTRYP PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); +GLAPI PFNGLUNIFORM2FPROC glad_glUniform2f; +#define glUniform2f glad_glUniform2f +typedef void (APIENTRYP PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI PFNGLUNIFORM3FPROC glad_glUniform3f; +#define glUniform3f glad_glUniform3f +typedef void (APIENTRYP PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI PFNGLUNIFORM4FPROC glad_glUniform4f; +#define glUniform4f glad_glUniform4f +typedef void (APIENTRYP PFNGLUNIFORM1IPROC)(GLint location, GLint v0); +GLAPI PFNGLUNIFORM1IPROC glad_glUniform1i; +#define glUniform1i glad_glUniform1i +typedef void (APIENTRYP PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); +GLAPI PFNGLUNIFORM2IPROC glad_glUniform2i; +#define glUniform2i glad_glUniform2i +typedef void (APIENTRYP PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); +GLAPI PFNGLUNIFORM3IPROC glad_glUniform3i; +#define glUniform3i glad_glUniform3i +typedef void (APIENTRYP PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI PFNGLUNIFORM4IPROC glad_glUniform4i; +#define glUniform4i glad_glUniform4i +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLUNIFORM1FVPROC glad_glUniform1fv; +#define glUniform1fv glad_glUniform1fv +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLUNIFORM2FVPROC glad_glUniform2fv; +#define glUniform2fv glad_glUniform2fv +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLUNIFORM3FVPROC glad_glUniform3fv; +#define glUniform3fv glad_glUniform3fv +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLUNIFORM4FVPROC glad_glUniform4fv; +#define glUniform4fv glad_glUniform4fv +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLUNIFORM1IVPROC glad_glUniform1iv; +#define glUniform1iv glad_glUniform1iv +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLUNIFORM2IVPROC glad_glUniform2iv; +#define glUniform2iv glad_glUniform2iv +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLUNIFORM3IVPROC glad_glUniform3iv; +#define glUniform3iv glad_glUniform3iv +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLUNIFORM4IVPROC glad_glUniform4iv; +#define glUniform4iv glad_glUniform4iv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; +#define glUniformMatrix2fv glad_glUniformMatrix2fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; +#define glUniformMatrix3fv glad_glUniformMatrix3fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; +#define glUniformMatrix4fv glad_glUniformMatrix4fv +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC)(GLuint program); +GLAPI PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; +#define glValidateProgram glad_glValidateProgram +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); +GLAPI PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; +#define glVertexAttrib1d glad_glVertexAttrib1d +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; +#define glVertexAttrib1dv glad_glVertexAttrib1dv +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); +GLAPI PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; +#define glVertexAttrib1f glad_glVertexAttrib1f +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; +#define glVertexAttrib1fv glad_glVertexAttrib1fv +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); +GLAPI PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; +#define glVertexAttrib1s glad_glVertexAttrib1s +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; +#define glVertexAttrib1sv glad_glVertexAttrib1sv +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); +GLAPI PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; +#define glVertexAttrib2d glad_glVertexAttrib2d +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; +#define glVertexAttrib2dv glad_glVertexAttrib2dv +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); +GLAPI PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; +#define glVertexAttrib2f glad_glVertexAttrib2f +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; +#define glVertexAttrib2fv glad_glVertexAttrib2fv +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); +GLAPI PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; +#define glVertexAttrib2s glad_glVertexAttrib2s +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; +#define glVertexAttrib2sv glad_glVertexAttrib2sv +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; +#define glVertexAttrib3d glad_glVertexAttrib3d +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; +#define glVertexAttrib3dv glad_glVertexAttrib3dv +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; +#define glVertexAttrib3f glad_glVertexAttrib3f +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; +#define glVertexAttrib3fv glad_glVertexAttrib3fv +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; +#define glVertexAttrib3s glad_glVertexAttrib3s +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; +#define glVertexAttrib3sv glad_glVertexAttrib3sv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v); +GLAPI PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; +#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; +#define glVertexAttrib4Niv glad_glVertexAttrib4Niv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; +#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; +#define glVertexAttrib4Nub glad_glVertexAttrib4Nub +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v); +GLAPI PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; +#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; +#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v); +GLAPI PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; +#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v); +GLAPI PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; +#define glVertexAttrib4bv glad_glVertexAttrib4bv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; +#define glVertexAttrib4d glad_glVertexAttrib4d +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; +#define glVertexAttrib4dv glad_glVertexAttrib4dv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; +#define glVertexAttrib4f glad_glVertexAttrib4f +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; +#define glVertexAttrib4fv glad_glVertexAttrib4fv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; +#define glVertexAttrib4iv glad_glVertexAttrib4iv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; +#define glVertexAttrib4s glad_glVertexAttrib4s +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; +#define glVertexAttrib4sv glad_glVertexAttrib4sv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v); +GLAPI PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; +#define glVertexAttrib4ubv glad_glVertexAttrib4ubv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; +#define glVertexAttrib4uiv glad_glVertexAttrib4uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v); +GLAPI PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; +#define glVertexAttrib4usv glad_glVertexAttrib4usv +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; +#define glVertexAttribPointer glad_glVertexAttribPointer +#endif +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +GLAPI int GLAD_GL_VERSION_2_1; +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; +#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; +#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; +#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; +#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; +#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; +#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv +#endif +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +GLAPI int GLAD_GL_VERSION_3_0; +typedef void (APIENTRYP PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GLAPI PFNGLCOLORMASKIPROC glad_glColorMaski; +#define glColorMaski glad_glColorMaski +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data); +GLAPI PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; +#define glGetBooleani_v glad_glGetBooleani_v +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data); +GLAPI PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; +#define glGetIntegeri_v glad_glGetIntegeri_v +typedef void (APIENTRYP PFNGLENABLEIPROC)(GLenum target, GLuint index); +GLAPI PFNGLENABLEIPROC glad_glEnablei; +#define glEnablei glad_glEnablei +typedef void (APIENTRYP PFNGLDISABLEIPROC)(GLenum target, GLuint index); +GLAPI PFNGLDISABLEIPROC glad_glDisablei; +#define glDisablei glad_glDisablei +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC)(GLenum target, GLuint index); +GLAPI PFNGLISENABLEDIPROC glad_glIsEnabledi; +#define glIsEnabledi glad_glIsEnabledi +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode); +GLAPI PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; +#define glBeginTransformFeedback glad_glBeginTransformFeedback +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)(void); +GLAPI PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; +#define glEndTransformFeedback glad_glEndTransformFeedback +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; +#define glBindBufferRange glad_glBindBufferRange +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer); +GLAPI PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; +#define glBindBufferBase glad_glBindBufferBase +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +GLAPI PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; +#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; +#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp); +GLAPI PFNGLCLAMPCOLORPROC glad_glClampColor; +#define glClampColor glad_glClampColor +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode); +GLAPI PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; +#define glBeginConditionalRender glad_glBeginConditionalRender +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC)(void); +GLAPI PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; +#define glEndConditionalRender glad_glEndConditionalRender +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; +#define glVertexAttribIPointer glad_glVertexAttribIPointer +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params); +GLAPI PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; +#define glGetVertexAttribIiv glad_glGetVertexAttribIiv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint *params); +GLAPI PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; +#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x); +GLAPI PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; +#define glVertexAttribI1i glad_glVertexAttribI1i +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y); +GLAPI PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; +#define glVertexAttribI2i glad_glVertexAttribI2i +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z); +GLAPI PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; +#define glVertexAttribI3i glad_glVertexAttribI3i +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; +#define glVertexAttribI4i glad_glVertexAttribI4i +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x); +GLAPI PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; +#define glVertexAttribI1ui glad_glVertexAttribI1ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y); +GLAPI PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; +#define glVertexAttribI2ui glad_glVertexAttribI2ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; +#define glVertexAttribI3ui glad_glVertexAttribI3ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; +#define glVertexAttribI4ui glad_glVertexAttribI4ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; +#define glVertexAttribI1iv glad_glVertexAttribI1iv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; +#define glVertexAttribI2iv glad_glVertexAttribI2iv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; +#define glVertexAttribI3iv glad_glVertexAttribI3iv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; +#define glVertexAttribI4iv glad_glVertexAttribI4iv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; +#define glVertexAttribI1uiv glad_glVertexAttribI1uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; +#define glVertexAttribI2uiv glad_glVertexAttribI2uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; +#define glVertexAttribI3uiv glad_glVertexAttribI3uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; +#define glVertexAttribI4uiv glad_glVertexAttribI4uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte *v); +GLAPI PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; +#define glVertexAttribI4bv glad_glVertexAttribI4bv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; +#define glVertexAttribI4sv glad_glVertexAttribI4sv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte *v); +GLAPI PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; +#define glVertexAttribI4ubv glad_glVertexAttribI4ubv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort *v); +GLAPI PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; +#define glVertexAttribI4usv glad_glVertexAttribI4usv +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params); +GLAPI PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; +#define glGetUniformuiv glad_glGetUniformuiv +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar *name); +GLAPI PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; +#define glBindFragDataLocation glad_glBindFragDataLocation +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar *name); +GLAPI PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; +#define glGetFragDataLocation glad_glGetFragDataLocation +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0); +GLAPI PFNGLUNIFORM1UIPROC glad_glUniform1ui; +#define glUniform1ui glad_glUniform1ui +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1); +GLAPI PFNGLUNIFORM2UIPROC glad_glUniform2ui; +#define glUniform2ui glad_glUniform2ui +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI PFNGLUNIFORM3UIPROC glad_glUniform3ui; +#define glUniform3ui glad_glUniform3ui +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI PFNGLUNIFORM4UIPROC glad_glUniform4ui; +#define glUniform4ui glad_glUniform4ui +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; +#define glUniform1uiv glad_glUniform1uiv +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; +#define glUniform2uiv glad_glUniform2uiv +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; +#define glUniform3uiv glad_glUniform3uiv +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; +#define glUniform4uiv glad_glUniform4uiv +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint *params); +GLAPI PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; +#define glTexParameterIiv glad_glTexParameterIiv +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint *params); +GLAPI PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; +#define glTexParameterIuiv glad_glTexParameterIuiv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; +#define glGetTexParameterIiv glad_glGetTexParameterIiv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint *params); +GLAPI PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; +#define glGetTexParameterIuiv glad_glGetTexParameterIuiv +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; +#define glClearBufferiv glad_glClearBufferiv +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; +#define glClearBufferuiv glad_glClearBufferuiv +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; +#define glClearBufferfv glad_glClearBufferfv +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; +#define glClearBufferfi glad_glClearBufferfi +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC)(GLenum name, GLuint index); +GLAPI PFNGLGETSTRINGIPROC glad_glGetStringi; +#define glGetStringi glad_glGetStringi +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); +GLAPI PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; +#define glIsRenderbuffer glad_glIsRenderbuffer +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); +GLAPI PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; +#define glBindRenderbuffer glad_glBindRenderbuffer +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers); +GLAPI PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; +#define glDeleteRenderbuffers glad_glDeleteRenderbuffers +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers); +GLAPI PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; +#define glGenRenderbuffers glad_glGenRenderbuffers +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; +#define glRenderbufferStorage glad_glRenderbufferStorage +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; +#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer); +GLAPI PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; +#define glIsFramebuffer glad_glIsFramebuffer +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); +GLAPI PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; +#define glBindFramebuffer glad_glBindFramebuffer +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers); +GLAPI PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; +#define glDeleteFramebuffers glad_glDeleteFramebuffers +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers); +GLAPI PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; +#define glGenFramebuffers glad_glGenFramebuffers +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); +GLAPI PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; +#define glCheckFramebufferStatus glad_glCheckFramebufferStatus +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; +#define glFramebufferTexture1D glad_glFramebufferTexture1D +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; +#define glFramebufferTexture2D glad_glFramebufferTexture2D +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; +#define glFramebufferTexture3D glad_glFramebufferTexture3D +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; +#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; +#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC)(GLenum target); +GLAPI PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; +#define glGenerateMipmap glad_glGenerateMipmap +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; +#define glBlitFramebuffer glad_glBlitFramebuffer +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; +#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; +#define glFramebufferTextureLayer glad_glFramebufferTextureLayer +typedef void * (APIENTRYP PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; +#define glMapBufferRange glad_glMapBufferRange +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length); +GLAPI PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; +#define glFlushMappedBufferRange glad_glFlushMappedBufferRange +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC)(GLuint array); +GLAPI PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; +#define glBindVertexArray glad_glBindVertexArray +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays); +GLAPI PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; +#define glDeleteVertexArrays glad_glDeleteVertexArrays +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays); +GLAPI PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; +#define glGenVertexArrays glad_glGenVertexArrays +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC)(GLuint array); +GLAPI PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; +#define glIsVertexArray glad_glIsVertexArray +#endif +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +GLAPI int GLAD_GL_VERSION_3_1; +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +GLAPI PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; +#define glDrawArraysInstanced glad_glDrawArraysInstanced +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); +GLAPI PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; +#define glDrawElementsInstanced glad_glDrawElementsInstanced +typedef void (APIENTRYP PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer); +GLAPI PFNGLTEXBUFFERPROC glad_glTexBuffer; +#define glTexBuffer glad_glTexBuffer +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); +GLAPI PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; +#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex +typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; +#define glCopyBufferSubData glad_glCopyBufferSubData +typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); +GLAPI PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; +#define glGetUniformIndices glad_glGetUniformIndices +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +GLAPI PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; +#define glGetActiveUniformsiv glad_glGetActiveUniformsiv +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +GLAPI PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; +#define glGetActiveUniformName glad_glGetActiveUniformName +typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar *uniformBlockName); +GLAPI PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; +#define glGetUniformBlockIndex glad_glGetUniformBlockIndex +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +GLAPI PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; +#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +GLAPI PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; +#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName +typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +GLAPI PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; +#define glUniformBlockBinding glad_glUniformBlockBinding +#endif +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +GLAPI int GLAD_GL_VERSION_3_2; +typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GLAPI PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; +#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GLAPI PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; +#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; +#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +GLAPI PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; +#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC)(GLenum mode); +GLAPI PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; +#define glProvokingVertex glad_glProvokingVertex +typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); +GLAPI PFNGLFENCESYNCPROC glad_glFenceSync; +#define glFenceSync glad_glFenceSync +typedef GLboolean (APIENTRYP PFNGLISSYNCPROC)(GLsync sync); +GLAPI PFNGLISSYNCPROC glad_glIsSync; +#define glIsSync glad_glIsSync +typedef void (APIENTRYP PFNGLDELETESYNCPROC)(GLsync sync); +GLAPI PFNGLDELETESYNCPROC glad_glDeleteSync; +#define glDeleteSync glad_glDeleteSync +typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; +#define glClientWaitSync glad_glClientWaitSync +typedef void (APIENTRYP PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI PFNGLWAITSYNCPROC glad_glWaitSync; +#define glWaitSync glad_glWaitSync +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data); +GLAPI PFNGLGETINTEGER64VPROC glad_glGetInteger64v; +#define glGetInteger64v glad_glGetInteger64v +typedef void (APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +GLAPI PFNGLGETSYNCIVPROC glad_glGetSynciv; +#define glGetSynciv glad_glGetSynciv +typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data); +GLAPI PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; +#define glGetInteger64i_v glad_glGetInteger64i_v +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 *params); +GLAPI PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; +#define glGetBufferParameteri64v glad_glGetBufferParameteri64v +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); +GLAPI PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; +#define glFramebufferTexture glad_glFramebufferTexture +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; +#define glTexImage2DMultisample glad_glTexImage2DMultisample +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; +#define glTexImage3DMultisample glad_glTexImage3DMultisample +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val); +GLAPI PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; +#define glGetMultisamplefv glad_glGetMultisamplefv +typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask); +GLAPI PFNGLSAMPLEMASKIPROC glad_glSampleMaski; +#define glSampleMaski glad_glSampleMaski +#endif +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 +GLAPI int GLAD_GL_VERSION_3_3; +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +GLAPI PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; +#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed +typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar *name); +GLAPI PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; +#define glGetFragDataIndex glad_glGetFragDataIndex +typedef void (APIENTRYP PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers); +GLAPI PFNGLGENSAMPLERSPROC glad_glGenSamplers; +#define glGenSamplers glad_glGenSamplers +typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint *samplers); +GLAPI PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; +#define glDeleteSamplers glad_glDeleteSamplers +typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC)(GLuint sampler); +GLAPI PFNGLISSAMPLERPROC glad_glIsSampler; +#define glIsSampler glad_glIsSampler +typedef void (APIENTRYP PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler); +GLAPI PFNGLBINDSAMPLERPROC glad_glBindSampler; +#define glBindSampler glad_glBindSampler +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param); +GLAPI PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; +#define glSamplerParameteri glad_glSamplerParameteri +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint *param); +GLAPI PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; +#define glSamplerParameteriv glad_glSamplerParameteriv +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param); +GLAPI PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; +#define glSamplerParameterf glad_glSamplerParameterf +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat *param); +GLAPI PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; +#define glSamplerParameterfv glad_glSamplerParameterfv +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint *param); +GLAPI PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; +#define glSamplerParameterIiv glad_glSamplerParameterIiv +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint *param); +GLAPI PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; +#define glSamplerParameterIuiv glad_glSamplerParameterIuiv +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint *params); +GLAPI PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; +#define glGetSamplerParameteriv glad_glGetSamplerParameteriv +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint *params); +GLAPI PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; +#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat *params); +GLAPI PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; +#define glGetSamplerParameterfv glad_glGetSamplerParameterfv +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint *params); +GLAPI PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; +#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv +typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); +GLAPI PFNGLQUERYCOUNTERPROC glad_glQueryCounter; +#define glQueryCounter glad_glQueryCounter +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params); +GLAPI PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; +#define glGetQueryObjecti64v glad_glGetQueryObjecti64v +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params); +GLAPI PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; +#define glGetQueryObjectui64v glad_glGetQueryObjectui64v +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor); +GLAPI PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; +#define glVertexAttribDivisor glad_glVertexAttribDivisor +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; +#define glVertexAttribP1ui glad_glVertexAttribP1ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; +#define glVertexAttribP1uiv glad_glVertexAttribP1uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; +#define glVertexAttribP2ui glad_glVertexAttribP2ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; +#define glVertexAttribP2uiv glad_glVertexAttribP2uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; +#define glVertexAttribP3ui glad_glVertexAttribP3ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; +#define glVertexAttribP3uiv glad_glVertexAttribP3uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; +#define glVertexAttribP4ui glad_glVertexAttribP4ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; +#define glVertexAttribP4uiv glad_glVertexAttribP4uiv +typedef void (APIENTRYP PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value); +GLAPI PFNGLVERTEXP2UIPROC glad_glVertexP2ui; +#define glVertexP2ui glad_glVertexP2ui +typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint *value); +GLAPI PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; +#define glVertexP2uiv glad_glVertexP2uiv +typedef void (APIENTRYP PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value); +GLAPI PFNGLVERTEXP3UIPROC glad_glVertexP3ui; +#define glVertexP3ui glad_glVertexP3ui +typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint *value); +GLAPI PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; +#define glVertexP3uiv glad_glVertexP3uiv +typedef void (APIENTRYP PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value); +GLAPI PFNGLVERTEXP4UIPROC glad_glVertexP4ui; +#define glVertexP4ui glad_glVertexP4ui +typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint *value); +GLAPI PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; +#define glVertexP4uiv glad_glVertexP4uiv +typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; +#define glTexCoordP1ui glad_glTexCoordP1ui +typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; +#define glTexCoordP1uiv glad_glTexCoordP1uiv +typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; +#define glTexCoordP2ui glad_glTexCoordP2ui +typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; +#define glTexCoordP2uiv glad_glTexCoordP2uiv +typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; +#define glTexCoordP3ui glad_glTexCoordP3ui +typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; +#define glTexCoordP3uiv glad_glTexCoordP3uiv +typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; +#define glTexCoordP4ui glad_glTexCoordP4ui +typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; +#define glTexCoordP4uiv glad_glTexCoordP4uiv +typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords); +GLAPI PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; +#define glMultiTexCoordP1ui glad_glMultiTexCoordP1ui +typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); +GLAPI PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; +#define glMultiTexCoordP1uiv glad_glMultiTexCoordP1uiv +typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords); +GLAPI PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; +#define glMultiTexCoordP2ui glad_glMultiTexCoordP2ui +typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); +GLAPI PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; +#define glMultiTexCoordP2uiv glad_glMultiTexCoordP2uiv +typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords); +GLAPI PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; +#define glMultiTexCoordP3ui glad_glMultiTexCoordP3ui +typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); +GLAPI PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; +#define glMultiTexCoordP3uiv glad_glMultiTexCoordP3uiv +typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords); +GLAPI PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; +#define glMultiTexCoordP4ui glad_glMultiTexCoordP4ui +typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); +GLAPI PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; +#define glMultiTexCoordP4uiv glad_glMultiTexCoordP4uiv +typedef void (APIENTRYP PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLNORMALP3UIPROC glad_glNormalP3ui; +#define glNormalP3ui glad_glNormalP3ui +typedef void (APIENTRYP PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; +#define glNormalP3uiv glad_glNormalP3uiv +typedef void (APIENTRYP PFNGLCOLORP3UIPROC)(GLenum type, GLuint color); +GLAPI PFNGLCOLORP3UIPROC glad_glColorP3ui; +#define glColorP3ui glad_glColorP3ui +typedef void (APIENTRYP PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint *color); +GLAPI PFNGLCOLORP3UIVPROC glad_glColorP3uiv; +#define glColorP3uiv glad_glColorP3uiv +typedef void (APIENTRYP PFNGLCOLORP4UIPROC)(GLenum type, GLuint color); +GLAPI PFNGLCOLORP4UIPROC glad_glColorP4ui; +#define glColorP4ui glad_glColorP4ui +typedef void (APIENTRYP PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint *color); +GLAPI PFNGLCOLORP4UIVPROC glad_glColorP4uiv; +#define glColorP4uiv glad_glColorP4uiv +typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color); +GLAPI PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; +#define glSecondaryColorP3ui glad_glSecondaryColorP3ui +typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint *color); +GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; +#define glSecondaryColorP3uiv glad_glSecondaryColorP3uiv +#endif +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 +GLAPI int GLAD_GL_VERSION_4_0; +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC)(GLfloat value); +GLAPI PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading; +#define glMinSampleShading glad_glMinSampleShading +typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode); +GLAPI PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi; +#define glBlendEquationi glad_glBlendEquationi +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei; +#define glBlendEquationSeparatei glad_glBlendEquationSeparatei +typedef void (APIENTRYP PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst); +GLAPI PFNGLBLENDFUNCIPROC glad_glBlendFunci; +#define glBlendFunci glad_glBlendFunci +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GLAPI PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei; +#define glBlendFuncSeparatei glad_glBlendFuncSeparatei +typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect); +GLAPI PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect; +#define glDrawArraysIndirect glad_glDrawArraysIndirect +typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void *indirect); +GLAPI PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect; +#define glDrawElementsIndirect glad_glDrawElementsIndirect +typedef void (APIENTRYP PFNGLUNIFORM1DPROC)(GLint location, GLdouble x); +GLAPI PFNGLUNIFORM1DPROC glad_glUniform1d; +#define glUniform1d glad_glUniform1d +typedef void (APIENTRYP PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y); +GLAPI PFNGLUNIFORM2DPROC glad_glUniform2d; +#define glUniform2d glad_glUniform2d +typedef void (APIENTRYP PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLUNIFORM3DPROC glad_glUniform3d; +#define glUniform3d glad_glUniform3d +typedef void (APIENTRYP PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLUNIFORM4DPROC glad_glUniform4d; +#define glUniform4d glad_glUniform4d +typedef void (APIENTRYP PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLUNIFORM1DVPROC glad_glUniform1dv; +#define glUniform1dv glad_glUniform1dv +typedef void (APIENTRYP PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLUNIFORM2DVPROC glad_glUniform2dv; +#define glUniform2dv glad_glUniform2dv +typedef void (APIENTRYP PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLUNIFORM3DVPROC glad_glUniform3dv; +#define glUniform3dv glad_glUniform3dv +typedef void (APIENTRYP PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLUNIFORM4DVPROC glad_glUniform4dv; +#define glUniform4dv glad_glUniform4dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv; +#define glUniformMatrix2dv glad_glUniformMatrix2dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv; +#define glUniformMatrix3dv glad_glUniformMatrix3dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv; +#define glUniformMatrix4dv glad_glUniformMatrix4dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv; +#define glUniformMatrix2x3dv glad_glUniformMatrix2x3dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv; +#define glUniformMatrix2x4dv glad_glUniformMatrix2x4dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv; +#define glUniformMatrix3x2dv glad_glUniformMatrix3x2dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv; +#define glUniformMatrix3x4dv glad_glUniformMatrix3x4dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv; +#define glUniformMatrix4x2dv glad_glUniformMatrix4x2dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv; +#define glUniformMatrix4x3dv glad_glUniformMatrix4x3dv +typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble *params); +GLAPI PFNGLGETUNIFORMDVPROC glad_glGetUniformdv; +#define glGetUniformdv glad_glGetUniformdv +typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shadertype, const GLchar *name); +GLAPI PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation; +#define glGetSubroutineUniformLocation glad_glGetSubroutineUniformLocation +typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype, const GLchar *name); +GLAPI PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex; +#define glGetSubroutineIndex glad_glGetSubroutineIndex +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +GLAPI PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv; +#define glGetActiveSubroutineUniformiv glad_glGetActiveSubroutineUniformiv +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName; +#define glGetActiveSubroutineUniformName glad_glGetActiveSubroutineUniformName +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName; +#define glGetActiveSubroutineName glad_glGetActiveSubroutineName +typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count, const GLuint *indices); +GLAPI PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv; +#define glUniformSubroutinesuiv glad_glUniformSubroutinesuiv +typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location, GLuint *params); +GLAPI PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv; +#define glGetUniformSubroutineuiv glad_glGetUniformSubroutineuiv +typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype, GLenum pname, GLint *values); +GLAPI PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv; +#define glGetProgramStageiv glad_glGetProgramStageiv +typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value); +GLAPI PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri; +#define glPatchParameteri glad_glPatchParameteri +typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat *values); +GLAPI PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv; +#define glPatchParameterfv glad_glPatchParameterfv +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id); +GLAPI PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback; +#define glBindTransformFeedback glad_glBindTransformFeedback +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint *ids); +GLAPI PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks; +#define glDeleteTransformFeedbacks glad_glDeleteTransformFeedbacks +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids); +GLAPI PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks; +#define glGenTransformFeedbacks glad_glGenTransformFeedbacks +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id); +GLAPI PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback; +#define glIsTransformFeedback glad_glIsTransformFeedback +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC)(void); +GLAPI PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback; +#define glPauseTransformFeedback glad_glPauseTransformFeedback +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC)(void); +GLAPI PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback; +#define glResumeTransformFeedback glad_glResumeTransformFeedback +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id); +GLAPI PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback; +#define glDrawTransformFeedback glad_glDrawTransformFeedback +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream); +GLAPI PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream; +#define glDrawTransformFeedbackStream glad_glDrawTransformFeedbackStream +typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id); +GLAPI PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed; +#define glBeginQueryIndexed glad_glBeginQueryIndexed +typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index); +GLAPI PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed; +#define glEndQueryIndexed glad_glEndQueryIndexed +typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint *params); +GLAPI PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv; +#define glGetQueryIndexediv glad_glGetQueryIndexediv +#endif +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 +GLAPI int GLAD_GL_VERSION_4_1; +typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC)(void); +GLAPI PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; +#define glReleaseShaderCompiler glad_glReleaseShaderCompiler +typedef void (APIENTRYP PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +GLAPI PFNGLSHADERBINARYPROC glad_glShaderBinary; +#define glShaderBinary glad_glShaderBinary +typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +GLAPI PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; +#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat +typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f); +GLAPI PFNGLDEPTHRANGEFPROC glad_glDepthRangef; +#define glDepthRangef glad_glDepthRangef +typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC)(GLfloat d); +GLAPI PFNGLCLEARDEPTHFPROC glad_glClearDepthf; +#define glClearDepthf glad_glClearDepthf +typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +GLAPI PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary; +#define glGetProgramBinary glad_glGetProgramBinary +typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +GLAPI PFNGLPROGRAMBINARYPROC glad_glProgramBinary; +#define glProgramBinary glad_glProgramBinary +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value); +GLAPI PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri; +#define glProgramParameteri glad_glProgramParameteri +typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program); +GLAPI PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages; +#define glUseProgramStages glad_glUseProgramStages +typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program); +GLAPI PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram; +#define glActiveShaderProgram glad_glActiveShaderProgram +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar *const*strings); +GLAPI PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv; +#define glCreateShaderProgramv glad_glCreateShaderProgramv +typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline); +GLAPI PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline; +#define glBindProgramPipeline glad_glBindProgramPipeline +typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint *pipelines); +GLAPI PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines; +#define glDeleteProgramPipelines glad_glDeleteProgramPipelines +typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines); +GLAPI PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines; +#define glGenProgramPipelines glad_glGenProgramPipelines +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline); +GLAPI PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline; +#define glIsProgramPipeline glad_glIsProgramPipeline +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint *params); +GLAPI PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv; +#define glGetProgramPipelineiv glad_glGetProgramPipelineiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0); +GLAPI PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i; +#define glProgramUniform1i glad_glProgramUniform1i +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv; +#define glProgramUniform1iv glad_glProgramUniform1iv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0); +GLAPI PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f; +#define glProgramUniform1f glad_glProgramUniform1f +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv; +#define glProgramUniform1fv glad_glProgramUniform1fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0); +GLAPI PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d; +#define glProgramUniform1d glad_glProgramUniform1d +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv; +#define glProgramUniform1dv glad_glProgramUniform1dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0); +GLAPI PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui; +#define glProgramUniform1ui glad_glProgramUniform1ui +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv; +#define glProgramUniform1uiv glad_glProgramUniform1uiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0, GLint v1); +GLAPI PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i; +#define glProgramUniform2i glad_glProgramUniform2i +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv; +#define glProgramUniform2iv glad_glProgramUniform2iv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f; +#define glProgramUniform2f glad_glProgramUniform2f +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv; +#define glProgramUniform2fv glad_glProgramUniform2fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1); +GLAPI PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d; +#define glProgramUniform2d glad_glProgramUniform2d +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv; +#define glProgramUniform2dv glad_glProgramUniform2dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui; +#define glProgramUniform2ui glad_glProgramUniform2ui +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv; +#define glProgramUniform2uiv glad_glProgramUniform2uiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i; +#define glProgramUniform3i glad_glProgramUniform3i +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv; +#define glProgramUniform3iv glad_glProgramUniform3iv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f; +#define glProgramUniform3f glad_glProgramUniform3f +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv; +#define glProgramUniform3fv glad_glProgramUniform3fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +GLAPI PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d; +#define glProgramUniform3d glad_glProgramUniform3d +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv; +#define glProgramUniform3dv glad_glProgramUniform3dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui; +#define glProgramUniform3ui glad_glProgramUniform3ui +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv; +#define glProgramUniform3uiv glad_glProgramUniform3uiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i; +#define glProgramUniform4i glad_glProgramUniform4i +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv; +#define glProgramUniform4iv glad_glProgramUniform4iv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f; +#define glProgramUniform4f glad_glProgramUniform4f +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv; +#define glProgramUniform4fv glad_glProgramUniform4fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +GLAPI PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d; +#define glProgramUniform4d glad_glProgramUniform4d +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv; +#define glProgramUniform4dv glad_glProgramUniform4dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui; +#define glProgramUniform4ui glad_glProgramUniform4ui +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv; +#define glProgramUniform4uiv glad_glProgramUniform4uiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv; +#define glProgramUniformMatrix2fv glad_glProgramUniformMatrix2fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv; +#define glProgramUniformMatrix3fv glad_glProgramUniformMatrix3fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv; +#define glProgramUniformMatrix4fv glad_glProgramUniformMatrix4fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv; +#define glProgramUniformMatrix2dv glad_glProgramUniformMatrix2dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv; +#define glProgramUniformMatrix3dv glad_glProgramUniformMatrix3dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv; +#define glProgramUniformMatrix4dv glad_glProgramUniformMatrix4dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv; +#define glProgramUniformMatrix2x3fv glad_glProgramUniformMatrix2x3fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv; +#define glProgramUniformMatrix3x2fv glad_glProgramUniformMatrix3x2fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv; +#define glProgramUniformMatrix2x4fv glad_glProgramUniformMatrix2x4fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv; +#define glProgramUniformMatrix4x2fv glad_glProgramUniformMatrix4x2fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv; +#define glProgramUniformMatrix3x4fv glad_glProgramUniformMatrix3x4fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv; +#define glProgramUniformMatrix4x3fv glad_glProgramUniformMatrix4x3fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv; +#define glProgramUniformMatrix2x3dv glad_glProgramUniformMatrix2x3dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv; +#define glProgramUniformMatrix3x2dv glad_glProgramUniformMatrix3x2dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv; +#define glProgramUniformMatrix2x4dv glad_glProgramUniformMatrix2x4dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv; +#define glProgramUniformMatrix4x2dv glad_glProgramUniformMatrix4x2dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv; +#define glProgramUniformMatrix3x4dv glad_glProgramUniformMatrix3x4dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv; +#define glProgramUniformMatrix4x3dv glad_glProgramUniformMatrix4x3dv +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline); +GLAPI PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline; +#define glValidateProgramPipeline glad_glValidateProgramPipeline +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog; +#define glGetProgramPipelineInfoLog glad_glGetProgramPipelineInfoLog +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x); +GLAPI PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d; +#define glVertexAttribL1d glad_glVertexAttribL1d +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y); +GLAPI PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d; +#define glVertexAttribL2d glad_glVertexAttribL2d +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d; +#define glVertexAttribL3d glad_glVertexAttribL3d +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d; +#define glVertexAttribL4d glad_glVertexAttribL4d +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv; +#define glVertexAttribL1dv glad_glVertexAttribL1dv +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv; +#define glVertexAttribL2dv glad_glVertexAttribL2dv +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv; +#define glVertexAttribL3dv glad_glVertexAttribL3dv +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv; +#define glVertexAttribL4dv glad_glVertexAttribL4dv +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer; +#define glVertexAttribLPointer glad_glVertexAttribLPointer +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble *params); +GLAPI PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv; +#define glGetVertexAttribLdv glad_glGetVertexAttribLdv +typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat *v); +GLAPI PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv; +#define glViewportArrayv glad_glViewportArrayv +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GLAPI PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf; +#define glViewportIndexedf glad_glViewportIndexedf +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv; +#define glViewportIndexedfv glad_glViewportIndexedfv +typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint *v); +GLAPI PFNGLSCISSORARRAYVPROC glad_glScissorArrayv; +#define glScissorArrayv glad_glScissorArrayv +typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GLAPI PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed; +#define glScissorIndexed glad_glScissorIndexed +typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv; +#define glScissorIndexedv glad_glScissorIndexedv +typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLdouble *v); +GLAPI PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv; +#define glDepthRangeArrayv glad_glDepthRangeArrayv +typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLdouble n, GLdouble f); +GLAPI PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed; +#define glDepthRangeIndexed glad_glDepthRangeIndexed +typedef void (APIENTRYP PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat *data); +GLAPI PFNGLGETFLOATI_VPROC glad_glGetFloati_v; +#define glGetFloati_v glad_glGetFloati_v +typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble *data); +GLAPI PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v; +#define glGetDoublei_v glad_glGetDoublei_v +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/opengl/glad/src/glad.c b/src/opengl/glad/src/glad.c new file mode 100644 index 0000000..2004507 --- /dev/null +++ b/src/opengl/glad/src/glad.c @@ -0,0 +1,2121 @@ +/* + + OpenGL loader generated by glad 0.1.36 on Sun Feb 26 22:20:10 2023. + + Language/Generator: C/C++ + Specification: gl + APIs: gl=4.1 + Profile: compatibility + Extensions: + + Loader: True + Local files: False + Omit khrplatform: False + Reproducible: False + + Commandline: + --profile="compatibility" --api="gl=4.1" --generator="c" --spec="gl" --extensions="" + Online: + https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D4.1 +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <glad/glad.h> + +static void* get_proc(const char *namez); + +#if defined(_WIN32) || defined(__CYGWIN__) +#ifndef _WINDOWS_ +#undef APIENTRY +#endif +#include <windows.h> +static HMODULE libGL; + +typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*); +static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; + +#ifdef _MSC_VER +#ifdef __has_include + #if __has_include(<winapifamily.h>) + #define HAVE_WINAPIFAMILY 1 + #endif +#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_ + #define HAVE_WINAPIFAMILY 1 +#endif +#endif + +#ifdef HAVE_WINAPIFAMILY + #include <winapifamily.h> + #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + #define IS_UWP 1 + #endif +#endif + +static +int open_gl(void) { +#ifndef IS_UWP + libGL = LoadLibraryW(L"opengl32.dll"); + if(libGL != NULL) { + void (* tmp)(void); + tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress"); + gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp; + return gladGetProcAddressPtr != NULL; + } +#endif + + return 0; +} + +static +void close_gl(void) { + if(libGL != NULL) { + FreeLibrary((HMODULE) libGL); + libGL = NULL; + } +} +#else +#include <dlfcn.h> +static void* libGL; + +#if !defined(__APPLE__) && !defined(__HAIKU__) +typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*); +static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; +#endif + +static +int open_gl(void) { +#ifdef __APPLE__ + static const char *NAMES[] = { + "../Frameworks/OpenGL.framework/OpenGL", + "/Library/Frameworks/OpenGL.framework/OpenGL", + "/System/Library/Frameworks/OpenGL.framework/OpenGL", + "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL" + }; +#else + static const char *NAMES[] = {"libGL.so.1", "libGL.so"}; +#endif + + unsigned int index = 0; + for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) { + libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL); + + if(libGL != NULL) { +#if defined(__APPLE__) || defined(__HAIKU__) + return 1; +#else + gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL, + "glXGetProcAddressARB"); + return gladGetProcAddressPtr != NULL; +#endif + } + } + + return 0; +} + +static +void close_gl(void) { + if(libGL != NULL) { + dlclose(libGL); + libGL = NULL; + } +} +#endif + +static +void* get_proc(const char *namez) { + void* result = NULL; + if(libGL == NULL) return NULL; + +#if !defined(__APPLE__) && !defined(__HAIKU__) + if(gladGetProcAddressPtr != NULL) { + result = gladGetProcAddressPtr(namez); + } +#endif + if(result == NULL) { +#if defined(_WIN32) || defined(__CYGWIN__) + result = (void*)GetProcAddress((HMODULE) libGL, namez); +#else + result = dlsym(libGL, namez); +#endif + } + + return result; +} + +int gladLoadGL(void) { + int status = 0; + + if(open_gl()) { + status = gladLoadGLLoader(&get_proc); + close_gl(); + } + + return status; +} + +struct gladGLversionStruct GLVersion = { 0, 0 }; + +#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) +#define _GLAD_IS_SOME_NEW_VERSION 1 +#endif + +static int max_loaded_major; +static int max_loaded_minor; + +static const char *exts = NULL; +static int num_exts_i = 0; +static char **exts_i = NULL; + +static int get_exts(void) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + exts = (const char *)glGetString(GL_EXTENSIONS); +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + unsigned int index; + + num_exts_i = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); + if (num_exts_i > 0) { + exts_i = (char **)malloc((size_t)num_exts_i * (sizeof *exts_i)); + } + + if (exts_i == NULL) { + return 0; + } + + for(index = 0; index < (unsigned)num_exts_i; index++) { + const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index); + size_t len = strlen(gl_str_tmp); + + char *local_str = (char*)malloc((len+1) * sizeof(char)); + if(local_str != NULL) { + memcpy(local_str, gl_str_tmp, (len+1) * sizeof(char)); + } + exts_i[index] = local_str; + } + } +#endif + return 1; +} + +static void free_exts(void) { + if (exts_i != NULL) { + int index; + for(index = 0; index < num_exts_i; index++) { + free((char *)exts_i[index]); + } + free((void *)exts_i); + exts_i = NULL; + } +} + +static int has_ext(const char *ext) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + const char *extensions; + const char *loc; + const char *terminator; + extensions = exts; + if(extensions == NULL || ext == NULL) { + return 0; + } + + while(1) { + loc = strstr(extensions, ext); + if(loc == NULL) { + return 0; + } + + terminator = loc + strlen(ext); + if((loc == extensions || *(loc - 1) == ' ') && + (*terminator == ' ' || *terminator == '\0')) { + return 1; + } + extensions = terminator; + } +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + int index; + if(exts_i == NULL) return 0; + for(index = 0; index < num_exts_i; index++) { + const char *e = exts_i[index]; + + if(exts_i[index] != NULL && strcmp(e, ext) == 0) { + return 1; + } + } + } +#endif + + return 0; +} +int GLAD_GL_VERSION_1_0 = 0; +int GLAD_GL_VERSION_1_1 = 0; +int GLAD_GL_VERSION_1_2 = 0; +int GLAD_GL_VERSION_1_3 = 0; +int GLAD_GL_VERSION_1_4 = 0; +int GLAD_GL_VERSION_1_5 = 0; +int GLAD_GL_VERSION_2_0 = 0; +int GLAD_GL_VERSION_2_1 = 0; +int GLAD_GL_VERSION_3_0 = 0; +int GLAD_GL_VERSION_3_1 = 0; +int GLAD_GL_VERSION_3_2 = 0; +int GLAD_GL_VERSION_3_3 = 0; +int GLAD_GL_VERSION_4_0 = 0; +int GLAD_GL_VERSION_4_1 = 0; +PFNGLACCUMPROC glad_glAccum = NULL; +PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL; +PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL; +PFNGLALPHAFUNCPROC glad_glAlphaFunc = NULL; +PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident = NULL; +PFNGLARRAYELEMENTPROC glad_glArrayElement = NULL; +PFNGLATTACHSHADERPROC glad_glAttachShader = NULL; +PFNGLBEGINPROC glad_glBegin = NULL; +PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL; +PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL; +PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed = NULL; +PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL; +PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL; +PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL; +PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL; +PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL; +PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL; +PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL; +PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL; +PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL; +PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL; +PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL; +PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL; +PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL; +PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL; +PFNGLBITMAPPROC glad_glBitmap = NULL; +PFNGLBLENDCOLORPROC glad_glBlendColor = NULL; +PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL; +PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL; +PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei = NULL; +PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi = NULL; +PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL; +PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL; +PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei = NULL; +PFNGLBLENDFUNCIPROC glad_glBlendFunci = NULL; +PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL; +PFNGLBUFFERDATAPROC glad_glBufferData = NULL; +PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL; +PFNGLCALLLISTPROC glad_glCallList = NULL; +PFNGLCALLLISTSPROC glad_glCallLists = NULL; +PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL; +PFNGLCLAMPCOLORPROC glad_glClampColor = NULL; +PFNGLCLEARPROC glad_glClear = NULL; +PFNGLCLEARACCUMPROC glad_glClearAccum = NULL; +PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL; +PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL; +PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL; +PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL; +PFNGLCLEARCOLORPROC glad_glClearColor = NULL; +PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL; +PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL; +PFNGLCLEARINDEXPROC glad_glClearIndex = NULL; +PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL; +PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture = NULL; +PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL; +PFNGLCLIPPLANEPROC glad_glClipPlane = NULL; +PFNGLCOLOR3BPROC glad_glColor3b = NULL; +PFNGLCOLOR3BVPROC glad_glColor3bv = NULL; +PFNGLCOLOR3DPROC glad_glColor3d = NULL; +PFNGLCOLOR3DVPROC glad_glColor3dv = NULL; +PFNGLCOLOR3FPROC glad_glColor3f = NULL; +PFNGLCOLOR3FVPROC glad_glColor3fv = NULL; +PFNGLCOLOR3IPROC glad_glColor3i = NULL; +PFNGLCOLOR3IVPROC glad_glColor3iv = NULL; +PFNGLCOLOR3SPROC glad_glColor3s = NULL; +PFNGLCOLOR3SVPROC glad_glColor3sv = NULL; +PFNGLCOLOR3UBPROC glad_glColor3ub = NULL; +PFNGLCOLOR3UBVPROC glad_glColor3ubv = NULL; +PFNGLCOLOR3UIPROC glad_glColor3ui = NULL; +PFNGLCOLOR3UIVPROC glad_glColor3uiv = NULL; +PFNGLCOLOR3USPROC glad_glColor3us = NULL; +PFNGLCOLOR3USVPROC glad_glColor3usv = NULL; +PFNGLCOLOR4BPROC glad_glColor4b = NULL; +PFNGLCOLOR4BVPROC glad_glColor4bv = NULL; +PFNGLCOLOR4DPROC glad_glColor4d = NULL; +PFNGLCOLOR4DVPROC glad_glColor4dv = NULL; +PFNGLCOLOR4FPROC glad_glColor4f = NULL; +PFNGLCOLOR4FVPROC glad_glColor4fv = NULL; +PFNGLCOLOR4IPROC glad_glColor4i = NULL; +PFNGLCOLOR4IVPROC glad_glColor4iv = NULL; +PFNGLCOLOR4SPROC glad_glColor4s = NULL; +PFNGLCOLOR4SVPROC glad_glColor4sv = NULL; +PFNGLCOLOR4UBPROC glad_glColor4ub = NULL; +PFNGLCOLOR4UBVPROC glad_glColor4ubv = NULL; +PFNGLCOLOR4UIPROC glad_glColor4ui = NULL; +PFNGLCOLOR4UIVPROC glad_glColor4uiv = NULL; +PFNGLCOLOR4USPROC glad_glColor4us = NULL; +PFNGLCOLOR4USVPROC glad_glColor4usv = NULL; +PFNGLCOLORMASKPROC glad_glColorMask = NULL; +PFNGLCOLORMASKIPROC glad_glColorMaski = NULL; +PFNGLCOLORMATERIALPROC glad_glColorMaterial = NULL; +PFNGLCOLORP3UIPROC glad_glColorP3ui = NULL; +PFNGLCOLORP3UIVPROC glad_glColorP3uiv = NULL; +PFNGLCOLORP4UIPROC glad_glColorP4ui = NULL; +PFNGLCOLORP4UIVPROC glad_glColorP4uiv = NULL; +PFNGLCOLORPOINTERPROC glad_glColorPointer = NULL; +PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL; +PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL; +PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL; +PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL; +PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL; +PFNGLCOPYPIXELSPROC glad_glCopyPixels = NULL; +PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL; +PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL; +PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL; +PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL; +PFNGLCREATESHADERPROC glad_glCreateShader = NULL; +PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL; +PFNGLCULLFACEPROC glad_glCullFace = NULL; +PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL; +PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL; +PFNGLDELETELISTSPROC glad_glDeleteLists = NULL; +PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL; +PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL; +PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL; +PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL; +PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL; +PFNGLDELETESHADERPROC glad_glDeleteShader = NULL; +PFNGLDELETESYNCPROC glad_glDeleteSync = NULL; +PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL; +PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks = NULL; +PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL; +PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL; +PFNGLDEPTHMASKPROC glad_glDepthMask = NULL; +PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL; +PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv = NULL; +PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed = NULL; +PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL; +PFNGLDETACHSHADERPROC glad_glDetachShader = NULL; +PFNGLDISABLEPROC glad_glDisable = NULL; +PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState = NULL; +PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL; +PFNGLDISABLEIPROC glad_glDisablei = NULL; +PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL; +PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect = NULL; +PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL; +PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL; +PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL; +PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL; +PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL; +PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect = NULL; +PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL; +PFNGLDRAWPIXELSPROC glad_glDrawPixels = NULL; +PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL; +PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL; +PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback = NULL; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream = NULL; +PFNGLEDGEFLAGPROC glad_glEdgeFlag = NULL; +PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer = NULL; +PFNGLEDGEFLAGVPROC glad_glEdgeFlagv = NULL; +PFNGLENABLEPROC glad_glEnable = NULL; +PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState = NULL; +PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL; +PFNGLENABLEIPROC glad_glEnablei = NULL; +PFNGLENDPROC glad_glEnd = NULL; +PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL; +PFNGLENDLISTPROC glad_glEndList = NULL; +PFNGLENDQUERYPROC glad_glEndQuery = NULL; +PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed = NULL; +PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL; +PFNGLEVALCOORD1DPROC glad_glEvalCoord1d = NULL; +PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv = NULL; +PFNGLEVALCOORD1FPROC glad_glEvalCoord1f = NULL; +PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv = NULL; +PFNGLEVALCOORD2DPROC glad_glEvalCoord2d = NULL; +PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv = NULL; +PFNGLEVALCOORD2FPROC glad_glEvalCoord2f = NULL; +PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv = NULL; +PFNGLEVALMESH1PROC glad_glEvalMesh1 = NULL; +PFNGLEVALMESH2PROC glad_glEvalMesh2 = NULL; +PFNGLEVALPOINT1PROC glad_glEvalPoint1 = NULL; +PFNGLEVALPOINT2PROC glad_glEvalPoint2 = NULL; +PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer = NULL; +PFNGLFENCESYNCPROC glad_glFenceSync = NULL; +PFNGLFINISHPROC glad_glFinish = NULL; +PFNGLFLUSHPROC glad_glFlush = NULL; +PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL; +PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer = NULL; +PFNGLFOGCOORDDPROC glad_glFogCoordd = NULL; +PFNGLFOGCOORDDVPROC glad_glFogCoorddv = NULL; +PFNGLFOGCOORDFPROC glad_glFogCoordf = NULL; +PFNGLFOGCOORDFVPROC glad_glFogCoordfv = NULL; +PFNGLFOGFPROC glad_glFogf = NULL; +PFNGLFOGFVPROC glad_glFogfv = NULL; +PFNGLFOGIPROC glad_glFogi = NULL; +PFNGLFOGIVPROC glad_glFogiv = NULL; +PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL; +PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL; +PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL; +PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL; +PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL; +PFNGLFRONTFACEPROC glad_glFrontFace = NULL; +PFNGLFRUSTUMPROC glad_glFrustum = NULL; +PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL; +PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL; +PFNGLGENLISTSPROC glad_glGenLists = NULL; +PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL; +PFNGLGENQUERIESPROC glad_glGenQueries = NULL; +PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL; +PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL; +PFNGLGENTEXTURESPROC glad_glGenTextures = NULL; +PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL; +PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL; +PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL; +PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL; +PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName = NULL; +PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName = NULL; +PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv = NULL; +PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL; +PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL; +PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL; +PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL; +PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL; +PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL; +PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL; +PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL; +PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL; +PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL; +PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL; +PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL; +PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL; +PFNGLGETCLIPPLANEPROC glad_glGetClipPlane = NULL; +PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL; +PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v = NULL; +PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL; +PFNGLGETERRORPROC glad_glGetError = NULL; +PFNGLGETFLOATI_VPROC glad_glGetFloati_v = NULL; +PFNGLGETFLOATVPROC glad_glGetFloatv = NULL; +PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL; +PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL; +PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL; +PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL; +PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL; +PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL; +PFNGLGETLIGHTFVPROC glad_glGetLightfv = NULL; +PFNGLGETLIGHTIVPROC glad_glGetLightiv = NULL; +PFNGLGETMAPDVPROC glad_glGetMapdv = NULL; +PFNGLGETMAPFVPROC glad_glGetMapfv = NULL; +PFNGLGETMAPIVPROC glad_glGetMapiv = NULL; +PFNGLGETMATERIALFVPROC glad_glGetMaterialfv = NULL; +PFNGLGETMATERIALIVPROC glad_glGetMaterialiv = NULL; +PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL; +PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv = NULL; +PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv = NULL; +PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv = NULL; +PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL; +PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple = NULL; +PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL; +PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL; +PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog = NULL; +PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv = NULL; +PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv = NULL; +PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL; +PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv = NULL; +PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL; +PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL; +PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v = NULL; +PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL; +PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL; +PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL; +PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv = NULL; +PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv = NULL; +PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL; +PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL; +PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL; +PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL; +PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL; +PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL; +PFNGLGETSTRINGPROC glad_glGetString = NULL; +PFNGLGETSTRINGIPROC glad_glGetStringi = NULL; +PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex = NULL; +PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation = NULL; +PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL; +PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv = NULL; +PFNGLGETTEXENVIVPROC glad_glGetTexEnviv = NULL; +PFNGLGETTEXGENDVPROC glad_glGetTexGendv = NULL; +PFNGLGETTEXGENFVPROC glad_glGetTexGenfv = NULL; +PFNGLGETTEXGENIVPROC glad_glGetTexGeniv = NULL; +PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL; +PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL; +PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL; +PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL; +PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL; +PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL; +PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL; +PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL; +PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL; +PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL; +PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL; +PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv = NULL; +PFNGLGETUNIFORMDVPROC glad_glGetUniformdv = NULL; +PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL; +PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL; +PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL; +PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL; +PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL; +PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL; +PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL; +PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL; +PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL; +PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL; +PFNGLHINTPROC glad_glHint = NULL; +PFNGLINDEXMASKPROC glad_glIndexMask = NULL; +PFNGLINDEXPOINTERPROC glad_glIndexPointer = NULL; +PFNGLINDEXDPROC glad_glIndexd = NULL; +PFNGLINDEXDVPROC glad_glIndexdv = NULL; +PFNGLINDEXFPROC glad_glIndexf = NULL; +PFNGLINDEXFVPROC glad_glIndexfv = NULL; +PFNGLINDEXIPROC glad_glIndexi = NULL; +PFNGLINDEXIVPROC glad_glIndexiv = NULL; +PFNGLINDEXSPROC glad_glIndexs = NULL; +PFNGLINDEXSVPROC glad_glIndexsv = NULL; +PFNGLINDEXUBPROC glad_glIndexub = NULL; +PFNGLINDEXUBVPROC glad_glIndexubv = NULL; +PFNGLINITNAMESPROC glad_glInitNames = NULL; +PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays = NULL; +PFNGLISBUFFERPROC glad_glIsBuffer = NULL; +PFNGLISENABLEDPROC glad_glIsEnabled = NULL; +PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL; +PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL; +PFNGLISLISTPROC glad_glIsList = NULL; +PFNGLISPROGRAMPROC glad_glIsProgram = NULL; +PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL; +PFNGLISQUERYPROC glad_glIsQuery = NULL; +PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL; +PFNGLISSAMPLERPROC glad_glIsSampler = NULL; +PFNGLISSHADERPROC glad_glIsShader = NULL; +PFNGLISSYNCPROC glad_glIsSync = NULL; +PFNGLISTEXTUREPROC glad_glIsTexture = NULL; +PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL; +PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL; +PFNGLLIGHTMODELFPROC glad_glLightModelf = NULL; +PFNGLLIGHTMODELFVPROC glad_glLightModelfv = NULL; +PFNGLLIGHTMODELIPROC glad_glLightModeli = NULL; +PFNGLLIGHTMODELIVPROC glad_glLightModeliv = NULL; +PFNGLLIGHTFPROC glad_glLightf = NULL; +PFNGLLIGHTFVPROC glad_glLightfv = NULL; +PFNGLLIGHTIPROC glad_glLighti = NULL; +PFNGLLIGHTIVPROC glad_glLightiv = NULL; +PFNGLLINESTIPPLEPROC glad_glLineStipple = NULL; +PFNGLLINEWIDTHPROC glad_glLineWidth = NULL; +PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL; +PFNGLLISTBASEPROC glad_glListBase = NULL; +PFNGLLOADIDENTITYPROC glad_glLoadIdentity = NULL; +PFNGLLOADMATRIXDPROC glad_glLoadMatrixd = NULL; +PFNGLLOADMATRIXFPROC glad_glLoadMatrixf = NULL; +PFNGLLOADNAMEPROC glad_glLoadName = NULL; +PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd = NULL; +PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf = NULL; +PFNGLLOGICOPPROC glad_glLogicOp = NULL; +PFNGLMAP1DPROC glad_glMap1d = NULL; +PFNGLMAP1FPROC glad_glMap1f = NULL; +PFNGLMAP2DPROC glad_glMap2d = NULL; +PFNGLMAP2FPROC glad_glMap2f = NULL; +PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL; +PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL; +PFNGLMAPGRID1DPROC glad_glMapGrid1d = NULL; +PFNGLMAPGRID1FPROC glad_glMapGrid1f = NULL; +PFNGLMAPGRID2DPROC glad_glMapGrid2d = NULL; +PFNGLMAPGRID2FPROC glad_glMapGrid2f = NULL; +PFNGLMATERIALFPROC glad_glMaterialf = NULL; +PFNGLMATERIALFVPROC glad_glMaterialfv = NULL; +PFNGLMATERIALIPROC glad_glMateriali = NULL; +PFNGLMATERIALIVPROC glad_glMaterialiv = NULL; +PFNGLMATRIXMODEPROC glad_glMatrixMode = NULL; +PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading = NULL; +PFNGLMULTMATRIXDPROC glad_glMultMatrixd = NULL; +PFNGLMULTMATRIXFPROC glad_glMultMatrixf = NULL; +PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd = NULL; +PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf = NULL; +PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL; +PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL; +PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL; +PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d = NULL; +PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv = NULL; +PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f = NULL; +PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv = NULL; +PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i = NULL; +PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv = NULL; +PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s = NULL; +PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv = NULL; +PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d = NULL; +PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv = NULL; +PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f = NULL; +PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv = NULL; +PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i = NULL; +PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv = NULL; +PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s = NULL; +PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv = NULL; +PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d = NULL; +PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv = NULL; +PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f = NULL; +PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv = NULL; +PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i = NULL; +PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv = NULL; +PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s = NULL; +PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv = NULL; +PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d = NULL; +PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv = NULL; +PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f = NULL; +PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv = NULL; +PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i = NULL; +PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv = NULL; +PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s = NULL; +PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv = NULL; +PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui = NULL; +PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv = NULL; +PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui = NULL; +PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv = NULL; +PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui = NULL; +PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv = NULL; +PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui = NULL; +PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv = NULL; +PFNGLNEWLISTPROC glad_glNewList = NULL; +PFNGLNORMAL3BPROC glad_glNormal3b = NULL; +PFNGLNORMAL3BVPROC glad_glNormal3bv = NULL; +PFNGLNORMAL3DPROC glad_glNormal3d = NULL; +PFNGLNORMAL3DVPROC glad_glNormal3dv = NULL; +PFNGLNORMAL3FPROC glad_glNormal3f = NULL; +PFNGLNORMAL3FVPROC glad_glNormal3fv = NULL; +PFNGLNORMAL3IPROC glad_glNormal3i = NULL; +PFNGLNORMAL3IVPROC glad_glNormal3iv = NULL; +PFNGLNORMAL3SPROC glad_glNormal3s = NULL; +PFNGLNORMAL3SVPROC glad_glNormal3sv = NULL; +PFNGLNORMALP3UIPROC glad_glNormalP3ui = NULL; +PFNGLNORMALP3UIVPROC glad_glNormalP3uiv = NULL; +PFNGLNORMALPOINTERPROC glad_glNormalPointer = NULL; +PFNGLORTHOPROC glad_glOrtho = NULL; +PFNGLPASSTHROUGHPROC glad_glPassThrough = NULL; +PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv = NULL; +PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri = NULL; +PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL; +PFNGLPIXELMAPFVPROC glad_glPixelMapfv = NULL; +PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv = NULL; +PFNGLPIXELMAPUSVPROC glad_glPixelMapusv = NULL; +PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL; +PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL; +PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf = NULL; +PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi = NULL; +PFNGLPIXELZOOMPROC glad_glPixelZoom = NULL; +PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL; +PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL; +PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL; +PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL; +PFNGLPOINTSIZEPROC glad_glPointSize = NULL; +PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL; +PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL; +PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple = NULL; +PFNGLPOPATTRIBPROC glad_glPopAttrib = NULL; +PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib = NULL; +PFNGLPOPMATRIXPROC glad_glPopMatrix = NULL; +PFNGLPOPNAMEPROC glad_glPopName = NULL; +PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL; +PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures = NULL; +PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL; +PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL; +PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d = NULL; +PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv = NULL; +PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f = NULL; +PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv = NULL; +PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i = NULL; +PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv = NULL; +PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui = NULL; +PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv = NULL; +PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d = NULL; +PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv = NULL; +PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f = NULL; +PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv = NULL; +PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i = NULL; +PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv = NULL; +PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui = NULL; +PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv = NULL; +PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d = NULL; +PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv = NULL; +PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f = NULL; +PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv = NULL; +PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i = NULL; +PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv = NULL; +PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui = NULL; +PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv = NULL; +PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d = NULL; +PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv = NULL; +PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f = NULL; +PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv = NULL; +PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL; +PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL; +PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL; +PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL; +PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL; +PFNGLPUSHATTRIBPROC glad_glPushAttrib = NULL; +PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib = NULL; +PFNGLPUSHMATRIXPROC glad_glPushMatrix = NULL; +PFNGLPUSHNAMEPROC glad_glPushName = NULL; +PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL; +PFNGLRASTERPOS2DPROC glad_glRasterPos2d = NULL; +PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv = NULL; +PFNGLRASTERPOS2FPROC glad_glRasterPos2f = NULL; +PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv = NULL; +PFNGLRASTERPOS2IPROC glad_glRasterPos2i = NULL; +PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv = NULL; +PFNGLRASTERPOS2SPROC glad_glRasterPos2s = NULL; +PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv = NULL; +PFNGLRASTERPOS3DPROC glad_glRasterPos3d = NULL; +PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv = NULL; +PFNGLRASTERPOS3FPROC glad_glRasterPos3f = NULL; +PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv = NULL; +PFNGLRASTERPOS3IPROC glad_glRasterPos3i = NULL; +PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv = NULL; +PFNGLRASTERPOS3SPROC glad_glRasterPos3s = NULL; +PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv = NULL; +PFNGLRASTERPOS4DPROC glad_glRasterPos4d = NULL; +PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv = NULL; +PFNGLRASTERPOS4FPROC glad_glRasterPos4f = NULL; +PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv = NULL; +PFNGLRASTERPOS4IPROC glad_glRasterPos4i = NULL; +PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv = NULL; +PFNGLRASTERPOS4SPROC glad_glRasterPos4s = NULL; +PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv = NULL; +PFNGLREADBUFFERPROC glad_glReadBuffer = NULL; +PFNGLREADPIXELSPROC glad_glReadPixels = NULL; +PFNGLRECTDPROC glad_glRectd = NULL; +PFNGLRECTDVPROC glad_glRectdv = NULL; +PFNGLRECTFPROC glad_glRectf = NULL; +PFNGLRECTFVPROC glad_glRectfv = NULL; +PFNGLRECTIPROC glad_glRecti = NULL; +PFNGLRECTIVPROC glad_glRectiv = NULL; +PFNGLRECTSPROC glad_glRects = NULL; +PFNGLRECTSVPROC glad_glRectsv = NULL; +PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL; +PFNGLRENDERMODEPROC glad_glRenderMode = NULL; +PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL; +PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL; +PFNGLROTATEDPROC glad_glRotated = NULL; +PFNGLROTATEFPROC glad_glRotatef = NULL; +PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL; +PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL; +PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL; +PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv = NULL; +PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL; +PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL; +PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL; +PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL; +PFNGLSCALEDPROC glad_glScaled = NULL; +PFNGLSCALEFPROC glad_glScalef = NULL; +PFNGLSCISSORPROC glad_glScissor = NULL; +PFNGLSCISSORARRAYVPROC glad_glScissorArrayv = NULL; +PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed = NULL; +PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv = NULL; +PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b = NULL; +PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv = NULL; +PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d = NULL; +PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv = NULL; +PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f = NULL; +PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv = NULL; +PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i = NULL; +PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv = NULL; +PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s = NULL; +PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv = NULL; +PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub = NULL; +PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv = NULL; +PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui = NULL; +PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv = NULL; +PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us = NULL; +PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv = NULL; +PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui = NULL; +PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv = NULL; +PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer = NULL; +PFNGLSELECTBUFFERPROC glad_glSelectBuffer = NULL; +PFNGLSHADEMODELPROC glad_glShadeModel = NULL; +PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL; +PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL; +PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL; +PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL; +PFNGLSTENCILMASKPROC glad_glStencilMask = NULL; +PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL; +PFNGLSTENCILOPPROC glad_glStencilOp = NULL; +PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL; +PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL; +PFNGLTEXCOORD1DPROC glad_glTexCoord1d = NULL; +PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv = NULL; +PFNGLTEXCOORD1FPROC glad_glTexCoord1f = NULL; +PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv = NULL; +PFNGLTEXCOORD1IPROC glad_glTexCoord1i = NULL; +PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv = NULL; +PFNGLTEXCOORD1SPROC glad_glTexCoord1s = NULL; +PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv = NULL; +PFNGLTEXCOORD2DPROC glad_glTexCoord2d = NULL; +PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv = NULL; +PFNGLTEXCOORD2FPROC glad_glTexCoord2f = NULL; +PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv = NULL; +PFNGLTEXCOORD2IPROC glad_glTexCoord2i = NULL; +PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv = NULL; +PFNGLTEXCOORD2SPROC glad_glTexCoord2s = NULL; +PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv = NULL; +PFNGLTEXCOORD3DPROC glad_glTexCoord3d = NULL; +PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv = NULL; +PFNGLTEXCOORD3FPROC glad_glTexCoord3f = NULL; +PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv = NULL; +PFNGLTEXCOORD3IPROC glad_glTexCoord3i = NULL; +PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv = NULL; +PFNGLTEXCOORD3SPROC glad_glTexCoord3s = NULL; +PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv = NULL; +PFNGLTEXCOORD4DPROC glad_glTexCoord4d = NULL; +PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv = NULL; +PFNGLTEXCOORD4FPROC glad_glTexCoord4f = NULL; +PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv = NULL; +PFNGLTEXCOORD4IPROC glad_glTexCoord4i = NULL; +PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv = NULL; +PFNGLTEXCOORD4SPROC glad_glTexCoord4s = NULL; +PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv = NULL; +PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui = NULL; +PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv = NULL; +PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui = NULL; +PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv = NULL; +PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui = NULL; +PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv = NULL; +PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui = NULL; +PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv = NULL; +PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer = NULL; +PFNGLTEXENVFPROC glad_glTexEnvf = NULL; +PFNGLTEXENVFVPROC glad_glTexEnvfv = NULL; +PFNGLTEXENVIPROC glad_glTexEnvi = NULL; +PFNGLTEXENVIVPROC glad_glTexEnviv = NULL; +PFNGLTEXGENDPROC glad_glTexGend = NULL; +PFNGLTEXGENDVPROC glad_glTexGendv = NULL; +PFNGLTEXGENFPROC glad_glTexGenf = NULL; +PFNGLTEXGENFVPROC glad_glTexGenfv = NULL; +PFNGLTEXGENIPROC glad_glTexGeni = NULL; +PFNGLTEXGENIVPROC glad_glTexGeniv = NULL; +PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL; +PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL; +PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL; +PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL; +PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL; +PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL; +PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL; +PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL; +PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL; +PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL; +PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL; +PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL; +PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL; +PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL; +PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL; +PFNGLTRANSLATEDPROC glad_glTranslated = NULL; +PFNGLTRANSLATEFPROC glad_glTranslatef = NULL; +PFNGLUNIFORM1DPROC glad_glUniform1d = NULL; +PFNGLUNIFORM1DVPROC glad_glUniform1dv = NULL; +PFNGLUNIFORM1FPROC glad_glUniform1f = NULL; +PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL; +PFNGLUNIFORM1IPROC glad_glUniform1i = NULL; +PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL; +PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL; +PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL; +PFNGLUNIFORM2DPROC glad_glUniform2d = NULL; +PFNGLUNIFORM2DVPROC glad_glUniform2dv = NULL; +PFNGLUNIFORM2FPROC glad_glUniform2f = NULL; +PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL; +PFNGLUNIFORM2IPROC glad_glUniform2i = NULL; +PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL; +PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL; +PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL; +PFNGLUNIFORM3DPROC glad_glUniform3d = NULL; +PFNGLUNIFORM3DVPROC glad_glUniform3dv = NULL; +PFNGLUNIFORM3FPROC glad_glUniform3f = NULL; +PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL; +PFNGLUNIFORM3IPROC glad_glUniform3i = NULL; +PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL; +PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL; +PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL; +PFNGLUNIFORM4DPROC glad_glUniform4d = NULL; +PFNGLUNIFORM4DVPROC glad_glUniform4dv = NULL; +PFNGLUNIFORM4FPROC glad_glUniform4f = NULL; +PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL; +PFNGLUNIFORM4IPROC glad_glUniform4i = NULL; +PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL; +PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL; +PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL; +PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL; +PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv = NULL; +PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL; +PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv = NULL; +PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL; +PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv = NULL; +PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL; +PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv = NULL; +PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL; +PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv = NULL; +PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL; +PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv = NULL; +PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL; +PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv = NULL; +PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL; +PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv = NULL; +PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL; +PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv = NULL; +PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL; +PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv = NULL; +PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL; +PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL; +PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL; +PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL; +PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL; +PFNGLVERTEX2DPROC glad_glVertex2d = NULL; +PFNGLVERTEX2DVPROC glad_glVertex2dv = NULL; +PFNGLVERTEX2FPROC glad_glVertex2f = NULL; +PFNGLVERTEX2FVPROC glad_glVertex2fv = NULL; +PFNGLVERTEX2IPROC glad_glVertex2i = NULL; +PFNGLVERTEX2IVPROC glad_glVertex2iv = NULL; +PFNGLVERTEX2SPROC glad_glVertex2s = NULL; +PFNGLVERTEX2SVPROC glad_glVertex2sv = NULL; +PFNGLVERTEX3DPROC glad_glVertex3d = NULL; +PFNGLVERTEX3DVPROC glad_glVertex3dv = NULL; +PFNGLVERTEX3FPROC glad_glVertex3f = NULL; +PFNGLVERTEX3FVPROC glad_glVertex3fv = NULL; +PFNGLVERTEX3IPROC glad_glVertex3i = NULL; +PFNGLVERTEX3IVPROC glad_glVertex3iv = NULL; +PFNGLVERTEX3SPROC glad_glVertex3s = NULL; +PFNGLVERTEX3SVPROC glad_glVertex3sv = NULL; +PFNGLVERTEX4DPROC glad_glVertex4d = NULL; +PFNGLVERTEX4DVPROC glad_glVertex4dv = NULL; +PFNGLVERTEX4FPROC glad_glVertex4f = NULL; +PFNGLVERTEX4FVPROC glad_glVertex4fv = NULL; +PFNGLVERTEX4IPROC glad_glVertex4i = NULL; +PFNGLVERTEX4IVPROC glad_glVertex4iv = NULL; +PFNGLVERTEX4SPROC glad_glVertex4s = NULL; +PFNGLVERTEX4SVPROC glad_glVertex4sv = NULL; +PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL; +PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL; +PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL; +PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL; +PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL; +PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL; +PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL; +PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL; +PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL; +PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL; +PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL; +PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL; +PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL; +PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL; +PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL; +PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL; +PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL; +PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL; +PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL; +PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL; +PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL; +PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL; +PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL; +PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL; +PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL; +PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL; +PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL; +PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL; +PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL; +PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL; +PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL; +PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL; +PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL; +PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL; +PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL; +PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL; +PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL; +PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL; +PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL; +PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL; +PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL; +PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL; +PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL; +PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL; +PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL; +PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL; +PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL; +PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL; +PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL; +PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL; +PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL; +PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL; +PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL; +PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL; +PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL; +PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL; +PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL; +PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL; +PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d = NULL; +PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv = NULL; +PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d = NULL; +PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv = NULL; +PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d = NULL; +PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv = NULL; +PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d = NULL; +PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv = NULL; +PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer = NULL; +PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui = NULL; +PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv = NULL; +PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui = NULL; +PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv = NULL; +PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui = NULL; +PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv = NULL; +PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui = NULL; +PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv = NULL; +PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL; +PFNGLVERTEXP2UIPROC glad_glVertexP2ui = NULL; +PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv = NULL; +PFNGLVERTEXP3UIPROC glad_glVertexP3ui = NULL; +PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv = NULL; +PFNGLVERTEXP4UIPROC glad_glVertexP4ui = NULL; +PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv = NULL; +PFNGLVERTEXPOINTERPROC glad_glVertexPointer = NULL; +PFNGLVIEWPORTPROC glad_glViewport = NULL; +PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv = NULL; +PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf = NULL; +PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv = NULL; +PFNGLWAITSYNCPROC glad_glWaitSync = NULL; +PFNGLWINDOWPOS2DPROC glad_glWindowPos2d = NULL; +PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv = NULL; +PFNGLWINDOWPOS2FPROC glad_glWindowPos2f = NULL; +PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv = NULL; +PFNGLWINDOWPOS2IPROC glad_glWindowPos2i = NULL; +PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv = NULL; +PFNGLWINDOWPOS2SPROC glad_glWindowPos2s = NULL; +PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv = NULL; +PFNGLWINDOWPOS3DPROC glad_glWindowPos3d = NULL; +PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv = NULL; +PFNGLWINDOWPOS3FPROC glad_glWindowPos3f = NULL; +PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv = NULL; +PFNGLWINDOWPOS3IPROC glad_glWindowPos3i = NULL; +PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv = NULL; +PFNGLWINDOWPOS3SPROC glad_glWindowPos3s = NULL; +PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv = NULL; +static void load_GL_VERSION_1_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_0) return; + glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); + glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); + glad_glHint = (PFNGLHINTPROC)load("glHint"); + glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); + glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); + glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode"); + glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); + glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); + glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); + glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); + glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); + glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D"); + glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); + glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer"); + glad_glClear = (PFNGLCLEARPROC)load("glClear"); + glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); + glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); + glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth"); + glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); + glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); + glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); + glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); + glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); + glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); + glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); + glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); + glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); + glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); + glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); + glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); + glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref"); + glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); + glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); + glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); + glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); + glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev"); + glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); + glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); + glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); + glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage"); + glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); + glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); + glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv"); + glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv"); + glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); + glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); + glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); + glad_glNewList = (PFNGLNEWLISTPROC)load("glNewList"); + glad_glEndList = (PFNGLENDLISTPROC)load("glEndList"); + glad_glCallList = (PFNGLCALLLISTPROC)load("glCallList"); + glad_glCallLists = (PFNGLCALLLISTSPROC)load("glCallLists"); + glad_glDeleteLists = (PFNGLDELETELISTSPROC)load("glDeleteLists"); + glad_glGenLists = (PFNGLGENLISTSPROC)load("glGenLists"); + glad_glListBase = (PFNGLLISTBASEPROC)load("glListBase"); + glad_glBegin = (PFNGLBEGINPROC)load("glBegin"); + glad_glBitmap = (PFNGLBITMAPPROC)load("glBitmap"); + glad_glColor3b = (PFNGLCOLOR3BPROC)load("glColor3b"); + glad_glColor3bv = (PFNGLCOLOR3BVPROC)load("glColor3bv"); + glad_glColor3d = (PFNGLCOLOR3DPROC)load("glColor3d"); + glad_glColor3dv = (PFNGLCOLOR3DVPROC)load("glColor3dv"); + glad_glColor3f = (PFNGLCOLOR3FPROC)load("glColor3f"); + glad_glColor3fv = (PFNGLCOLOR3FVPROC)load("glColor3fv"); + glad_glColor3i = (PFNGLCOLOR3IPROC)load("glColor3i"); + glad_glColor3iv = (PFNGLCOLOR3IVPROC)load("glColor3iv"); + glad_glColor3s = (PFNGLCOLOR3SPROC)load("glColor3s"); + glad_glColor3sv = (PFNGLCOLOR3SVPROC)load("glColor3sv"); + glad_glColor3ub = (PFNGLCOLOR3UBPROC)load("glColor3ub"); + glad_glColor3ubv = (PFNGLCOLOR3UBVPROC)load("glColor3ubv"); + glad_glColor3ui = (PFNGLCOLOR3UIPROC)load("glColor3ui"); + glad_glColor3uiv = (PFNGLCOLOR3UIVPROC)load("glColor3uiv"); + glad_glColor3us = (PFNGLCOLOR3USPROC)load("glColor3us"); + glad_glColor3usv = (PFNGLCOLOR3USVPROC)load("glColor3usv"); + glad_glColor4b = (PFNGLCOLOR4BPROC)load("glColor4b"); + glad_glColor4bv = (PFNGLCOLOR4BVPROC)load("glColor4bv"); + glad_glColor4d = (PFNGLCOLOR4DPROC)load("glColor4d"); + glad_glColor4dv = (PFNGLCOLOR4DVPROC)load("glColor4dv"); + glad_glColor4f = (PFNGLCOLOR4FPROC)load("glColor4f"); + glad_glColor4fv = (PFNGLCOLOR4FVPROC)load("glColor4fv"); + glad_glColor4i = (PFNGLCOLOR4IPROC)load("glColor4i"); + glad_glColor4iv = (PFNGLCOLOR4IVPROC)load("glColor4iv"); + glad_glColor4s = (PFNGLCOLOR4SPROC)load("glColor4s"); + glad_glColor4sv = (PFNGLCOLOR4SVPROC)load("glColor4sv"); + glad_glColor4ub = (PFNGLCOLOR4UBPROC)load("glColor4ub"); + glad_glColor4ubv = (PFNGLCOLOR4UBVPROC)load("glColor4ubv"); + glad_glColor4ui = (PFNGLCOLOR4UIPROC)load("glColor4ui"); + glad_glColor4uiv = (PFNGLCOLOR4UIVPROC)load("glColor4uiv"); + glad_glColor4us = (PFNGLCOLOR4USPROC)load("glColor4us"); + glad_glColor4usv = (PFNGLCOLOR4USVPROC)load("glColor4usv"); + glad_glEdgeFlag = (PFNGLEDGEFLAGPROC)load("glEdgeFlag"); + glad_glEdgeFlagv = (PFNGLEDGEFLAGVPROC)load("glEdgeFlagv"); + glad_glEnd = (PFNGLENDPROC)load("glEnd"); + glad_glIndexd = (PFNGLINDEXDPROC)load("glIndexd"); + glad_glIndexdv = (PFNGLINDEXDVPROC)load("glIndexdv"); + glad_glIndexf = (PFNGLINDEXFPROC)load("glIndexf"); + glad_glIndexfv = (PFNGLINDEXFVPROC)load("glIndexfv"); + glad_glIndexi = (PFNGLINDEXIPROC)load("glIndexi"); + glad_glIndexiv = (PFNGLINDEXIVPROC)load("glIndexiv"); + glad_glIndexs = (PFNGLINDEXSPROC)load("glIndexs"); + glad_glIndexsv = (PFNGLINDEXSVPROC)load("glIndexsv"); + glad_glNormal3b = (PFNGLNORMAL3BPROC)load("glNormal3b"); + glad_glNormal3bv = (PFNGLNORMAL3BVPROC)load("glNormal3bv"); + glad_glNormal3d = (PFNGLNORMAL3DPROC)load("glNormal3d"); + glad_glNormal3dv = (PFNGLNORMAL3DVPROC)load("glNormal3dv"); + glad_glNormal3f = (PFNGLNORMAL3FPROC)load("glNormal3f"); + glad_glNormal3fv = (PFNGLNORMAL3FVPROC)load("glNormal3fv"); + glad_glNormal3i = (PFNGLNORMAL3IPROC)load("glNormal3i"); + glad_glNormal3iv = (PFNGLNORMAL3IVPROC)load("glNormal3iv"); + glad_glNormal3s = (PFNGLNORMAL3SPROC)load("glNormal3s"); + glad_glNormal3sv = (PFNGLNORMAL3SVPROC)load("glNormal3sv"); + glad_glRasterPos2d = (PFNGLRASTERPOS2DPROC)load("glRasterPos2d"); + glad_glRasterPos2dv = (PFNGLRASTERPOS2DVPROC)load("glRasterPos2dv"); + glad_glRasterPos2f = (PFNGLRASTERPOS2FPROC)load("glRasterPos2f"); + glad_glRasterPos2fv = (PFNGLRASTERPOS2FVPROC)load("glRasterPos2fv"); + glad_glRasterPos2i = (PFNGLRASTERPOS2IPROC)load("glRasterPos2i"); + glad_glRasterPos2iv = (PFNGLRASTERPOS2IVPROC)load("glRasterPos2iv"); + glad_glRasterPos2s = (PFNGLRASTERPOS2SPROC)load("glRasterPos2s"); + glad_glRasterPos2sv = (PFNGLRASTERPOS2SVPROC)load("glRasterPos2sv"); + glad_glRasterPos3d = (PFNGLRASTERPOS3DPROC)load("glRasterPos3d"); + glad_glRasterPos3dv = (PFNGLRASTERPOS3DVPROC)load("glRasterPos3dv"); + glad_glRasterPos3f = (PFNGLRASTERPOS3FPROC)load("glRasterPos3f"); + glad_glRasterPos3fv = (PFNGLRASTERPOS3FVPROC)load("glRasterPos3fv"); + glad_glRasterPos3i = (PFNGLRASTERPOS3IPROC)load("glRasterPos3i"); + glad_glRasterPos3iv = (PFNGLRASTERPOS3IVPROC)load("glRasterPos3iv"); + glad_glRasterPos3s = (PFNGLRASTERPOS3SPROC)load("glRasterPos3s"); + glad_glRasterPos3sv = (PFNGLRASTERPOS3SVPROC)load("glRasterPos3sv"); + glad_glRasterPos4d = (PFNGLRASTERPOS4DPROC)load("glRasterPos4d"); + glad_glRasterPos4dv = (PFNGLRASTERPOS4DVPROC)load("glRasterPos4dv"); + glad_glRasterPos4f = (PFNGLRASTERPOS4FPROC)load("glRasterPos4f"); + glad_glRasterPos4fv = (PFNGLRASTERPOS4FVPROC)load("glRasterPos4fv"); + glad_glRasterPos4i = (PFNGLRASTERPOS4IPROC)load("glRasterPos4i"); + glad_glRasterPos4iv = (PFNGLRASTERPOS4IVPROC)load("glRasterPos4iv"); + glad_glRasterPos4s = (PFNGLRASTERPOS4SPROC)load("glRasterPos4s"); + glad_glRasterPos4sv = (PFNGLRASTERPOS4SVPROC)load("glRasterPos4sv"); + glad_glRectd = (PFNGLRECTDPROC)load("glRectd"); + glad_glRectdv = (PFNGLRECTDVPROC)load("glRectdv"); + glad_glRectf = (PFNGLRECTFPROC)load("glRectf"); + glad_glRectfv = (PFNGLRECTFVPROC)load("glRectfv"); + glad_glRecti = (PFNGLRECTIPROC)load("glRecti"); + glad_glRectiv = (PFNGLRECTIVPROC)load("glRectiv"); + glad_glRects = (PFNGLRECTSPROC)load("glRects"); + glad_glRectsv = (PFNGLRECTSVPROC)load("glRectsv"); + glad_glTexCoord1d = (PFNGLTEXCOORD1DPROC)load("glTexCoord1d"); + glad_glTexCoord1dv = (PFNGLTEXCOORD1DVPROC)load("glTexCoord1dv"); + glad_glTexCoord1f = (PFNGLTEXCOORD1FPROC)load("glTexCoord1f"); + glad_glTexCoord1fv = (PFNGLTEXCOORD1FVPROC)load("glTexCoord1fv"); + glad_glTexCoord1i = (PFNGLTEXCOORD1IPROC)load("glTexCoord1i"); + glad_glTexCoord1iv = (PFNGLTEXCOORD1IVPROC)load("glTexCoord1iv"); + glad_glTexCoord1s = (PFNGLTEXCOORD1SPROC)load("glTexCoord1s"); + glad_glTexCoord1sv = (PFNGLTEXCOORD1SVPROC)load("glTexCoord1sv"); + glad_glTexCoord2d = (PFNGLTEXCOORD2DPROC)load("glTexCoord2d"); + glad_glTexCoord2dv = (PFNGLTEXCOORD2DVPROC)load("glTexCoord2dv"); + glad_glTexCoord2f = (PFNGLTEXCOORD2FPROC)load("glTexCoord2f"); + glad_glTexCoord2fv = (PFNGLTEXCOORD2FVPROC)load("glTexCoord2fv"); + glad_glTexCoord2i = (PFNGLTEXCOORD2IPROC)load("glTexCoord2i"); + glad_glTexCoord2iv = (PFNGLTEXCOORD2IVPROC)load("glTexCoord2iv"); + glad_glTexCoord2s = (PFNGLTEXCOORD2SPROC)load("glTexCoord2s"); + glad_glTexCoord2sv = (PFNGLTEXCOORD2SVPROC)load("glTexCoord2sv"); + glad_glTexCoord3d = (PFNGLTEXCOORD3DPROC)load("glTexCoord3d"); + glad_glTexCoord3dv = (PFNGLTEXCOORD3DVPROC)load("glTexCoord3dv"); + glad_glTexCoord3f = (PFNGLTEXCOORD3FPROC)load("glTexCoord3f"); + glad_glTexCoord3fv = (PFNGLTEXCOORD3FVPROC)load("glTexCoord3fv"); + glad_glTexCoord3i = (PFNGLTEXCOORD3IPROC)load("glTexCoord3i"); + glad_glTexCoord3iv = (PFNGLTEXCOORD3IVPROC)load("glTexCoord3iv"); + glad_glTexCoord3s = (PFNGLTEXCOORD3SPROC)load("glTexCoord3s"); + glad_glTexCoord3sv = (PFNGLTEXCOORD3SVPROC)load("glTexCoord3sv"); + glad_glTexCoord4d = (PFNGLTEXCOORD4DPROC)load("glTexCoord4d"); + glad_glTexCoord4dv = (PFNGLTEXCOORD4DVPROC)load("glTexCoord4dv"); + glad_glTexCoord4f = (PFNGLTEXCOORD4FPROC)load("glTexCoord4f"); + glad_glTexCoord4fv = (PFNGLTEXCOORD4FVPROC)load("glTexCoord4fv"); + glad_glTexCoord4i = (PFNGLTEXCOORD4IPROC)load("glTexCoord4i"); + glad_glTexCoord4iv = (PFNGLTEXCOORD4IVPROC)load("glTexCoord4iv"); + glad_glTexCoord4s = (PFNGLTEXCOORD4SPROC)load("glTexCoord4s"); + glad_glTexCoord4sv = (PFNGLTEXCOORD4SVPROC)load("glTexCoord4sv"); + glad_glVertex2d = (PFNGLVERTEX2DPROC)load("glVertex2d"); + glad_glVertex2dv = (PFNGLVERTEX2DVPROC)load("glVertex2dv"); + glad_glVertex2f = (PFNGLVERTEX2FPROC)load("glVertex2f"); + glad_glVertex2fv = (PFNGLVERTEX2FVPROC)load("glVertex2fv"); + glad_glVertex2i = (PFNGLVERTEX2IPROC)load("glVertex2i"); + glad_glVertex2iv = (PFNGLVERTEX2IVPROC)load("glVertex2iv"); + glad_glVertex2s = (PFNGLVERTEX2SPROC)load("glVertex2s"); + glad_glVertex2sv = (PFNGLVERTEX2SVPROC)load("glVertex2sv"); + glad_glVertex3d = (PFNGLVERTEX3DPROC)load("glVertex3d"); + glad_glVertex3dv = (PFNGLVERTEX3DVPROC)load("glVertex3dv"); + glad_glVertex3f = (PFNGLVERTEX3FPROC)load("glVertex3f"); + glad_glVertex3fv = (PFNGLVERTEX3FVPROC)load("glVertex3fv"); + glad_glVertex3i = (PFNGLVERTEX3IPROC)load("glVertex3i"); + glad_glVertex3iv = (PFNGLVERTEX3IVPROC)load("glVertex3iv"); + glad_glVertex3s = (PFNGLVERTEX3SPROC)load("glVertex3s"); + glad_glVertex3sv = (PFNGLVERTEX3SVPROC)load("glVertex3sv"); + glad_glVertex4d = (PFNGLVERTEX4DPROC)load("glVertex4d"); + glad_glVertex4dv = (PFNGLVERTEX4DVPROC)load("glVertex4dv"); + glad_glVertex4f = (PFNGLVERTEX4FPROC)load("glVertex4f"); + glad_glVertex4fv = (PFNGLVERTEX4FVPROC)load("glVertex4fv"); + glad_glVertex4i = (PFNGLVERTEX4IPROC)load("glVertex4i"); + glad_glVertex4iv = (PFNGLVERTEX4IVPROC)load("glVertex4iv"); + glad_glVertex4s = (PFNGLVERTEX4SPROC)load("glVertex4s"); + glad_glVertex4sv = (PFNGLVERTEX4SVPROC)load("glVertex4sv"); + glad_glClipPlane = (PFNGLCLIPPLANEPROC)load("glClipPlane"); + glad_glColorMaterial = (PFNGLCOLORMATERIALPROC)load("glColorMaterial"); + glad_glFogf = (PFNGLFOGFPROC)load("glFogf"); + glad_glFogfv = (PFNGLFOGFVPROC)load("glFogfv"); + glad_glFogi = (PFNGLFOGIPROC)load("glFogi"); + glad_glFogiv = (PFNGLFOGIVPROC)load("glFogiv"); + glad_glLightf = (PFNGLLIGHTFPROC)load("glLightf"); + glad_glLightfv = (PFNGLLIGHTFVPROC)load("glLightfv"); + glad_glLighti = (PFNGLLIGHTIPROC)load("glLighti"); + glad_glLightiv = (PFNGLLIGHTIVPROC)load("glLightiv"); + glad_glLightModelf = (PFNGLLIGHTMODELFPROC)load("glLightModelf"); + glad_glLightModelfv = (PFNGLLIGHTMODELFVPROC)load("glLightModelfv"); + glad_glLightModeli = (PFNGLLIGHTMODELIPROC)load("glLightModeli"); + glad_glLightModeliv = (PFNGLLIGHTMODELIVPROC)load("glLightModeliv"); + glad_glLineStipple = (PFNGLLINESTIPPLEPROC)load("glLineStipple"); + glad_glMaterialf = (PFNGLMATERIALFPROC)load("glMaterialf"); + glad_glMaterialfv = (PFNGLMATERIALFVPROC)load("glMaterialfv"); + glad_glMateriali = (PFNGLMATERIALIPROC)load("glMateriali"); + glad_glMaterialiv = (PFNGLMATERIALIVPROC)load("glMaterialiv"); + glad_glPolygonStipple = (PFNGLPOLYGONSTIPPLEPROC)load("glPolygonStipple"); + glad_glShadeModel = (PFNGLSHADEMODELPROC)load("glShadeModel"); + glad_glTexEnvf = (PFNGLTEXENVFPROC)load("glTexEnvf"); + glad_glTexEnvfv = (PFNGLTEXENVFVPROC)load("glTexEnvfv"); + glad_glTexEnvi = (PFNGLTEXENVIPROC)load("glTexEnvi"); + glad_glTexEnviv = (PFNGLTEXENVIVPROC)load("glTexEnviv"); + glad_glTexGend = (PFNGLTEXGENDPROC)load("glTexGend"); + glad_glTexGendv = (PFNGLTEXGENDVPROC)load("glTexGendv"); + glad_glTexGenf = (PFNGLTEXGENFPROC)load("glTexGenf"); + glad_glTexGenfv = (PFNGLTEXGENFVPROC)load("glTexGenfv"); + glad_glTexGeni = (PFNGLTEXGENIPROC)load("glTexGeni"); + glad_glTexGeniv = (PFNGLTEXGENIVPROC)load("glTexGeniv"); + glad_glFeedbackBuffer = (PFNGLFEEDBACKBUFFERPROC)load("glFeedbackBuffer"); + glad_glSelectBuffer = (PFNGLSELECTBUFFERPROC)load("glSelectBuffer"); + glad_glRenderMode = (PFNGLRENDERMODEPROC)load("glRenderMode"); + glad_glInitNames = (PFNGLINITNAMESPROC)load("glInitNames"); + glad_glLoadName = (PFNGLLOADNAMEPROC)load("glLoadName"); + glad_glPassThrough = (PFNGLPASSTHROUGHPROC)load("glPassThrough"); + glad_glPopName = (PFNGLPOPNAMEPROC)load("glPopName"); + glad_glPushName = (PFNGLPUSHNAMEPROC)load("glPushName"); + glad_glClearAccum = (PFNGLCLEARACCUMPROC)load("glClearAccum"); + glad_glClearIndex = (PFNGLCLEARINDEXPROC)load("glClearIndex"); + glad_glIndexMask = (PFNGLINDEXMASKPROC)load("glIndexMask"); + glad_glAccum = (PFNGLACCUMPROC)load("glAccum"); + glad_glPopAttrib = (PFNGLPOPATTRIBPROC)load("glPopAttrib"); + glad_glPushAttrib = (PFNGLPUSHATTRIBPROC)load("glPushAttrib"); + glad_glMap1d = (PFNGLMAP1DPROC)load("glMap1d"); + glad_glMap1f = (PFNGLMAP1FPROC)load("glMap1f"); + glad_glMap2d = (PFNGLMAP2DPROC)load("glMap2d"); + glad_glMap2f = (PFNGLMAP2FPROC)load("glMap2f"); + glad_glMapGrid1d = (PFNGLMAPGRID1DPROC)load("glMapGrid1d"); + glad_glMapGrid1f = (PFNGLMAPGRID1FPROC)load("glMapGrid1f"); + glad_glMapGrid2d = (PFNGLMAPGRID2DPROC)load("glMapGrid2d"); + glad_glMapGrid2f = (PFNGLMAPGRID2FPROC)load("glMapGrid2f"); + glad_glEvalCoord1d = (PFNGLEVALCOORD1DPROC)load("glEvalCoord1d"); + glad_glEvalCoord1dv = (PFNGLEVALCOORD1DVPROC)load("glEvalCoord1dv"); + glad_glEvalCoord1f = (PFNGLEVALCOORD1FPROC)load("glEvalCoord1f"); + glad_glEvalCoord1fv = (PFNGLEVALCOORD1FVPROC)load("glEvalCoord1fv"); + glad_glEvalCoord2d = (PFNGLEVALCOORD2DPROC)load("glEvalCoord2d"); + glad_glEvalCoord2dv = (PFNGLEVALCOORD2DVPROC)load("glEvalCoord2dv"); + glad_glEvalCoord2f = (PFNGLEVALCOORD2FPROC)load("glEvalCoord2f"); + glad_glEvalCoord2fv = (PFNGLEVALCOORD2FVPROC)load("glEvalCoord2fv"); + glad_glEvalMesh1 = (PFNGLEVALMESH1PROC)load("glEvalMesh1"); + glad_glEvalPoint1 = (PFNGLEVALPOINT1PROC)load("glEvalPoint1"); + glad_glEvalMesh2 = (PFNGLEVALMESH2PROC)load("glEvalMesh2"); + glad_glEvalPoint2 = (PFNGLEVALPOINT2PROC)load("glEvalPoint2"); + glad_glAlphaFunc = (PFNGLALPHAFUNCPROC)load("glAlphaFunc"); + glad_glPixelZoom = (PFNGLPIXELZOOMPROC)load("glPixelZoom"); + glad_glPixelTransferf = (PFNGLPIXELTRANSFERFPROC)load("glPixelTransferf"); + glad_glPixelTransferi = (PFNGLPIXELTRANSFERIPROC)load("glPixelTransferi"); + glad_glPixelMapfv = (PFNGLPIXELMAPFVPROC)load("glPixelMapfv"); + glad_glPixelMapuiv = (PFNGLPIXELMAPUIVPROC)load("glPixelMapuiv"); + glad_glPixelMapusv = (PFNGLPIXELMAPUSVPROC)load("glPixelMapusv"); + glad_glCopyPixels = (PFNGLCOPYPIXELSPROC)load("glCopyPixels"); + glad_glDrawPixels = (PFNGLDRAWPIXELSPROC)load("glDrawPixels"); + glad_glGetClipPlane = (PFNGLGETCLIPPLANEPROC)load("glGetClipPlane"); + glad_glGetLightfv = (PFNGLGETLIGHTFVPROC)load("glGetLightfv"); + glad_glGetLightiv = (PFNGLGETLIGHTIVPROC)load("glGetLightiv"); + glad_glGetMapdv = (PFNGLGETMAPDVPROC)load("glGetMapdv"); + glad_glGetMapfv = (PFNGLGETMAPFVPROC)load("glGetMapfv"); + glad_glGetMapiv = (PFNGLGETMAPIVPROC)load("glGetMapiv"); + glad_glGetMaterialfv = (PFNGLGETMATERIALFVPROC)load("glGetMaterialfv"); + glad_glGetMaterialiv = (PFNGLGETMATERIALIVPROC)load("glGetMaterialiv"); + glad_glGetPixelMapfv = (PFNGLGETPIXELMAPFVPROC)load("glGetPixelMapfv"); + glad_glGetPixelMapuiv = (PFNGLGETPIXELMAPUIVPROC)load("glGetPixelMapuiv"); + glad_glGetPixelMapusv = (PFNGLGETPIXELMAPUSVPROC)load("glGetPixelMapusv"); + glad_glGetPolygonStipple = (PFNGLGETPOLYGONSTIPPLEPROC)load("glGetPolygonStipple"); + glad_glGetTexEnvfv = (PFNGLGETTEXENVFVPROC)load("glGetTexEnvfv"); + glad_glGetTexEnviv = (PFNGLGETTEXENVIVPROC)load("glGetTexEnviv"); + glad_glGetTexGendv = (PFNGLGETTEXGENDVPROC)load("glGetTexGendv"); + glad_glGetTexGenfv = (PFNGLGETTEXGENFVPROC)load("glGetTexGenfv"); + glad_glGetTexGeniv = (PFNGLGETTEXGENIVPROC)load("glGetTexGeniv"); + glad_glIsList = (PFNGLISLISTPROC)load("glIsList"); + glad_glFrustum = (PFNGLFRUSTUMPROC)load("glFrustum"); + glad_glLoadIdentity = (PFNGLLOADIDENTITYPROC)load("glLoadIdentity"); + glad_glLoadMatrixf = (PFNGLLOADMATRIXFPROC)load("glLoadMatrixf"); + glad_glLoadMatrixd = (PFNGLLOADMATRIXDPROC)load("glLoadMatrixd"); + glad_glMatrixMode = (PFNGLMATRIXMODEPROC)load("glMatrixMode"); + glad_glMultMatrixf = (PFNGLMULTMATRIXFPROC)load("glMultMatrixf"); + glad_glMultMatrixd = (PFNGLMULTMATRIXDPROC)load("glMultMatrixd"); + glad_glOrtho = (PFNGLORTHOPROC)load("glOrtho"); + glad_glPopMatrix = (PFNGLPOPMATRIXPROC)load("glPopMatrix"); + glad_glPushMatrix = (PFNGLPUSHMATRIXPROC)load("glPushMatrix"); + glad_glRotated = (PFNGLROTATEDPROC)load("glRotated"); + glad_glRotatef = (PFNGLROTATEFPROC)load("glRotatef"); + glad_glScaled = (PFNGLSCALEDPROC)load("glScaled"); + glad_glScalef = (PFNGLSCALEFPROC)load("glScalef"); + glad_glTranslated = (PFNGLTRANSLATEDPROC)load("glTranslated"); + glad_glTranslatef = (PFNGLTRANSLATEFPROC)load("glTranslatef"); +} +static void load_GL_VERSION_1_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_1) return; + glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); + glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); + glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); + glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); + glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); + glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D"); + glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); + glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D"); + glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); + glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); + glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); + glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); + glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); + glad_glArrayElement = (PFNGLARRAYELEMENTPROC)load("glArrayElement"); + glad_glColorPointer = (PFNGLCOLORPOINTERPROC)load("glColorPointer"); + glad_glDisableClientState = (PFNGLDISABLECLIENTSTATEPROC)load("glDisableClientState"); + glad_glEdgeFlagPointer = (PFNGLEDGEFLAGPOINTERPROC)load("glEdgeFlagPointer"); + glad_glEnableClientState = (PFNGLENABLECLIENTSTATEPROC)load("glEnableClientState"); + glad_glIndexPointer = (PFNGLINDEXPOINTERPROC)load("glIndexPointer"); + glad_glInterleavedArrays = (PFNGLINTERLEAVEDARRAYSPROC)load("glInterleavedArrays"); + glad_glNormalPointer = (PFNGLNORMALPOINTERPROC)load("glNormalPointer"); + glad_glTexCoordPointer = (PFNGLTEXCOORDPOINTERPROC)load("glTexCoordPointer"); + glad_glVertexPointer = (PFNGLVERTEXPOINTERPROC)load("glVertexPointer"); + glad_glAreTexturesResident = (PFNGLARETEXTURESRESIDENTPROC)load("glAreTexturesResident"); + glad_glPrioritizeTextures = (PFNGLPRIORITIZETEXTURESPROC)load("glPrioritizeTextures"); + glad_glIndexub = (PFNGLINDEXUBPROC)load("glIndexub"); + glad_glIndexubv = (PFNGLINDEXUBVPROC)load("glIndexubv"); + glad_glPopClientAttrib = (PFNGLPOPCLIENTATTRIBPROC)load("glPopClientAttrib"); + glad_glPushClientAttrib = (PFNGLPUSHCLIENTATTRIBPROC)load("glPushClientAttrib"); +} +static void load_GL_VERSION_1_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_2) return; + glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); + glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); + glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); + glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); +} +static void load_GL_VERSION_1_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_3) return; + glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); + glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); + glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); + glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); + glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D"); + glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); + glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); + glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); + glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); + glad_glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC)load("glClientActiveTexture"); + glad_glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC)load("glMultiTexCoord1d"); + glad_glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC)load("glMultiTexCoord1dv"); + glad_glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC)load("glMultiTexCoord1f"); + glad_glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC)load("glMultiTexCoord1fv"); + glad_glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC)load("glMultiTexCoord1i"); + glad_glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC)load("glMultiTexCoord1iv"); + glad_glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC)load("glMultiTexCoord1s"); + glad_glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC)load("glMultiTexCoord1sv"); + glad_glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC)load("glMultiTexCoord2d"); + glad_glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC)load("glMultiTexCoord2dv"); + glad_glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC)load("glMultiTexCoord2f"); + glad_glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC)load("glMultiTexCoord2fv"); + glad_glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC)load("glMultiTexCoord2i"); + glad_glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC)load("glMultiTexCoord2iv"); + glad_glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC)load("glMultiTexCoord2s"); + glad_glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC)load("glMultiTexCoord2sv"); + glad_glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC)load("glMultiTexCoord3d"); + glad_glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC)load("glMultiTexCoord3dv"); + glad_glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC)load("glMultiTexCoord3f"); + glad_glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC)load("glMultiTexCoord3fv"); + glad_glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC)load("glMultiTexCoord3i"); + glad_glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC)load("glMultiTexCoord3iv"); + glad_glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC)load("glMultiTexCoord3s"); + glad_glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC)load("glMultiTexCoord3sv"); + glad_glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC)load("glMultiTexCoord4d"); + glad_glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC)load("glMultiTexCoord4dv"); + glad_glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC)load("glMultiTexCoord4f"); + glad_glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC)load("glMultiTexCoord4fv"); + glad_glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC)load("glMultiTexCoord4i"); + glad_glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC)load("glMultiTexCoord4iv"); + glad_glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC)load("glMultiTexCoord4s"); + glad_glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC)load("glMultiTexCoord4sv"); + glad_glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC)load("glLoadTransposeMatrixf"); + glad_glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC)load("glLoadTransposeMatrixd"); + glad_glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC)load("glMultTransposeMatrixf"); + glad_glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC)load("glMultTransposeMatrixd"); +} +static void load_GL_VERSION_1_4(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_4) return; + glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); + glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays"); + glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements"); + glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); + glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); + glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); + glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); + glad_glFogCoordf = (PFNGLFOGCOORDFPROC)load("glFogCoordf"); + glad_glFogCoordfv = (PFNGLFOGCOORDFVPROC)load("glFogCoordfv"); + glad_glFogCoordd = (PFNGLFOGCOORDDPROC)load("glFogCoordd"); + glad_glFogCoorddv = (PFNGLFOGCOORDDVPROC)load("glFogCoorddv"); + glad_glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC)load("glFogCoordPointer"); + glad_glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC)load("glSecondaryColor3b"); + glad_glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC)load("glSecondaryColor3bv"); + glad_glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC)load("glSecondaryColor3d"); + glad_glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC)load("glSecondaryColor3dv"); + glad_glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC)load("glSecondaryColor3f"); + glad_glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC)load("glSecondaryColor3fv"); + glad_glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC)load("glSecondaryColor3i"); + glad_glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC)load("glSecondaryColor3iv"); + glad_glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC)load("glSecondaryColor3s"); + glad_glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC)load("glSecondaryColor3sv"); + glad_glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC)load("glSecondaryColor3ub"); + glad_glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC)load("glSecondaryColor3ubv"); + glad_glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC)load("glSecondaryColor3ui"); + glad_glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC)load("glSecondaryColor3uiv"); + glad_glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC)load("glSecondaryColor3us"); + glad_glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC)load("glSecondaryColor3usv"); + glad_glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC)load("glSecondaryColorPointer"); + glad_glWindowPos2d = (PFNGLWINDOWPOS2DPROC)load("glWindowPos2d"); + glad_glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC)load("glWindowPos2dv"); + glad_glWindowPos2f = (PFNGLWINDOWPOS2FPROC)load("glWindowPos2f"); + glad_glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC)load("glWindowPos2fv"); + glad_glWindowPos2i = (PFNGLWINDOWPOS2IPROC)load("glWindowPos2i"); + glad_glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC)load("glWindowPos2iv"); + glad_glWindowPos2s = (PFNGLWINDOWPOS2SPROC)load("glWindowPos2s"); + glad_glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC)load("glWindowPos2sv"); + glad_glWindowPos3d = (PFNGLWINDOWPOS3DPROC)load("glWindowPos3d"); + glad_glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC)load("glWindowPos3dv"); + glad_glWindowPos3f = (PFNGLWINDOWPOS3FPROC)load("glWindowPos3f"); + glad_glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC)load("glWindowPos3fv"); + glad_glWindowPos3i = (PFNGLWINDOWPOS3IPROC)load("glWindowPos3i"); + glad_glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC)load("glWindowPos3iv"); + glad_glWindowPos3s = (PFNGLWINDOWPOS3SPROC)load("glWindowPos3s"); + glad_glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC)load("glWindowPos3sv"); + glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); + glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); +} +static void load_GL_VERSION_1_5(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_5) return; + glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); + glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); + glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); + glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); + glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); + glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); + glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv"); + glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); + glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); + glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); + glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); + glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); + glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); + glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); + glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData"); + glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer"); + glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); + glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); + glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); +} +static void load_GL_VERSION_2_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_2_0) return; + glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); + glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); + glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); + glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); + glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); + glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); + glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); + glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); + glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); + glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); + glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); + glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); + glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); + glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); + glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); + glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); + glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); + glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); + glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); + glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); + glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); + glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); + glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); + glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); + glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); + glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); + glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); + glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv"); + glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); + glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); + glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); + glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); + glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); + glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); + glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); + glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); + glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); + glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); + glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); + glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); + glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); + glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); + glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); + glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); + glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); + glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); + glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); + glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); + glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); + glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); + glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); + glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); + glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); + glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); + glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); + glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); + glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d"); + glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv"); + glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); + glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); + glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s"); + glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv"); + glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d"); + glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv"); + glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); + glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); + glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s"); + glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv"); + glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d"); + glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv"); + glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); + glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); + glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s"); + glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv"); + glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv"); + glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv"); + glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv"); + glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub"); + glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv"); + glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv"); + glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv"); + glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv"); + glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d"); + glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv"); + glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); + glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); + glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv"); + glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s"); + glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv"); + glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv"); + glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv"); + glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv"); + glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); +} +static void load_GL_VERSION_2_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_2_1) return; + glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); + glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); + glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); + glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); + glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); + glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); +} +static void load_GL_VERSION_3_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_0) return; + glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski"); + glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); + glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei"); + glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei"); + glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi"); + glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); + glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); + glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); + glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor"); + glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender"); + glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender"); + glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); + glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); + glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); + glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i"); + glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i"); + glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i"); + glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); + glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui"); + glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui"); + glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui"); + glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); + glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv"); + glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv"); + glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv"); + glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); + glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv"); + glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv"); + glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv"); + glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); + glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv"); + glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv"); + glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv"); + glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv"); + glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); + glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation"); + glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); + glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); + glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); + glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); + glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); + glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); + glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); + glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); + glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); + glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv"); + glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv"); + glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv"); + glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv"); + glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); + glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); + glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); + glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); + glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); + glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); + glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); + glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); + glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); + glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); + glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); + glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); + glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); + glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); + glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); + glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); + glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); + glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); + glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); + glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); + glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); + glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); + glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); + glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); + glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); + glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); + glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); + glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); + glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); + glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); + glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); +} +static void load_GL_VERSION_3_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_1) return; + glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); + glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); + glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer"); + glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex"); + glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); + glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); + glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); + glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); + glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); + glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); + glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); + glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); +} +static void load_GL_VERSION_3_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_2) return; + glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); + glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); + glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); + glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); + glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); + glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); + glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); + glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); + glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); + glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); + glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); + glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); + glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); + glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); + glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture"); + glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); + glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); + glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); + glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); +} +static void load_GL_VERSION_3_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_3) return; + glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); + glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); + glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); + glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); + glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); + glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); + glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); + glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); + glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); + glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); + glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); + glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); + glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); + glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); + glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); + glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); + glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); + glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); + glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); + glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); + glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); + glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); + glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); + glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); + glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); + glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); + glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); + glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); + glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); + glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); + glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); + glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); + glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); + glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); + glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); + glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); + glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); + glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); + glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); + glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); + glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); + glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); + glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); + glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); + glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); + glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); + glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); + glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); + glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); + glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); + glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); + glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); + glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); + glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); + glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); + glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); + glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); + glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); +} +static void load_GL_VERSION_4_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_0) return; + glad_glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC)load("glMinSampleShading"); + glad_glBlendEquationi = (PFNGLBLENDEQUATIONIPROC)load("glBlendEquationi"); + glad_glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC)load("glBlendEquationSeparatei"); + glad_glBlendFunci = (PFNGLBLENDFUNCIPROC)load("glBlendFunci"); + glad_glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC)load("glBlendFuncSeparatei"); + glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)load("glDrawArraysIndirect"); + glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)load("glDrawElementsIndirect"); + glad_glUniform1d = (PFNGLUNIFORM1DPROC)load("glUniform1d"); + glad_glUniform2d = (PFNGLUNIFORM2DPROC)load("glUniform2d"); + glad_glUniform3d = (PFNGLUNIFORM3DPROC)load("glUniform3d"); + glad_glUniform4d = (PFNGLUNIFORM4DPROC)load("glUniform4d"); + glad_glUniform1dv = (PFNGLUNIFORM1DVPROC)load("glUniform1dv"); + glad_glUniform2dv = (PFNGLUNIFORM2DVPROC)load("glUniform2dv"); + glad_glUniform3dv = (PFNGLUNIFORM3DVPROC)load("glUniform3dv"); + glad_glUniform4dv = (PFNGLUNIFORM4DVPROC)load("glUniform4dv"); + glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC)load("glUniformMatrix2dv"); + glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC)load("glUniformMatrix3dv"); + glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC)load("glUniformMatrix4dv"); + glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC)load("glUniformMatrix2x3dv"); + glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC)load("glUniformMatrix2x4dv"); + glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC)load("glUniformMatrix3x2dv"); + glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC)load("glUniformMatrix3x4dv"); + glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC)load("glUniformMatrix4x2dv"); + glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC)load("glUniformMatrix4x3dv"); + glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC)load("glGetUniformdv"); + glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)load("glGetSubroutineUniformLocation"); + glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC)load("glGetSubroutineIndex"); + glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)load("glGetActiveSubroutineUniformiv"); + glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)load("glGetActiveSubroutineUniformName"); + glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC)load("glGetActiveSubroutineName"); + glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC)load("glUniformSubroutinesuiv"); + glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC)load("glGetUniformSubroutineuiv"); + glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC)load("glGetProgramStageiv"); + glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)load("glPatchParameteri"); + glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC)load("glPatchParameterfv"); + glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load("glBindTransformFeedback"); + glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load("glDeleteTransformFeedbacks"); + glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load("glGenTransformFeedbacks"); + glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load("glIsTransformFeedback"); + glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load("glPauseTransformFeedback"); + glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load("glResumeTransformFeedback"); + glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC)load("glDrawTransformFeedback"); + glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)load("glDrawTransformFeedbackStream"); + glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC)load("glBeginQueryIndexed"); + glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC)load("glEndQueryIndexed"); + glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC)load("glGetQueryIndexediv"); +} +static void load_GL_VERSION_4_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_1) return; + glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler"); + glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary"); + glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat"); + glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef"); + glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf"); + glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load("glGetProgramBinary"); + glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load("glProgramBinary"); + glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); + glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)load("glUseProgramStages"); + glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)load("glActiveShaderProgram"); + glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)load("glCreateShaderProgramv"); + glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)load("glBindProgramPipeline"); + glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)load("glDeleteProgramPipelines"); + glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)load("glGenProgramPipelines"); + glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)load("glIsProgramPipeline"); + glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)load("glGetProgramPipelineiv"); + glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); + glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)load("glProgramUniform1i"); + glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)load("glProgramUniform1iv"); + glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)load("glProgramUniform1f"); + glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)load("glProgramUniform1fv"); + glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC)load("glProgramUniform1d"); + glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC)load("glProgramUniform1dv"); + glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)load("glProgramUniform1ui"); + glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)load("glProgramUniform1uiv"); + glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)load("glProgramUniform2i"); + glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)load("glProgramUniform2iv"); + glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)load("glProgramUniform2f"); + glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)load("glProgramUniform2fv"); + glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC)load("glProgramUniform2d"); + glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC)load("glProgramUniform2dv"); + glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)load("glProgramUniform2ui"); + glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)load("glProgramUniform2uiv"); + glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)load("glProgramUniform3i"); + glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)load("glProgramUniform3iv"); + glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)load("glProgramUniform3f"); + glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)load("glProgramUniform3fv"); + glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC)load("glProgramUniform3d"); + glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC)load("glProgramUniform3dv"); + glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)load("glProgramUniform3ui"); + glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)load("glProgramUniform3uiv"); + glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)load("glProgramUniform4i"); + glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)load("glProgramUniform4iv"); + glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)load("glProgramUniform4f"); + glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)load("glProgramUniform4fv"); + glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC)load("glProgramUniform4d"); + glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC)load("glProgramUniform4dv"); + glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)load("glProgramUniform4ui"); + glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)load("glProgramUniform4uiv"); + glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)load("glProgramUniformMatrix2fv"); + glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)load("glProgramUniformMatrix3fv"); + glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)load("glProgramUniformMatrix4fv"); + glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC)load("glProgramUniformMatrix2dv"); + glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC)load("glProgramUniformMatrix3dv"); + glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC)load("glProgramUniformMatrix4dv"); + glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)load("glProgramUniformMatrix2x3fv"); + glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)load("glProgramUniformMatrix3x2fv"); + glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)load("glProgramUniformMatrix2x4fv"); + glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)load("glProgramUniformMatrix4x2fv"); + glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)load("glProgramUniformMatrix3x4fv"); + glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)load("glProgramUniformMatrix4x3fv"); + glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)load("glProgramUniformMatrix2x3dv"); + glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)load("glProgramUniformMatrix3x2dv"); + glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)load("glProgramUniformMatrix2x4dv"); + glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)load("glProgramUniformMatrix4x2dv"); + glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)load("glProgramUniformMatrix3x4dv"); + glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)load("glProgramUniformMatrix4x3dv"); + glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)load("glValidateProgramPipeline"); + glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)load("glGetProgramPipelineInfoLog"); + glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC)load("glVertexAttribL1d"); + glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC)load("glVertexAttribL2d"); + glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC)load("glVertexAttribL3d"); + glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC)load("glVertexAttribL4d"); + glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC)load("glVertexAttribL1dv"); + glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC)load("glVertexAttribL2dv"); + glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC)load("glVertexAttribL3dv"); + glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC)load("glVertexAttribL4dv"); + glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC)load("glVertexAttribLPointer"); + glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC)load("glGetVertexAttribLdv"); + glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC)load("glViewportArrayv"); + glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC)load("glViewportIndexedf"); + glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC)load("glViewportIndexedfv"); + glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC)load("glScissorArrayv"); + glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC)load("glScissorIndexed"); + glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC)load("glScissorIndexedv"); + glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC)load("glDepthRangeArrayv"); + glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC)load("glDepthRangeIndexed"); + glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC)load("glGetFloati_v"); + glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC)load("glGetDoublei_v"); +} +static int find_extensionsGL(void) { + if (!get_exts()) return 0; + (void)&has_ext; + free_exts(); + return 1; +} + +static void find_coreGL(void) { + + /* Thank you @elmindreda + * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 + * https://github.com/glfw/glfw/blob/master/src/context.c#L36 + */ + int i, major, minor; + + const char* version; + const char* prefixes[] = { + "OpenGL ES-CM ", + "OpenGL ES-CL ", + "OpenGL ES ", + NULL + }; + + version = (const char*) glGetString(GL_VERSION); + if (!version) return; + + for (i = 0; prefixes[i]; i++) { + const size_t length = strlen(prefixes[i]); + if (strncmp(version, prefixes[i], length) == 0) { + version += length; + break; + } + } + +/* PR #18 */ +#ifdef _MSC_VER + sscanf_s(version, "%d.%d", &major, &minor); +#else + sscanf(version, "%d.%d", &major, &minor); +#endif + + GLVersion.major = major; GLVersion.minor = minor; + max_loaded_major = major; max_loaded_minor = minor; + GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; + GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; + GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; + GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; + GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; + GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; + GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; + GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; + GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; + GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; + GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; + GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; + GLAD_GL_VERSION_4_0 = (major == 4 && minor >= 0) || major > 4; + GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; + if (GLVersion.major > 4 || (GLVersion.major >= 4 && GLVersion.minor >= 1)) { + max_loaded_major = 4; + max_loaded_minor = 1; + } +} + +int gladLoadGLLoader(GLADloadproc load) { + GLVersion.major = 0; GLVersion.minor = 0; + glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + if(glGetString == NULL) return 0; + if(glGetString(GL_VERSION) == NULL) return 0; + find_coreGL(); + load_GL_VERSION_1_0(load); + load_GL_VERSION_1_1(load); + load_GL_VERSION_1_2(load); + load_GL_VERSION_1_3(load); + load_GL_VERSION_1_4(load); + load_GL_VERSION_1_5(load); + load_GL_VERSION_2_0(load); + load_GL_VERSION_2_1(load); + load_GL_VERSION_3_0(load); + load_GL_VERSION_3_1(load); + load_GL_VERSION_3_2(load); + load_GL_VERSION_3_3(load); + load_GL_VERSION_4_0(load); + load_GL_VERSION_4_1(load); + + if (!find_extensionsGL()) return 0; + return GLVersion.major != 0 || GLVersion.minor != 0; +} + diff --git a/src/opengl/notes.md b/src/opengl/notes.md new file mode 100644 index 0000000..3ea0171 --- /dev/null +++ b/src/opengl/notes.md @@ -0,0 +1,10 @@ +honey/gl +-------- + +only support 1 window, for simplicity + +want to be **as transparent as possible**! only hide things from the Lua layer when they are either performance-critical or when they are so C-level that wrapping them would be too clunky. + +**lua setup functions should do nothing except populate tables** + +`gl.init()` will create the window (because that's how we get the opengl context) diff --git a/src/opengl/setup.c b/src/opengl/setup.c new file mode 100644 index 0000000..b169660 --- /dev/null +++ b/src/opengl/setup.c @@ -0,0 +1,23 @@ +#include <lua.h> +#include <lauxlib.h> +#include <glad/glad.h> +#include "util/util.h" +#include "bind.h" + + +void setup_gl(lua_State *L, int honey_tbl) +{ + struct honey_tbl_t tbl[] = { + #define X(name, func) H_FUNC(name, func), + GL_FUNCTIONS + #undef X + + #define X(name, value) H_INT(name, value), + GL_ENUM + #undef X + + H_END + }; + create_table(L, tbl); + lua_setfield(L, honey_tbl, "gl"); +} diff --git a/src/opengl/shader.c b/src/opengl/shader.c new file mode 100644 index 0000000..d78b1ef --- /dev/null +++ b/src/opengl/shader.c @@ -0,0 +1,201 @@ +#include <stdbool.h> +#include <glad/glad.h> +#include <GLFW/glfw3.h> +#include <lua.h> +#include <lauxlib.h> +#include "util/util.h" + +int gl_create_shader(lua_State *L); +int gl_shader_set_source(lua_State *L); +int gl_shader_compile(lua_State *L); +int gl_shader_delete(lua_State *L); + +int gl_program_create(lua_State *L); +int gl_program_attach_shader(lua_State *L); +int gl_program_link(lua_State *L); +int gl_program_use(lua_State *L); + +int gl_uniform_get_location(lua_State *L); +int gl_uniform_1i(lua_State *L); +int gl_uniform_1f(lua_State *L); +int gl_uniform_3f(lua_State *L); +int gl_uniform_4f(lua_State *L); + +int gl_uniform_matrix_4fv(lua_State *L); + + +void setup_shader(lua_State *L, int gl_index) +{ + struct honey_tbl_t tbl[] = { + /* functions */ + H_FUNC("CreateShader", gl_create_shader), + H_FUNC("ShaderSource", gl_shader_set_source), + H_FUNC("CompileShader", gl_shader_compile), + H_FUNC("DeleteShader", gl_shader_delete), + + H_FUNC("CreateProgram", gl_program_create), + H_FUNC("AttachShader", gl_program_attach_shader), + H_FUNC("LinkProgram", gl_program_link), + H_FUNC("UseProgram", gl_program_use), + + H_FUNC("GetUniformLocation", gl_uniform_get_location), + H_FUNC("Uniform1i", gl_uniform_1i), + H_FUNC("Uniform1f", gl_uniform_1i), + H_FUNC("Uniform3f", gl_uniform_1i), + H_FUNC("Uniform4f", gl_uniform_4f), + + H_FUNC("UniformMatrix4fv", gl_uniform_matrix_4fv), + + /******** enums ********/ + /* shader types */ + H_INT("VERTEX_SHADER", GL_VERTEX_SHADER), + H_INT("FRAGMENT_SHADER", GL_FRAGMENT_SHADER), + + H_END + }; + create_table(L, tbl); + append_table(L, gl_index, lua_gettop(L)); + lua_pop(L, 1); +} + + +int gl_create_shader(lua_State *L) +{ + lua_Integer type = luaL_checkinteger(L, 1); + lua_Integer shader = glCreateShader(type); + lua_pushinteger(L, shader); + return 1; +} + + +int gl_shader_set_source(lua_State *L) +{ + lua_Integer shader = luaL_checkinteger(L, 1); + const char *code = luaL_checkstring(L, 2); + glShaderSource(shader, 1, (const GLchar * const*)&code, NULL); + return 0; +} + + +int gl_shader_compile(lua_State *L) +{ + lua_Integer shader = luaL_checkinteger(L, 1); + glCompileShader(shader); + int success; char log[1024]; + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); + if (!success) { + glGetShaderInfoLog(shader, 1024, NULL, log); + luaL_error(L, "shader compilation failed: %s", log); + } + return 0; +} + + +int gl_shader_delete(lua_State *L) +{ + lua_Integer shader = luaL_checkinteger(L, 1); + glDeleteShader(shader); + return 0; +} + + +int gl_program_create(lua_State *L) +{ + lua_Integer program = glCreateProgram(); + lua_pushinteger(L, program); + return 1; +} + + +int gl_program_attach_shader(lua_State *L) +{ + lua_Integer program, shader; + program = luaL_checkinteger(L, 1); + shader = luaL_checkinteger(L, 2); + glAttachShader(program, shader); + return 0; +} + + +int gl_program_link(lua_State *L) +{ + lua_Integer program = luaL_checkinteger(L, 1); + glLinkProgram(program); + int success; char log[1024]; + glGetProgramiv(program, GL_LINK_STATUS, &success); + if (!success) { + glGetProgramInfoLog(program, 1024, NULL, log); + luaL_error(L, "shader linking failed: %s", log); + } + return 0; +} + + +int gl_program_use(lua_State *L) +{ + lua_Integer program = luaL_checkinteger(L, 1); + glUseProgram(program); + return 0; +} + + +int gl_uniform_get_location(lua_State *L) +{ + lua_Integer program = luaL_checkinteger(L, 1); + const char *name = luaL_checkstring(L, 2); + int location = glGetUniformLocation(program, (const GLchar*)name); + lua_pushinteger(L, location); + return 1; +} + + +int gl_uniform_1i(lua_State *L) +{ + lua_Integer location, v0; + location = luaL_checkinteger(L, 1); + v0 = luaL_checkinteger(L, 2); + glUniform1i(location, v0); + return 0; +} + + +int gl_uniform_1f(lua_State *L) +{ + int location = luaL_checkinteger(L, 1); + double value = luaL_checknumber(L, 2); + glUniform1f(location, value); + return 0; +} + + +int gl_uniform_3f(lua_State *L) +{ + int location = luaL_checkinteger(L, 1); + double v0 = luaL_checknumber(L, 2); + double v1 = luaL_checknumber(L, 3); + double v2 = luaL_checknumber(L, 4); + glUniform3f(location, v0, v1, v2); + return 0; +} + + +int gl_uniform_4f(lua_State *L) +{ + lua_Integer location = luaL_checkinteger(L, 1); + lua_Number v0 = luaL_checknumber(L, 2); + lua_Number v1 = luaL_checknumber(L, 3); + lua_Number v2 = luaL_checknumber(L, 4); + lua_Number v3 = luaL_checknumber(L, 5); + glUniform4f(location, v0, v1, v2, v3); + return 0; +} + + +int gl_uniform_matrix_4fv(lua_State *L) +{ + lua_Integer location = luaL_checkinteger(L, 1); + bool transpose = lua_toboolean(L, 2); + float *value = lua_touserdata(L, 3); + glUniformMatrix4fv(location, 1, transpose, value); + return 0; +} diff --git a/src/opengl/texture.c b/src/opengl/texture.c new file mode 100644 index 0000000..13b23c0 --- /dev/null +++ b/src/opengl/texture.c @@ -0,0 +1,131 @@ +#include <glad/glad.h> +#include <GLFW/glfw3.h> +#include <lua.h> +#include <lauxlib.h> +#include "util/util.h" + + +int gl_texture_create(lua_State *L); +int gl_texture_bind(lua_State *L); +int gl_texture_image_2d(lua_State *L); +int gl_texture_generate_mipmaps(lua_State *L); +int gl_texture_set_active(lua_State *L); +int gl_tex_parameter_i(lua_State *L); + + +void setup_texture(lua_State *L, int gl_index) +{ + struct honey_tbl_t tbl[] = { + /* functions */ + H_FUNC("GenTextures", gl_texture_create), + H_FUNC("BindTexture", gl_texture_bind), + H_FUNC("TexImage2D", gl_texture_image_2d), + H_FUNC("GenerateMipmap", gl_texture_generate_mipmaps), + H_FUNC("ActiveTexture", gl_texture_set_active), + H_FUNC("TexParameteri", gl_tex_parameter_i), + + /******** enums ********/ + /* texture binding targets */ + H_INT("TEXTURE_2D", GL_TEXTURE_2D), + + /* texture data formats */ + H_INT("RGB", GL_RGB), + H_INT("RGBA", GL_RGBA), + + /* texture parameters */ + H_INT("TEXTURE_WRAP_S", GL_TEXTURE_WRAP_S), + H_INT("TEXTURE_WRAP_T", GL_TEXTURE_WRAP_T), + H_INT("TEXTURE_MIN_FILTER", GL_TEXTURE_MIN_FILTER), + H_INT("TEXTURE_MAG_FILTER", GL_TEXTURE_MAG_FILTER), + H_INT("TEXTURE_SWIZZLE_R", GL_TEXTURE_SWIZZLE_R), + H_INT("TEXTURE_SWIZZLE_G", GL_TEXTURE_SWIZZLE_G), + H_INT("TEXTURE_SWIZZLE_B", GL_TEXTURE_SWIZZLE_B), + H_INT("TEXTURE_SWIZZLE_A", GL_TEXTURE_SWIZZLE_A), + + /* wrapping types */ + H_INT("REPEAT", GL_REPEAT), + + /* filter types */ + H_INT("NEAREST", GL_NEAREST), + H_INT("LINEAR", GL_LINEAR), + + /* swizzle targets */ + H_INT("RED", GL_RED), + H_INT("GREEN", GL_GREEN), + H_INT("BLUE", GL_BLUE), + H_INT("ALPHA", GL_ALPHA), + H_INT("ZERO", GL_ZERO), + H_INT("ONE", GL_ONE), + + H_END + }; + create_table(L, tbl); + append_table(L, gl_index, lua_gettop(L)); + lua_pop(L, 1); +} + + +int gl_texture_create(lua_State *L) +{ + unsigned int texture; + glGenTextures(1, &texture); + lua_pushinteger(L, texture); + return 1; +} + + +int gl_texture_bind(lua_State *L) +{ + lua_Integer target, texture; + target = luaL_checkinteger(L, 1); + texture = luaL_checkinteger(L, 2); + glBindTexture(target, texture); + return 0; +} + + +int gl_texture_image_2d(lua_State *L) +{ + lua_Integer target, mipmap_level, + internal_format, + width, height, + format, type; + target = luaL_checkinteger(L, 1); + mipmap_level = luaL_checkinteger(L, 2); + internal_format = luaL_checkinteger(L, 3); + width = luaL_checkinteger(L, 4); + height = luaL_checkinteger(L, 5); + format = luaL_checkinteger(L, 6); + type = luaL_checkinteger(L, 7); + void *data = lua_touserdata(L, 8); + + glTexImage2D(target, mipmap_level, internal_format, width, height, 0, format, type, data); + return 0; +} + + +int gl_texture_generate_mipmaps(lua_State *L) +{ + lua_Integer target = luaL_checkinteger(L, 1); + glGenerateMipmap(target); + return 0; +} + + +int gl_texture_set_active(lua_State *L) +{ + lua_Integer unit = luaL_checkinteger(L, 1); + glActiveTexture(GL_TEXTURE0 + unit); + return 0; +} + + +int gl_tex_parameter_i(lua_State *L) +{ + lua_Integer target, pname, param; + target = luaL_checkinteger(L, 1); + pname = luaL_checkinteger(L, 2); + param = luaL_checkinteger(L, 3); + glTexParameteri(target, pname, param); + return 0; +} diff --git a/src/opengl/window.c b/src/opengl/window.c new file mode 100644 index 0000000..46bc2f5 --- /dev/null +++ b/src/opengl/window.c @@ -0,0 +1,369 @@ +#include <stdlib.h> +#include <glad/glad.h> +#include <GLFW/glfw3.h> +#include <lua.h> +#include <lauxlib.h> +#include "util/util.h" + +struct window_data { + lua_State *L; + int framebuffer_size_callback; +}; + +struct window_data * create_window_data(lua_State *L) +{ + struct window_data *wdata = malloc(sizeof(struct window_data)); + if (wdata == NULL) + return NULL; + wdata->L = L; + wdata->framebuffer_size_callback = LUA_NOREF; + return wdata; +} + +int window_create(lua_State *L); +int window_destroy(lua_State *L); +int window_make_context_current(lua_State *L); +int window_set_hint(lua_State *L); +int window_should_close(lua_State *L); +int window_set_should_close(lua_State *L); +int window_poll_events(lua_State *L); +int window_swap_buffers(lua_State *L); +int window_set_framebuffer_size_callback(lua_State *L); +int window_get_time(lua_State *L); +int window_get_key(lua_State *L); +int window_get_cursor_pos(lua_State *L); +int window_set_input_mode(lua_State *L); + + +static const char *window_tname = "window"; + + +void setup_window(lua_State *L, int honey_index) +{ + luaL_newmetatable(L, window_tname); + lua_pop(L, 1); + + struct honey_tbl_t tbl[] = { + H_FUNC("create", window_create), + H_FUNC("destroy", window_destroy), + H_FUNC("makeContextCurrent", window_make_context_current), + H_FUNC("setHint", window_set_hint), + H_FUNC("shouldClose", window_should_close), + H_FUNC("setShouldClose", window_set_should_close), + H_FUNC("pollEvents", window_poll_events), + H_FUNC("swapBuffers", window_swap_buffers), + H_FUNC("setFramebufferSizeCallback", window_set_framebuffer_size_callback), + H_FUNC("getTime", window_get_time), + H_FUNC("getKey", window_get_key), + H_FUNC("getCursorPos", window_get_cursor_pos), + H_FUNC("setInputMode", window_set_input_mode), + + /* input modes */ + H_INT("CURSOR", GLFW_CURSOR), + + /* cursor modes */ + H_INT("CURSOR_NORMAL", GLFW_CURSOR_NORMAL), + H_INT("CURSOR_HIDDEN", GLFW_CURSOR_HIDDEN), + H_INT("CURSOR_DISABLED", GLFW_CURSOR_DISABLED), + + /* key states */ + H_INT("PRESS", GLFW_PRESS), + H_INT("RELEASE", GLFW_RELEASE), + + /* key buttons */ + H_INT("KEY_UNKNOWN", GLFW_KEY_UNKNOWN), + H_INT("KEY_SPACE", GLFW_KEY_SPACE), + H_INT("KEY_APOSTROPHE", GLFW_KEY_APOSTROPHE), + H_INT("KEY_COMMA", GLFW_KEY_COMMA), + H_INT("KEY_MINUS", GLFW_KEY_MINUS), + H_INT("KEY_PERIOD", GLFW_KEY_PERIOD), + H_INT("KEY_SLASH", GLFW_KEY_SLASH), + H_INT("KEY_0", GLFW_KEY_0), + H_INT("KEY_1", GLFW_KEY_1), + H_INT("KEY_2", GLFW_KEY_2), + H_INT("KEY_3", GLFW_KEY_3), + H_INT("KEY_4", GLFW_KEY_4), + H_INT("KEY_5", GLFW_KEY_5), + H_INT("KEY_6", GLFW_KEY_6), + H_INT("KEY_7", GLFW_KEY_7), + H_INT("KEY_8", GLFW_KEY_8), + H_INT("KEY_9", GLFW_KEY_9), + H_INT("KEY_SEMICOLON", GLFW_KEY_SEMICOLON), + H_INT("KEY_EQUAL", GLFW_KEY_EQUAL), + H_INT("KEY_A", GLFW_KEY_A), + H_INT("KEY_B", GLFW_KEY_B), + H_INT("KEY_C", GLFW_KEY_C), + H_INT("KEY_D", GLFW_KEY_D), + H_INT("KEY_E", GLFW_KEY_E), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_G", GLFW_KEY_G), + H_INT("KEY_H", GLFW_KEY_H), + H_INT("KEY_I", GLFW_KEY_I), + H_INT("KEY_J", GLFW_KEY_J), + H_INT("KEY_K", GLFW_KEY_K), + H_INT("KEY_L", GLFW_KEY_L), + H_INT("KEY_M", GLFW_KEY_M), + H_INT("KEY_N", GLFW_KEY_N), + H_INT("KEY_O", GLFW_KEY_O), + H_INT("KEY_P", GLFW_KEY_P), + H_INT("KEY_Q", GLFW_KEY_Q), + H_INT("KEY_R", GLFW_KEY_R), + H_INT("KEY_S", GLFW_KEY_S), + H_INT("KEY_T", GLFW_KEY_T), + H_INT("KEY_U", GLFW_KEY_U), + H_INT("KEY_V", GLFW_KEY_V), + H_INT("KEY_W", GLFW_KEY_W), + H_INT("KEY_X", GLFW_KEY_X), + H_INT("KEY_Y", GLFW_KEY_Y), + H_INT("KEY_Z", GLFW_KEY_Z), + H_INT("KEY_LEFT_BRACKET", GLFW_KEY_LEFT_BRACKET), + H_INT("KEY_BACKSLASH", GLFW_KEY_BACKSLASH), + H_INT("KEY_RIGHT_BRACKET", GLFW_KEY_RIGHT_BRACKET), + H_INT("KEY_GRAVE_ACCENT", GLFW_KEY_GRAVE_ACCENT), + H_INT("KEY_WORLD_1", GLFW_KEY_WORLD_1), + H_INT("KEY_WORLD_2", GLFW_KEY_WORLD_2), + H_INT("KEY_ESCAPE", GLFW_KEY_ESCAPE), + H_INT("KEY_ENTER", GLFW_KEY_ENTER), + H_INT("KEY_TAB", GLFW_KEY_TAB), + H_INT("KEY_BACKSPACE", GLFW_KEY_BACKSPACE), + H_INT("KEY_INSERT", GLFW_KEY_INSERT), + H_INT("KEY_DELETE", GLFW_KEY_DELETE), + H_INT("KEY_RIGHT", GLFW_KEY_RIGHT), + H_INT("KEY_LEFT", GLFW_KEY_LEFT), + H_INT("KEY_DOWN", GLFW_KEY_DOWN), + H_INT("KEY_UP", GLFW_KEY_UP), + H_INT("KEY_PAGE_UP", GLFW_KEY_PAGE_UP), + H_INT("KEY_PAGE_DOWN", GLFW_KEY_PAGE_DOWN), + H_INT("KEY_HOME", GLFW_KEY_HOME), + H_INT("KEY_END", GLFW_KEY_END), + H_INT("KEY_CAPS_LOCK", GLFW_KEY_CAPS_LOCK), + H_INT("KEY_SCROLL_LOCK", GLFW_KEY_SCROLL_LOCK), + H_INT("KEY_NUM_LOCK", GLFW_KEY_NUM_LOCK), + H_INT("KEY_PRINT_SCREEN", GLFW_KEY_PRINT_SCREEN), + H_INT("KEY_PAUSE", GLFW_KEY_PAUSE), + H_INT("KEY_F1", GLFW_KEY_F1), + H_INT("KEY_F2", GLFW_KEY_F2), + H_INT("KEY_F3", GLFW_KEY_F3), + H_INT("KEY_F4", GLFW_KEY_F4), + H_INT("KEY_F5", GLFW_KEY_F5), + H_INT("KEY_F6", GLFW_KEY_F6), + H_INT("KEY_F7", GLFW_KEY_F7), + H_INT("KEY_F8", GLFW_KEY_F8), + H_INT("KEY_F9", GLFW_KEY_F9), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_F", GLFW_KEY_F), + H_INT("KEY_KP_0", GLFW_KEY_KP_0), + H_INT("KEY_KP_1", GLFW_KEY_KP_1), + H_INT("KEY_KP_2", GLFW_KEY_KP_2), + H_INT("KEY_KP_3", GLFW_KEY_KP_3), + H_INT("KEY_KP_4", GLFW_KEY_KP_4), + H_INT("KEY_KP_5", GLFW_KEY_KP_5), + H_INT("KEY_KP_6", GLFW_KEY_KP_6), + H_INT("KEY_KP_7", GLFW_KEY_KP_7), + H_INT("KEY_KP_8", GLFW_KEY_KP_8), + H_INT("KEY_KP_9", GLFW_KEY_KP_9), + H_INT("KEY_KP_DECIMAL", GLFW_KEY_KP_DECIMAL), + H_INT("KEY_KP_DIVIDE", GLFW_KEY_KP_DIVIDE), + H_INT("KEY_KP_MULTIPLY", GLFW_KEY_KP_MULTIPLY), + H_INT("KEY_KP_SUBTRACT", GLFW_KEY_KP_SUBTRACT), + H_INT("KEY_KP_ADD", GLFW_KEY_KP_ADD), + H_INT("KEY_KP_ENTER", GLFW_KEY_KP_ENTER), + H_INT("KEY_KP_EQUAL", GLFW_KEY_KP_EQUAL), + H_INT("KEY_LEFT_SHIFT", GLFW_KEY_LEFT_SHIFT), + H_INT("KEY_LEFT_CONTROL", GLFW_KEY_LEFT_CONTROL), + H_INT("KEY_LEFT_ALT", GLFW_KEY_LEFT_ALT), + H_INT("KEY_LEFT_SUPER", GLFW_KEY_LEFT_SUPER), + H_INT("KEY_RIGHT_SHIFT", GLFW_KEY_RIGHT_SHIFT), + H_INT("KEY_RIGHT_CONTROL", GLFW_KEY_RIGHT_CONTROL), + H_INT("KEY_RIGHT_ALT", GLFW_KEY_RIGHT_ALT), + H_INT("KEY_RIGHT_SUPER", GLFW_KEY_RIGHT_SUPER), + H_INT("KEY_MENU", GLFW_KEY_MENU), + + H_END + }; + create_table(L, tbl); + int window_tbl = lua_gettop(L); + + struct honey_tbl_t hint_types[] = { + H_INT("contextVersionMajor", GLFW_CONTEXT_VERSION_MAJOR), + H_INT("contextVersionMinor", GLFW_CONTEXT_VERSION_MINOR), + H_INT("openGlProfile", GLFW_OPENGL_PROFILE), + H_END + }; + create_table(L, hint_types); + lua_setfield(L, window_tbl, "hintType"); + + struct honey_tbl_t profile_types[] = { + H_INT("openGlCoreProfile", GLFW_OPENGL_CORE_PROFILE), + H_END + }; + create_table(L, profile_types); + lua_setfield(L, window_tbl, "profileType"); + + lua_setfield(L, honey_index, "window"); +} + + +static void framebuffer_size_callback_(GLFWwindow *win, int width, int height) +{ + struct window_data *wdata = glfwGetWindowUserPointer(win); + lua_State *L = wdata->L; + if (wdata->framebuffer_size_callback != LUA_NOREF) { + lua_rawgeti(L, LUA_REGISTRYINDEX, wdata->framebuffer_size_callback); + lua_pushlightuserdata(L, win); + lua_pushinteger(L, width); + lua_pushinteger(L, height); + lua_call(L, 3, 0); + } +} + +int window_create(lua_State *L) +{ + lua_Integer width, height; + width = luaL_checkinteger(L, 1); + height = luaL_checkinteger(L, 2); + const char *title = luaL_checkstring(L, 3); + + GLFWwindow **win = lua_newuserdata(L, sizeof(GLFWwindow *)); + *win = glfwCreateWindow(width, height, title, NULL, NULL); + if (*win == NULL) + luaL_error(L, "failed to create window"); + + struct window_data *wdata = create_window_data(L); + glfwSetWindowUserPointer(*win, wdata); + + glfwSetFramebufferSizeCallback(*win, framebuffer_size_callback_); + + luaL_getmetatable(L, window_tname); + lua_setmetatable(L, -2); + return 1; +} + + +int window_destroy(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + void *wdata = glfwGetWindowUserPointer(*win); + if (wdata != NULL) { + free(wdata); + glfwSetWindowUserPointer(*win, NULL); + } + glfwDestroyWindow(*win); + return 0; +} + + +int window_make_context_current(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + glfwMakeContextCurrent(*win); + return 0; +} + + +int window_set_hint(lua_State *L) +{ + int hint = luaL_checkinteger(L, 1); + int value = luaL_checkinteger(L, 2); + glfwWindowHint(hint, value); + return 0; +} + + +int window_should_close(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + lua_pushboolean(L, glfwWindowShouldClose(*win)); + return 1; +} + + +int window_set_should_close(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + int value = lua_toboolean(L, 2); + + glfwSetWindowShouldClose(*win, value); + return 0; +} + + +int window_poll_events(lua_State *L) +{ + glfwPollEvents(); + return 0; +} + + +int window_swap_buffers(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + glfwSwapBuffers(*win); + return 0; +} + + +int window_set_framebuffer_size_callback(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + luaL_checktype(L, 2, LUA_TFUNCTION); + int func = 2; + + struct window_data *wdata = glfwGetWindowUserPointer(*win); + + lua_pushvalue(L, func); + wdata->framebuffer_size_callback = luaL_ref(L, LUA_REGISTRYINDEX); + return 0; +} + + +int window_get_time(lua_State *L) +{ + lua_pushnumber(L, glfwGetTime()); + return 1; +} + + +int window_get_key(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + int key = luaL_checkinteger(L, 2); + lua_pushinteger(L, glfwGetKey(*win, key)); + return 1; +} + + +int window_get_cursor_pos(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + double x, y; + glfwGetCursorPos(*win, &x, &y); + lua_pushnumber(L, x); + lua_pushnumber(L, y); + return 2; +} + + +int window_set_input_mode(lua_State *L) +{ + GLFWwindow **win = luaL_checkudata(L, 1, window_tname); + int mode = luaL_checkinteger(L, 2); + int value = luaL_checkinteger(L, 3); + + glfwSetInputMode(*win, mode, value); + return 0; +} diff --git a/src/opengl/window.test.c b/src/opengl/window.test.c new file mode 100644 index 0000000..505c876 --- /dev/null +++ b/src/opengl/window.test.c @@ -0,0 +1,24 @@ +#include <stdlib.h> +#include <lua.h> +#include <honeysuckle.h> +#include "test/honey-test.h" + +#include "window.c" + + +void create_window_data_works() +{ + lua_State *L = luaL_newstate(); + struct window_data *wdata = create_window_data(L); + + lily_assert_ptr_equal(L, wdata->L); + lily_assert_int_equal(wdata->framebuffer_size_callback, LUA_NOREF); + lua_close(L); + free(wdata); +} + + +void suite_window() +{ + lily_run_test(create_window_data_works); +} |