执行模型

解释 OpenGL 命令的模型是客户端/服务器。 应用程序代码 (客户端) 发出命令,这些命令由 OpenGL (服务器) 进行解释和处理。 服务器可能与客户端在同一台计算机上运行,也可能不运行。 从这个意义上说,OpenGL 是网络透明的。 服务器可以维护多个 OpenGL 上下文,其中每个上下文都是封装的 OpenGL 状态。 客户端可以连接到其中任一上下文。 可以通过扩充现有协议(如 X Window 系统) )或使用独立协议来实现所需的网络协议 (。 不提供用于获取用户输入的 OpenGL 命令。

分配 framebuffer 资源的窗口系统最终控制 OpenGL 命令对 framebuffer 的影响。 窗口系统:

  • 确定帧缓冲区 OpenGL 的哪些部分可以在任何给定时间访问。
  • 向 OpenGL 传达这些部分的结构。

因此,没有 OpenGL 命令来配置 framebuffer 或初始化 OpenGL。 帧缓冲区配置是在 OpenGL 外部与窗口系统一起完成的;当窗口系统为 OpenGL 呈现分配窗口时,将进行 OpenGL 初始化。