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 }

    运行结果:

  • 相关阅读:
    Mac-Mysql忘记root密码
    spring 定时任务配置
    MD5 加密
    java io流 图片和字符串之间的转换
    httpclient 无信任证书使用https
    java对象转换成json
    Maven仓库 国内镜像
    大数据与批量调度的紧密关系
    开源Datax、Sqoop、Kettle等ETL工具作业自动化实现-分享
    ETL作业调度工具TASKCTL的两个重大突破
  • 原文地址:https://www.cnblogs.com/1024Planet/p/5643651.html
Copyright © 2011-2022 走看看