首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在SharpGL.dll中会出现异常?

为什么在SharpGL.dll中会出现异常?
EN

Stack Overflow用户
提问于 2014-11-08 22:37:51
回答 3查看 1.9K关注 0票数 2

我正在尝试使用VBO绘制一些简单的东西,比如一个三角形。

github上提供了示例代码:

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

下面的“using”语句可以为我正确地编译。

代码语言:javascript
复制
using SharpGL;
using SharpGL.SceneGraph;
using SharpGL.VertexBuffers;

我的程序在下面这一行崩溃:

代码语言:javascript
复制
vertexBufferArray.Create(gl);

它给了我以下例外:

代码语言:javascript
复制
An unhandled exception of type 'System.Exception' occurred in SharpGL.dll

Additional information: Extension function glGenVertexArrays not supported

如果程序的一个依赖项不受支持,为什么要使用Create()函数进行编译?确定依赖项是否实际可用以及如何正确安装它的最佳方法到底是什么?

EN

回答 3

Stack Overflow用户

发布于 2015-01-04 18:24:16

您可以使用openGLControl.OpenGL.IsExtensionFunctionSupported("glGenVertexArrays");检查该函数是否受支持

但是,只要不存在当前呈现上下文,这将始终返回false (参见here)。这就是让我抛出异常并在应用程序后面调用方法的原因(请注意,示例也给出了相同的异常)。

您可以检查并查看是否使用openGLControl.OpenGL.RenderContextProvider.RenderContextHandle != IntPtr.Zero设置了rendercontext

票数 0
EN

Stack Overflow用户

发布于 2020-10-27 18:57:18

检查您是否使用正确的OpenGL版本进行了初始化。默认值为1.0,您可以在OpenGLVersion.cs中看到可用的枚举

在创建控件时,请在调用EndInit()之前设置control.OpenGLVersion属性。如果只有顶点缓冲区数组有问题,则还要检查RenderContextType是否设置为NativeWindow (即使您将OpenGLControl嵌入到窗体中)才能访问对象缓冲区功能。

这两个步骤可以解决你的问题。

票数 0
EN

Stack Overflow用户

发布于 2020-10-30 12:46:12

我必须在XAML RenderContextType="FBO"中为SharpGL控件设置以下属性以避免异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26818188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档