0
点赞
收藏
分享

微信扫一扫

一个简单的OpenGL程序


一个简单的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<stdlib.h>
#include<crtdbg.h>

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<assert.h>

#include <windows.h>

// 使用 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;
}

 

    运行结果:

 

一个简单的OpenGL程序_windows

 

举报

相关推荐

0 条评论