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