zoukankan      html  css  js  c++  java
  • OpenGL的glClearColor和glClear改变背景颜色

    OpenGL的glClearColor和glClear改变背景颜色

    结合以下两个函数
    void glClearColor(GLclampf red,
                GLclampf green,
              GLclampf blue,
              GLclampf alpha);

    void glClear(GLbitfield mask);

    前一个函数设置好清除颜色,后者利用前一个函数设置好的当前清除颜色设置窗口颜色

    例如代码:

     1 #include <stdio.h>
     2 #include <gl/glut.h>
     3 
     4 /*
     5  功能描述:使用OpenGL简单画一个矩形。
     6  */
     7 
     8 //输出模式,0-单缓存模式;非0双缓存模式
     9 #define OUTPUT_MODE 1
    10 
    11 void display(void)
    12 {
    13     //glClearColor函数设置好清除颜色,glClear利用glClearColor函数设置好的当前清除颜色设置窗口颜色
    14     glClearColor(1.0, 1.0, 0.6, 1.0);
    15     glClear(GL_COLOR_BUFFER_BIT);
    16     
    17     glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
    18 
    19     if (OUTPUT_MODE == 0) {
    20         glFlush();//单缓存GLUT_SINGLE时使用
    21     } else {
    22         glutSwapBuffers();//因为使用的是双缓存GLUT_DOUBLE,所以这里必须要交换缓存才会显示
    23     }
    24 }
    25 
    26 int main(int argc, char *argv[])
    27 {
    28     glutInit(&argc, argv);
    29     
    30     glutInitDisplayMode(GLUT_RGB | (OUTPUT_MODE == 0 ? GLUT_SINGLE : GLUT_DOUBLE));
    31     glutInitWindowPosition(100, 100);
    32     glutInitWindowSize(400, 400);
    33     glutCreateWindow("第一个 OpenGL 程序");
    34     glutDisplayFunc(&display);
    35     glutMainLoop();
    36     return 0;
    37 }

    运行结果:

  • 相关阅读:
    Attributes in C#
    asp.net C# 时间格式大全
    UVA 10518 How Many Calls?
    UVA 10303 How Many Trees?
    UVA 991 Safe Salutations
    UVA 10862 Connect the Cable Wires
    UVA 10417 Gift Exchanging
    UVA 10229 Modular Fibonacci
    UVA 10079 Pizza Cutting
    UVA 10334 Ray Through Glasses
  • 原文地址:https://www.cnblogs.com/1024Planet/p/5643651.html
Copyright © 2011-2022 走看看