我正在使用go-sdl2和go-gl,我正在尝试从 sdl 表面创建 gl 纹理。在 CI 中会通过调用glTexImage2D
withsurface->pixels
作为最后一个参数来做到这一点。go-sdl
然而,Inpixels
是一个私有字段并且Pixels()
(我应该使用它来访问它)返回[]byte
,这与gl.TexImage2D
期望最后一个参数是unsafe.Pointer
.
image, err := img.Load("img.png")
if err != nil {
//...
}
var texture uint32
gl.GenTextures(1, &texture)
gl.BindTexture(gl.TEXTURE_2D, texture)
gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, image.W, image.H, 0, gl.RGBA, gl.UNSIGNED_BYTE, image.Pixels())
不能使用 image.Pixels()([]byte 类型的值)作为 gl.TexImage2D 参数中的类型 unsafe.Pointer
那么从 sdl 表面创建 gl 纹理的正确方法是什么?
幕布斯7119047
相关分类