i want to map the texture to geometry with using PBO.when i use the following code. the geometry is mapped strange way.where is the error.i apologize to you.i am not good on english.
void init(){
glClearColor(0,0,0,0);
glShadeModel(GL_SMOOTH);
glGenTextures(1,&textureObject);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,textureObject);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
int w=tga.GetImageWidth();
int h=tga.GetImageHeight();
unsigned char* data=tga.GetPixels();
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,w,h,0,GL_RGB,GL_UNSIGNED_BYTE,data);
if(GLEE_ARB_pixel_buffer_object){
glGenBuffers(1,&PBO);
glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB,PBO);
glBufferData(GL_PIXEL_UNPACK_BUFFER_ARB,w*h*3,0,GL_STATIC_DRAW);
void* temp=glMapBuffer(GL_PIXEL_UNPACK_BUFFER_ARB,GL_WRITE_ONLY_ARB);
memcpy(temp,data,w*h*3);
glUnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB);
glTexSubImage2D(GL_TEXTURE_2D,0,0,0,w,h,GL_RGB,GL_UNSIGNED_BYTE,(void*)0);
glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB,0);
}
// Sisteme göre VBO yada VertexArray oluşturuluyor...
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
if(GLEE_ARB_vertex_buffer_object){
glGenBuffers(1,&VBO);
glBindBuffer(GL_ARRAY_BUFFER_ARB,VBO);
glBufferData(GL_ARRAY_BUFFER_ARB,(6*4*3*sizeof(float))+(6*4*2*sizeof(float)),NULL,GL_STATIC_DRAW);
glBufferSubData(GL_ARRAY_BUFFER_ARB,0,6*4*3*sizeof(float),vertex);
glBufferSubData(GL_ARRAY_BUFFER_ARB,6*4*3*sizeof(float),6*4*2*sizeof(float),texCoord);
glVertexPointer(3,GL_FLOAT,0,0);
glTexCoordPointer(2,GL_FLOAT,0,(void*)(6*4*3*sizeof(float)));
}
else{
glVertexPointer(3,GL_FLOAT,0,vertex);
glTexCoordPointer(2,GL_FLOAT,0,texCoord);
}
}