我正在使用go-sdl2和go-gl,我正在嘗試從 sdl 表面創(chuàng)建 gl 紋理。在 CI 中會通過調(diào)用glTexImage2Dwithsurface->pixels作為最后一個參數(shù)來做到這一點。go-sdl然而,Inpixels是一個私有字段并且Pixels()(我應(yīng)該使用它來訪問它)返回[]byte,這與gl.TexImage2D期望最后一個參數(shù)是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 參數(shù)中的類型 unsafe.Pointer那么從 sdl 表面創(chuàng)建 gl 紋理的正確方法是什么?
1 回答

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