Я дополнительно исследовал ответ Нико Боласа. И понял, что glReadPixels действительно вернул информацию, несмотря на то, что сначала меняли или не меняли буферы кадров.
Итак, вот как я скопировал буфер байтов.
glReadPixels(0, 0, 800, 600, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
byte[] data = new byte[800*600*4];
while(pixels.hasRemaining()) {
int curr = pixels.position() / 4;
int offset = (curr%800+(curr))*4;
data[offset] = pixels.get();
data[offset+1] = pixels.get();
data[offset+2] = pixels.get();
data[offset+3] = pixels.get();
}
Я слишком быстро пришел к выводу, что glReadPixels () не возвращает ничего, основываясь только на своей позиции и ограничении. Спасибо, Никол Болас за полезный вклад. = D