Я хочу прочитать пиксели из заднего буфера. Но все, что я до сих пор получаю, это черный экран (чистый цвет).читать пиксели из заднего буфера
Дело в том, что мне не нужно окно с избытком, чтобы рисовать. Как только у меня будет информация о пикселях, я передам это другой программе, которая будет рисовать изображение для меня.
Моя функция инициализации выглядит следующим образом:
// 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);
}
Тогда в моей визуализации функции я сделать:
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() не дает никаких ошибок.
Кто-нибудь знает, в чем проблема может быть ... ???
Лучше всего разместить полную программу. если вы визуализируете окно, вы видите изображение? –