登录
首页 >  Golang >  Go问答

使用OpenGL纹理转换Go中的SDL表面

来源:stackoverflow

时间:2024-02-13 14:42:20 283浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《使用OpenGL纹理转换Go中的SDL表面》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我正在使用 go-sdl2 和 go-gl,我正在尝试从 sdl 表面创建 gl 纹理。在 c 中,我将通过调用 glteximage2d 并使用 surface->pixels 作为最后一个参数来实现这一点。然而,在go-sdl中,pixels是一个私有字段,pixels()(我应该用于访问它) czqb期望最后一个论点是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 类型

那么在 go 中从 sdl 表面创建 gl 纹理的正确方法是什么?


正确答案


原来有Surface.Data个函数返回实际的指针。

gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, image.W, image.H, 0, gl.RGBA, gl.UNSIGNED_BYTE, image.Data())

理论要掌握,实操不能落!以上关于《使用OpenGL纹理转换Go中的SDL表面》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>