您的位置:首页 > 运维架构

openGL绘制矩形

2018-02-10 14:35 316 查看
#include "stdafx.h"
#include"windows.h"
#include"gl.h"
#include"glut.h"

//渲染场景
void RenderScene(void)
{
//用当前清除色清除颜色缓冲区,设定窗口背景色
glClear(GL_COLOR_BUFFER_BIT);
//设置当前绘图使用RGB颜色
glColor3f(1.0f, 0.0f, 0.0f);
//使用当前颜色绘制一个填充矩形
glRectf(100.0f, 150.0f, 150.0f, 100.0f);
//刷新openGL命令队列
glFlush();
}
//改变大小
void ChangeSize(GLsizei w, GLsizei h)
{
if (h == 0)
h = 1;
//设置视区大小
glViewport(0, 0, w, h);
//重置坐标系统,使投影变换位置
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//建立修剪空间的范围 修改空间坐标值
if (w < h)
glOrtho(0.0f, 450.0f, 0.0f, 450.0f*h / w, 1.0f, -1.0f);
else
glOrtho(0.0f, 450.0f*h / w, 0.0f, 450.0f, 1.0f, -1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

}
//渲染状态
void SetupRC(void)
{

glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
}
int _tmain(int argc, _TCHAR* argv[])
{
//初始化GLUT库  OpenGL窗口的显示方式
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//单缓冲窗口|RGB颜色模式
//创建窗口的标题名称
glutCreateWindow("OpenGL绘制矩形");
//设置当前窗口显示回调函数和窗口在整形回调函数
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
//设置渲染状态
SetupRC();
//启动主要的GLUT事件处理循环
glutMainLoop();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: