SharpGL:将版本设置为4.0或替换GLEW

本文关键字:替换 GLEW 版本 设置 SharpGL | 更新日期: 2023-09-27 18:01:27

目前我正在制作c# -WPF-OpenGL应用程序。我遵循了这个http://www.codeproject.com/Articles/265903/Using-OpenGL-in-a-WPF-Application教程,并且能够运行示例项目。然而,第一次调用一个函数,不是OpenGL 1.1.0的一部分失败,即我的代码看起来像这样

private void OpenGLControl_OpenGLInitialized(object Sender, OpenGLEventArgs args)
{
OpenGL gl = args.OpenGL;
GLuint glError;
while ( (glError = gl.GetError()) != OpenGL.GL_NO_ERROR )
{
    Console.WriteLine( gl.GetErrorDescription(glError) );
}
Console.WriteLine( gl.GetString(OpenGL.Version) ); //Prints out 1.1.0
GLuint hVertexShader;
hVertexShader = gl.CreateShader(OpenGL.GL_VERTEX_SHADER);//Compiles, but raises an exception, also would gl.CreateProgramm() or other functions

}

不知何故这个链接https://github.com/dwmkerr/sharpgl/wiki/Specifying-OpenGL-Version不能帮助我将版本设置为4.2。那么我怎么才能做到呢?

SharpGL:将版本设置为4.0或替换GLEW

解决!我在主窗口中丢失了RenderingContext="FBO"。Xaml,像这样

<sharpGL:OpenGLControl 
        Name="openGLControl" 
        OpenGLDraw="OpenGLControl_OpenGLDraw"
        OpenGLInitialized="openGLControl_OpenGLInitialized" 
        Resized="openGLControl_Resized"
        KeyDown="OnKeyDownHandler"
        Mouse.MouseWheel="MouseWheelEventHandler"
        DrawFPS="True" RenderContextType="FBO" FrameRate="20"/>