一、代码
#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(a