Android OpenGL:GLbyte LoadShader转换
我有一个关于类型兼容性的问题-请检查此示例:Android OpenGL:GLbyte LoadShader转换,android,c++,type-conversion,opengl-es-2.0,shader,Android,C++,Type Conversion,Opengl Es 2.0,Shader,我有一个关于类型兼容性的问题-请检查此示例: GLbyte vShaderStr[] = "attribute vec4 vPosition; \n" "void main() \n" "{ \n" " gl_Position = vPosition; \n" "} \n"; vertexShader = LoadSh
GLbyte vShaderStr[] =
"attribute vec4 vPosition; \n"
"void main() \n"
"{ \n"
" gl_Position = vPosition; \n"
"} \n";
vertexShader = LoadShader ( GL_VERTEX_SHADER, vShaderStr );
LoadShader属于esUtil.h,代码来自同一本书OpenGL ES 2.0编程指南
这给了我们以下信息:
error: vertexShader = LoadShader(GL_VERTEX_SHADER, vShaderStr);
Multiple markers at this line
- initializing argument 2 of 'GLuint LoadShader(GLenum, const char*)'
- invalid conversion from 'GLbyte*' to 'const char*'
有人能给我们一些启示。。。如何解决从“GLbyte*”到“const char*”的问题
如果我只是尝试不使用GLbyte,而是声明:
const char* vShaderStr[] ={...};
错误更改为:
cannot convert 'const char**' to 'const char*' for...
...argument '2' to 'GLuint LoadShader(GLenum, const char*)'
OpenGL ES 2应该运行在移动中,所以我尝试编译和运行Android原生C++的代码示例。 有人知道这本书中提供的代码是否有很多bug?还是我做错了什么?如何解决本书中始终不变的转换问题
非常欢迎所有评论。const char*vShaderStr[]是一个指针数组。改用
const char vShaderStr[]