在移动窗口之前,如何绘制紫色屏幕而不是黑色屏幕

时间:2018-10-30 16:26:44

标签: macos go opengl sdl-2 glfw

我正在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进行了尝试,并且得到了相同的结果。我检查了循环,它运行正常,有人知道发生了什么事吗?

0 个答案:

没有答案