OpenGL几何图元和缓冲区(五)
来源:互联网 发布:免费商城网站源码 编辑:程序博客网 时间:2024/04/28 00:58
GLfloat size[2];
GLfloat step;
GLGetFloatv(GL_LINE_WIDTH_RANGE,size);
GLGetFloatv(GL_LINE_WIDTH_GRANULARITY,&step);
下面这个程序将演示如何调用这两个函数:
#include <GL/glut.h>
void RenderScene(void)
{
GLfloat y;
GLfloat size[2];
GLfloat currSize;
glClear(GL_COLOR_BUFFER_BIT); //清除颜色
glGetFloatv(GL_LINE_WIDTH_RANGE,size);
currSize = size[0];
for(y = -90.0f; y < 90.0f; y += 20.0f) {
glLineWidth(currSize);
glBegin(GL_LINES);
glVertex2f(-80.0f, y);
glVertex2f(80.0f, y);
glEnd();
currSize += 1.0f;
}
glFlush(); //刷新
}
//当窗口大小变化时调用
void ChangeSize(GLsizei w,GLsizei h)
{
GLfloat aspectRatio;
if(0 == h)
h = 1;
//设置视口大小
glViewport(0,0,w,h);
//重置坐标系
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//建立裁剪区
aspectRatio = (GLfloat)w / (GLfloat)h;
if(w <= h)
glOrtho(-100.0,100.0,-100.0/aspectRatio,100/aspectRatio,1.0,-1.0);
else
glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100.0,100.0,1.0,-1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
//设置渲染
void SetupRC(void)
{
glClearColor(0.0f,0.0f,1.0f,1.0f);
}
int main(int argc,char* argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("OpenGL Sample");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
SetupRC();
glutMainLoop();
return 0;
}
以下是程序运行截图:
.....
- OpenGL几何图元和缓冲区(五)
- OpenGL几何图元和缓冲区(一)
- OpenGL几何图元和缓冲区(二)
- OpenGL几何图元和缓冲区(三)
- OpenGL几何图元和缓冲区(四)
- OpenGL几何图元和缓冲区(六)
- OpenGL开发 空间绘图:几何图元和缓冲区
- OpenGL几何图元与缓冲区
- OpenGL绘图的基本过程是:清除缓冲区,设置当前颜色,绘制几何图元,输出图形。
- opengl 函数库--绘制几何图元
- OpenGL笔记之绘制几何图元(geometric primitives)
- OPENGL学习笔记整理(四):几何图元渲染
- OpenGL小探2--几何图元,3D初步
- 3D数学之-几何图元和几何检测
- flyweight模式和图元几何变换
- 基本几何图元
- opengl使用现在比较常用的方法来绘制简单几何图元
- openGl超级宝典学习笔记 (2) 7个基本的几何图元
- http://blog.csdn.net/shaojie519/article/details/7026916
- 调试LED遇到的问题和解决方法
- yum 命令安装下载好的rpm包
- QT下控制台TCP通信例程
- 告别2011展望2012
- OpenGL几何图元和缓冲区(五)
- javascript 中 escape,encodeURI 区别?
- Linux下NVIDIA显卡驱动290版本更新
- C++程序设计实验报告(三)之小星星
- VB常用内部控件总结(一)
- 自定义Activity标题栏
- Fedora 视频播放
- 高并发 强实时 强一致数据库业务系统设计的一个思路
- win7中IIS的一些配置