C# SDL.NET,当尝试使用 OpenGL 设置视频模式时,没有任何反应.我能做错什么



我正在尝试创建一个需要使用双缓冲的应用程序(出于 Vsync 的目的)。我正在使用 SDL.NET。据我了解,为了获得双缓冲,我必须使用OpenGl = true设置视频模式。

代码如下:

        Video.Initialize();
        Video.GLSetAttribute(OpenGLAttr.DoubleBuffer, 1);
        Video.GLSetAttribute(OpenGLAttr.SwapControl, 1);
        Video.GLSetAttribute(OpenGLAttr.RedSize, 8);
        Video.GLSetAttribute(OpenGLAttr.GreenSize, 8);
        Video.GLSetAttribute(OpenGLAttr.BlueSize, 8);
        Video.GLSetAttribute(OpenGLAttr.DepthSize, 16);
        Video.SetVideoMode(VideoInfo.ScreenWidth, VideoInfo.ScreenHeight, false, true, true, true);

如果第 4 个参数(bool opengl)为 false,则它可以工作 - 创建并显示一个新的全屏窗口(但我假设,上面的 OpenGLAttr 集合在这种情况下毫无意义)。

如果第 4 个参数为 true,则什么都不会发生 - 创建一个新窗口(至少,它出现在打开的窗口列表中),但我无法 alt+tab 进入它。

我做错了什么?

好的,我看到问题是,我没有在屏幕上输出任何内容 - 执行 Video.GLSwapBuffers() 使黑屏出现。

最新更新