在xcode上搭建OpenGL3.x运行景象
2月17日作者:Admin
比来开端进修OpenGL,网上的教程太没体系,我又是零根蒂根基,于是筹算照着红宝书《OpenGL编程指南(第七版)》来进修。
于是在Mac上搭建一下Demo景象。斗劲便利的是,OS X上已经装了OpenGL 3.x所以很是简单。
起首,在xcode上建树os x的command line,即hello world。
然后,把以下两个库经由过程add files添加到里:
/System/Library/Frameworks/OpenGL.framework
/System/Library/Frameworks/GLUT.framework
前者就是OpenGL 3.x;后者是OpenGL的界面和交互库,因为OpenGL只负责策画,并没有显示功能。
重视,GLUT库已经过期,os x在10.9版本已经弃用,改成什么我还不知道。
接下来,在main.cpp里include以下头文件:
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
最后,把下面的代码贴到main.cpp里编译运行即可
void display(void)
{
/* clear all pixels */
glClear (GL_COLOR_BUFFER_BIT);
/* draw white polygon (rectangle) with corners at
* (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)
*/
glColor3f (1.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f (0.25, 0.25, 0.0);
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0);
glEnd;
/* don""t wait!
* start processing buffered OpenGL routines
*/
glFlush ;
}
void init (void)
{
/* clearing color */
glClearColor (0.0, 0.0, 0.0, 0.0);
/* initialize viewing values */
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
/*
* Declare initial window size, position, and display mode
* (single buffer and RGBA). Open window with "hello"
* in its title bar. Call initialization routines.
* Register callback function to display graphics.
* Enter main loop and process events.
*/
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow ("hello");
init ;
glutDisplayFunc(display);
glutMainLoop;
return 0; /* ANSI C requires main to return int. */
}
运行后,号令行窗口会显示一个白色的方块如图:
OK,开端深切进修吧!