OpenGL 4.3配置教程

下载开发包

需要下载的开发包主要包含如下几个组件:freeglut+glew+ OpenGL.Development.Cookbook+源码+GLM+SOIL.

Opengl SDK并不存在,寻找真正的OpenGL开发工具

1、下载

这些软件需要翻墙才能下载,所以提供了完整压缩包:

freeglut (latest version available from: http://freeglut.sourceforge.net)

GLEW (latest version available from: http://glew.sourceforge.net)

GLM (latest version available from: http://glm.g-truc.net)

SOIL (latest version available from: http://www.lonesock.net/soil.html)

OpenGL.Development.Cookbook 所需的库

2、解压

3、运行glew测试工具

4、查看信息

说明:这些函数都封装在glew中,我们完成一半了

编译

配置OpenGL 4.3

下面是完整的源码:

#include <GL/glew.h>

#include <GL/freeglut.h>

#include <iostream>

#pragma comment(lib, "glew32.lib")

using namespace std;

//screen size

const int WIDTH  = ;

const int HEIGHT = ;

//OpenGL initialization

void OnInit() {

       //set clear color to red

       glClearColor(,,,);

       cout<<"Initialization successfull"<<endl;

}

//release all allocated resources

void OnShutdown() {

       cout<<"Shutdown successfull"<<endl;

}

//handle resize event

void OnResize(int nw, int nh) {

}

//display callback function

void OnRender() {

       //clear colour and depth buffers

       glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

       //swap front and back buffers to show the rendered result

       glutSwapBuffers();

}

int main(int argc, char** argv) {

       //freeglut initialization calls

       glutInit(&argc, argv);

       glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

       glutInitContextVersion (, );

       glutInitContextFlags (GLUT_CORE_PROFILE | GLUT_DEBUG);

       glutInitContextProfile(GLUT_FORWARD_COMPATIBLE);

       glutInitWindowSize(WIDTH, HEIGHT);

       glutCreateWindow("Getting started with OpenGL 4.3");

       //glew initialization

       glewExperimental = GL_TRUE;

       GLenum err = glewInit();

       if (GLEW_OK != err)   {

              cerr<<"Error: "<<glewGetErrorString(err)<<endl;

       } else {

              if (GLEW_VERSION_4_3)

              {

                     cout<<"Driver supports OpenGL 4.3\nDetails:"<<endl;

              }

       }

       //print information on screen

       cout<<"\tUsing GLEW "<<glewGetString(GLEW_VERSION)<<endl;

       cout<<"\tVendor: "<<glGetString (GL_VENDOR)<<endl;

       cout<<"\tRenderer: "<<glGetString (GL_RENDERER)<<endl;

       cout<<"\tVersion: "<<glGetString (GL_VERSION)<<endl;

       cout<<"\tGLSL: "<<glGetString (GL_SHADING_LANGUAGE_VERSION)<<endl;

       //initialization of OpenGL

       OnInit();

       //callback hooks

       glutCloseFunc(OnShutdown);

       glutDisplayFunc(OnRender);

       glutReshapeFunc(OnResize);

       //main loop call

       glutMainLoop();

       return ;

}

书籍赠送说明

OpenGL 4.3配置教程的更多相关文章

  1. OpenGL初学:安装配置与第一个程序

    OpenGL初学:安装配置与第一个程序 2014年10月12日 12:37:03 process-z 阅读数:12413 标签: opengl安装教程 更多 个人分类: OpenGL   计算机图形学 ...

  2. openvpn配置教程

    openvpn配置教程 本文是为解决本地服器能从外网访问web页,从新改写(临摹) 烂泥:ubuntu 14.04搭建OpenVPN服务器这篇文章 腾讯云为服务器,本地服务器为客户端 一.服务器安装o ...

  3. VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程

    VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程 在VMware Workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境 ...

  4. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径

    本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...

  5. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程

    UEditor是百度开发团队奉献的一款很不错的在线编辑器.在百度自己很多产品上都有应用,本文主要是该编辑器的配置教程. 1.下载UEditor,当前最新版本是1.3.6.这里下载的.net版本,选择U ...

  6. VC++6.0使用OpenGL前的配置(必看)

    要在VC++6.0中使用opengl,需要配置一下环境设置. 具体需要两步: 1.加入一个头文件,两个lib文件,两个dll文件,放在合适位置. 2.配置一下vc++6.0的Project Setti ...

  7. Fedora和Ubuntu下安装OpenGL开发环境配置

    Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...

  8. Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS

    摘自:http://www.powerxing.com/install-hadoop-cluster/ 本教程讲述如何配置 Hadoop 集群,默认读者已经掌握了 Hadoop 的单机伪分布式配置,否 ...

  9. PHP调试工具Xdebug安装配置教程

    说道PHP代码调试,对于有经验的PHPer,通过echo.print_r.var_dump函数,或PHP开发工具zend studio.editplus可解决大部分问题,但是对于PHP入门学习的童鞋来 ...

随机推荐

  1. AndroidDevTools下载地址

    Android Dev Tools官网地址:www.androiddevtools.cn http://www.androiddevtools.cn/ http://wear.techbrood.co ...

  2. HashMap,HashTable,TreeMap区别和用法

    开始学HashTable,HashMap和TreeMap的时候比较晕,觉得作用差不多,但是到实际运用的时候又发现有许多差别的.需要大家注意,在实际开发中以需求而定. java为数据结构中的映射定义了一 ...

  3. ARC-数据类型需要释放的情况

    // Foundation :  OC// Core Foundation : C语言// Foundation和Core Foundation框架的数据类型可以互相转换的 //NSString *s ...

  4. iOS开发笔记13:顶部标签式导航栏及下拉分类菜单

    当内容及分类较多时,往往采用顶部标签式导航栏,例如网易新闻客户端的顶部分类导航,最近刚好有这样的应用场景,参考网络上一些demo,实现了这种导航效果,记录一些要点. 效果图(由于视频转GIF掉帧,滑动 ...

  5. 多线程基础(五)NSThread线程通信

    5.多线程基础 线程间通信   什么叫线程间通信 在一个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信   线程间通信的体现 1个线程传递数据给另一个线程 在1个线程中执行完特定任务后, ...

  6. 第一次开发PHP网页Hello PHP

    打开安装好的XAMPP的三个服务: 然后打开phpStorm,在Open选项选择文件目录(最后一个目录是htdocs)打开: 3.有时候可能无法修改php文件,会弹出一些提示窗口.那么就打开Finde ...

  7. 2013MPD上海6.22 PM 陆宏杰:通往卓越管理的阶梯 & 6.23AM Ray Zhang 产品创新管理的十八般武艺

    MPD2天的内容,参加了5个课程,其中2个是管理的,分别是陆宏杰老师的<通往卓越管理的阶梯>和Ray Zhang大师的<产品创新管理的十八般武艺>.他们2个人都谈到了一个关于招 ...

  8. Remoting和Webservice的区别

    其实现的原理并没有本质的区别,在应用开发层面上有以下区别:1.Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,这样 ...

  9. 问题解决——VS2010 将生成的文件复制到指定位置

    我是从VC6直接过渡到VS2010的,VS2008没怎么用过.用VS2010的时候,每次生成dll后,手工把dll.lib..h文件复制到指定文件夹太麻烦了,所以着手写了这个. =========== ...

  10. 问题解决——在STL的queue中使用自定义类

    本文原创,转载请保证文章的完整性,并显要的注明出处. 本文链接:http://blog.csdn.net/wlsgzl/article/details/38843513 平时很少用STL,就算用,也基 ...