macOS OpenGL运行环境搭建
需要使用的三方库
- GLEW
- CLTools
- libGLTools.a
这些库已经打包放在github,可以到OpenGLShare.zip下载
1、打开Xcode,新建masOS App项目。
2、下面随便写个名字就可以。
3、删除下面Xcode的生成的文件:
- AppDelegate.h
- AppDelegate.m
- ViewController.h
- ViewController.m
- Main.storyboard
- main.m
到项目配置的General->Main Interface里面删除”Main“
4、新建一个main.cpp,勾选不创建main.hpp即可。
5、将解压后的OpenGLShare拖入到项目中;在Build Setting->Header Search Paths中拖入OpenGLShare/include/和OpenGLShare/include/GLEW文件夹
6、在Build Phases里面添加系统自带openGL库
- GLUT.framework
- OpenGL.framework
7、将下面的代码,贴到main.cpp里面:
#include <stdio.h>
#include "GLTools.h"
#include <glut/glut.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored"-Wdeprecated-declarations"
GLBatch triangleBatch;
GLShaderManager shaderManager;
void onChangeSize(int w,int h){
glViewport(0,0, w, h);
}
void setupRC(){
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
shaderManager.InitializeStockShaders();
GLfloat vVerts[] = {
-0.5f, 0.5f, 0.0f,
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.5f, 0.5f, 0.0f,
};
triangleBatch.Begin(GL_TRIANGLE_FAN,4);
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End();
}
void onRenderScene(void) {
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
GLfloat vColor[] = {0.0f, 0.0f, 0.0f, 1.0f};
shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vColor);
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("窗口");
glutReshapeFunc(onChangeSize);
glutDisplayFunc(onRenderScene);
GLenum status = glewInit();
if(GLEW_OK != status) {
fprintf(stderr,"glew error:%s\n",glewGetErrorString(status));
return 1;
}
setupRC();
glutMainLoop();
return 0;
}
#pragma clang diagnostic pop
因为Apple已经将openGL标记为废弃了,在现有Xcode使用openGL API会出现废弃警告,使用如下代码将使用openGL API的代码包住,就不会出现警告了。
#pragma clang diagnostic push
#pragma clang diagnostic ignored"-Wdeprecated-declarations"
// 代码
#pragma clang diagnostic pop
8、贴完代码后能够正常运行,说明已经配置完成。
版权申明
本文系作者 @何健源 原创发布在思维代码站点。未经许可,禁止转载。
暂无评论数据