OpenGL(二)第一个OpenGL程序绘制三角形
2016-12-02 15:54
411 查看
一、代码
#include <GLTools.h> #include <GLShaderManager.h> #include <GL/glut.h> GLBatch batch; //批处理 GLShaderManager shaderManager; //着色器管理 void ChangeSize(int width, int height) { glViewport(0, 0, width, height); //改变窗口大小 } void SetupRc(void) { glClearColor(0.0f, 0.0f, 1.0f, 1.0f); //背景颜色 shaderManager.InitializeStockShaders(); //初始化着色器 //定义顶点数据 GLfloat vVertex[] = {-0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f}; batch.Begin(GL_TRIANGLES, 3); batch.CopyVertexData3f(vVertex); //复制顶点数据到批处理中 batch.End(); } void MyDisplay(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); //清除特定的缓冲区 GLfloat vRed[] = { 0.0f, 1.0f, 0.0f, 1.0f }; //RGBA shaderManager.UseStockShader(GLT_SHADER_IDENTITY ,vRed); //颜色传递到存储着色器中 batch.Draw(); //绘制 glutSwapBuffers(); //交换buffer,双缓冲 } int main(int argc, char * argv[]) { gltSetWorkingDirectory(argv[0]); //设置工作目录 glutInit(&argc, argv); //初始化glut glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL); //显示类型模式 glutInitWindowSize(800, 600); //窗口大小 glutCreateWindow("第一个OpenGL"); //创建窗口 glutReshapeFunc(ChangeSize); //改变窗口大小 glutDisplayFunc(MyDisplay); //显示绘制回调 GLenum err = glewInit(); //驱动程序初始化过程是否出错 if (err != GLEW_OK) { return 1; } SetupRc(); glutMainLoop(); //调用之后才能显示 return 0; }
二、运行效果
相关文章推荐
- OpenGL红宝书第一个例子:绘制两个三角形
- 每天一个OpenGL程序 第四篇 三角形的绘制
- 我的第一个DirectX程序界面及三角形的绘制
- 我的Direct3D之路2:学习第一个三角形绘制程序以及一些注意点
- OpenGL程序:绘制正方形和三角形
- 编写一个基于OpenGL的程序,绘制一个三角形,并分别绘制这个三角形经旋转、平移、缩放后的结果
- OpenGL 入门基础教程 —— 在第一个窗口绘制一个三角形
- 黄聪:C#窗体程序OpenGL绘制立方体多边形旋转示例教程(VS2008,Winform)
- Android OpenGL实战一——开发框架搭建、三角形和四边形的绘制
- 我的第一个Direct3D程序——第一个三角形
- 在vs2005下的第一个OpenGL程序。
- 基于vs08配置GLUT和建立我们第一个OpenGL程序
- OpenGL 编写第一个OpenGL程序
- 在vs2005下的第一个OpenGL程序
- 第一个OpenGL程序--基于VS2005和GLUT
- ubuntu+opengl程序设计(2)第一个程序
- 在vs2005下的第一个OpenGL程序
- Android OpenGL学习笔记(二)之----三角形的绘制.
- 第一课,编写第一个OpenGL程序
- VC6+XP下第一个OpenGL程序