Я возиться с кадровым буфером с OpenGL и JOGL.У меня есть объект Graphics, в котором я рисую.
Каждый раз, когда графика изменяется, я извлекаю информацию R, G, B и A в виде байтов для каждого пикселя и записываю ее в ByteBuffer в порядке ARGB.Я проверил преобразование, все в порядке.
Если я вызываю метод drawPixels с использованием режима GL_RGB, он рисует прямоугольник с заданными координатами, он рисуется черным независимо от того, какие цвета у меня были в моей графике.Если я использую режим GL_RGBA, он ничего не рисует.
Так что мой код для операций кадрового буфера, ib1 - это байтовый буфер с данными изображения:
GL gl=canvas.getGL();
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrtho (0, canvas.getWidth(), canvas.getHeight(),0, -1.0, 1.0);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glDisable(GL.GL_DEPTH_TEST);
gl.glColor3f(1, 1, 1);
//
gl.glRasterPos2i(0, height);
//gl.glDrawPixels(width, height, GL.GL_RGB, GL.GL_BYTE, ib1);
gl.glDrawPixels(width, height, GL.GL_RGBA, GL.GL_BYTE, ib1);
Заранее спасибо за вашу помощь