为什么在SharpGL.dll中发生异常?

为什么在SharpGL.dll中发生异常?

问题描述:

我试图绘制一些简单的东西,如使用VBO的三角形。为什么在SharpGL.dll中发生异常?

的示例代码设置在这里github上:

https://github.com/dwmkerr/sharpgl/blob/master/source/SharpGL/Samples/WinForms/ModernOpenGLSample/Scene.cs

下面的 '使用' 语句正确编译我。

using SharpGL; 
using SharpGL.SceneGraph; 
using SharpGL.VertexBuffers; 

我的程序崩溃,在这一行:

vertexBufferArray.Create(gl); 

它给了我以下异常:

An unhandled exception of type 'System.Exception' occurred in SharpGL.dll 

Additional information: Extension function glGenVertexArrays not supported 

为什么会在程序编译创建()函数,如果一个公司依赖不支持?确定依赖关系是否实际可用以及如何正确安装的最好方法是什么?

+0

我有同样的问题,但与'glCreateShader'功能设置,我自己的项目中,并在样本项目。你有没有找到解决方案? – ColmanJ 2014-12-27 09:20:21

你可以检查功能使用openGLControl.OpenGL.IsExtensionFunctionSupported("glGenVertexArrays");

然而,这将始终返回false只要没有当前呈现上下文(见here)的支持。这就是为我抛出异常并在应用程序的稍后调用方法为我工作的原因(请注意,这些示例也给出了相同的例外)。

您可以检查,看看是否RenderContext中使用openGLControl.OpenGL.RenderContextProvider.RenderContextHandle != IntPtr.Zero