windows下OpenGL开发前准备

Windows为了发展其本身的DirectX,只支持OpenGL1.1,可是至2013年5月,OpenGL已更新到4.3版本。

  如何能够让Windows支持更高版本的OpenGL?
  显卡可能可以从硬件上直接实现更高版本的OpenGL的相关函数。

  查看显卡支持的OpenGL版本的方法,glGetString(GL_VERSION);

  查看支持的相关扩展:glGetString(GL_EXTENSIONS);

  在查看之前首先有初始化窗口

  • 第一种方式通过Windows api初始化窗口
HDC g_hDC = GetDC(GetConsoleWindow());

	PIXELFORMATDESCRIPTOR pfd;
	memset(&pfd, 0, sizeof(pfd));

	pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
	pfd.nVersion = 1;
	pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
	pfd.iPixelType = PFD_TYPE_RGBA;
	pfd.cColorBits = 32;
	pfd.cRedBits = 8;
	pfd.cGreenBits = 8;
	pfd.cBlueBits = 8;
	pfd.cAlphaBits = 8;
	pfd.iLayerType = PFD_MAIN_PLANE;
	pfd.cDepthBits = 24;

	int format = ChoosePixelFormat(g_hDC, &pfd);
	SetPixelFormat(g_hDC, format, &pfd);
	HGLRC hRC = wglCreateContext(g_hDC);
	if (!wglMakeCurrent(g_hDC, hRC))
	{
		wglDeleteContext(hRC);
		return;
	}
  • 第二种方式调用glut库。

  Windows环境下GLUT下载地址:

  点击下载glut

  Windows下GLUT安装步骤:

    1、将下载的压缩包解开,将得到5个文件
    2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹,对于VisualStudio2008,把glut.h复制到文件夹:      

   C:\Program Files\VS2008\VC\include\GL(我的电脑是这样的,不同电脑可能不一样)

    3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(即与include并排的lib文件夹下)。
    4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。

          (32位系统:C:\Windows\System32,64位系统:C:\Windows\System)

      此时在Visual Stdio下新建空白工程。输入以下代码:

#include <Windows.h>
#include <gl/glut.h>
#include <iostream>
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
    glutInitWindowSize(300, 300);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("OpenGL Version Check");
 
    const GLubyte* uglName = glGetString(GL_VENDOR);
    if (uglName)
        std::cout<<"opengl实现厂商的名字: "<<uglName<<std::endl;
    else
        std::cout<<"uglName empty pointer"<<std::endl;
 
    const GLubyte* uglRenderer = glGetString(GL_RENDERER);
    if (uglName)
        std::cout<<"渲染器标识符,通常是个硬件平台 : "<<uglRenderer<<std::endl;
    else
        std::cout<<"uglRender empty pointer"<<std::endl;
 
    const GLubyte* uglVersion = glGetString(GL_VERSION);
    if (uglVersion)
        std::cout<<"OpenGL实现的版本号"<<uglVersion<<std::endl;
    else
        std::cout<<"version empty pointer"<<std::endl;
 
    const GLubyte* uglGluVersion = gluGetString(GLU_VERSION);
    if (uglGluVersion)
        std::cout<<"当前GLU工具库版本 : "<<uglGluVersion<<std::endl;
    else
        std::cout<<"uglGluVersion empty pointer"<<std::endl;
 
    return 0;
}


则可得到本机显卡支持OpenGL信息.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值