2014-11-08 4 views
2

Я пытаюсь построить что-то простое, как треугольник, используя 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 

Почему программа компилировать с помощью функции Create(), если один из его зависимостей не поддерживается? Каков наилучший способ определить, действительно ли зависимость доступна и как ее правильно установить?

+0

У меня та же проблема, но с 'функцией glCreateShader', внутри моего собственного проекта и в примере проекта. Вы нашли какие-либо решения? – ColmanJ

ответ

0

вы можете проверить, если функция поддерживаются с помощью openGLControl.OpenGL.IsExtensionFunctionSupported("glGenVertexArrays");

однако это всегда будет возвращать ложь, пока нет текущего контекста рендеринга (см here). Это то, что сделало исключение для меня и вызвало методы позже в приложении, работало для меня (обратите внимание, что примеры также дали то же исключение).

Вы можете проверить и посмотреть, если rendercontext устанавливается с помощью openGLControl.OpenGL.RenderContextProvider.RenderContextHandle != IntPtr.Zero

Смежные вопросы