CGfloat brushcolor[4];brushcolor[0] = 0.8;brushcolor[1] = 0.1;brushcolor[2] = 0.1;brushcolor[3] = 0.3;gluniform4fv(program[PROGRAM_POINT].uniform[UNIFORM_VERTEX_color],1,brushcolor);
(有些人可能会注意到这是来自GLPaint演示……)
谢谢,
奥斯汀
解决方法 CGfloat是一个变量typedef.在32位构建环境中,它是单精度的,在64位上它是双精度的.通常这不是一个大问题,但你使用的是gluniform4fv,它需要一个GLfloat *.OpenGL ES 2.0 Specification – 基本GL *** 作 – p. 12
OpenGL规定GLfloat始终是单精度浮点值,当您使用此函数的非指针版本时,编译器可以处理从双精度到单精度的类型降级.当您使用指针时,不会发生此行为 – OpenGL期望传递一个单精度浮点数组,但是您传递一个双精度浮点数组而没有类型转换.
你需要做的是停止使用CGfloat.相反,使用GLfloat.提供OpenGL typedef以确保此类事情永远不会发生.
总结以上是内存溢出为你收集整理的ios – OpenGL ES着色器和64位iPhone 5S全部内容,希望文章能够帮你解决ios – OpenGL ES着色器和64位iPhone 5S所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)