цвет фона не изменяется в OpenGL с помощью функции glClearColor () - PullRequest
0 голосов
/ 27 марта 2019

Я делаю некоторый базовый код для библиотеки OpenGL и пытаюсь изменить цвет фона с помощью glClearColor (), но цвет окна всегда черный.

#include <stdlib.h>
#include <GL/glew.h>
#include <GL/glut.h>        // we use GLUT !
#pragma comment(lib, "glew32.lib")

float gpBGColor[4] = { 1.0, 0.0, 0.0, 1.0 };
void myinit(void) {
    //glClearColor(gpBGColor[0], gpBGColor[1], gpBGColor[2], gpBGColor[3]); // white
    //glClear(GL_COLOR_BUFFER_BIT);
}

void mydisplay(void) {
    glClearColor(gpBGColor[0], gpBGColor[1], gpBGColor[2], gpBGColor[3]); // white
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    //glFlush();
}

void mykeyboard(unsigned char key, int x, int y) {
    switch (key) {
    case 27: exit(1); break;
    case 'Q': 
    case 'q': gpBGColor[0] += 0.01f; break;
    }

    glutPostRedisplay();
}

int main(int argc, char* argv[]) {    // typical structure of OpenGL programs
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(300, 300);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("sample");
    glutDisplayFunc(mydisplay);     // callback registration
    glutKeyboardFunc(mykeyboard);
    glewInit();
    myinit();           // initialization
    glutMainLoop();
    return 0;           // never executed !
}

Кроме того, когда я устанавливаю размер окна (200, 200) или (400, 400) или (800, 800), цвет окна всегда белый. Я не знаю причину, почему это так работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...