OpenGL---GLUT教程(二) GLUT初始化
2017-04-06 18:57
417 查看
GLUT初始化
初始化代码:
#include<gl/glut.h>
void main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DEPTH|GLUT_SINGLE|GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow(“GLUT Tutorial”);
}
这个main函数将完成必须的初始化和开启事件处理循环。所有的GLUT函数都有glut前缀并且那些完成一些初始化的函数有glutInit前缀。你首先要做的是调用函数glutInit()。
Void glutInit(int*argc,char**argv);//初始化
Void glutInitWindowPositon(int x,int y);//窗口位置(它默认的是屏幕左上角),X: 距离屏幕左边的像素数。Y:距离屏幕上边的像素数,默认值都是-1。
Void glutInitWindowSize(int width,int height); //设置窗口大小
Void glutInitDisplayMode(unsighed int mode); // 定义显示方式
Int glutCreateWindow(char* title); //创建窗口,Title:设置窗口的标题。
void glutDisplayFunc(void (*func)(void)); //func: 当窗口需要被重绘是调用的函数的名称。
void
glutMainLoop(void); //让程序进入一个永不结束的循环。一直等待处理下一个事件
glutInitDisplayMode(unsighed int mode)
Mode――可以指定下列显示模式
Mode参数是一个GLUT库里预定义的可能的布尔组合。你使用mode去指定颜色模式,数量和缓冲区类型。
指定颜色模式的预定义常量有:
1:GLUT_RGBA或者GLUT_RGB。指定一个RGBA窗口,这是一个默认的颜色模式。
2:GLUT_INDEX。指定颜色索引模式。
这个显示模式还允许你选择单缓冲区或双缓冲区窗口。
1:GLUT_SINGLE.单缓冲区窗口。
2:GLUT_BUFFER.双缓冲区窗口,这是产生流畅动画必须选的。
还可以指定更多,如果你想指定一组特殊的缓冲的话,用下面的变量:
1:GLUT_ACCUM.累积缓冲区。
2:GLUT_STENCIL.模板缓冲区。
3:GLUT_DEPTH.深度缓冲区。
假定你想要一个有单缓冲区,深度缓冲区的RGB窗口,你用“或“(|)操作符来建立你想要的显示模式。
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE|GLUT|DEPTH);
如果你运行上述代码,你将会得到一个空的黑的控制台窗口,而没有OpenGL窗口。并且控制台窗口将很快消失。
在我们渲染一些东西前,还有两件事需要处理。第一告诉GLUT哪个函数负责渲染。我们创建一个简单的渲染的函数。下面的这个函数将会清除颜色缓冲区。
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT);
//调用画图函数
glFlush();
}
案例:
#include "stdafx.h"
#include "GL/glut.h"
#include "stdlib.h"
#include "math.h"
#include "iostream"
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glFlush();
}
void main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("3D Tech- GLUT Tutorial");
glutDisplayFunc(renderScene);
glutMainLoop();
}
初始化代码:
#include<gl/glut.h>
void main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DEPTH|GLUT_SINGLE|GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow(“GLUT Tutorial”);
}
这个main函数将完成必须的初始化和开启事件处理循环。所有的GLUT函数都有glut前缀并且那些完成一些初始化的函数有glutInit前缀。你首先要做的是调用函数glutInit()。
Void glutInit(int*argc,char**argv);//初始化
Void glutInitWindowPositon(int x,int y);//窗口位置(它默认的是屏幕左上角),X: 距离屏幕左边的像素数。Y:距离屏幕上边的像素数,默认值都是-1。
Void glutInitWindowSize(int width,int height); //设置窗口大小
Void glutInitDisplayMode(unsighed int mode); // 定义显示方式
Int glutCreateWindow(char* title); //创建窗口,Title:设置窗口的标题。
void glutDisplayFunc(void (*func)(void)); //func: 当窗口需要被重绘是调用的函数的名称。
void
glutMainLoop(void); //让程序进入一个永不结束的循环。一直等待处理下一个事件
glutInitDisplayMode(unsighed int mode)
Mode――可以指定下列显示模式
Mode参数是一个GLUT库里预定义的可能的布尔组合。你使用mode去指定颜色模式,数量和缓冲区类型。
指定颜色模式的预定义常量有:
1:GLUT_RGBA或者GLUT_RGB。指定一个RGBA窗口,这是一个默认的颜色模式。
2:GLUT_INDEX。指定颜色索引模式。
这个显示模式还允许你选择单缓冲区或双缓冲区窗口。
1:GLUT_SINGLE.单缓冲区窗口。
2:GLUT_BUFFER.双缓冲区窗口,这是产生流畅动画必须选的。
还可以指定更多,如果你想指定一组特殊的缓冲的话,用下面的变量:
1:GLUT_ACCUM.累积缓冲区。
2:GLUT_STENCIL.模板缓冲区。
3:GLUT_DEPTH.深度缓冲区。
假定你想要一个有单缓冲区,深度缓冲区的RGB窗口,你用“或“(|)操作符来建立你想要的显示模式。
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE|GLUT|DEPTH);
如果你运行上述代码,你将会得到一个空的黑的控制台窗口,而没有OpenGL窗口。并且控制台窗口将很快消失。
在我们渲染一些东西前,还有两件事需要处理。第一告诉GLUT哪个函数负责渲染。我们创建一个简单的渲染的函数。下面的这个函数将会清除颜色缓冲区。
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT);
//调用画图函数
glFlush();
}
案例:
#include "stdafx.h"
#include "GL/glut.h"
#include "stdlib.h"
#include "math.h"
#include "iostream"
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glFlush();
}
void main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("3D Tech- GLUT Tutorial");
glutDisplayFunc(renderScene);
glutMainLoop();
}
相关文章推荐
- OpenGL---GLUT教程(四) GLUT动画
- OpenGL---GLUT教程(九) GLUT鼠标
- OpenGL---GLUT教程(一) GLUT简介,体系
- OpenGL---GLUT教程(九) GLUT鼠标
- OpenGL---GLUT教程(二) GLUT初始化
- OpenGL---GLUT教程(八) GLUT场景漫游II
- OpenGL---GLUT教程(六) GLUT场景漫游
- OpenGL---GLUT教程 GLUT初始化
- OpenGL---GLUT教程(五) GLUT键盘控制
- OpenGL---GLUT教程(十) GLUT菜单
- OpenGL---GLUT教程(二) GLUT初始化
- OpenGL---GLUT教程(十) GLUT菜单
- OpenGL---GLUT教程(九) GLUT鼠标
- OpenGL---GLUT教程(九) GLUT鼠标/OpenGL(Win32 窗体应用程序框架)
- OpenGL---GLUT教程(七) GLUT高级键盘控制
- OpenGL---GLUT教程 GLUT初始化
- OpenGL---GLUT教程(十一) GLUT子菜单
- OpenGL---GLUT教程(三) GLUT窗口设置
- OpenGL---GLUT教程(十一) GLUT子菜单
- OpenGL---GLUT教程(九) GLUT鼠标