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 }

    运行结果:

  • 相关阅读:
    调试技巧--Windows端口号是否被占用
    如何制定自己的职业规划
    SQL总结(四)编辑类
    SQL总结(三)其他查询
    CompareAndSwap原子操作原理
    JVM调优之服务内存超过阈值报警
    Javassist中文技术文档
    微言Netty:分布式服务框架
    共享变量边界处理
    Netty客户端发送消息并同步获取结果
  • 原文地址:https://www.cnblogs.com/1024Planet/p/5643651.html
Copyright © 2011-2022 走看看