我使用OpenTK來製作C#OpenGL應用程序。OpenTK崩潰,只要我使用OpenGL
我儘量不使用GameWindow類打開上下文 - 這是我的類管理窗口+背景:
using OpenTK;
using OpenTK.Graphics;
using OpenTK.Graphics.OpenGL4;
using OpenTK.Platform;
using OpenTK.Input;
class Window
{
private INativeWindow window_;
private IGraphicsContext context_;
private bool isExiting_;
public Window(int width, int height, bool fullscreen, string title = "StormEngine application")
{
window_ = new NativeWindow(width, height, title, fullscreen ? GameWindowFlags.Fullscreen : GameWindowFlags.FixedWindow, GraphicsMode.Default, DisplayDevice.Default);
context_ = new GraphicsContext(GraphicsMode.Default, window_.WindowInfo, 4, 4, GraphicsContextFlags.Default);
context_.MakeCurrent(window_.WindowInfo);
window_.Visible = true;
window_.KeyDown += (sender, e) =>
{
if (e.Keyboard[Key.Escape])
window_.Close();
};
isExiting_ = false;
}
public Window(int width, int height) : this(width, height, false) { }
public bool EndFrame()
{
context_.SwapBuffers();
window_.ProcessEvents();
return (window_.Exists && !isExiting_);
}
}
然後我打電話Window w = new Window(800, 480);
打開了一扇窗。
但是,只要我打電話給一個OpenGL方法,在我的例子int programId = GL.CreateProgram();
,我給了一個AccessViolationException。我的猜測是OpenGL函數指針沒有正確加載,但我找不到問題發生的地方(我沒有得到有關在GL.CreateProgam()
內發生什麼的信息)。
任何想法,可能發生什麼,爲什麼,以及如何解決? :)
這聽起來是一個奇怪的問題,確實;您是否嘗試打印出「CreateProgram」地址的內容? – phaazon