Because the GL does not include queries for the performance characteristics of an implementation, some applications are written to recognize known platforms and modify their GL usage based on known performance characteristics of these platforms. Strings GGLL__VVEENNDDOORR and GGLL__RREENNDDEERREERR together uniquely specify a platform. They do not change from release to release and should be used by platform-recognition algorithms.
Some applications want to make use of features that are not part of the standard GL. These features may be implemented as extensions to the standard GL. The GGLL__EEXXTTEENNSSIIOONNSS string is a space-separated list of supported GL extensions. (Extension names never contain a space character.)
The GGLL__VVEERRSSIIOONN string begins with a version number. The version number uses one of these forms:
_m_a_j_o_r___n_u_m_b_e_r_._m_i_n_o_r___n_u_m_b_e_r
_m_a_j_o_r___n_u_m_b_e_r_._m_i_n_o_r___n_u_m_b_e_r_._r_e_l_e_a_s_e___n_u_m_b_e_r
Vendor-specific information may follow the version number. Its depends on the implementation, but a space always separates the version number and the vendor-specific information.
All strings are null-terminated.
The client and server may support different versions or extensions. ggllGGeettSSttrriinngg always returns a compatible version number or list of extensions. The release number always describes the server.
GGLL__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is generated if ggllGGeettSSttrriinngg is executed between the execution of ggllBBeeggiinn and the corresponding execution of ggllEEnndd.