Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

244 lines
8.6 KiB

  1. * Template for documenting an extension to OpenGL
  2. *
  3. * Notes:
  4. *
  5. * Comments in this template document are preceded by an asterisk.
  6. * This entire section is one big comment.
  7. *
  8. * Extension documents are simple ASCII text, 132 characters wide.
  9. * Here is a line of 132 characters to use as a calibration:
  10. *
  11. *00000000011111111112222222222333333333344444444445555555555666666666677777777778888888888999999999900000000001111111111222222222233
  12. *
  13. * Although the extension file is formally 132 characters wide,
  14. * text is limited to 80 characters, and only tables that require
  15. * more than 80 character width extend to the full file width.
  16. *
  17. * The extension is completely described in the "Additions to
  18. * Chapter N ..." sections. These sections are written as though
  19. * the additions described by previous extensions had actually been
  20. * made to GL specification chapters 2 through 6. The "Dependencies
  21. * on Extension N" sections are used to describe how the extension
  22. * semantics are modified if a previous extension is not supported,
  23. * or to indicate that a previous extension must be supported.
  24. *
  25. * When changes are made to the contents of a table, it is preferred
  26. * that the entire table be recreated in the extension document,
  27. * just as it would be if the GL Specification were modified by the
  28. * extension. Subsequent extensions that modify the same table
  29. * incorporate all the changes of the previous extensions,
  30. * representing the table in its completely updated form.
  31. *
  32. * To be consistent with the 1.0 OpenGL Specification, extension
  33. * documents omit gl prefixes on command names, GL_ prefixes on
  34. * token names, and GL prefixes on type names. Vendor-specific
  35. * suffixes are included in these files, however. Also, the OpenGL
  36. * Specification is referred to as the GL Specification, and OpenGL
  37. * is referred to as GL. To be consistent with the GLX
  38. * specification, however, extension documents include glX prefixes
  39. * on command names and GLX_ prefixes on token names.
  40. *
  41. * An extension document should include all the headers in this
  42. * template. If there is no text to follow a header, this is
  43. * indicated by the word "None", such as:
  44. *
  45. * Dependencies
  46. *
  47. * None
  48. *
  49. * Lower-case or numeric subscripts of upper-case variables are
  50. * simply appended to the variable. For example "R subscript t"
  51. * is written as Rt. If it is not easy to distinguish the variable
  52. * from the subscript, an underbar is used to separate them. For
  53. * example, "R subscript T" is written as R_T.
  54. *
  55. * Multiplication is indicated with an asterisk, not by adjacency
  56. * of two variables.
  57. *
  58. * In text, parameter names are distinguished by being surrounded
  59. * with angle brackets. For example, the pname parameter to
  60. * TexParameter is written as <pname>.
  61. *
  62. * Here's the template:
  63. XXX - Not complete yet!!!
  64. * Leave this warning in until the specification is complete.
  65. Name
  66. * The formal name of the extension. The prefix of the name is
  67. * one of SGI, SGIS, or SGIX, indicating that the extension
  68. * is for all SGI machines (SGI), for a subset of SGI machines
  69. * (SGIS), or is experimental, and may not be supported in any
  70. * future implementations (SGIX). The prefix may also be EXT
  71. * if two or more GL vendors have agreed to support the extension.
  72. *
  73. * The prefix is separated from the body of the name by an underscore.
  74. * Words within the name are also separated by underscores. There is
  75. * no capitalization used in the body of the name. For example:
  76. *
  77. * Name
  78. *
  79. * SGI_new_extension
  80. Name Strings
  81. * If the extension name is returned by glGetString, then it is
  82. * listed here with the prefix GL_. If it is returned by
  83. * glXQueryExtensionsString, then it is listed here with the
  84. * prefix GLX_. Finally, if the extension name is returned by
  85. * gluGetString, then it is listed here with the prefix GLU.
  86. * For example, an extension which adds entry points to both
  87. * GLX and OpenGL would be listed as:
  88. *
  89. * GL_SGI_new_extension
  90. * GLX_SGI_new_extension
  91. *
  92. * These strings are included in the header files, and are returned
  93. * by the string query functions.
  94. Version
  95. $Date: 1995/03/31 04:40:57 $ $Revision: 1.11 $
  96. Number
  97. * Extensions are numbered for documentation purposes. Each
  98. * extension must document its interactions with the core OpenGL
  99. * specification and with all other extensions that have lower
  100. * numbers. For example, extension 3 must document its
  101. * interactions with the core document and with extensions 1 and 2.
  102. *
  103. * The extension number has no meaning outside of the documentation.
  104. * In particular, it is not revealed to programmers who use OpenGL.
  105. Dependencies
  106. * Separately list all extensions that MUST be present for this
  107. * extension to be implemented, and all extensions whose presence or
  108. * absence modifies the operation of this extension.
  109. Overview
  110. * What does the extension do? What problem does it solve?
  111. New Procedures and Functions
  112. * List all the procedures and functions that are defined by this
  113. * extension. Each should be suffixed using the same string as was
  114. * chosen as the extension name prefix. All parameter names and
  115. * types must be included, including the return values of functions.
  116. * For example:
  117. *
  118. * void NewCommandSGI(int arg1,
  119. * float arg2);
  120. New Tokens
  121. * This list should be complete. It should separate the new tokens
  122. * based on which procedures and parameters accept them, and explicitly
  123. * list those procedures and parameters. Token suffixes must match the
  124. * prefix chosen for the extension name. For example:
  125. *
  126. * Accepted by the <pname> parameters of GetBooleanv, GetIntegerv,
  127. * GetFloatv, and GetDoublev:
  128. *
  129. * NEW_TOKEN_SGI
  130. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  131. * Include any new command suffixs here (2.3)
  132. * Include any new error types here (2.5)
  133. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  134. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
  135. and the Frame Buffer)
  136. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  137. * List commands that are not included in display lists (typically Get*
  138. * commands)
  139. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  140. * The lists of state and implementation-dependent state are below,
  141. * however. Add queries and new attributes here.
  142. Additions to the GLX Specification
  143. GLX Protocol
  144. * Add protocol here using the same format as the GLX protocol
  145. * document. Be sure to specify the values of enumerated types.
  146. *
  147. * Use glXVendorPrivate for extended requests without a reply
  148. * (e.g., new GLX commands) :
  149. * glXVendorPrivate
  150. *
  151. * 1 CARD8 opcode (X assigned)
  152. * 1 16 GLX opcode
  153. * 2 2+(n+p)/4 request length
  154. * 4 CARD32 vendor-specific opcode
  155. * n LISTofBYTE vendor-specific data
  156. * p unused, p=pad(n)
  157. *
  158. * Make sure to reserve a vendor-specific opcode from SGI; then define
  159. * the layout of the vendor-specific data.
  160. *
  161. * Use glXVendorPrivateWithReply for extended requests with a reply
  162. * (e.g., new gets for OpenGL):
  163. *
  164. * glXVendorPrivateWithReply
  165. *
  166. * 1 CARD8 opcode (X assigned)
  167. * 1 17 GLX opcode
  168. * 2 2+(n+p)/4 request length
  169. * 4 CARD32 vendor-specific opcode
  170. * n LISTofBYTE vendor-specific data
  171. * p unused, p=pad(n)
  172. * =>
  173. * 1 1 reply
  174. * 1 unused
  175. * 2 CARD16 sequence number
  176. * 4 n reply length
  177. * 24 LISTofBYTE returned data
  178. * 4*n LISTofBYTE more returned data
  179. *
  180. * This is similar to glXVendorPrivate except you also need to define the
  181. * layout of the returned data.
  182. *
  183. * For extended OpenGL commands, be sure to specify whether it is a
  184. * rendering command or a non-rendering command, and if it is a rendering
  185. * command, whether or not it can be large.
  186. *
  187. * To specify an extended visual attribute, specify a property type/property
  188. * value pair to use with glXGetVisualConfigs.
  189. Dependencies on SGI_extension_name
  190. * Separately list only the extensions with lower indexes on which this
  191. * extension is dependent. Do not list null dependencies - this just
  192. * creates unnecessary documentation dependencies!
  193. Errors
  194. * This list should be complete.
  195. New State
  196. * Description of all state values in table format. Note that client
  197. * state should have "client" listed in the Attrib column.
  198. Initial
  199. Get Value Get Command Type Value Attrib
  200. --------- ----------- ---- ------- ------
  201. New Implementation Dependent State
  202. * Description of all implementation dependent state in table format.
  203. Minimum
  204. Get Value Get Command Type Value
  205. --------- ----------- ---- -------