visual studio 2010 的openGL环境的搭建

来源:互联网 发布:免费下载visio软件 编辑:程序博客网 时间:2024/05/18 15:06

http://www.cnblogs.com/Linkliu/articles/leanC.html

一.   首先你要有一个glut包,(如果没有请到网上下载一个),里面会有这么一些文件:(如图)

GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。
Windows环境下的GLUT下载地址:(大小约为150k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

二.   接下来的事情就是你要把对应的文件放到对应的位置:

(1)       glut.h

             这个文件放目目录C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl

            这个目录不用你考虑你的软件安装在哪个文件夹

(2)       glut.dll,glut32.dll

            这两个dll放在目录C:\Windows\SysWOW64(64位)

                  C:\Windows\System32(32位)

           这个目录也不用你考虑你的软件安装在哪个文件夹

(3)       glut.lib,glut32.lib  

            这两个文件放在目录  (XXXXXXXXXXX)\VC\lib

            请注意,这两个文件放的位置跟你vs2010安装在哪里有关,比如我的安装在G:\编程工具\VS 2010 旗舰版\vs2010安装  

               这个目录下那么就放在目录      G:\编程工具\VS 2010 旗舰版\vs2010安装\VC\lib目录下面

 

三.在vs2010中的设置:

 

  1. 打开VS2010 ,按照下面的步骤新建一个win32控制台程序我们来测试一下我们刚刚配置的环境

            新建项目àwin32控制台应用程序-->输入名称为:openGL(如图)

            

    

          点击“确定”--->“下一步”--->“空项目”--->“完成”

          这样一个空的控制台项目就建好了

 

     2.按ctrl+Shift+A,添加一个cpp文件到该解决方案,名称为openGL(如下图)

 

 

3.设置目录

   ①包含目录:

        点项目—>openGL属性(根据工程名不同)--->配置属性(点开)--->VC++目录-->包含目录(用鼠标选中它,然后最右边会有一个向下的三角形,点它)--->编辑--->点

       图标,输入  你刚刚放入   glut.h文件的目录    即C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl(如下图)

           

        

            

    

     ②库目录:

        就在包含目录下面,点开“库目录”,输入你刚刚放入glut.lib,glut32.lib的目录即(XXXXXXXXXXX)\VC\lib

        向我的就是G:\编程工具\VS 2010 旗舰版\vs2010安装\VC\lib

 

         

          


四.运行测试程序:

   把下面这个简单的程序输入到刚刚新建的openGL.cpp中,然后运行,成功的话就会一个正方形移动的图: 

 

  

 // Bounce.cpp#include<windows.h>#include<glut.h>#include<GLU.h>#include<GL.h>// Initial square position and sizeGLfloat x = 0.0f;GLfloat y = 0.0f;GLfloat rsize = 25; // Step size in x and y directions// (number of pixels to move each time)GLfloat xstep = 1.0f;GLfloat ystep = 1.0f;// Keep track of windows changing width and heightGLfloat windowWidth;GLfloat windowHeight; ///////////////////////////////////////////////////////////// Called to draw scenevoid RenderScene(void)    {    // Clear the window with current clearing color    glClear(GL_COLOR_BUFFER_BIT);   // Set current drawing color to red    //         R G B    glColor3f(1.0f, 0.0f, 0.0f);     // Draw a filled rectangle with current color    glRectf(x, y, x + rsize, y - rsize);     // Flush drawing commands and swap    glutSwapBuffers();    } ///////////////////////////////////////////////////////////// Called by GLUT library when idle (window not being// resized or moved)void TimerFunction(int value)    {    // Reverse direction when you reach left or right edge    if(x > windowWidth-rsize || x < -windowWidth)        xstep = -xstep;     // Reverse direction when you reach top or bottom edge    if(y > windowHeight || y < -windowHeight + rsize)        ystep = -ystep;    // Actually move the square    x += xstep;    y += ystep;    // Check bounds. This is in case the window is made    // smaller while the rectangle is bouncing and the    // rectangle suddenly finds itself outside the new    // clipping volume    if(x > (windowWidth-rsize + xstep))        x = windowWidth-rsize-1;    else if(x < -(windowWidth + xstep))        x = -windowWidth -1;    if(y > (windowHeight + ystep))        y = windowHeight-1;    else if(y < -(windowHeight - rsize + ystep))        y = -windowHeight + rsize - 1;      // Redraw the scene with new coordinates    glutPostRedisplay();    glutTimerFunc(33,TimerFunction, 1);    }///////////////////////////////////////////////////////////// Setup the rendering statevoid SetupRC(void)    {    // Set clear color to blue    glClearColor(0.0f, 0.0f, 1.0f, 1.0f);    } ///////////////////////////////////////////////////////////// Called by GLUT library when the window has chanaged sizevoid ChangeSize(int w, int h)    {    GLfloat aspectRatio;     // Prevent a divide by zero    if(h == 0)        h = 1;          // Set Viewport to window dimensions    glViewport(0, 0, w, h);     // Reset coordinate system    glMatrixMode(GL_PROJECTION);    glLoadIdentity();     // Establish clipping volume (left, right, bottom, top, near, far)    aspectRatio = (GLfloat)w / (GLfloat)h;    if (w <= h)        {        windowWidth = 100;        windowHeight = 100 / aspectRatio;        glOrtho (-100.0, 100.0, -windowHeight, windowHeight, 1.0, -1.0);        }    else        {        windowWidth = 100 * aspectRatio;        windowHeight = 100;        glOrtho (-windowWidth, windowWidth, -100.0, 100.0, 1.0, -1.0);        }     glMatrixMode(GL_MODELVIEW);    glLoadIdentity();    } ///////////////////////////////////////////////////////////// Main program entry pointint main(int argc, char* argv[])    {    glutInit(&argc, argv);    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);    glutInitWindowSize(800,600);    glutCreateWindow("Bounce");    glutDisplayFunc(RenderScene);    glutReshapeFunc(ChangeSize);    glutTimerFunc(33, TimerFunction, 1);     SetupRC();    glutMainLoop();           return 0;    }

0 0
原创粉丝点击