我有一个 SDL2 go 程序,它试图将像素阵列写入屏幕。当我尝试使用新像素更新纹理时,程序会因运行时错误而恐慌:
fatal error: unexpected signal during runtime execution
不幸的是,我几乎找不到关于如何在 Go 中传递不安全指针的文档,我不确定我是否正确地处理了这个问题,下面是一些展示问题的示例代码:
func main() {
window := sdl.CreateWindow("test", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED,
800, 600, sdl.WINDOW_SHOWN)
renderer := sdl.CreateRenderer(window, -1, 0)
texture := sdl.CreateTexture(renderer, sdl.PIXELFORMAT_ARGB8888,
sdl.TEXTUREACCESS_STATIC, 800, 600)
defer renderer.Destroy()
defer texture.Destroy()
defer window.Destroy()
for {
pixels := make([]uint32, 800*600)
texture.Update(nil, unsafe.Pointer(&pixels), int(800*unsafe.Sizeof(pixels)))
window.UpdateSurface()
renderer.Clear()
renderer.Copy(texture, nil, nil)
renderer.Present()
}
sdl.Delay(1000)
sdl.Quit()
}
这段代码编译时不会出错,但运行时会产生运行时恐慌,但我看不出这段代码中是什么导致了这种情况。
我正在使用这些 SDL2 Go 绑定:https : //github.com/veandco/go-sdl2
UYOU
相关分类