首页 > 后端开发 > Golang > 为什么我的 Go OpenGL 三角形仍然不可见?

为什么我的 Go OpenGL 三角形仍然不可见?

Patricia Arquette
发布: 2024-10-26 05:55:30
原创
471 人浏览过

 Why Does My Go OpenGL Triangle Remain Invisible?

OpenGL 顶点缓冲区无法在 Go 中显示三角形

尝试复制在 Go 中使用 OpenGL 创建简单三角形的教程,有人在让顶点缓冲区显示形状时遇到了困难。当窗口打开并且背景变成蓝色时,三角形仍然不可见。

提供的代码片段涉及创建顶点缓冲区,然后使用 glDrawArrays 绘制三角形。然而,在代码的 c 版本中,AttribPointer 函数采用参数 (void*)0 来指定数组缓冲区偏移量,而在 Go 版本中,提供的偏移量参数会导致应用程序崩溃,而 nil 则不会。

更新的解决方案涉及使用 banthar 绑定的工作分支并更改对 AttribPointer 和 BufferData 的调用,如下所示:

<code class="go">vertexAttrib.AttribPointer(
    3,     // size
    gl.FLOAT, //type
    false, // normalized?
    0,     // stride
    nil) // array buffer offset

data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0}
[...]
gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW)</code>
登录后复制

通过将字节大小传递给BufferData并在AttribPointer中将数组缓冲区偏移设置为nil,问题解决,三角形成功显示。

以上是为什么我的 Go OpenGL 三角形仍然不可见?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板