• openGL+VS2012 环境搭建和实现简单程序


    在学习cocos2dx时,其底层就用到了OpenGL,因此,想要能够精通cocos2dx,还是需要了解OpenGL的。

    本着这个目的,开始搭建OpenGL的环境,并进行学习。

    OpenGL环境的搭建相对比较简单,这里就简单概述一下。

    1. 下载glut库

    glut库地址为:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

    glut全称为:OpenGL Utility Toolkit,也就是OpenGL应用工具包,它建立在OpenGL基础之上,方便开发OpenGL的某些功能,比如我们后面要创建的Windows程序,就可以用glut来方便地构建起一个初始化的Windows程序。

    2. 安装glut库

    说是安装,其实就是复制。

    解压开这个zip包,会发现其中包含如下几个文件:

    glut.h:头文件,复制到D:Program Files (x86)Microsoft Visual Studio 11.0VCincludegl目录下(需要自己来新建gl目录)

    glut.lib,glut32.lib:静态链接库,复制到D:Program Files (x86)Microsoft Visual Studio 11.0VClib目录下

    glut.dll,glut32.dll:动态链接库,复制到C:WindowsSystem32目录下,64位操作系统的,还需要复制到C:WindowsSysWOW64目录下。

    至此,opengl初始环境搭建完成。

    下面,我们来进行一下测试,看是否能够运行起来我们的第一个应用程序。

    1)新建一个项目:已安装-win32控制台应用程序,一路默认直到完成

    2)输入以下代码:

    #include "stdafx.h"
    #include<gl/glut.h>
    
    void myDisplay(void)
    {
        glClear(GL_COLOR_BUFFER_BIT);     //清除颜色
        glRectf(-0.5f,-0.5f,0.5f,0.5f);    //画一个矩形
        glFlush();   //让前面的命令立即执行而不是在缓冲区,与fflush(stdout)作用类似
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        glutInit(&argc,(char**)argv);    //初始化glut,必须调用,复制黏贴这句话即可  
        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //设置显示方式,RGB、单缓冲。当然还有GLUT_INDEX索引颜色 GLUT_DOUBLE双缓冲(Qt中看到过双缓冲)  
        glutInitWindowPosition(100,100);   //位置  
        glutInitWindowSize(400,400);//窗口大小  
        glutCreateWindow("第一个OpenGL程序");  //创建窗口,设置标题  
        glutDisplayFunc(&myDisplay);  // 当绘制窗口时调用myDisplay,像Cocos2d-x刷帧Draw中的操作  
        glutMainLoop();  //消息循环  
        return 0;  
    }
    

    最后,运行一下,看是否能够运行起来,如果运行起来了,则恭喜你,初始环境建立完成。

    注意:

    1)如果运行后发现界面一片空白,可能是电脑显卡问题

    2)如果程序运行退出时发现“无法加载pdb文件”的字样,试着在vs调试区域设置常规处将启动原服务器勾选

    学习opengl的网址:http://www.yakergong.net/nehe/

    如何用bresemham画圆:http://www.it165.net/pro/html/201110/918.html

                http://www.cnblogs.com/wzmmao/archive/2012/07/05/2577383.html

                http://blog.csdn.net/bagboy_taobao_com/article/details/5774628

  • 相关阅读:

    模块
    序列化模块
    time模块、os模块、sys模块
    re模块、collections模块、random模块
    正则表达式
    递归函数和二分查找
    匿名函数
    推推导式和内置函数
    Java引用类型与值类型——Java面向对象基础(7)
  • 原文地址:https://www.cnblogs.com/2014-cjs/p/4321612.html
Copyright © 2020-2023  润新知