Я хочу прочитать пиксели из заднего буфера.Но все, что я получаю до сих пор, это черный экран (чистый цвет).
Дело в том, что мне не нужно окно для перенасыщения, чтобы рисовать.Когда у меня есть информация о пикселях, я передаю ее другой программе, которая нарисует для меня изображение.
Моя функция инициализации выглядит следующим образом:
// No main function, so no real argv argc
char fakeParam[] = "nothing";
char *fakeargv[] = { fakeParam, NULL };
int fakeargc = 1;
glutInit( &fakeargc, fakeargv );
GLenum err = glewInit();
if (GLEW_OK != err)
{
MessageBoxA(NULL, "Failed to initialize OpenGL", "ERROR", NULL);
}
else
{
glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);
// Not sure if this call is needed since i don't use a glut window to render too..
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
}
Затем в моей функции рендеринга яdo:
void DisplayFunc(void)
{
/* Clear the buffer, clear the matrix */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
// TEAPOT
glTranslatef(0.0f, 0.0f, -5.0f); // Translate back 5 units
glRotatef(rotation_degree, 1.0f, 1.0f, 0.0f); // Rotate according to our rotation_degree value
glFrontFace(GL_CW);
glutSolidTeapot(1.0f); // Render a teapot
glFrontFace(GL_CCW);
glReadBuffer(GL_BACK);
glReadPixels(0, 0, (GLsizei)1024, (GLsizei)768, GL_RGB, GL_UNSIGNED_BYTE, pixels);
int r = glGetError();
}
Это в основном все, что я делаю.В конце последней функции я пытаюсь прочитать все пиксели.Но на выходе просто чёрное изображение.glGetError () не выдает никаких ошибок.
Кто-нибудь знает, в чем может быть проблема ... ???