为了账号安全,请及时绑定邮箱和手机立即绑定

Go 中来自 SDL Surface 的 OpenGL 纹理

Go 中来自 SDL Surface 的 OpenGL 纹理

Go
开心每一天1111 2023-01-03 14:19:09
我正在使用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())



查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信