0
我對類型兼容性問題 - 檢查該實施例中:的Android的OpenGL:GLbyte LoadShader轉換
GLbyte vShaderStr[] =
"attribute vec4 vPosition; \n"
"void main() \n"
"{ \n"
" gl_Position = vPosition; \n"
"} \n";
vertexShader = LoadShader (GL_VERTEX_SHADER, vShaderStr);
的LoadShader所屬的esUtil.h http://code.google.com/p/angleproject/source/browse/trunk/samples/gles2_book/Common/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.0的應該是在移動運行,所以我試圖編譯和運行Android Native C++的代碼示例。
有人知道這本書提供的代碼是否有大量的錯誤?還是我在做一些完全錯誤的事情?如何解決這本書中常見的轉換問題?
非常歡迎所有評論。
謝謝湯姆。這解決了問題! – ThreaderSlash 2012-02-29 17:04:35