Opengl 64位窗口

时间:2015-01-16 15:22:25

标签: c++ opengl

我正在尝试在Windows 8 64位机器上安装opengl我没有找到任何包含gl.h glu.h文件的库我发现了库库/头文件...,通过一些堆栈溢出帖子我才知道opengl是windows的一部分然后在哪里找到。帮助

3 个答案:

答案 0 :(得分:12)

OpenGL-1.1已成为Win32 ABI的一部分(ABI =应用程序二进制接口,即保证可用的功能集和规范如何由编译器调用(调用约定)),因为Windows-NT4(并被追溯到Windows 95-B中。

因此每个编译器工具链都以Win32 API为目标(BTW也涵盖64位版本)必须包含必要的符号声明(C中的标题)和API链接存根。或者换句话说:没有必要下载或安装任何开发OpenGL的东西。 从不(!),我再说一遍,从不(!),下载名为opengl32.dllopengl32.libgl.h,{{{{ 1}}或类似的,甚至不考虑替换你已经拥有的完美文件;这样做只会破坏您的系统(操作系统或编译器工具链)。这样做是不必要的,实际上也是有害的。因此,您认为为您提供良好信息的页面实际上非常有害。完全忽视其信息。

OpenGL本身不是一个库,而是一个所谓的 implementation 的规范。 Windows的OpenGL实现是显卡驱动程序的一部分!如果没有可用的显卡支持,还有一个软件光栅化器后备功能,涵盖了OpenGL-1.1。请注意,通过 Windows Update 安装的驱动程序中不包含现代OpenGL支持;支持OpenGL的GPU驱动程序必须直接从GPU供应商的网站下载并手动安装。

Windows中超越OpenGL-1.1的功能必须在运行时通过所谓的“扩展机制”加载。由于这是一个繁琐的过程,因此有几个第三方库可以完成这项工作。最受欢迎的可能是GLEW,但它有很多问题。

(EDIT进一步说明:)值得注意的是,除了Windows OpenGL-1.1 ABI已经提供的功能之外 nothing (即WGL API,因为它是需要为Windows-NT4指定)才能访问最现代的OpenGL功能。当然,新引入的函数指针类型和数字标记值必须以某种方式定义 ,以便它们可以在源代码中使用,但是没有“强制”方式(即库)来执行它。这使得一个程序可以使用 - 例如 - 可以使用Visual C ++ 4构建的纯现代OpenGL-4核心配置文件(VC ++ 4于1995年发布),假设它仅使用语言功能和OS API当时有空。在Windows中创建现代OpenGL上下文的实际步骤在OpenGL Wiki中有很好的记录,并且读者可以参考此资源,因为详细说明此处的详细信息将基本上留下这个答案的范围。

OpenGL本身也不涉及创建窗口,处理用户输入等。您当然可以针对本机OS API进行编程。但通常你只想使用一些框架。 OpenGL开发的热门选择是GLFW,FreeGLUT,SDL2和SMFL。

答案 1 :(得分:2)

简短回答:安装编译器,找到该编译器的OpenGL教程。 (例如:Google:Visual Studio OpenGL教程)开始使用不再需要下载。它包含在编译器中。

长答案:

OpenGL SDK不是您安装的东西。 Basic SDK(OpenGL 2.1)应该使用任何标准编译器(Visual Studio和GCC)进行预先包装

您应该能够使用#include <gl/gl.h>使用预先打包的版本,并将相应的库添加到您的lib路径中(这些库也随编译器一起提供。您应该能够找到关于此的教程。)

要使用2.1以上的任何OpenGL版本,也不需要库。如果支持,您可以使用wglGetProcAddress(...)获取适当的功能以允许您使用这些功能。即使这样,你仍然需要创建一个OpenGL 2.1上下文。

但是,要轻松使用OpenGL3,您可能需要下载gl3.h标头。但是,没有gl3.lib个文件可供下载。您只需使用编译器附带的库。

原因是因为OpenGL没有在SDK中实现。它在您的图形卡的驱动程序中实现,您的程序直接与驱动程序通信。从用于查询支持函数的基本API和指向这些函数的指针开始,您可以调用它们。

答案 2 :(得分:1)

GLUT为您做到这一点,您不需要自己包含它。您的设置似乎存在问题。还有其他库可用于代替GLUT,但您需要使用其中一个,因为您无法直接处理OpenGL。