OpenGL(二)第一个OpenGL程序绘制三角形

来源:互联网 发布:淘宝买东西有质量问题 编辑:程序博客网 时间:2024/05/01 04:32

一、代码

#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 };  //RGBAshaderManager.UseStockShader(GLT_SHADER_IDENTITY ,vRed);  //颜色传递到存储着色器中batch.Draw();        //绘制glutSwapBuffers();   //交换buffer,双缓冲}int main(int argc, char * argv[]){gltSetWorkingDirectory(argv[0]);   //设置工作目录glutInit(&argc, argv);             //初始化glutglutInitDisplayMode(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;}

二、运行效果





0 0
原创粉丝点击