一、準(zhǔn)備資料

OpenGL 00.png
二、搭建開始
1. 創(chuàng)建工程

OpenGL 01.jpg
2. 選擇Cocoa App類型

OpenGL 02.png

OpenGL 03.png
3. 添加依賴庫

OpenGL 04.png
4. 加入準(zhǔn)備的庫,配置路徑
(1) 將下載好的 include 文件夾直接拖入項目工程中,將 libGLTools.a 靜態(tài)庫直接拖入到項目的 Frameworks 中。
(2) 在 Build Settings 中搜索 “Header search” ,在 Header Search Paths 添加上 include 的路徑,不想敲的話直接把項目工程里的include文件夾拖過來就會出現(xiàn)路徑。

OpenGL 05.png

OpenGL 06.png
5. 創(chuàng)建main.cpp
創(chuàng)建一個 c++ 類型的文件,命名為 main,創(chuàng)建的時候去掉勾選同時創(chuàng)建頭文件的對勾。

OpenGL 07.png

OpenGL 08.png
6. 刪除AppDelegate.h、AppDelegate.m、main.m 、ViewController.h 和 ViewController.m

OpenGL 09.png
三、運行測試代碼
1.在main.cpp中加入下面的測試代碼:
#include "GLShaderManager.h"
#include "GLTools.h"
#include <GLUT/GLUT.h>
GLShaderManager shaderManager;
GLBatch triangleBatch;
void changeSize(int w,int h)
{
glViewport(0, 0, w, h);
}
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
GLfloat vRed[] = {1.0,0.0,0.0,1.0f};
shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);
triangleBatch.Draw();
glutSwapBuffers();
}
void setupRC()
{
glClearColor(0.98f, 0.40f, 0.7f, 1);
shaderManager.InitializeStockShaders();
GLfloat vVerts[] = {
-0.5f,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();
}
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 status = glewInit();
if (GLEW_OK != status) {
printf("GLEW Error:%s\n",glewGetErrorString(status));
return 1;
}
setupRC();
glutMainLoop();
return 0;
}
2.編譯發(fā)現(xiàn)報錯,原因
#include<文件名.h> 修改為 #include"文件名"
編譯,將文件“< >”系統(tǒng)引入,改為" "普通引入,編譯成功
3.運行結(jié)果如下,恭喜環(huán)境搭建成功

OpenGL 10.png