一个简单的OpenGL程序
cheungmine
2009-2
这是一个Windows控制台程序,建立一个空项目,把下面的文件添加进去,编译即可。需要更改的是路径“../../???”。
依存的库目录
+--- win_opengl32/
|
+--- inc/
||---GL.h,GLU.h,GLUT.h
|
+--- lib/
| |--- GlU32.Lib,OpenGL32.Lib,glut32.lib,glut.def
|
+--- bin/
|--- glu32.dll,glut32.dll,opengl32.dll
// // tutorial_01.c // // 内存泄漏检测 // 在需要检测的地方放置语句: // _CrtDumpMemoryLeaks(); // 以下3句的次序不能改变 #define _CRTDBG_MAP_ALLOC #include #include #include #include #include #include #include // 使用 USE_SGI_OPENGL 可能在某些机器上运行 wglMakeCurrent 系列函数返回失败的结果 #define GLUT_NO_LIB_PRAGMA // #define USE_SGI_OPENGL #ifdef USE_SGI_OPENGL #include "../../sgi-opengl2-sdk/include/gl/gl.h" #include "../../sgi-opengl2-sdk/include/gl/glu.h" #include "../../sgi-opengl2-sdk/include/gl/glut.h" #pragma comment(lib, "../../sgi-opengl2-sdk/lib/opengl.lib") #pragma comment(lib, "../../sgi-opengl2-sdk/lib/glu.lib") #pragma comment(lib, "../../sgi-opengl2-sdk/lib/glut.lib") #else #include "../../win-opengl32/inc/GL.h" #include "../../win-opengl32/inc/GLU.h" #pragma comment(lib, "../../win-opengl32/lib/OPENGL32.lib") #pragma comment(lib, "../../win-opengl32/lib/GLU32.lib") #include "../../win-opengl32/inc/GLUT.h" #pragma comment(lib, "../../win-opengl32/lib/glut32.lib") #endif void _display(void) { glClear (GL_COLOR_BUFFER_BIT); 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(); glFlush (); } void _init (void) { glClearColor (0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); } 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(); _CrtDumpMemoryLeaks(); return 0; }
运行结果: