我正在使用go-sdl2和go-gl,我正在嘗試從 sdl 表面創建 gl 紋理。在 CI 中會通過調用glTexImage2Dwithsurface->pixels作為最后一個參數來做到這一點。go-sdl然而,Inpixels是一個私有字段并且Pixels()(我應該使用它來訪問它)返回[]byte,這與gl.TexImage2D期望最后一個參數是unsafe.Pointer.image, err := img.Load("img.png")if err != nil { //...}var texture uint32gl.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 紋理的正確方法是什么?
1 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
事實證明,有一個返回實際指針的Surface.Data函數。
gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, image.W, image.H, 0, gl.RGBA, gl.UNSIGNED_BYTE, image.Data())
- 1 回答
- 0 關注
- 97 瀏覽
添加回答
舉報
0/150
提交
取消