daily update on 20240226 by nitload youmu

This commit is contained in:
YoumuLiu
2024-02-27 00:43:29 +08:00
parent a2241a5a58
commit 06e39f7a31
543 changed files with 230273 additions and 21423 deletions
+90 -48
View File
@@ -10,8 +10,9 @@ namespace StgSharp.Graphics
{
public static partial class glManager
{
const int glExtension = 0x1f03;
const int glVersion = 0x1f02;
private const int glExtension = 0x1f03;
private const int glVersion = 0x1f02;
private static readonly string[] glBranch =
new string[] {
"OpenGL ES-CM ",
@@ -22,19 +23,17 @@ namespace StgSharp.Graphics
private static string glExtensionList;
/// <summary>
/// Load all aupportable OpenGL APIs and bind them to given <see cref="Form"/> context.
/// </summary>
/// <param name="form">The <see cref="Form"/> used as current OpenGL context</param>
/// <param name="loader">A delegate that can get o</param>
/// <param name="loader">A delegate to get address of OprnGL api</param>
public static unsafe void LoadGLapi(this Form form, GLfuncLoader loader)
{
GLcontext* context = form.contextID;
if (loader == null)
{
loader = LoadGLfunc;
loader = InternalIO.glfwGetProcAddress;
}
#pragma warning disable CS8909
if ((form.contextID->glGetString) != (delegate*<uint, IntPtr>)IntPtr.Zero)
@@ -43,15 +42,14 @@ namespace StgSharp.Graphics
return;
}
IntPtr proc = loader("glGetString");
context->glGetString = (delegate*<uint, IntPtr>)proc;
if ((IntPtr)context->glGetString == IntPtr.Zero)
if (proc == IntPtr.Zero)
{
#if DEBUG
Console.WriteLine("Cannot load GL.");
throw new Exception("Cannot load gl");
#endif
throw new Exception("Cannot load gl");
}
context->glGetString = (delegate*<uint, IntPtr>)proc;
string coreVersion;
if (context->glGetString(glVersion) == IntPtr.Zero)
@@ -60,7 +58,6 @@ namespace StgSharp.Graphics
}
coreVersion = Marshal.PtrToStringAnsi(context->glGetString(glVersion));
foreach (string branch in glBranch)
{
if (coreVersion.Contains(branch))
@@ -97,7 +94,7 @@ namespace StgSharp.Graphics
LoadGLcore45(form.contextID, loader);
LoadGLcore46(form.contextID, loader);
#endregion
#endregion load_core_gl
}
catch (Exception ex)
{
@@ -120,6 +117,7 @@ namespace StgSharp.Graphics
extension.Split(" ").ToList();
#region checkGLextensions
if (extensions.Contains("gl_4DFX_multisample")) { _4DFX_multisample = true; extensions.Remove("gl_4DFX_multisample"); }
if (extensions.Contains("gl_3DFX_tbuffer")) { _3DFX_tbuffer = true; extensions.Remove("gl_3DFX_tbuffer"); }
if (extensions.Contains("gl_3DFX_texture_compression_FXT1")) { _3DFX_texture_compression_FXT1 = true; extensions.Remove("gl_3DFX_texture_compression_FXT1"); }
@@ -739,7 +737,8 @@ namespace StgSharp.Graphics
if (extensions.Contains("gl_SUN_vertex")) { SUN_vertex = true; extensions.Remove("glSUN_vertex"); }
if (extensions.Contains("gl_WIN_phong_shading")) { WIN_phong_shading = true; extensions.Remove("glWIN_phong_shading"); }
if (extensions.Contains("gl_WIN_specular_fog")) { WIN_specular_fog = true; extensions.Remove("glWIN_specular_fog"); }
#endregion
#endregion checkGLextensions
InternalIO.InternalWriteLog("Find OpenGL extensions.", LogType.Info);
@@ -770,7 +769,6 @@ namespace StgSharp.Graphics
return ret;
}
internal static void CheckCoreVersion(int majorVersion, int minorVersion)
{
if ((majorVersion >= 1) || (majorVersion == 1 && minorVersion == 0)) core10 = true; else goto log;
@@ -798,10 +796,9 @@ namespace StgSharp.Graphics
InternalIO.InternalWriteLog("Find core OpenGL version.", LogType.Info);
return;
}
}
internal unsafe static string GetExtensions(this GLcontext context)
internal static unsafe string GetExtensions(this GLcontext context)
{
if (context.glGetString == null)
{
@@ -835,7 +832,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 1.0 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBlendFunc = (delegate*<uint, uint, void>)load("glBlendFunc");
contextPtr->glClear = (delegate*<uint, void>)load("glClear");
contextPtr->glClearColor = (delegate*<float, float, float, float, void>)load("glClearColor");
@@ -885,7 +884,8 @@ namespace StgSharp.Graphics
contextPtr->glTexParameteriv = (delegate*<uint, uint, int*, void>)load("glTexParameteriv");
contextPtr->glViewport = (delegate*<int, int, uint, uint, void>)load("glViewport");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.0 APIs");
}
@@ -896,7 +896,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 1.1 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBindTexture = (delegate*<uint, uint, void>)load("glBindTexture");
contextPtr->glCopyTexImage1D = (delegate*<uint, int, uint, int, int, uint, int, void>)load("glCopyTexImage1D");
contextPtr->glCopyTexImage2D = (delegate*<uint, int, uint, int, int, uint, uint, int, void>)load("glCopyTexImage2D");
@@ -912,9 +914,9 @@ namespace StgSharp.Graphics
contextPtr->glTexSubImage1D = (delegate*<uint, int, int, uint, uint, uint, void*, void>)load("glTexSubImage1D");
contextPtr->glTexSubImage2D = (delegate*<uint, int, int, int, uint, uint, uint, uint, void*, void>)load("glTexSubImage2D");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.1 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.1 APIs");
}
internal static unsafe void LoadGLcore12(GLcontext* contextPtr, GLfuncLoader load)
@@ -924,25 +926,29 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 1.2 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glCopyTexSubImage3D = (delegate*<uint, int, int, int, int, int, int, uint, uint, void>)load("glCopyTexSubImage3D");
contextPtr->glDrawRangeElements = (delegate*<uint, uint, uint, uint, uint, void*, void>)load("glDrawRangeElements");
contextPtr->glTexImage3D = (delegate*<uint, int, int, uint, uint, uint, int, uint, uint, void*, void>)load("glTexImage3D");
contextPtr->glTexSubImage3D = (delegate*<uint, int, int, int, int, uint, uint, uint, uint, uint, void*, void>)load("glTexSubImage3D");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.2 APIs");
}
internal static unsafe void LoadGLcore13(GLcontext* contextPtr, GLfuncLoader load)
{
if (!core13)
{
InternalIO.InternalAppendLog("The core version 1.3 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glActiveTexture = (delegate*<uint, void>)load("glActiveTexture");
contextPtr->glCompressedTexImage1D = (delegate*<uint, int, uint, uint, int, uint, void*, void>)load("glCompressedTexImage1D");
contextPtr->glCompressedTexImage2D = (delegate*<uint, int, uint, uint, uint, int, uint, void*, void>)load("glCompressedTexImage2D");
@@ -953,9 +959,9 @@ namespace StgSharp.Graphics
contextPtr->glGetCompressedTexImage = (delegate*<uint, int, void*, void>)load("glGetCompressedTexImage");
contextPtr->glSampleCoverage = (delegate*<float, bool, void>)load("glSampleCoverage");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.3 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.3 APIs");
}
internal static unsafe void LoadGLcore14(GLcontext* contextPtr, GLfuncLoader load)
@@ -965,7 +971,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 1.4 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBlendColor = (delegate*<float, float, float, float, void>)load("glBlendColor");
contextPtr->glBlendEquation = (delegate*<uint, void>)load("glBlendEquation");
contextPtr->glBlendFuncSeparate = (delegate*<uint, uint, uint, uint, void>)load("glBlendFuncSeparate");
@@ -976,20 +984,21 @@ namespace StgSharp.Graphics
contextPtr->glPointParameteri = (delegate*<uint, int, void>)load("glPointParameteri");
contextPtr->glPointParameteriv = (delegate*<uint, int*, void>)load("glPointParameteriv");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.4 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.4 APIs");
}
internal static unsafe void LoadGLcore15(GLcontext* contextPtr, GLfuncLoader load)
{
if (!core15)
{
InternalIO.InternalAppendLog("The core version 1.5 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBeginQuery = (delegate*<uint, uint, void>)load("glBeginQuery");
contextPtr->glBindBuffer = (delegate*<uint, uint, void>)load("glBindBuffer");
contextPtr->glBufferData = (delegate*<uint, IntPtr, void*, uint, void>)load("glBufferData");
@@ -1010,9 +1019,9 @@ namespace StgSharp.Graphics
contextPtr->glMapBuffer = (delegate*<uint, uint, void*>)load("glMapBuffer");
contextPtr->glUnmapBuffer = (delegate*<uint, bool>)load("glUnmapBuffer");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.5 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 1.5 APIs");
}
internal static unsafe void LoadGLcore20(GLcontext* contextPtr, GLfuncLoader load)
@@ -1022,7 +1031,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 2.0 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glAttachShader = (delegate*<uint, uint, void>)load("glAttachShader");
contextPtr->glBindAttribLocation = (delegate*<uint, uint, byte*, void>)load("glBindAttribLocation");
contextPtr->glBlendEquationSeparate = (delegate*<uint, uint, void>)load("glBlendEquationSeparate");
@@ -1117,9 +1128,9 @@ namespace StgSharp.Graphics
contextPtr->glVertexAttrib4usv = (delegate*<uint, ushort*, void>)load("glVertexAttrib4usv");
contextPtr->glVertexAttribPointer = (delegate*<uint, int, uint, int, uint, void*, void>)load("glVertexAttribPointer");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 2.0 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 2.0 APIs");
}
internal static unsafe void LoadGLcore21(GLcontext* contextPtr, GLfuncLoader load)
@@ -1129,7 +1140,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 2.1 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glUniformMatrix2x3fv = (delegate*<int, uint, bool, float*, void>)load("glUniformMatrix2x3fv");
contextPtr->glUniformMatrix2x4fv = (delegate*<int, uint, bool, float*, void>)load("glUniformMatrix2x4fv");
contextPtr->glUniformMatrix3x2fv = (delegate*<int, uint, bool, float*, void>)load("glUniformMatrix3x2fv");
@@ -1137,9 +1150,9 @@ namespace StgSharp.Graphics
contextPtr->glUniformMatrix4x2fv = (delegate*<int, uint, bool, float*, void>)load("glUniformMatrix4x2fv");
contextPtr->glUniformMatrix4x3fv = (delegate*<int, uint, bool, float*, void>)load("glUniformMatrix4x3fv");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 2.1 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 2.1 APIs");
}
internal static unsafe void LoadGLcore30(GLcontext* contextPtr, GLfuncLoader load)
@@ -1149,7 +1162,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 3.0 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBeginConditionalRender = (delegate*<uint, uint, void>)load("glBeginConditionalRender");
contextPtr->glBeginTransformFeedback = (delegate*<uint, void>)load("glBeginTransformFeedback");
contextPtr->glBindBufferBase = (delegate*<uint, uint, uint, void>)load("glBindBufferBase");
@@ -1235,9 +1250,9 @@ namespace StgSharp.Graphics
contextPtr->glVertexAttribI4usv = (delegate*<uint, ushort*, void>)load("glVertexAttribI4usv");
contextPtr->glVertexAttribIPointer = (delegate*<uint, int, uint, uint, void*, void>)load("glVertexAttribIPointer");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 3.0 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 3.0 APIs");
}
internal static unsafe void LoadGLcore31(GLcontext* contextPtr, GLfuncLoader load)
@@ -1247,7 +1262,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 3.1 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBindBufferBase = (delegate*<uint, uint, uint, void>)load("glBindBufferBase");
contextPtr->glBindBufferRange = (delegate*<uint, uint, uint, IntPtr, UIntPtr, void>)load("glBindBufferRange");
contextPtr->glCopyBufferSubData = (delegate*<uint, uint, IntPtr, IntPtr, UIntPtr, void>)load("glCopyBufferSubData");
@@ -1264,7 +1281,8 @@ namespace StgSharp.Graphics
contextPtr->glTexBuffer = (delegate*<uint, uint, uint, void>)load("glTexBuffer");
contextPtr->glUniformBlockBinding = (delegate*<uint, uint, uint, void>)load("glUniformBlockBinding");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 3.1 APIs");
}
@@ -1275,7 +1293,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 3.2 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glClientWaitSync = (delegate*<GLsync, uint, ulong, uint>)load("glClientWaitSync");
contextPtr->glDeleteSync = (delegate*<GLsync, void>)load("glDeleteSync");
contextPtr->glDrawElementsBaseVertex = (delegate*<uint, uint, uint, void*, int, void>)load("glDrawElementsBaseVertex");
@@ -1296,9 +1316,9 @@ namespace StgSharp.Graphics
contextPtr->glTexImage3DMultisample = (delegate*<uint, uint, uint, uint, uint, uint, bool, void>)load("glTexImage3DMultisample");
contextPtr->glWaitSync = (delegate*<GLsync, uint, ulong, void>)load("glWaitSync");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 3.2 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 3.2 APIs");
}
internal static unsafe void LoadGLcore33(GLcontext* contextPtr, GLfuncLoader load)
@@ -1308,7 +1328,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 3.3 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBindFragDataLocationIndexed = (delegate*<uint, uint, uint, byte*, void>)load("glBindFragDataLocationIndexed");
contextPtr->glBindSampler = (delegate*<uint, uint, void>)load("glBindSampler");
contextPtr->glDeleteSamplers = (delegate*<uint, uint*, void>)load("glDeleteSamplers");
@@ -1338,9 +1360,9 @@ namespace StgSharp.Graphics
contextPtr->glVertexAttribP4ui = (delegate*<uint, uint, bool, uint, void>)load("glVertexAttribP4ui");
contextPtr->glVertexAttribP4uiv = (delegate*<uint, uint, bool, uint*, void>)load("glVertexAttribP4uiv");
#endregion
InternalIO.InternalAppendLog("Successfully load all OpenGL 3.3 APIs");
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 3.3 APIs");
}
internal static unsafe void LoadGLcore40(GLcontext* contextPtr, GLfuncLoader load)
@@ -1350,7 +1372,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 4.0 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBeginQueryIndexed = (delegate*<uint, uint, uint, void>)load("glBeginQueryIndexed");
contextPtr->glBindTransformFeedback = (delegate*<uint, uint, void>)load("glBindTransformFeedback");
contextPtr->glBlendEquationSeparatei = (delegate*<uint, uint, uint, void>)load("glBlendEquationSeparatei");
@@ -1398,7 +1422,8 @@ namespace StgSharp.Graphics
contextPtr->glUniformMatrix4x3dv = (delegate*<int, uint, bool, double*, void>)load("glUniformMatrix4x3dv");
contextPtr->glUniformSubroutinesuiv = (delegate*<uint, uint, uint*, void>)load("glUniformSubroutinesuiv");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 4.0 APIs");
}
@@ -1409,7 +1434,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 4.1 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glActiveShaderProgram = (delegate*<uint, uint, void>)load("glActiveShaderProgram");
contextPtr->glBindProgramPipeline = (delegate*<uint, void>)load("glBindProgramPipeline");
contextPtr->glClearDepthf = (delegate*<float, void>)load("glClearDepthf");
@@ -1499,7 +1526,8 @@ namespace StgSharp.Graphics
contextPtr->glViewportIndexedf = (delegate*<uint, float, float, float, float, void>)load("glViewportIndexedf");
contextPtr->glViewportIndexedfv = (delegate*<uint, float*, void>)load("glViewportIndexedfv");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 4.1 APIs");
}
@@ -1510,7 +1538,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 4.2 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBindImageTexture = (delegate*<uint, uint, int, bool, int, uint, uint, void>)load("glBindImageTexture");
contextPtr->glDrawArraysInstancedBaseInstance = (delegate*<uint, int, uint, uint, uint, void>)load("glDrawArraysInstancedBaseInstance");
contextPtr->glDrawElementsInstancedBaseInstance = (delegate*<uint, uint, uint, void*, uint, uint, void>)load("glDrawElementsInstancedBaseInstance");
@@ -1524,7 +1554,8 @@ namespace StgSharp.Graphics
contextPtr->glTexStorage2D = (delegate*<uint, uint, uint, uint, uint, void>)load("glTexStorage2D");
contextPtr->glTexStorage3D = (delegate*<uint, uint, uint, uint, uint, uint, void>)load("glTexStorage3D");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 4.2 APIs");
}
@@ -1535,7 +1566,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 4.3 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBindVertexBuffer = (delegate*<uint, uint, IntPtr, uint, void>)load("glBindVertexBuffer");
contextPtr->glClearBufferData = (delegate*<uint, uint, uint, uint, void*, void>)load("glClearBufferData");
contextPtr->glClearBufferSubData = (delegate*<uint, uint, IntPtr, UIntPtr, uint, uint, void*, void>)load("glClearBufferSubData");
@@ -1581,7 +1614,8 @@ namespace StgSharp.Graphics
contextPtr->glClearBufferData = (delegate*<uint, uint, uint, uint, void*, void>)load("glClearBufferData");
contextPtr->glVertexBindingDivisor = (delegate*<uint, uint, void>)load("glVertexBindingDivisor");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 4.3 APIs");
}
@@ -1592,7 +1626,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 4.4 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBindBuffersBase = (delegate*<uint, uint, uint, uint*, void>)load("glBindBuffersBase");
contextPtr->glBindBuffersRange = (delegate*<uint, uint, uint, uint*, IntPtr*, UIntPtr*, void>)load("glBindBuffersRange");
contextPtr->glBindImageTextures = (delegate*<uint, uint, uint*, void>)load("glBindImageTextures");
@@ -1603,7 +1639,8 @@ namespace StgSharp.Graphics
contextPtr->glClearTexImage = (delegate*<uint, int, uint, uint, void*, void>)load("glClearTexImage");
contextPtr->glClearTexSubImage = (delegate*<uint, int, int, int, int, uint, uint, uint, uint, uint, void*, void>)load("glClearTexSubImage");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 4.4 APIs");
}
@@ -1614,7 +1651,9 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 4.5 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glBindTextureUnit = (delegate*<uint, uint, void>)load("glBindTextureUnit");
contextPtr->glBlitNamedFramebuffer = (delegate*<uint, uint, int, int, int, int, int, int, int, int, uint, uint, void>)load("glBlitNamedFramebuffer");
contextPtr->glCheckNamedFramebufferStatus = (delegate*<uint, uint, uint>)load("glCheckNamedFramebufferStatus");
@@ -1726,7 +1765,8 @@ namespace StgSharp.Graphics
contextPtr->glVertexArrayVertexBuffer = (delegate*<uint, uint, uint, IntPtr, uint, void>)load("glVertexArrayVertexBuffer");
contextPtr->glVertexArrayVertexBuffers = (delegate*<uint, uint, uint, uint*, IntPtr*, uint*, void>)load("glVertexArrayVertexBuffers");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 4.5 APIs");
}
@@ -1737,15 +1777,17 @@ namespace StgSharp.Graphics
InternalIO.InternalAppendLog("The core version 4.6 is not supported.");
throw new Exception("Final Version");
}
#region load
contextPtr->glMultiDrawArraysIndirectCount = (delegate*<uint, void*, IntPtr, uint, uint, void>)load("glMultiDrawArraysIndirectCount");
contextPtr->glMultiDrawElementsIndirectCount = (delegate*<uint, uint, void*, IntPtr, uint, uint, void>)load("glMultiDrawElementsIndirectCount");
contextPtr->glPolygonOffsetClamp = (delegate*<float, float, float, void>)load("glPolygonOffsetClamp");
contextPtr->glSpecializeShader = (delegate*<uint, byte*, uint, uint*, uint*, void>)load("glSpecializeShader");
#endregion
#endregion load
InternalIO.InternalAppendLog("Successfully load all OpenGL 4.6 APIs");
}
}
}
}