OpenGL学习-1-GLAUX建窗练习工程代码
2015-03-12 23:10
369 查看
#include<stdio.h> #include<windows.h> #include<glut.h> #include<glaux.h> void init(void); void drawCoordinates(void); void CALLBACK reshape(GLsizei w,GLsizei h); void CALLBACK display(void); void init(void) { } void CALLBACK reshape(GLsizei w,GLsizei h)//回调函数,用于在改变窗口大小时由系统自行调用 //!!注意!!GLsizei为正确类型!而非GLsize { glViewport(100,50,w/4,h/2);//视口函数,指定了视口的左下角(在第一象限内,以(0,0)为原点)位置? glMatrixMode(GL_PROJECTION);//指定哪一个矩阵是当前矩阵 glLoadIdentity();//将当前用户坐标系的原点移到了屏幕中心,类似于一个复位操作 } void CALLBACK display(void)//回调函数,用于在窗口内显示图像时由系统调用,在窗口大小改变后会被自动调用 { glClearColor(0.0f,0.0f,0.0f,0.0f);//清理窗口内容,设置背景颜色。由RGBA数字代表颜色; //绘制图形时尽量避免设置透明图形,因为透明效果显示时需要对图像显示层数进行排序 glClear(GL_COLOR_BUFFER_BIT);//清除缓冲,此参数代表清除颜色缓冲,color改为depth为清除深度缓冲 drawCoordinates(); glFlush();//强制刷新缓冲函数,保证图形绘制命令被执行而不是存储在缓冲区 } void drawCoordinates(void)//绘制坐标轴 { glLineWidth(3.0f);//设置绘制线段的宽度 glColor3f(1.0f,0.0f,0.0f);//设置接下来绘制图形的颜色,此为红色 glBegin(GL_LINES);//此函数代表某种图形绘制的开始,参数为所要绘制图形的类型; glVertex3f(-1.0f,0.0f,0.0f); glVertex3f(1.0f,0.0f,0.0f);//代表绘制的线段的两个端点在坐标系中的位置 //!!注意!!坐标系中一个单位长度为视口高/宽的1/2 glEnd();//此图形绘制结束 glColor3f(0.0f,1.0f,0.0f);//设置接下来绘制图形的颜色,此为绿色 glBegin(GL_LINES);//此函数代表某种图形绘制的开始,参数为所要绘制图形的类型; glVertex3f(0.0f,0.0f,0.0f); glVertex3f(0.0f,1.0f,0.0f);//代表绘制的线段的两个端点在坐标系中的位置 glEnd();//此图形绘制结束 glColor3f(0.0f,0.0f,1.0f);//设置接下来绘制图形的颜色,此为蓝色 glBegin(GL_LINES);//此函数代表某种图形绘制的开始,参数为所要绘制图形的类型; glVertex3f(0.0f,0.0f,0.0f); glVertex3f(0.0f,0.0f,1.0f);//代表绘制的线段的两个端点在坐标系中的位置 glEnd();//此图形绘制结束 } void main(void) { auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);//glaux函数:设置显示模式,single代表单缓冲,一般用于静态绘制,RGBA表示红绿蓝透明度色彩模式 auxInitPosition(0,0,500,500);//glaux函数:设置窗口位置和大小,前两位代表新建窗口时左上角的位置,后两位代表窗口的宽和高 auxInitWindow("MyWindow");//glaux函数:创建窗口,函数参数为窗口的名字 init(); auxReshapeFunc(reshape);//注册回调函数,使之能被系统调用 auxMainLoop(display);//注册回调函数,使之能被系统调用 }
}
相关文章推荐
- OpenGL学习-2-鼠标事件响应练习工程代码(排错补档)
- OpenGL学习-2-鼠标事件响应练习工程代码
- OpenGL学习-3-键盘事件注册以及投影矩阵变换练习代码
- 个人学习代码保存:例3. GridView相关练习操作
- 【OpenGL学习代码笔记之一】 基本形状绘制及动画初窥
- Python学习--基础代码练习
- Validform 学习笔记---代码练习
- 【学习逆向工程,分析机器代码】(一)(C语言篇)
- 【MyBatis学习15】MyBatis的逆向工程生成代码
- openGL学习笔记二:看看上一篇我们写的代码
- 开始学习OpenGL&shader -- mac工程创建
- openHevc学习笔记:工程代码基本结构
- 【OpenGL学习代码笔记之二】 三维空间中点的绘制
- Linux C 编程一站式学习--Unix Domain Socket IPC 练习代码
- chromium 代码和工程管理学习
- 如何在学习openGL时单步调试时,直观看到当前代码的运行结果
- 教你如何通过代码学习OpenGL
- OpenCV学习笔记(六十一)——建立支持OpenGL的OpenCV工程“Master OpenCV”chp.3
- Qt+OpenGL学习随笔之一:Qt下载和新建OpenGL工程
- OpenGL学习笔记:Console工程下如何不显示控制台黑窗口只显示Windows窗口