Не могли бы вы показать мне, где я получил ошибку, пожалуйста.
Задача очень проста.Я пытаюсь создать буфер в памяти GPU, записать данные в один и прочитать из.Код для этого см. Ниже.
При выполнении кода glCheckFramebufferStatus возвращает значение 0x8D40 (константа GL_FRAMEBUFFER в gl2.h) и, конечно, значение в буфере out не изменяется.
Я могу понятьчто незаконно я делаю и почему это не работает.Может быть, необходимо использовать какие-либо специальные флаги для компиляции / ссылки?Есть идеи?!?!?!
Использование: Телефон Motorola основан на процессоре Tegra2, libGLES2.so от NVIDIA NDK.Проект составлен NDK.
Спасибо!
GLuint xTexID;
GLuint fb;
GLenum status;
const int _wight = 8, _height = 4;
glGenTextures (1, &xTexID);
glBindTexture(GL_TEXTURE_2D,xTexID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, _wight, _height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glGenFramebuffers(1,&fb);
glBindFramebuffer(GL_FRAMEBUFFER,fb);
glFramebufferTexture2D(GL_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,GL_TEXTURE_2D,xTexID,0);
status = GL_FRAMEBUFFER_COMPLETE;
if((status = glCheckFramebufferStatus(GL_FRAMEBUFFER)) != GL_FRAMEBUFFER_COMPLETE) {
printf("\r\nmyGL: CheckFramebufferStatus isn't COMPLETE (0x%08X)", status);
// exit(1);
}
glTexSubImage2D(GL_TEXTURE_2D,0,0,0,_wight,_height,GL_RGBA,GL_UNSIGNED_BYTE,data);
glReadPixels(0, 0, _wight, _height,GL_RGBA,GL_UNSIGNED_BYTE,result);