Я делаю OpenGL-ES 2.0 в Ununtu 10.10 с использованием kronos и pvrsdk. Теперь код
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
========== ||||||||||||||||||||||||||||||||||| == =================
GLfloat *pData = glMapBufferOES (GL_ARRAY_BUFFER, GL_WRITE_ONLY_OES);
for(i=0; i<triNum[surfnum]; ++i,pData+=9)
{
memcpy(pData, triArray[surfnum][i].pt1, 3*sizeof(GLfloat));
memcpy(pData+3, triArray[surfnum][i].pt2, 3*sizeof(GLfloat));
memcpy(pData+6, triArray[surfnum][i].pt3, 3*sizeof(GLfloat));
}
glUnmapBufferOES (GL_ARRAY_BUFFER);
Ошибка:
src/Hello.cpp: In function 'int main(int, char**)':
src/Hello.cpp:279: error: 'glMapBufferOES' was not declared in this scope
src/Hello.cpp:282: error: 'memcpy' was not declared in this scope
src/Hello.cpp:286: error: 'glUnmapBufferOES' was not declared in this scope
Я знаю, что они есть в gl2ext.h. Я включил и этот файл, но все же в его сообщении об ошибке есть что-то, чего мне не хватает, пожалуйста, скажите мне. Вы можете задать мне любой другой вопрос или информацию.
В моем glext.h:
/* GL_OES_mapbuffer */
#ifndef GL_OES_mapbuffer
#define GL_OES_mapbuffer 1
#ifdef GL_GLEXT_PROTOTYPES
GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void** params);
#endif
typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void** params);
#endif
У меня уже есть это определение, которое дает эти функции как необъявленные. так что вы знаете какие-либо изменения в нем, чтобы его можно было использовать.