LWJGL PBO делает текстуру простой белойJAVA

Программисты JAVA общаются здесь
Anonymous
LWJGL PBO делает текстуру простой белой

Сообщение Anonymous »

Я хотел сыграть видео, используя на четыре растянутую текстуру, и для теста я сделал простой класс, который получает байтбаффер с первым кадром видео и создает из него текстуру. Все сработало хорошо. Однако, когда я попытался сделать то же самое с PBO (что позволит мне быстрее обновлять текстуру в будущем), отобразился только сплошной квадроцикл.

Код: Выделить всё

public class VidTexture {
int w, h, textureId, pbo;
VidTexture(int w, int h, ByteBuffer buf) {
this.w = w;
this.h = h;
buf.flip();

pbo = glGenBuffers();
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pbo);
glBufferData(GL_PIXEL_UNPACK_BUFFER, w*h*3L, GL_STREAM_DRAW);
ByteBuffer bb = glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_WRITE_ONLY);
bb.put(buf);
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0);

textureId = glGenTextures();

glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER);

glBindTexture(GL_TEXTURE_2D, textureId);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pbo);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w,
h, 0, GL_BGR, GL_UNSIGNED_BYTE, 0);
glGenerateMipmap(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, -1);
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0);

buf.clear();
}
//Here is cleanUp and bind functions
}
Может ли кто -нибудь мне помочь?

Подробнее здесь: https://stackoverflow.com/questions/796 ... lain-white

Вернуться в «JAVA»