MAC OS X
一、环境
三、编译工程
- #include <GLTools.h>
- #include <GLShaderManager.h>
- #ifdef __APPLE__
- #include <glut/glut.h>
- #else
- #define FREEGLUT_STATIC
- #endif
- GLBatch triangleBatch;
- GLShaderManager shaderManager;
- //窗口大小改变时接受新的宽度和高度,其中0,0代表窗口中视口的左下角坐标,w,h代表像素
- void ChangeSize(int w,int h)
- {
- glViewport(0, 0, w, h);
- }
- //为程序作一次性的设置
- void SetupRC()
- {
- //设置背影颜色
- glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
- //初始化着色管理器
- shaderManager.InitializeStockShaders();
- //设置三角形,其中数组vVert包含所有3个顶点的x,y,笛卡尔坐标对。
- 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();
- }
- //开始渲染
- 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};
- //传递到存储着色器,即GLT_SHADER_IDENTITY着色器,这个着色器只是使用指定颜色以默认笛卡尔坐标第在屏幕上渲染几何图形
- shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);
- //提交着色器
- triangleBatch.Draw();
- //将在后台缓冲区进行渲染,然后在结束时交换到前台
- glutSwapBuffers();
- }
- int main(int argc,char* argv[])
- {
- //设置当前工作目录,针对MAC OS X
- gltSetWorkingDirectory(argv[0]);
- //初始化GLUT库
- glutInit(&argc, argv);
- /*初始化双缓冲窗口,其中标志GLUT_DOUBLE、GLUT_RGBA、GLUT_DEPTH、GLUT_STENCIL分别指
- 双缓冲窗口、RGBA颜色模式、深度测试、模板缓冲区*/
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
- //GLUT窗口大小,标题窗口
- 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
- SetupRC();
- glutMainLoop();
- return 0;
- }
2.点击运行,效果如图2.5。
glut下载地址: http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
glut.h ---> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl
glut.dll,glut32.dll ---> C:\Windows\SysWOW64 (windows7 64位操作系统)
---> C:\Windows\System32 (windows7 32位操作系统)
glut.lib,glut32.lib ---> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib
打开vs2010,随便打开或新建一个项目。 选择 project->project property-> Configuration Properties->Linker->Input->Additional Dependencies 在其中添加opengl32.lib glu32.lib glut32.lib.如:
测试代码:
- //#include "stdafx.h"
- #include <Gl\glut.h>
- void myDisplay(void)
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f (1.0,0.0,0.0);
- glBegin (GL_LINES);
- glVertex2i (180,15);
- glVertex2i (10,145);
- glEnd();
- glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
- glFlush();
- }
- void init (void)
- {
- glClearColor(1.0 ,1.0, 1.0,0.0);
- glMatrixMode (GL_PROJECTION);
- gluOrtho2D(0.0,200.0,0.0,150.0);
- }
- int main(int argc,char * argv[])
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
- glutInitWindowPosition(50, 100);
- glutInitWindowSize(400,300);
- glutCreateWindow("OpenGL");
- init ();
- glutDisplayFunc(&myDisplay);
- glutMainLoop();
- return 0;
- }
运行效果图: