OpenGL的glClearColor和glClear改变背景颜色

摘要:
OpenGL的glClearColor和glClear结合以下两个功能更改背景颜色:void glClearColor;和voidglClear;上一个函数设置透明颜色。后者使用上一个函数设置的当前透明颜色来设置窗口颜色。例如,代码:1#include 2#包含 34/*5功能描述:使用OpenGL简单地绘制矩形。

OpenGL的glClearColor和glClear改变背景颜色

结合以下两个函数
voidglClearColor(GLclampfred,
            GLclampfgreen,
          GLclampfblue,
          GLclampfalpha);

voidglClear(GLbitfieldmask);

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

例如代码:

 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 }

运行结果:

OpenGL的glClearColor和glClear改变背景颜色第1张

免责声明:文章转载自《OpenGL的glClearColor和glClear改变背景颜色》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nginx配置及性能调优python | Jenkins构建Spring Boot 详细步骤下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Klimt 特点 与OpenGL和OpenGL|ES 对比及其关系

http://read.newbooks.com.cn/info/129308.html Klimt (原名为SoftGL)是一个开源的3D图形库,主要针对的PDA和移动通信设备的应用。它的API和OpenGL和OpenGL|ES非常相像。开发 Klimt的组织并没有对其API的一致性进行声明。不过,Klimt可以兼容Coin3D的程序,Coin3D是建立...

WebGL简易教程——目录

目录 1. 绪论 2. 目录 3. 资源 1. 绪论 最近研究WebGL,看了《WebGL编程指南》这本书,结合自己的专业知识写的一系列教程。之前在看OpenGL/WebGL的时候总是感觉OpenGL/WebGL看的时候懂,实际用起来却挺难,感觉中间总是隔着很多东西。现在一路边学边写,才明白这中间缺少的其实就是总结,是实践;把这个过程写出来,既是...

glViewport()函数和glOrtho()函数的理解

在OpenGL中有两个比较重要的投影变换函数,glViewport和glOrtho.glOrtho是创建一个正交平行的视景体。 一般用于物体不会因为离屏幕的远近而产生大小的变换的情况。比如,常用的工程中的制图等。需要比较精确的显示。 而作为它的对立情况, glFrustum则产生一个透视投影。这是一种模拟真是生活中,人们视野观测物体的真实情况。例如:观察两...

深度剖析OpenGL ES中的多线程和多窗口渲染技术

由 创新网小编 于 星期五, 2014-04-11 14:56 发表 移动设备中的CPU和GPU已经变得很强大,到处都是配备一个或多个高分辨率屏幕的设备,需要使用带有图形驱动器的复杂交互也日益增加。在这篇博客文章中,我将讨论多线程和多窗口渲染对开发人员来讲意味着什么,同时我将介绍将这些技术应用您设计当中的条件和时机。 什么是多线程渲染? 传统上,Ope...

OpenGL的核心模式与立即渲染模式

早期的OpenGL使用立即渲染模式(Immediate mode,也就是固定渲染管线),这个模式下绘制图形很方便。OpenGL的大多数功能都被库隐藏起来,开发者很少能控制OpenGL如何进行计算的自由。而开发者迫切希望能有更多的灵活性。随着时间推移,规范越来越灵活,开发者对绘图细节有了更多的掌控。立即渲染模式确实容易使用和理解,但是效率太低。因此从Open...

Qt下载地址

上Qt官网http://www.qt.io/download/想下载Qt,速度很慢,在这里记录下在Qt官网看到的镜像下载地址: 1. 所有Qt版本下载地址: http://download.qt.io/archive/qt/ 2. 所有Qt Creator下载地址: http://download.qt.io/archive/qtcreator/ 3...