Opengl学习程序之红色三角形

来源:互联网 发布:物业管理app源码 编辑:程序博客网 时间:2024/04/28 16:25

看了Opengl编程指南后,再去看Opengl超级宝典,觉得不是一般的友好。

#include "stdafx.h"#include "GLTools.h"#include "GLShaderManager.h"#ifdef _APPLE_#include <glut/glut.h>#else#define FREEGLUT_STATIC#include<GL/glut.h>#endifGLBatch triangleBatch;GLShaderManager shaderManager;void ChangeSize(int w, int h){    glViewport(0, 0, w, h);}void SetupRC(){    glClearColor(0.0f, 0.0f, 1.0f, 1.0f);    shaderManager.InitializeStockShaders();    GLfloat vVerts[] = { -0.5, 0.0f, 0.0f,        0.5f, 0.0f, 0.0f,        0.0f, 0.5f, 0.0f };    triangleBatch.Begin(GL_TRIANGLES, 3);    triangleBatch.CopyVertexData3f(vVerts);    triangleBatch.End();}void RenderScene(void){    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);    GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);    triangleBatch.Draw();    glutSwapBuffers();}int main(int argc, char* argv[]){    gltSetWorkingDirectory(argv[0]);    glutInit(&argc, argv);    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);    glutInitWindowSize(800, 600);    glutCreateWindow("Triangle");    glutReshapeFunc(ChangeSize);    glutDisplayFunc(RenderScene);    GLenum err = glewInit();    if (GLEW_OK != err)    {        fprintf(stderr, "GLEW Error: %s\n",glewGetErrorString(err));        return 1;    }    SetupRC();    glutMainLoop();    return 0;}

这里写图片描述
代码工程:
http://download.csdn.net/detail/shiyuedyx/9778936

0 0
原创粉丝点击