执行模型
OpenGL 命令解释的模型是客户端/服务器。 应用程序代码(客户端)发出命令,由 OpenGL(服务器)解释和处理。 服务器可能与客户端在同一台计算机上运行,也可能不运行。 从这个意义上说,OpenGL 是网络透明的。 服务器可以维护多个 OpenGL 上下文,每个上下文都是封装的 OpenGL 状态。 客户端可以连接到其中任一上下文。 可以通过增强现有的协议(例如 X 窗口系统的协议)或使用独立协议来实现所需的网络协议。 没有提供 OpenGL 命令来获取用户输入。
分配 framebuffer 资源的窗口系统最终控制 OpenGL 命令对 framebuffer 的影响。 窗口系统:
- 确定 Framebuffer OpenGL 可以在任何给定时间访问哪些部分。
- 向 OpenGL 传达这些部分的结构。
因此,没有用于配置 framebuffer 或初始化 OpenGL 的 OpenGL 命令。 帧缓冲区配置与窗口系统一起在 OpenGL 外部完成;当窗口系统为 OpenGL 呈现分配窗口时,将进行 OpenGL 初始化。