The model for interpretation of OpenGL commands is client/server. Application code (the client) issues commands, which are interpreted and processed by OpenGL (the server). The server may or may not operate on the same computer as the client. In this sense, OpenGL is network-transparent. A server can maintain several OpenGL contexts, each of which is an encapsulated OpenGL state. A client can connect to any one of these contexts. The required network protocol can be implemented by augmenting an already existing protocol (such as that of the X Window System) or by using an independent protocol. No OpenGL commands are provided for obtaining user input.
OpenGL命令的解释模型是客户机/服务器。应用程序代码(客户机)发出由OpenGL(服务器)解释和处理的命令。服务器可能与客户机在同一台计算机上运行,也可能不运行。从这个意义上说,OpenGL是网络透明的。服务器可以维护多个OpenGL上下文,每个上下文都是封装的OpenGL状态。客户机可以连接到这些上下文中的任何一个。所需的网络协议可以通过扩展现有的协议(例如X Window System的协议)或使用独立的协议来实现。没有提供OpenGL命令来获取用户输入。
The window system that allocates framebuffer resources ultimately controls the effects of OpenGL commands on the framebuffer. The window system:
分配framebuffer资源的窗口系统最终控制OpenGL命令对framebuffer的影响。窗口系统:
1. Determines which portions of the framebuffer OpenGL may access at any given time.
确定framebuffer OpenGL的哪些部分可以在任何给定时间访问。
2. Communicates to OpenGL how those portions are structured.
与OpenGL沟通这些部分的结构。
Therefore, there are no OpenGL commands to configure the framebuffer or initialize OpenGL. Frame buffer configuration is done outside of OpenGL in conjunction with the window system; OpenGL initialization takes place when the window system allocates a window for OpenGL rendering.
因此,没有OpenGL命令来配置framebuffer或初始化OpenGL。帧缓冲区配置是在OpenGL外部与窗口系统一起完成的;当窗口系统为OpenGL呈现分配一个窗口时,将进行OpenGL初始化。