我正在Go中构建一个简单的3D应用程序。第一次加载应用程序时,我遇到了麻烦的问题。这是一个应该正常工作的示例:
func main() {
if err := sdl.Init(sdl.INIT_EVERYTHING); err != nil {
panic(err)
}
window, err := sdl.CreateWindow("go3d", sdl.WINDOWPOS_CENTERED, sdl.WINDOWPOS_CENTERED, 800, 600, sdl.WINDOW_OPENGL)
if err != nil {
panic(err)
}
context, err := window.GLCreateContext()
if err != nil {
panic(err)
}
defer sdl.GLDeleteContext(context)
if err := gl.Init(); err != nil {
panic(err)
}
gl.ClearColor(1, 0, 1, 1)
gl.Viewport(0, 0, 800, 600)
for true {
handleEvents()
gl.Clear(gl.COLOR_BUFFER_BIT)
window.GLSwap()
}
}
建立运行时,我会看到一个漂亮的黑屏。应该是紫色的吗?
当我稍微移动窗口(我必须移动它,单击它或尝试进行交互不会做任何事情)时,它开始工作...但是为什么?我已经使用GLFW和SDL进行了尝试,并且得到了相同的结果。我检查了循环,它运行正常,有人知道发生了什么事吗?