У меня проблема с совместимостью типов - проверьте этот пример:
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 ++.
Кто-нибудь знает, содержит ли код, приведенный в этой книге, много ошибок? Или я что-то не так делаю? Как решить эту проблему преобразования, которая является постоянной на протяжении всей книги?
Все комментарии приветствуются.