我最近决定开始学习OpenGL,我有几个问题.主要是,我想知道OpenGL是否依赖于窗口系统(如GTK +)以及窗口系统API的扩展,允许创建OpenGL区域.我也在OpenGL Wiki上看到了与Xlib类似的东西,它似乎是与X-Windowing系统更直接的连接.Xlib是一个更基本的窗口系统,还是可以创建完全由OpenGL控制的窗口?在两者都可能的情况下,哪个是更广泛接受的标准?
OpenGL的规范与窗口系统完全无关.就OpenGL而言,没有窗口.在这方面,所有这些都是系统提供的默认帧缓冲区(FBO 0),它通常连接到某个窗口 - 但是,并非必须如此.例如,有pbuffers,这是一种生成OpenGL上下文而根本没有可见窗口的方法.
所有这些问题都是依赖于平台的,因此不在OpenGL本身的范围内,而是一组依赖于平台的API:
EAGL,这与iPhone和iPad等iOS设备特别相关.另一方面,GTK +只是某种小部件库.它将使用平台的底层API来完成它的工作,它将依赖于特定于平台的GL上下文API来实现特定于GL的功能.与Qt相同.
Xlib是一个更基本的窗口系统,还是可以创建完全由OpenGL控制的窗口?
xlib是实现X协议的库,因此当您使用X Window系统时,它是最低级别的API(除了手动重新实现X协议).GTK +也会在这样的平台上使用它.
Windows永远不会控制Windows.您将始终需要一些与平台相关的方法来创建和管理窗口,OpenGL和GL上下文API都不会对您有所帮助.
如果你只想要一个与GL一起使用的窗口,那么使用像GTK +或Qt这样的GUI工具包可能会有点过分.有一些简单的OpenGL窗口和上下文管理库,如GLFW或freeGLUT(这是目前唯一仍在积极开发的GLUT规范实现),它们也抽象了特定于平台的API.如果您正在尝试构建游戏或多媒体软件,SDL和SFML等库也可能值得一看,因为它们为除GL以外的其他概念提供了一组抽象,尤其是音频.
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |