Как нарисовать фиолетовый экран вместо черного, прежде чем перемещать окно - PullRequest
0 голосов
/ 30 октября 2018

Я создаю простое 3D-приложение на Go. У меня возникла эта неприятная проблема при первой загрузке приложения. Вот пример, который должен работать нормально:

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 и получил тот же результат. Я проверил мой цикл, и он работает нормально, кто-нибудь знает, что случилось?

...