Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl glClear有时有效,有时无效';T_Opengl_C++11 - Fatal编程技术网

Opengl glClear有时有效,有时无效';T

Opengl glClear有时有效,有时无效';T,opengl,c++11,Opengl,C++11,我有非常简单的openGL代码: screen.cpp #include <GL/glew.h> #include <GL/freeglut.h> #include <GL/gl.h> #include <iostream> #define WIDTH 683 #define HEIGHT 384 void init() { glClearColor(1.0f, 1.0f, 1.0f, 0.0f); } void display()

我有非常简单的openGL代码:

screen.cpp

#include <GL/glew.h>
#include <GL/freeglut.h>
#include <GL/gl.h>

#include <iostream>

#define WIDTH 683
#define HEIGHT 384

void init() {
    glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
}

void display() {
    glClear(GL_COLOR_BUFFER_BIT);
    glutSwapBuffers();
}

int main(int argc, char* argv[]) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowSize(WIDTH, HEIGHT);
    glutCreateWindow("test");
    glutDisplayFunc(display);

    GLenum res = glewInit();
    if (res != GLEW_OK) {
        std::cout<<"Error: "<<glewGetErrorString(res)<<std::endl;
        return 1;
    }

    init();
    glutMainLoop();

    return 0;
}
#包括
#包括
#包括
#包括
#定义宽度683
#定义高度384
void init(){
glClearColor(1.0f、1.0f、1.0f、0.0f);
}
无效显示(){
glClear(GLU颜色缓冲位);
glutSwapBuffers();
}
int main(int argc,char*argv[]){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowSize(宽度、高度);
测试窗口(“测试”);
glutDisplayFunc(显示器);
GLenum res=glewInit();
如果(res!=GLEW_OK){

std::cout这是您在clearColor中指定的alpha,0表示透明,将其更改为1,它将是一个适当的空白屏幕。

我之所以将其取消设置,是因为我没有在glutInitDisplayMode()中设置GLUT_alpha。我将其设置为1,但仍会产生不一致的结果。这不会产生任何影响。透明颜色中alpha组件的值仅定义写入帧缓冲区中alpha组件的值。这不会更改屏幕上显示的内容,仅在使用混合时才起作用。如果使用混合,则会显示我确实想将alpha值清除为零。