加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

opengl – 如何在glShaderSource中将String作为GLchar **(char *

发布时间:2020-12-14 05:23:09 所属栏目:百科 来源:网络整理
导读:我有一个存储在String值中的着色器: var myShader = " attribute vec4 a_position;" + " void main() {" + " gl_Position = a_position;" + " }" glShaderSource(shader,GLsizei(1),myShader,nil) 函数glShaderSource具有绑定签名: func glShaderSource(sh
我有一个存储在String值中的着色器:
var myShader = 
    "    attribute vec4 a_position;" +
    "    void main() {" +
    "    gl_Position = a_position;" +
    "    }"

    glShaderSource(shader,GLsizei(1),myShader,nil)

函数glShaderSource具有绑定签名:

func glShaderSource(shader: GLuint,count: GLsizei,string: UnsafePointer<UnsafePointer<GLchar>>,length: UnsafePointer<GLint>)

当我尝试直接将着色器String传递给glShaderSource时,我收到错误消息:

'String' is not convertible to 'UnsafePointer<UnsafePointer<GLchar>>'

如何正确传递String? (xCode版本6.1(6A1052d))

经过半天的搜索,我找到了没有编译错误的工作解决方案,错误的内存访问失败了:
var cStringSource = (code as NSString).UTF8String
glShaderSource(shader,&cStringSource,nil)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读