//----------------------------------------------------------------------- // ----------------------------------------------------------------------- // file="glApiManager.Load" // Project: StgSharp // AuthorGroup: Nitload // Copyright (c) Nitload. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // 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 Software. // // THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // // ----------------------------------------------------------------------- // ----------------------------------------------------------------------- using StgSharp.HighPerformance; using System; namespace StgSharp.Graphics.OpenGL { public static partial class glManager { internal static unsafe bool LoadGLcore10(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core10) { DefaultLog.InternalAppendLog("The core version 1.0 is not supported."); return false; } #region load contextPtr->glBlendFunc = (delegate*)load("glBlendFunc"u8); contextPtr->glClear = (delegate*)load("glClear"u8); contextPtr->glClearColor = (delegate*)load("glClearColor"u8); contextPtr->glClearDepth = (delegate*)load("glClearDepth"u8); contextPtr->glClearStencil = (delegate*)load("glClearStencil"u8); contextPtr->glColorMask = (delegate*)load("glColorMask"u8); contextPtr->glCullFace = (delegate*)load("glCullFace"u8); contextPtr->glDepthFunc = (delegate*)load("glDepthFunc"u8); contextPtr->glDepthMask = (delegate*)load("glDepthMask"u8); contextPtr->glDepthRange = (delegate*)load("glDepthRange"u8); contextPtr->glDisable = (delegate*)load("glDisable"u8); contextPtr->glDrawBuffer = (delegate*)load("glDrawBuffer"u8); contextPtr->glEnable = (delegate*)load("glEnable"u8); contextPtr->glFinish = (delegate*)load("glFinish"u8); contextPtr->glFlush = (delegate*)load("glFlush"u8); contextPtr->glFrontFace = (delegate*)load("glFrontFace"u8); contextPtr->glGetBooleanv = (delegate*)load("glGetBooleanv"u8); contextPtr->glGetDoublev = (delegate*)load("glGetDoublev"u8); contextPtr->glGetError = (delegate*)load("glGetError"u8); contextPtr->glGetFloatv = (delegate*)load("glGetFloatv"u8); contextPtr->glGetIntegerv = (delegate*)load("glGetIntegerv"u8); contextPtr->glGetString = (delegate*)load("glGetString"u8); contextPtr->glGetTexImage = (delegate*)load("glGetTexImage"u8); contextPtr->glGetTexLevelParameterfv = (delegate*)load("glGetTexLevelParameterfv"u8); contextPtr->glGetTexLevelParameteriv = (delegate*)load("glGetTexLevelParameteriv"u8); contextPtr->glGetTexParameterfv = (delegate*)load("glGetTexParameterfv"u8); contextPtr->glGetTexParameteriv = (delegate*)load("glGetTexParameteriv"u8); contextPtr->glHint = (delegate*)load("glHint"u8); contextPtr->glIsEnabled = (delegate*)load("glIsEnabled"u8); contextPtr->glLineWidth = (delegate*)load("glLineWidth"u8); contextPtr->glLogicOp = (delegate*)load("glLogicOp"u8); contextPtr->glPixelStoref = (delegate*)load("glPixelStoref"u8); contextPtr->glPixelStorei = (delegate*)load("glPixelStorei"u8); contextPtr->glPointSize = (delegate*)load("glPointSize"u8); contextPtr->glPolygonMode = (delegate*)load("glPolygonMode"u8); contextPtr->glReadBuffer = (delegate*)load("glReadBuffer"u8); contextPtr->glReadPixels = (delegate*)load("glReadPixels"u8); contextPtr->glScissor = (delegate*)load("glScissor"u8); contextPtr->glStencilFunc = (delegate*)load("glStencilFunc"u8); contextPtr->glStencilMask = (delegate*)load("glStencilMask"u8); contextPtr->glStencilOp = (delegate*)load("glStencilOp"u8); contextPtr->glTexImage1D = (delegate*)load("glTexImage1D"u8); contextPtr->glTexImage2D = (delegate*)load("glTexImage2D"u8); contextPtr->glTexParameterf = (delegate*)load("glTexParameterf"u8); contextPtr->glTexParameterfv = (delegate*)load("glTexParameterfv"u8); contextPtr->glTexParameteri = (delegate*)load("glTexParameteri"u8); contextPtr->glTexParameteriv = (delegate*)load("glTexParameteriv"u8); contextPtr->glViewport = (delegate*)load("glViewport"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 1.0 APIs"); return true; } internal static unsafe bool LoadGLcore11(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core11) { DefaultLog.InternalAppendLog("The core version 1.1 is not supported."); return false; } #region load contextPtr->glBindTexture = (delegate*)load("glBindTexture"u8); contextPtr->glCopyTexImage1D = (delegate*)load( "glCopyTexImage1D"u8); contextPtr->glCopyTexImage2D = (delegate*)load( "glCopyTexImage2D"u8); contextPtr->glCopyTexSubImage1D = (delegate*)load( "glCopyTexSubImage1D"u8); contextPtr->glCopyTexSubImage2D = (delegate*)load( "glCopyTexSubImage2D"u8); contextPtr->glDeleteTextures = (delegate*)load( "glDeleteTextures"u8); contextPtr->glDrawArrays = (delegate*)load("glDrawArrays"u8); contextPtr->glDrawElements = (delegate*)load( "glDrawElements"u8); contextPtr->glGenTextures = (delegate*)load("glGenTextures"u8); contextPtr->glGetPointerv = (delegate*)load("glGetPointerv"u8); contextPtr->glIsTexture = (delegate*)load("glIsTexture"u8); contextPtr->glPolygonOffset = (delegate*)load("glPolygonOffset"u8); contextPtr->glTexSubImage1D = (delegate*)load( "glTexSubImage1D"u8); contextPtr->glTexSubImage2D = (delegate*)load( "glTexSubImage2D"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 1.1 APIs"); return true; } internal static unsafe bool LoadGLcore12(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core12) { DefaultLog.InternalAppendLog("The core version 1.2 is not supported."); return false; } #region load contextPtr->glCopyTexSubImage3D = (delegate*)load( "glCopyTexSubImage3D"u8); contextPtr->glDrawRangeElements = (delegate*)load( "glDrawRangeElements"u8); contextPtr->glTexImage3D = (delegate*)load( "glTexImage3D"u8); contextPtr->glTexSubImage3D = (delegate*)load( "glTexSubImage3D"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 1.2 APIs"); return true; } internal static unsafe bool LoadGLcore13(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core13) { DefaultLog.InternalAppendLog("The core version 1.3 is not supported."); return false; } #region load contextPtr->glActiveTexture = (delegate*)load("glActiveTexture"u8); contextPtr->glCompressedTexImage1D = (delegate*)load( "glCompressedTexImage1D"u8); contextPtr->glCompressedTexImage2D = (delegate*)load( "glCompressedTexImage2D"u8); contextPtr->glCompressedTexImage3D = (delegate*)load( "glCompressedTexImage3D"u8); contextPtr->glCompressedTexSubImage1D = (delegate*)load( "glCompressedTexSubImage1D"u8); contextPtr->glCompressedTexSubImage2D = (delegate*)load( "glCompressedTexSubImage2D"u8); contextPtr->glCompressedTexSubImage3D = (delegate*)load( "glCompressedTexSubImage3D"u8); contextPtr->glGetCompressedTexImage = (delegate*)load( "glGetCompressedTexImage"u8); contextPtr->glSampleCoverage = (delegate*)load( "glSampleCoverage"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 1.3 APIs"); return true; } internal static unsafe bool LoadGLcore14(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core14) { DefaultLog.InternalAppendLog("The core version 1.4 is not supported."); return false; } #region load contextPtr->glBlendColor = (delegate*)load( "glBlendColor"u8); contextPtr->glBlendEquation = (delegate*)load("glBlendEquation"u8); contextPtr->glBlendFuncSeparate = (delegate*)load( "glBlendFuncSeparate"u8); contextPtr->glMultiDrawArrays = (delegate*)load( "glMultiDrawArrays"u8); contextPtr->glMultiDrawElements = (delegate*)load( "glMultiDrawElements"u8); contextPtr->glPointParameterf = (delegate*)load( "glPointParameterf"u8); contextPtr->glPointParameterfv = (delegate*)load( "glPointParameterfv"u8); contextPtr->glPointParameteri = (delegate*)load( "glPointParameteri"u8); contextPtr->glPointParameteriv = (delegate*)load( "glPointParameteriv"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 1.4 APIs"); return true; } internal static unsafe bool LoadGLcore15(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core15) { DefaultLog.InternalAppendLog("The core version 1.5 is not supported."); return false; } #region load contextPtr->glBeginQuery = (delegate*)load("glBeginQuery"u8); contextPtr->glBindBuffer = (delegate*)load("glBindBuffer"u8); contextPtr->glBufferData = (delegate*)load( "glBufferData"u8); contextPtr->glBufferSubData = (delegate*)load( "glBufferSubData"u8); contextPtr->glDeleteBuffers = (delegate*)load("glDeleteBuffers"u8); contextPtr->glDeleteQueries = (delegate*)load("glDeleteQueries"u8); contextPtr->glEndQuery = (delegate*)load("glEndQuery"u8); contextPtr->glGenBuffers = (delegate*)load("glGenBuffers"u8); contextPtr->glGenQueries = (delegate*)load("glGenQueries"u8); contextPtr->glGetBufferParameteriv = (delegate*)load( "glGetBufferParameteriv"u8); contextPtr->glGetBufferPointerv = (delegate*)load( "glGetBufferPointerv"u8); contextPtr->glGetBufferSubData = (delegate*)load( "glGetBufferSubData"u8); contextPtr->glGetQueryObjectiv = (delegate*)load( "glGetQueryObjectiv"u8); contextPtr->glGetQueryObjectuiv = (delegate*)load( "glGetQueryObjectuiv"u8); contextPtr->glGetQueryiv = (delegate*)load("glGetQueryiv"u8); contextPtr->glIsBuffer = (delegate*)load("glIsBuffer"u8); contextPtr->glIsQuery = (delegate*)load("glIsQuery"u8); contextPtr->glMapBuffer = (delegate*)load("glMapBuffer"u8); contextPtr->glUnmapBuffer = (delegate*)load("glUnmapBuffer"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 1.5 APIs"); return true; } internal static unsafe bool LoadGLcore20(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core20) { DefaultLog.InternalAppendLog("The core version 2.0 is not supported."); return false; } #region load contextPtr->glAttachShader = (delegate*)load("glAttachShader"u8); contextPtr->glBindAttribLocation = (delegate*)load( "glBindAttribLocation"u8); contextPtr->glBlendEquationSeparate = (delegate*)load( "glBlendEquationSeparate"u8); contextPtr->glCompileShader = (delegate*)load("glCompileShader"u8); contextPtr->glCreateProgram = (delegate*)load("glCreateProgram"u8); contextPtr->glCreateShader = (delegate*)load("glCreateShader"u8); contextPtr->glDeleteProgram = (delegate*)load("glDeleteProgram"u8); contextPtr->glDeleteShader = (delegate*)load("glDeleteShader"u8); contextPtr->glDetachShader = (delegate*)load("glDetachShader"u8); contextPtr->glDisableVertexAttribArray = (delegate*)load( "glDisableVertexAttribArray"u8); contextPtr->glDrawBuffers = (delegate*)load("glDrawBuffers"u8); contextPtr->glEnableVertexAttribArray = (delegate*)load( "glEnableVertexAttribArray"u8); contextPtr->glGetActiveAttrib = (delegate*)load( "glGetActiveAttrib"u8); contextPtr->glGetActiveUniform = (delegate*)load( "glGetActiveUniform"u8); contextPtr->glGetAttachedShaders = (delegate*)load( "glGetAttachedShaders"u8); contextPtr->glGetAttribLocation = (delegate*)load( "glGetAttribLocation"u8); contextPtr->glGetProgramInfoLog = (delegate*)load( "glGetProgramInfoLog"u8); contextPtr->glGetProgramiv = (delegate*)load( "glGetProgramiv"u8); contextPtr->glGetShaderInfoLog = (delegate*)load( "glGetShaderInfoLog"u8); contextPtr->glGetShaderSource = (delegate*)load( "glGetShaderSource"u8); contextPtr->glGetShaderiv = (delegate*)load("glGetShaderiv"u8); contextPtr->glGetUniformLocation = (delegate*)load( "glGetUniformLocation"u8); contextPtr->glGetUniformfv = (delegate*)load( "glGetUniformfv"u8); contextPtr->glGetUniformiv = (delegate*)load( "glGetUniformiv"u8); contextPtr->glGetVertexAttribPointerv = (delegate*)load( "glGetVertexAttribPointerv"u8); contextPtr->glGetVertexAttribdv = (delegate*)load( "glGetVertexAttribdv"u8); contextPtr->glGetVertexAttribfv = (delegate*)load( "glGetVertexAttribfv"u8); contextPtr->glGetVertexAttribiv = (delegate*)load( "glGetVertexAttribiv"u8); contextPtr->glIsProgram = (delegate*)load("glIsProgram"u8); contextPtr->glIsShader = (delegate*)load("glIsShader"u8); contextPtr->glLinkProgram = (delegate*)load("glLinkProgram"u8); contextPtr->glShaderSource = (delegate* unmanaged[Stdcall])load( "glShaderSource"u8); contextPtr->glStencilFuncSeparate = (delegate*)load( "glStencilFuncSeparate"u8); contextPtr->glStencilMaskSeparate = (delegate*)load( "glStencilMaskSeparate"u8); contextPtr->glStencilOpSeparate = (delegate*)load( "glStencilOpSeparate"u8); contextPtr->glUniform1f = (delegate*)load("glUniform1f"u8); contextPtr->glUniform1fv = (delegate*)load("glUniform1fv"u8); contextPtr->glUniform1i = (delegate*)load("glUniform1i"u8); contextPtr->glUniform1iv = (delegate*)load("glUniform1iv"u8); contextPtr->glUniform2f = (delegate*)load("glUniform2f"u8); contextPtr->glUniform2fv = (delegate*)load("glUniform2fv"u8); contextPtr->glUniform2i = (delegate*)load("glUniform2i"u8); contextPtr->glUniform2iv = (delegate*)load("glUniform2iv"u8); contextPtr->glUniform3f = (delegate*)load( "glUniform3f"u8); contextPtr->glUniform3fv = (delegate*)load("glUniform3fv"u8); contextPtr->glUniform3i = (delegate*)load("glUniform3i"u8); contextPtr->glUniform3iv = (delegate*)load("glUniform3iv"u8); contextPtr->glUniform4f = (delegate*)load( "glUniform4f"u8); contextPtr->glUniform4fv = (delegate*)load("glUniform4fv"u8); contextPtr->glUniform4i = (delegate*)load( "glUniform4i"u8); contextPtr->glUniform4iv = (delegate*)load("glUniform4iv"u8); contextPtr->glUniformMatrix2fv = (delegate*)load( "glUniformMatrix2fv"u8); contextPtr->glUniformMatrix3fv = (delegate*)load( "glUniformMatrix3fv"u8); contextPtr->glUniformMatrix4fv = (delegate*)load( "glUniformMatrix4fv"u8); contextPtr->glUseProgram = (delegate*)load("glUseProgram"u8); contextPtr->glValidateProgram = (delegate*)load("glValidateProgram"u8); contextPtr->glVertexAttrib1d = (delegate*)load( "glVertexAttrib1d"u8); contextPtr->glVertexAttrib1dv = (delegate*)load( "glVertexAttrib1dv"u8); contextPtr->glVertexAttrib1f = (delegate*)load( "glVertexAttrib1f"u8); contextPtr->glVertexAttrib1fv = (delegate*)load( "glVertexAttrib1fv"u8); contextPtr->glVertexAttrib1s = (delegate*)load( "glVertexAttrib1s"u8); contextPtr->glVertexAttrib1sv = (delegate*)load( "glVertexAttrib1sv"u8); contextPtr->glVertexAttrib2d = (delegate*)load( "glVertexAttrib2d"u8); contextPtr->glVertexAttrib2dv = (delegate*)load( "glVertexAttrib2dv"u8); contextPtr->glVertexAttrib2f = (delegate*)load( "glVertexAttrib2f"u8); contextPtr->glVertexAttrib2fv = (delegate*)load( "glVertexAttrib2fv"u8); contextPtr->glVertexAttrib2s = (delegate*)load( "glVertexAttrib2s"u8); contextPtr->glVertexAttrib2sv = (delegate*)load( "glVertexAttrib2sv"u8); contextPtr->glVertexAttrib3d = (delegate*)load( "glVertexAttrib3d"u8); contextPtr->glVertexAttrib3dv = (delegate*)load( "glVertexAttrib3dv"u8); contextPtr->glVertexAttrib3f = (delegate*)load( "glVertexAttrib3f"u8); contextPtr->glVertexAttrib3fv = (delegate*)load( "glVertexAttrib3fv"u8); contextPtr->glVertexAttrib3s = (delegate*)load( "glVertexAttrib3s"u8); contextPtr->glVertexAttrib3sv = (delegate*)load( "glVertexAttrib3sv"u8); contextPtr->glVertexAttrib4Nbv = (delegate*)load( "glVertexAttrib4Nbv"u8); contextPtr->glVertexAttrib4Niv = (delegate*)load( "glVertexAttrib4Niv"u8); contextPtr->glVertexAttrib4Nsv = (delegate*)load( "glVertexAttrib4Nsv"u8); contextPtr->glVertexAttrib4Nub = (delegate*)load( "glVertexAttrib4Nub"u8); contextPtr->glVertexAttrib4Nubv = (delegate*)load( "glVertexAttrib4Nubv"u8); contextPtr->glVertexAttrib4Nuiv = (delegate*)load( "glVertexAttrib4Nuiv"u8); contextPtr->glVertexAttrib4Nusv = (delegate*)load( "glVertexAttrib4Nusv"u8); contextPtr->glVertexAttrib4bv = (delegate*)load( "glVertexAttrib4bv"u8); contextPtr->glVertexAttrib4d = (delegate*)load( "glVertexAttrib4d"u8); contextPtr->glVertexAttrib4dv = (delegate*)load( "glVertexAttrib4dv"u8); contextPtr->glVertexAttrib4f = (delegate*)load( "glVertexAttrib4f"u8); contextPtr->glVertexAttrib4fv = (delegate*)load( "glVertexAttrib4fv"u8); contextPtr->glVertexAttrib4iv = (delegate*)load( "glVertexAttrib4iv"u8); contextPtr->glVertexAttrib4s = (delegate*)load( "glVertexAttrib4s"u8); contextPtr->glVertexAttrib4sv = (delegate*)load( "glVertexAttrib4sv"u8); contextPtr->glVertexAttrib4ubv = (delegate*)load( "glVertexAttrib4ubv"u8); contextPtr->glVertexAttrib4uiv = (delegate*)load( "glVertexAttrib4uiv"u8); contextPtr->glVertexAttrib4usv = (delegate*)load( "glVertexAttrib4usv"u8); contextPtr->glVertexAttribPointer = (delegate*)load( "glVertexAttribPointer"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 2.0 APIs"); return true; } internal static unsafe bool LoadGLcore21(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core21) { DefaultLog.InternalAppendLog("The core version 2.1 is not supported."); return false; } #region load contextPtr->glUniformMatrix2x3fv = (delegate*)load( "glUniformMatrix2x3fv"u8); contextPtr->glUniformMatrix2x4fv = (delegate*)load( "glUniformMatrix2x4fv"u8); contextPtr->glUniformMatrix3x2fv = (delegate*)load( "glUniformMatrix3x2fv"u8); contextPtr->glUniformMatrix3x4fv = (delegate*)load( "glUniformMatrix3x4fv"u8); contextPtr->glUniformMatrix4x2fv = (delegate*)load( "glUniformMatrix4x2fv"u8); contextPtr->glUniformMatrix4x3fv = (delegate*)load( "glUniformMatrix4x3fv"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 2.1 APIs"); return true; } internal static unsafe bool LoadGLcore30(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core30) { DefaultLog.InternalAppendLog("The core version 3.0 is not supported."); return false; } #region load contextPtr->glBeginConditionalRender = (delegate*)load( "glBeginConditionalRender"u8); contextPtr->glBeginTransformFeedback = (delegate*)load( "glBeginTransformFeedback"u8); contextPtr->glBindBufferBase = (delegate*)load( "glBindBufferBase"u8); contextPtr->glBindBufferRange = (delegate*)load( "glBindBufferRange"u8); contextPtr->glBindFragDataLocation = (delegate*)load( "glBindFragDataLocation"u8); contextPtr->glBindFramebuffer = (delegate*)load( "glBindFramebuffer"u8); contextPtr->glBindRenderbuffer = (delegate*)load( "glBindRenderbuffer"u8); contextPtr->glBindVertexArray = (delegate*)load("glBindVertexArray"u8); contextPtr->glBlitFramebuffer = (delegate*)load( "glBlitFramebuffer"u8); contextPtr->glCheckFramebufferStatus = (delegate*)load( "glCheckFramebufferStatus"u8); contextPtr->glClampColor = (delegate*)load("glClampColor"u8); contextPtr->glClearBufferfi = (delegate*)load( "glClearBufferfi"u8); contextPtr->glClearBufferfv = (delegate*)load( "glClearBufferfv"u8); contextPtr->glClearBufferiv = (delegate*)load( "glClearBufferiv"u8); contextPtr->glClearBufferuiv = (delegate*)load( "glClearBufferuiv"u8); contextPtr->glColorMaski = (delegate*)load( "glColorMaski"u8); contextPtr->glDeleteFramebuffers = (delegate*)load( "glDeleteFramebuffers"u8); contextPtr->glDeleteRenderbuffers = (delegate*)load( "glDeleteRenderbuffers"u8); contextPtr->glDeleteVertexArrays = (delegate*)load( "glDeleteVertexArrays"u8); contextPtr->glDisablei = (delegate*)load("glDisablei"u8); contextPtr->glEnablei = (delegate*)load("glEnablei"u8); contextPtr->glEndConditionalRender = (delegate*)load("glEndConditionalRender"u8); contextPtr->glEndTransformFeedback = (delegate*)load("glEndTransformFeedback"u8); contextPtr->glFlushMappedBufferRange = (delegate*)load( "glFlushMappedBufferRange"u8); contextPtr->glFramebufferRenderbuffer = (delegate*)load( "glFramebufferRenderbuffer"u8); contextPtr->glFramebufferTexture1D = (delegate*)load( "glFramebufferTexture1D"u8); contextPtr->glFramebufferTexture2D = (delegate*)load( "glFramebufferTexture2D"u8); contextPtr->glFramebufferTexture3D = (delegate*)load( "glFramebufferTexture3D"u8); contextPtr->glFramebufferTextureLayer = (delegate*)load( "glFramebufferTextureLayer"u8); contextPtr->glGenFramebuffers = (delegate*)load( "glGenFramebuffers"u8); contextPtr->glGenRenderbuffers = (delegate*)load( "glGenRenderbuffers"u8); contextPtr->glGenVertexArrays = (delegate*)load( "glGenVertexArrays"u8); contextPtr->glGenerateMipmap = (delegate*)load("glGenerateMipmap"u8); contextPtr->glGetBooleani_v = (delegate*)load( "glGetBooleani_v"u8); contextPtr->glGetFragDataLocation = (delegate*)load( "glGetFragDataLocation"u8); contextPtr->glGetFramebufferAttachmentParameteriv = (delegate*)load( "glGetFramebufferAttachmentParameteriv"u8); contextPtr->glGetIntegeri_v = (delegate*)load( "glGetIntegeri_v"u8); contextPtr->glGetRenderbufferParameteriv = (delegate*)load( "glGetRenderbufferParameteriv"u8); contextPtr->glGetStringi = (delegate*)load("glGetStringi"u8); contextPtr->glGetTexParameterIiv = (delegate*)load( "glGetTexParameterIiv"u8); contextPtr->glGetTexParameterIuiv = (delegate*)load( "glGetTexParameterIuiv"u8); contextPtr->glGetTransformFeedbackVarying = (delegate*)load( "glGetTransformFeedbackVarying"u8); contextPtr->glGetUniformuiv = (delegate*)load( "glGetUniformuiv"u8); contextPtr->glGetVertexAttribIiv = (delegate*)load( "glGetVertexAttribIiv"u8); contextPtr->glGetVertexAttribIuiv = (delegate*)load( "glGetVertexAttribIuiv"u8); contextPtr->glIsEnabledi = (delegate*)load("glIsEnabledi"u8); contextPtr->glIsFramebuffer = (delegate*)load("glIsFramebuffer"u8); contextPtr->glIsRenderbuffer = (delegate*)load("glIsRenderbuffer"u8); contextPtr->glIsVertexArray = (delegate*)load("glIsVertexArray"u8); contextPtr->glMapBufferRange = (delegate*)load( "glMapBufferRange"u8); contextPtr->glRenderbufferStorage = (delegate*)load( "glRenderbufferStorage"u8); contextPtr->glRenderbufferStorageMultisample = (delegate*)load( "glRenderbufferStorageMultisample"u8); contextPtr->glTexParameterIiv = (delegate*)load( "glTexParameterIiv"u8); contextPtr->glTexParameterIuiv = (delegate*)load( "glTexParameterIuiv"u8); contextPtr->glTransformFeedbackVaryings = (delegate*)load( "glTransformFeedbackVaryings"u8); contextPtr->glUniform1ui = (delegate*)load("glUniform1ui"u8); contextPtr->glUniform1uiv = (delegate*)load("glUniform1uiv"u8); contextPtr->glUniform2ui = (delegate*)load("glUniform2ui"u8); contextPtr->glUniform2uiv = (delegate*)load("glUniform2uiv"u8); contextPtr->glUniform3ui = (delegate*)load( "glUniform3ui"u8); contextPtr->glUniform3uiv = (delegate*)load("glUniform3uiv"u8); contextPtr->glUniform4ui = (delegate*)load( "glUniform4ui"u8); contextPtr->glUniform4uiv = (delegate*)load("glUniform4uiv"u8); contextPtr->glVertexAttribI1i = (delegate*)load( "glVertexAttribI1i"u8); contextPtr->glVertexAttribI1iv = (delegate*)load( "glVertexAttribI1iv"u8); contextPtr->glVertexAttribI1ui = (delegate*)load( "glVertexAttribI1ui"u8); contextPtr->glVertexAttribI1uiv = (delegate*)load( "glVertexAttribI1uiv"u8); contextPtr->glVertexAttribI2i = (delegate*)load( "glVertexAttribI2i"u8); contextPtr->glVertexAttribI2iv = (delegate*)load( "glVertexAttribI2iv"u8); contextPtr->glVertexAttribI2ui = (delegate*)load( "glVertexAttribI2ui"u8); contextPtr->glVertexAttribI2uiv = (delegate*)load( "glVertexAttribI2uiv"u8); contextPtr->glVertexAttribI3i = (delegate*)load( "glVertexAttribI3i"u8); contextPtr->glVertexAttribI3iv = (delegate*)load( "glVertexAttribI3iv"u8); contextPtr->glVertexAttribI3ui = (delegate*)load( "glVertexAttribI3ui"u8); contextPtr->glVertexAttribI3uiv = (delegate*)load( "glVertexAttribI3uiv"u8); contextPtr->glVertexAttribI4bv = (delegate*)load( "glVertexAttribI4bv"u8); contextPtr->glVertexAttribI4i = (delegate*)load( "glVertexAttribI4i"u8); contextPtr->glVertexAttribI4iv = (delegate*)load( "glVertexAttribI4iv"u8); contextPtr->glVertexAttribI4sv = (delegate*)load( "glVertexAttribI4sv"u8); contextPtr->glVertexAttribI4ubv = (delegate*)load( "glVertexAttribI4ubv"u8); contextPtr->glVertexAttribI4ui = (delegate*)load( "glVertexAttribI4ui"u8); contextPtr->glVertexAttribI4uiv = (delegate*)load( "glVertexAttribI4uiv"u8); contextPtr->glVertexAttribI4usv = (delegate*)load( "glVertexAttribI4usv"u8); contextPtr->glVertexAttribIPointer = (delegate*)load( "glVertexAttribIPointer"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 3.0 APIs"); return true; } internal static unsafe bool LoadGLcore31(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core31) { DefaultLog.InternalAppendLog("The core version 3.1 is not supported."); return false; } #region load contextPtr->glBindBufferBase = (delegate*)load( "glBindBufferBase"u8); contextPtr->glBindBufferRange = (delegate*)load( "glBindBufferRange"u8); contextPtr->glCopyBufferSubData = (delegate*)load( "glCopyBufferSubData"u8); contextPtr->glDrawArraysInstanced = (delegate*)load( "glDrawArraysInstanced"u8); contextPtr->glDrawElementsInstanced = (delegate*)load( "glDrawElementsInstanced"u8); contextPtr->glGetActiveUniformBlockName = (delegate*)load( "glGetActiveUniformBlockName"u8); contextPtr->glGetActiveUniformBlockiv = (delegate*)load( "glGetActiveUniformBlockiv"u8); contextPtr->glGetActiveUniformName = (delegate*)load( "glGetActiveUniformName"u8); contextPtr->glGetActiveUniformsiv = (delegate*)load( "glGetActiveUniformsiv"u8); contextPtr->glGetIntegeri_v = (delegate*)load( "glGetIntegeri_v"u8); contextPtr->glGetUniformBlockIndex = (delegate*)load( "glGetUniformBlockIndex"u8); contextPtr->glGetUniformIndices = (delegate*)load( "glGetUniformIndices"u8); contextPtr->glPrimitiveRestartIndex = (delegate*)load( "glPrimitiveRestartIndex"u8); contextPtr->glTexBuffer = (delegate*)load("glTexBuffer"u8); contextPtr->glUniformBlockBinding = (delegate*)load( "glUniformBlockBinding"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 3.1 APIs"); return true; } internal static unsafe bool LoadGLcore32(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core32) { DefaultLog.InternalAppendLog("The core version 3.2 is not supported."); return false; } #region load contextPtr->glClientWaitSync = (delegate*)load( "glClientWaitSync"u8); contextPtr->glDeleteSync = (delegate*)load("glDeleteSync"u8); contextPtr->glDrawElementsBaseVertex = (delegate*)load( "glDrawElementsBaseVertex"u8); contextPtr->glDrawElementsInstancedBaseVertex = (delegate*)load( "glDrawElementsInstancedBaseVertex"u8); contextPtr->glDrawRangeElementsBaseVertex = (delegate*)load( "glDrawRangeElementsBaseVertex"u8); contextPtr->glFenceSync = (delegate*)load("glFenceSync"u8); contextPtr->glFramebufferTexture = (delegate*)load( "glFramebufferTexture"u8); contextPtr->glGetBufferParameteri64v = (delegate*)load( "glGetBufferParameteri64v"u8); contextPtr->glGetInteger64i_v = (delegate*)load( "glGetInteger64i_v"u8); contextPtr->glGetInteger64v = (delegate*)load("glGetInteger64v"u8); contextPtr->glGetMultisamplefv = (delegate*)load( "glGetMultisamplefv"u8); contextPtr->glGetSynciv = (delegate*)load( "glGetSynciv"u8); contextPtr->glIsSync = (delegate*)load("glIsSync"u8); contextPtr->glMultiDrawElementsBaseVertex = (delegate*)load( "glMultiDrawElementsBaseVertex"u8); contextPtr->glProvokingVertex = (delegate*)load("glProvokingVertex"u8); contextPtr->glSampleMaski = (delegate*)load("glSampleMaski"u8); contextPtr->glTexImage2DMultisample = (delegate*)load( "glTexImage2DMultisample"u8); contextPtr->glTexImage3DMultisample = (delegate*)load( "glTexImage3DMultisample"u8); contextPtr->glWaitSync = (delegate*)load("glWaitSync"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 3.2 APIs"); return true; } internal static unsafe bool LoadGLcore33(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core33) { DefaultLog.InternalAppendLog("The core version 3.3 is not supported."); return false; } #region load contextPtr->glBindFragDataLocationIndexed = (delegate*)load( "glBindFragDataLocationIndexed"u8); contextPtr->glBindSampler = (delegate*)load("glBindSampler"u8); contextPtr->glDeleteSamplers = (delegate*)load( "glDeleteSamplers"u8); contextPtr->glGenSamplers = (delegate*)load("glGenSamplers"u8); contextPtr->glGetFragDataIndex = (delegate*)load( "glGetFragDataIndex"u8); contextPtr->glGetQueryObjecti64v = (delegate*)load( "glGetQueryObjecti64v"u8); contextPtr->glGetQueryObjectui64v = (delegate*)load( "glGetQueryObjectui64v"u8); contextPtr->glGetSamplerParameterIiv = (delegate*)load( "glGetSamplerParameterIiv"u8); contextPtr->glGetSamplerParameterIuiv = (delegate*)load( "glGetSamplerParameterIuiv"u8); contextPtr->glGetSamplerParameterfv = (delegate*)load( "glGetSamplerParameterfv"u8); contextPtr->glGetSamplerParameteriv = (delegate*)load( "glGetSamplerParameteriv"u8); contextPtr->glIsSampler = (delegate*)load("glIsSampler"u8); contextPtr->glQueryCounter = (delegate*)load("glQueryCounter"u8); contextPtr->glSamplerParameterIiv = (delegate*)load( "glSamplerParameterIiv"u8); contextPtr->glSamplerParameterIuiv = (delegate*)load( "glSamplerParameterIuiv"u8); contextPtr->glSamplerParameterf = (delegate*)load( "glSamplerParameterf"u8); contextPtr->glSamplerParameterfv = (delegate*)load( "glSamplerParameterfv"u8); contextPtr->glSamplerParameteri = (delegate*)load( "glSamplerParameteri"u8); contextPtr->glSamplerParameteriv = (delegate*)load( "glSamplerParameteriv"u8); contextPtr->glVertexAttribDivisor = (delegate*)load( "glVertexAttribDivisor"u8); contextPtr->glVertexAttribP1ui = (delegate*)load( "glVertexAttribP1ui"u8); contextPtr->glVertexAttribP1uiv = (delegate*)load( "glVertexAttribP1uiv"u8); contextPtr->glVertexAttribP2ui = (delegate*)load( "glVertexAttribP2ui"u8); contextPtr->glVertexAttribP2uiv = (delegate*)load( "glVertexAttribP2uiv"u8); contextPtr->glVertexAttribP3ui = (delegate*)load( "glVertexAttribP3ui"u8); contextPtr->glVertexAttribP3uiv = (delegate*)load( "glVertexAttribP3uiv"u8); contextPtr->glVertexAttribP4ui = (delegate*)load( "glVertexAttribP4ui"u8); contextPtr->glVertexAttribP4uiv = (delegate*)load( "glVertexAttribP4uiv"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 3.3 APIs"); return true; } internal static unsafe bool LoadGLcore40(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core40) { DefaultLog.InternalAppendLog("The core version 4.0 is not supported."); return false; } #region load contextPtr->glBeginQueryIndexed = (delegate*)load( "glBeginQueryIndexed"u8); contextPtr->glBindTransformFeedback = (delegate*)load( "glBindTransformFeedback"u8); contextPtr->glBlendEquationSeparatei = (delegate*)load( "glBlendEquationSeparatei"u8); contextPtr->glBlendEquationi = (delegate*)load("glBlendEquationi"u8); contextPtr->glBlendFuncSeparatei = (delegate*)load( "glBlendFuncSeparatei"u8); contextPtr->glBlendFunci = (delegate*)load("glBlendFunci"u8); contextPtr->glDeleteTransformFeedbacks = (delegate*)load( "glDeleteTransformFeedbacks"u8); contextPtr->glDrawArraysIndirect = (delegate*)load( "glDrawArraysIndirect"u8); contextPtr->glDrawElementsIndirect = (delegate*)load( "glDrawElementsIndirect"u8); contextPtr->glDrawTransformFeedback = (delegate*)load( "glDrawTransformFeedback"u8); contextPtr->glDrawTransformFeedbackStream = (delegate*)load( "glDrawTransformFeedbackStream"u8); contextPtr->glEndQueryIndexed = (delegate*)load( "glEndQueryIndexed"u8); contextPtr->glGenTransformFeedbacks = (delegate*)load( "glGenTransformFeedbacks"u8); contextPtr->glGetActiveSubroutineName = (delegate*)load( "glGetActiveSubroutineName"u8); contextPtr->glGetActiveSubroutineUniformName = (delegate*)load( "glGetActiveSubroutineUniformName"u8); contextPtr->glGetActiveSubroutineUniformiv = (delegate*)load( "glGetActiveSubroutineUniformiv"u8); contextPtr->glGetProgramStageiv = (delegate*)load( "glGetProgramStageiv"u8); contextPtr->glGetQueryIndexediv = (delegate*)load( "glGetQueryIndexediv"u8); contextPtr->glGetSubroutineIndex = (delegate*)load( "glGetSubroutineIndex"u8); contextPtr->glGetSubroutineUniformLocation = (delegate*)load( "glGetSubroutineUniformLocation"u8); contextPtr->glGetUniformSubroutineuiv = (delegate*)load( "glGetUniformSubroutineuiv"u8); contextPtr->glGetUniformdv = (delegate*)load( "glGetUniformdv"u8); contextPtr->glIsTransformFeedback = (delegate*)load( "glIsTransformFeedback"u8); contextPtr->glMinSampleShading = (delegate*)load("glMinSampleShading"u8); contextPtr->glPatchParameterfv = (delegate*)load( "glPatchParameterfv"u8); contextPtr->glPatchParameteri = (delegate*)load( "glPatchParameteri"u8); contextPtr->glPauseTransformFeedback = (delegate*)load( "glPauseTransformFeedback"u8); contextPtr->glResumeTransformFeedback = (delegate*)load( "glResumeTransformFeedback"u8); contextPtr->glUniform1d = (delegate*)load("glUniform1d"u8); contextPtr->glUniform1dv = (delegate*)load("glUniform1dv"u8); contextPtr->glUniform2d = (delegate*)load("glUniform2d"u8); contextPtr->glUniform2dv = (delegate*)load("glUniform2dv"u8); contextPtr->glUniform3d = (delegate*)load( "glUniform3d"u8); contextPtr->glUniform3dv = (delegate*)load("glUniform3dv"u8); contextPtr->glUniform4d = (delegate*)load( "glUniform4d"u8); contextPtr->glUniform4dv = (delegate*)load("glUniform4dv"u8); contextPtr->glUniformMatrix2dv = (delegate*)load( "glUniformMatrix2dv"u8); contextPtr->glUniformMatrix2x3dv = (delegate*)load( "glUniformMatrix2x3dv"u8); contextPtr->glUniformMatrix2x4dv = (delegate*)load( "glUniformMatrix2x4dv"u8); contextPtr->glUniformMatrix3dv = (delegate*)load( "glUniformMatrix3dv"u8); contextPtr->glUniformMatrix3x2dv = (delegate*)load( "glUniformMatrix3x2dv"u8); contextPtr->glUniformMatrix3x4dv = (delegate*)load( "glUniformMatrix3x4dv"u8); contextPtr->glUniformMatrix4dv = (delegate*)load( "glUniformMatrix4dv"u8); contextPtr->glUniformMatrix4x2dv = (delegate*)load( "glUniformMatrix4x2dv"u8); contextPtr->glUniformMatrix4x3dv = (delegate*)load( "glUniformMatrix4x3dv"u8); contextPtr->glUniformSubroutinesuiv = (delegate*)load( "glUniformSubroutinesuiv"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 4.0 APIs"); return true; } internal static unsafe bool LoadGLcore41(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core41) { DefaultLog.InternalAppendLog("The core version 4.1 is not supported."); return false; } #region load contextPtr->glActiveShaderProgram = (delegate*)load( "glActiveShaderProgram"u8); contextPtr->glBindProgramPipeline = (delegate*)load( "glBindProgramPipeline"u8); contextPtr->glClearDepthf = (delegate*)load("glClearDepthf"u8); contextPtr->glCreateShaderProgramv = (delegate*)load( "glCreateShaderProgramv"u8); contextPtr->glDeleteProgramPipelines = (delegate*)load( "glDeleteProgramPipelines"u8); contextPtr->glDepthRangeArrayv = (delegate*)load( "glDepthRangeArrayv"u8); contextPtr->glDepthRangeIndexed = (delegate*)load( "glDepthRangeIndexed"u8); contextPtr->glDepthRangef = (delegate*)load("glDepthRangef"u8); contextPtr->glGenProgramPipelines = (delegate*)load( "glGenProgramPipelines"u8); contextPtr->glGetDoublei_v = (delegate*)load( "glGetDoublei_v"u8); contextPtr->glGetFloati_v = (delegate*)load( "glGetFloati_v"u8); contextPtr->glGetProgramBinary = (delegate*)load( "glGetProgramBinary"u8); contextPtr->glGetProgramPipelineInfoLog = (delegate*)load( "glGetProgramPipelineInfoLog"u8); contextPtr->glGetProgramPipelineiv = (delegate*)load( "glGetProgramPipelineiv"u8); contextPtr->glGetShaderPrecisionFormat = (delegate*)load( "glGetShaderPrecisionFormat"u8); contextPtr->glGetVertexAttribLdv = (delegate*)load( "glGetVertexAttribLdv"u8); contextPtr->glIsProgramPipeline = (delegate*)load("glIsProgramPipeline"u8); contextPtr->glProgramBinary = (delegate*)load( "glProgramBinary"u8); contextPtr->glProgramParameteri = (delegate*)load( "glProgramParameteri"u8); contextPtr->glProgramUniform1d = (delegate*)load( "glProgramUniform1d"u8); contextPtr->glProgramUniform1dv = (delegate*)load( "glProgramUniform1dv"u8); contextPtr->glProgramUniform1f = (delegate*)load( "glProgramUniform1f"u8); contextPtr->glProgramUniform1fv = (delegate*)load( "glProgramUniform1fv"u8); contextPtr->glProgramUniform1i = (delegate*)load( "glProgramUniform1i"u8); contextPtr->glProgramUniform1iv = (delegate*)load( "glProgramUniform1iv"u8); contextPtr->glProgramUniform1ui = (delegate*)load( "glProgramUniform1ui"u8); contextPtr->glProgramUniform1uiv = (delegate*)load( "glProgramUniform1uiv"u8); contextPtr->glProgramUniform2d = (delegate*)load( "glProgramUniform2d"u8); contextPtr->glProgramUniform2dv = (delegate*)load( "glProgramUniform2dv"u8); contextPtr->glProgramUniform2f = (delegate*)load( "glProgramUniform2f"u8); contextPtr->glProgramUniform2fv = (delegate*)load( "glProgramUniform2fv"u8); contextPtr->glProgramUniform2i = (delegate*)load( "glProgramUniform2i"u8); contextPtr->glProgramUniform2iv = (delegate*)load( "glProgramUniform2iv"u8); contextPtr->glProgramUniform2ui = (delegate*)load( "glProgramUniform2ui"u8); contextPtr->glProgramUniform2uiv = (delegate*)load( "glProgramUniform2uiv"u8); contextPtr->glProgramUniform3d = (delegate*)load( "glProgramUniform3d"u8); contextPtr->glProgramUniform3dv = (delegate*)load( "glProgramUniform3dv"u8); contextPtr->glProgramUniform3f = (delegate*)load( "glProgramUniform3f"u8); contextPtr->glProgramUniform3fv = (delegate*)load( "glProgramUniform3fv"u8); contextPtr->glProgramUniform3i = (delegate*)load( "glProgramUniform3i"u8); contextPtr->glProgramUniform3iv = (delegate*)load( "glProgramUniform3iv"u8); contextPtr->glProgramUniform3ui = (delegate*)load( "glProgramUniform3ui"u8); contextPtr->glProgramUniform3uiv = (delegate*)load( "glProgramUniform3uiv"u8); contextPtr->glProgramUniform4d = (delegate*)load( "glProgramUniform4d"u8); contextPtr->glProgramUniform4dv = (delegate*)load( "glProgramUniform4dv"u8); contextPtr->glProgramUniform4f = (delegate*)load( "glProgramUniform4f"u8); contextPtr->glProgramUniform4fv = (delegate*)load( "glProgramUniform4fv"u8); contextPtr->glProgramUniform4i = (delegate*)load( "glProgramUniform4i"u8); contextPtr->glProgramUniform4iv = (delegate*)load( "glProgramUniform4iv"u8); contextPtr->glProgramUniform4ui = (delegate*)load( "glProgramUniform4ui"u8); contextPtr->glProgramUniform4uiv = (delegate*)load( "glProgramUniform4uiv"u8); contextPtr->glProgramUniformMatrix2dv = (delegate*)load( "glProgramUniformMatrix2dv"u8); contextPtr->glProgramUniformMatrix2fv = (delegate*)load( "glProgramUniformMatrix2fv"u8); contextPtr->glProgramUniformMatrix2x3dv = (delegate*)load( "glProgramUniformMatrix2x3dv"u8); contextPtr->glProgramUniformMatrix2x3fv = (delegate*)load( "glProgramUniformMatrix2x3fv"u8); contextPtr->glProgramUniformMatrix2x4dv = (delegate*)load( "glProgramUniformMatrix2x4dv"u8); contextPtr->glProgramUniformMatrix2x4fv = (delegate*)load( "glProgramUniformMatrix2x4fv"u8); contextPtr->glProgramUniformMatrix3dv = (delegate*)load( "glProgramUniformMatrix3dv"u8); contextPtr->glProgramUniformMatrix3fv = (delegate*)load( "glProgramUniformMatrix3fv"u8); contextPtr->glProgramUniformMatrix3x2dv = (delegate*)load( "glProgramUniformMatrix3x2dv"u8); contextPtr->glProgramUniformMatrix3x2fv = (delegate*)load( "glProgramUniformMatrix3x2fv"u8); contextPtr->glProgramUniformMatrix3x4dv = (delegate*)load( "glProgramUniformMatrix3x4dv"u8); contextPtr->glProgramUniformMatrix3x4fv = (delegate*)load( "glProgramUniformMatrix3x4fv"u8); contextPtr->glProgramUniformMatrix4dv = (delegate*)load( "glProgramUniformMatrix4dv"u8); contextPtr->glProgramUniformMatrix4fv = (delegate*)load( "glProgramUniformMatrix4fv"u8); contextPtr->glProgramUniformMatrix4x2dv = (delegate*)load( "glProgramUniformMatrix4x2dv"u8); contextPtr->glProgramUniformMatrix4x2fv = (delegate*)load( "glProgramUniformMatrix4x2fv"u8); contextPtr->glProgramUniformMatrix4x3dv = (delegate*)load( "glProgramUniformMatrix4x3dv"u8); contextPtr->glProgramUniformMatrix4x3fv = (delegate*)load( "glProgramUniformMatrix4x3fv"u8); contextPtr->glReleaseShaderCompiler = (delegate*)load( "glReleaseShaderCompiler"u8); contextPtr->glScissorArrayv = (delegate*)load( "glScissorArrayv"u8); contextPtr->glScissorIndexed = (delegate*)load( "glScissorIndexed"u8); contextPtr->glScissorIndexedv = (delegate*)load( "glScissorIndexedv"u8); contextPtr->glShaderBinary = (delegate*)load( "glShaderBinary"u8); contextPtr->glUseProgramStages = (delegate*)load( "glUseProgramStages"u8); contextPtr->glValidateProgramPipeline = (delegate*)load( "glValidateProgramPipeline"u8); contextPtr->glVertexAttribL1d = (delegate*)load( "glVertexAttribL1d"u8); contextPtr->glVertexAttribL1dv = (delegate*)load( "glVertexAttribL1dv"u8); contextPtr->glVertexAttribL2d = (delegate*)load( "glVertexAttribL2d"u8); contextPtr->glVertexAttribL2dv = (delegate*)load( "glVertexAttribL2dv"u8); contextPtr->glVertexAttribL3d = (delegate*)load( "glVertexAttribL3d"u8); contextPtr->glVertexAttribL3dv = (delegate*)load( "glVertexAttribL3dv"u8); contextPtr->glVertexAttribL4d = (delegate*)load( "glVertexAttribL4d"u8); contextPtr->glVertexAttribL4dv = (delegate*)load( "glVertexAttribL4dv"u8); contextPtr->glVertexAttribLPointer = (delegate*)load( "glVertexAttribLPointer"u8); contextPtr->glViewportArrayv = (delegate*)load( "glViewportArrayv"u8); contextPtr->glViewportIndexedf = (delegate*)load( "glViewportIndexedf"u8); contextPtr->glViewportIndexedfv = (delegate*)load( "glViewportIndexedfv"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 4.1 APIs"); return true; } internal static unsafe bool LoadGLcore42(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core42) { DefaultLog.InternalAppendLog("The core version 4.2 is not supported."); return false; } #region load contextPtr->glBindImageTexture = (delegate*)load( "glBindImageTexture"u8); contextPtr->glDrawArraysInstancedBaseInstance = (delegate*)load( "glDrawArraysInstancedBaseInstance"u8); contextPtr->glDrawElementsInstancedBaseInstance = (delegate*)load( "glDrawElementsInstancedBaseInstance"u8); contextPtr->glDrawElementsInstancedBaseVertexBaseInstance = (delegate*)load( "glDrawElementsInstancedBaseVertexBaseInstance"u8); contextPtr->glDrawTransformFeedbackInstanced = (delegate*)load( "glDrawTransformFeedbackInstanced"u8); contextPtr->glDrawTransformFeedbackStreamInstanced = (delegate*)load( "glDrawTransformFeedbackStreamInstanced"u8); contextPtr->glGetActiveAtomicCounterBufferiv = (delegate*)load( "glGetActiveAtomicCounterBufferiv"u8); contextPtr->glGetInternalformativ = (delegate*)load( "glGetInternalformativ"u8); contextPtr->glMemoryBarrier = (delegate*)load("glMemoryBarrier"u8); contextPtr->glTexStorage1D = (delegate*)load( "glTexStorage1D"u8); contextPtr->glTexStorage2D = (delegate*)load( "glTexStorage2D"u8); contextPtr->glTexStorage3D = (delegate*)load( "glTexStorage3D"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 4.2 APIs"); return true; } internal static unsafe bool LoadGLcore43(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core43) { DefaultLog.InternalAppendLog("The core version 4.3 is not supported."); return false; } #region load contextPtr->glBindVertexBuffer = (delegate*)load( "glBindVertexBuffer"u8); contextPtr->glClearBufferData = (delegate*)load( "glClearBufferData"u8); contextPtr->glClearBufferSubData = (delegate*)load( "glClearBufferSubData"u8); contextPtr->glCopyImageSubData = (delegate*)load( "glCopyImageSubData"u8); contextPtr->glDebugMessageCallback = (delegate*)load( "glDebugMessageCallback"u8); contextPtr->glDebugMessageControl = (delegate*)load( "glDebugMessageControl"u8); contextPtr->glDebugMessageInsert = (delegate*)load( "glDebugMessageInsert"u8); contextPtr->glDispatchCompute = (delegate*)load( "glDispatchCompute"u8); contextPtr->glDispatchComputeIndirect = (delegate*)load( "glDispatchComputeIndirect"u8); contextPtr->glFramebufferParameteri = (delegate*)load( "glFramebufferParameteri"u8); contextPtr->glGetDebugMessageLog = (delegate*)load( "glGetDebugMessageLog"u8); contextPtr->glGetFramebufferParameteriv = (delegate*)load( "glGetFramebufferParameteriv"u8); contextPtr->glGetInternalformati64v = (delegate*)load( "glGetInternalformati64v"u8); contextPtr->glGetObjectLabel = (delegate*)load( "glGetObjectLabel"u8); contextPtr->glGetObjectPtrLabel = (delegate*)load( "glGetObjectPtrLabel"u8); contextPtr->glGetPointerv = (delegate*)load("glGetPointerv"u8); contextPtr->glGetProgramInterfaceiv = (delegate*)load( "glGetProgramInterfaceiv"u8); contextPtr->glGetProgramResourceIndex = (delegate*)load( "glGetProgramResourceIndex"u8); contextPtr->glGetProgramResourceLocation = (delegate*)load( "glGetProgramResourceLocation"u8); contextPtr->glGetProgramResourceLocationIndex = (delegate*)load( "glGetProgramResourceLocationIndex"u8); contextPtr->glGetProgramResourceName = (delegate*)load( "glGetProgramResourceName"u8); contextPtr->glGetProgramResourceiv = (delegate*)load( "glGetProgramResourceiv"u8); contextPtr->glInvalidateBufferData = (delegate*)load( "glInvalidateBufferData"u8); contextPtr->glInvalidateBufferSubData = (delegate*)load( "glInvalidateBufferSubData"u8); contextPtr->glInvalidateFramebuffer = (delegate*)load( "glInvalidateFramebuffer"u8); contextPtr->glInvalidateSubFramebuffer = (delegate*)load( "glInvalidateSubFramebuffer"u8); contextPtr->glInvalidateTexImage = (delegate*)load( "glInvalidateTexImage"u8); contextPtr->glInvalidateTexSubImage = (delegate*)load( "glInvalidateTexSubImage"u8); contextPtr->glMultiDrawArraysIndirect = (delegate*)load( "glMultiDrawArraysIndirect"u8); contextPtr->glMultiDrawElementsIndirect = (delegate*)load( "glMultiDrawElementsIndirect"u8); contextPtr->glObjectLabel = (delegate*)load( "glObjectLabel"u8); contextPtr->glObjectPtrLabel = (delegate*)load( "glObjectPtrLabel"u8); contextPtr->glPopDebugGroup = (delegate*)load("glPopDebugGroup"u8); contextPtr->glPushDebugGroup = (delegate*)load( "glPushDebugGroup"u8); contextPtr->glShaderStorageBlockBinding = (delegate*)load( "glShaderStorageBlockBinding"u8); contextPtr->glTexBufferRange = (delegate*)load( "glTexBufferRange"u8); contextPtr->glTexStorage2DMultisample = (delegate*)load( "glTexStorage2DMultisample"u8); contextPtr->glTexStorage3DMultisample = (delegate*)load( "glTexStorage3DMultisample"u8); contextPtr->glTextureView = (delegate*)load( "glTextureView"u8); contextPtr->glVertexAttribBinding = (delegate*)load( "glVertexAttribBinding"u8); contextPtr->glVertexAttribFormat = (delegate*)load( "glVertexAttribFormat"u8); contextPtr->glVertexAttribIFormat = (delegate*)load( "glVertexAttribIFormat"u8); contextPtr->glClearBufferData = (delegate*)load( "glClearBufferData"u8); contextPtr->glVertexBindingDivisor = (delegate*)load( "glVertexBindingDivisor"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 4.3 APIs"); return true; } internal static unsafe bool LoadGLcore44(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core44) { DefaultLog.InternalAppendLog("The core version 4.4 is not supported."); return false; } #region load contextPtr->glBindBuffersBase = (delegate*)load( "glBindBuffersBase"u8); contextPtr->glBindBuffersRange = (delegate*)load( "glBindBuffersRange"u8); contextPtr->glBindImageTextures = (delegate*)load( "glBindImageTextures"u8); contextPtr->glBindSamplers = (delegate*)load( "glBindSamplers"u8); contextPtr->glBindTextures = (delegate*)load( "glBindTextures"u8); contextPtr->glBindVertexBuffers = (delegate*)load( "glBindVertexBuffers"u8); contextPtr->glBufferStorage = (delegate*)load( "glBufferStorage"u8); contextPtr->glClearTexImage = (delegate*)load( "glClearTexImage"u8); contextPtr->glClearTexSubImage = (delegate*)load( "glClearTexSubImage"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 4.4 APIs"); return true; } internal static unsafe bool LoadGLcore45(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core45) { DefaultLog.InternalAppendLog("The core version 4.5 is not supported."); return false; } #region load contextPtr->glBindTextureUnit = (delegate*)load( "glBindTextureUnit"u8); contextPtr->glBlitNamedFramebuffer = (delegate*)load( "glBlitNamedFramebuffer"u8); contextPtr->glCheckNamedFramebufferStatus = (delegate*)load( "glCheckNamedFramebufferStatus"u8); contextPtr->glClearNamedBufferData = (delegate*)load( "glClearNamedBufferData"u8); contextPtr->glClearNamedBufferSubData = (delegate*)load( "glClearNamedBufferSubData"u8); contextPtr->glClearNamedFramebufferfi = (delegate*)load( "glClearNamedFramebufferfi"u8); contextPtr->glClearNamedFramebufferfv = (delegate*)load( "glClearNamedFramebufferfv"u8); contextPtr->glClearNamedFramebufferiv = (delegate*)load( "glClearNamedFramebufferiv"u8); contextPtr->glClearNamedFramebufferuiv = (delegate*)load( "glClearNamedFramebufferuiv"u8); contextPtr->glClipControl = (delegate*)load("glClipControl"u8); contextPtr->glCompressedTextureSubImage1D = (delegate*)load( "glCompressedTextureSubImage1D"u8); contextPtr->glCompressedTextureSubImage2D = (delegate*)load( "glCompressedTextureSubImage2D"u8); contextPtr->glCompressedTextureSubImage3D = (delegate*)load( "glCompressedTextureSubImage3D"u8); contextPtr->glCopyNamedBufferSubData = (delegate*)load( "glCopyNamedBufferSubData"u8); contextPtr->glCopyTextureSubImage1D = (delegate*)load( "glCopyTextureSubImage1D"u8); contextPtr->glCopyTextureSubImage2D = (delegate*)load( "glCopyTextureSubImage2D"u8); contextPtr->glCopyTextureSubImage3D = (delegate*)load( "glCopyTextureSubImage3D"u8); contextPtr->glCreateBuffers = (delegate*)load("glCreateBuffers"u8); contextPtr->glCreateFramebuffers = (delegate*)load( "glCreateFramebuffers"u8); contextPtr->glCreateProgramPipelines = (delegate*)load( "glCreateProgramPipelines"u8); contextPtr->glCreateQueries = (delegate*)load( "glCreateQueries"u8); contextPtr->glCreateRenderbuffers = (delegate*)load( "glCreateRenderbuffers"u8); contextPtr->glCreateSamplers = (delegate*)load( "glCreateSamplers"u8); contextPtr->glCreateTextures = (delegate*)load( "glCreateTextures"u8); contextPtr->glCreateTransformFeedbacks = (delegate*)load( "glCreateTransformFeedbacks"u8); contextPtr->glCreateVertexArrays = (delegate*)load( "glCreateVertexArrays"u8); contextPtr->glDisableVertexArrayAttrib = (delegate*)load( "glDisableVertexArrayAttrib"u8); contextPtr->glEnableVertexArrayAttrib = (delegate*)load( "glEnableVertexArrayAttrib"u8); contextPtr->glFlushMappedNamedBufferRange = (delegate*)load( "glFlushMappedNamedBufferRange"u8); contextPtr->glGenerateTextureMipmap = (delegate*)load( "glGenerateTextureMipmap"u8); contextPtr->glGetCompressedTextureImage = (delegate*)load( "glGetCompressedTextureImage"u8); contextPtr->glGetCompressedTextureSubImage = (delegate*)load( "glGetCompressedTextureSubImage"u8); contextPtr->glGetGraphicsResetStatus = (delegate*)load( "glGetGraphicsResetStatus"u8); contextPtr->glGetNamedBufferParameteri64v = (delegate*)load( "glGetNamedBufferParameteri64v"u8); contextPtr->glGetNamedBufferParameteriv = (delegate*)load( "glGetNamedBufferParameteriv"u8); contextPtr->glGetNamedBufferPointerv = (delegate*)load( "glGetNamedBufferPointerv"u8); contextPtr->glGetNamedBufferSubData = (delegate*)load( "glGetNamedBufferSubData"u8); contextPtr->glGetNamedFramebufferAttachmentParameteriv = (delegate*)load( "glGetNamedFramebufferAttachmentParameteriv"u8); contextPtr->glGetNamedFramebufferParameteriv = (delegate*)load( "glGetNamedFramebufferParameteriv"u8); contextPtr->glGetNamedRenderbufferParameteriv = (delegate*)load( "glGetNamedRenderbufferParameteriv"u8); contextPtr->glGetQueryBufferObjecti64v = (delegate*)load( "glGetQueryBufferObjecti64v"u8); contextPtr->glGetQueryBufferObjectiv = (delegate*)load( "glGetQueryBufferObjectiv"u8); contextPtr->glGetQueryBufferObjectui64v = (delegate*)load( "glGetQueryBufferObjectui64v"u8); contextPtr->glGetQueryBufferObjectuiv = (delegate*)load( "glGetQueryBufferObjectuiv"u8); contextPtr->glGetTextureImage = (delegate*)load( "glGetTextureImage"u8); contextPtr->glGetTextureLevelParameterfv = (delegate*)load( "glGetTextureLevelParameterfv"u8); contextPtr->glGetTextureLevelParameteriv = (delegate*)load( "glGetTextureLevelParameteriv"u8); contextPtr->glGetTextureParameterIiv = (delegate*)load( "glGetTextureParameterIiv"u8); contextPtr->glGetTextureParameterIuiv = (delegate*)load( "glGetTextureParameterIuiv"u8); contextPtr->glGetTextureParameterfv = (delegate*)load( "glGetTextureParameterfv"u8); contextPtr->glGetTextureParameteriv = (delegate*)load( "glGetTextureParameteriv"u8); contextPtr->glGetTextureSubImage = (delegate*)load( "glGetTextureSubImage"u8); contextPtr->glGetTransformFeedbacki64_v = (delegate*)load( "glGetTransformFeedbacki64_v"u8); contextPtr->glGetTransformFeedbacki_v = (delegate*)load( "glGetTransformFeedbacki_v"u8); contextPtr->glGetTransformFeedbackiv = (delegate*)load( "glGetTransformFeedbackiv"u8); contextPtr->glGetVertexArrayIndexed64iv = (delegate*)load( "glGetVertexArrayIndexed64iv"u8); contextPtr->glGetVertexArrayIndexediv = (delegate*)load( "glGetVertexArrayIndexediv"u8); contextPtr->glGetVertexArrayiv = (delegate*)load( "glGetVertexArrayiv"u8); contextPtr->glGetnCompressedTexImage = (delegate*)load( "glGetnCompressedTexImage"u8); contextPtr->glGetnTexImage = (delegate*)load( "glGetnTexImage"u8); contextPtr->glGetnUniformdv = (delegate*)load( "glGetnUniformdv"u8); contextPtr->glGetnUniformfv = (delegate*)load( "glGetnUniformfv"u8); contextPtr->glGetnUniformiv = (delegate*)load( "glGetnUniformiv"u8); contextPtr->glGetnUniformuiv = (delegate*)load( "glGetnUniformuiv"u8); contextPtr->glInvalidateNamedFramebufferData = (delegate*)load( "glInvalidateNamedFramebufferData"u8); contextPtr->glInvalidateNamedFramebufferSubData = (delegate*)load( "glInvalidateNamedFramebufferSubData"u8); contextPtr->glMapNamedBuffer = (delegate*)load( "glMapNamedBuffer"u8); contextPtr->glMapNamedBufferRange = (delegate*)load( "glMapNamedBufferRange"u8); contextPtr->glMemoryBarrierByRegion = (delegate*)load( "glMemoryBarrierByRegion"u8); contextPtr->glNamedBufferData = (delegate*)load( "glNamedBufferData"u8); contextPtr->glNamedBufferStorage = (delegate*)load( "glNamedBufferStorage"u8); contextPtr->glNamedBufferSubData = (delegate*)load( "glNamedBufferSubData"u8); contextPtr->glNamedFramebufferDrawBuffer = (delegate*)load( "glNamedFramebufferDrawBuffer"u8); contextPtr->glNamedFramebufferDrawBuffers = (delegate*)load( "glNamedFramebufferDrawBuffers"u8); contextPtr->glNamedFramebufferParameteri = (delegate*)load( "glNamedFramebufferParameteri"u8); contextPtr->glNamedFramebufferReadBuffer = (delegate*)load( "glNamedFramebufferReadBuffer"u8); contextPtr->glNamedFramebufferRenderbuffer = (delegate*)load( "glNamedFramebufferRenderbuffer"u8); contextPtr->glNamedFramebufferTexture = (delegate*)load( "glNamedFramebufferTexture"u8); contextPtr->glNamedFramebufferTextureLayer = (delegate*)load( "glNamedFramebufferTextureLayer"u8); contextPtr->glNamedRenderbufferStorage = (delegate*)load( "glNamedRenderbufferStorage"u8); contextPtr->glNamedRenderbufferStorageMultisample = (delegate*)load( "glNamedRenderbufferStorageMultisample"u8); contextPtr->glReadnPixels = (delegate*)load( "glReadnPixels"u8); contextPtr->glTextureBarrier = (delegate*)load("glTextureBarrier"u8); contextPtr->glTextureBuffer = (delegate*)load( "glTextureBuffer"u8); contextPtr->glTextureBufferRange = (delegate*)load( "glTextureBufferRange"u8); contextPtr->glTextureParameterIiv = (delegate*)load( "glTextureParameterIiv"u8); contextPtr->glTextureParameterIuiv = (delegate*)load( "glTextureParameterIuiv"u8); contextPtr->glTextureParameterf = (delegate*)load( "glTextureParameterf"u8); contextPtr->glTextureParameterfv = (delegate*)load( "glTextureParameterfv"u8); contextPtr->glTextureParameteri = (delegate*)load( "glTextureParameteri"u8); contextPtr->glTextureParameteriv = (delegate*)load( "glTextureParameteriv"u8); contextPtr->glTextureStorage1D = (delegate*)load( "glTextureStorage1D"u8); contextPtr->glTextureStorage2D = (delegate*)load( "glTextureStorage2D"u8); contextPtr->glTextureStorage2DMultisample = (delegate*)load( "glTextureStorage2DMultisample"u8); contextPtr->glTextureStorage3D = (delegate*)load( "glTextureStorage3D"u8); contextPtr->glTextureStorage3DMultisample = (delegate*)load( "glTextureStorage3DMultisample"u8); contextPtr->glTextureSubImage1D = (delegate*)load( "glTextureSubImage1D"u8); contextPtr->glTextureSubImage2D = (delegate*)load( "glTextureSubImage2D"u8); contextPtr->glTextureSubImage3D = (delegate*)load( "glTextureSubImage3D"u8); contextPtr->glTransformFeedbackBufferBase = (delegate*)load( "glTransformFeedbackBufferBase"u8); contextPtr->glTransformFeedbackBufferRange = (delegate*)load( "glTransformFeedbackBufferRange"u8); contextPtr->glUnmapNamedBuffer = (delegate*)load("glUnmapNamedBuffer"u8); contextPtr->glVertexArrayAttribBinding = (delegate*)load( "glVertexArrayAttribBinding"u8); contextPtr->glVertexArrayAttribFormat = (delegate*)load( "glVertexArrayAttribFormat"u8); contextPtr->glVertexArrayAttribIFormat = (delegate*)load( "glVertexArrayAttribIFormat"u8); contextPtr->glVertexArrayAttribLFormat = (delegate*)load( "glVertexArrayAttribLFormat"u8); contextPtr->glVertexArrayBindingDivisor = (delegate*)load( "glVertexArrayBindingDivisor"u8); contextPtr->glVertexArrayElementBuffer = (delegate*)load( "glVertexArrayElementBuffer"u8); contextPtr->glVertexArrayVertexBuffer = (delegate*)load( "glVertexArrayVertexBuffer"u8); contextPtr->glVertexArrayVertexBuffers = (delegate*)load( "glVertexArrayVertexBuffers"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 4.5 APIs"); return true; } internal static unsafe bool LoadGLcore46(OpenglContext* contextPtr, delegate*, IntPtr> load) { if (!core46) { DefaultLog.InternalAppendLog("The core version 4.6 is not supported."); return false; } #region load contextPtr->glMultiDrawArraysIndirectCount = (delegate*)load( "glMultiDrawArraysIndirectCount"u8); contextPtr->glMultiDrawElementsIndirectCount = (delegate*)load( "glMultiDrawElementsIndirectCount"u8); contextPtr->glPolygonOffsetClamp = (delegate*)load( "glPolygonOffsetClamp"u8); contextPtr->glSpecializeShader = (delegate*)load( "glSpecializeShader"u8); #endregion load DefaultLog.InternalAppendLog("Successfully load all OpenGL 4.6 APIs"); return true; } } }