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.

290 lines
11 KiB

  1. Name
  2. PGI_misc_hints
  3. Name Strings
  4. GL_PGI_misc_hints
  5. Version
  6. $Date: 1996/04/12 22:54:15 $ $Revision: 1.7 $
  7. Number
  8. 77
  9. Dependencies
  10. None
  11. Overview
  12. The extension allows the app to give various hints regarding
  13. desired level of conformance, performance, features, etc.
  14. New Procedures and Functions
  15. HintPGI
  16. New Tokens
  17. Accepted by the <target> parameters of Hint and HintPGI:
  18. PREFER_DOUBLEBUFFER_HINT_PGI 107000
  19. STRICT_DEPTHFUNC_HINT_PGI 107030
  20. STRICT_LIGHTING_HINT_PGI 107031
  21. STRICT_SCISSOR_HINT_PGI 107032
  22. FULL_STIPPLE_HINT_PGI 107033
  23. NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011
  24. NATIVE_GRAPHICS_END_HINT_PGI 107012
  25. CONSERVE_MEMORY_HINT_PGI 107005
  26. RECLAIM_MEMORY_HINT_PGI 107006
  27. ALWAYS_FAST_HINT_PGI 107020
  28. ALWAYS_SOFT_HINT_PGI 107021
  29. ALLOW_DRAW_OBJ_HINT_PGI 107022
  30. ALLOW_DRAW_WIN_HINT_PGI 107023
  31. ALLOW_DRAW_FRG_HINT_PGI 107024
  32. ALLOW_DRAW_MEM_HINT_PGI 107025
  33. CLIP_NEAR_HINT_PGI 107040
  34. CLIP_FAR_HINT_PGI 107041
  35. WIDE_LINE_HINT_PGI 107042
  36. BACK_NORMALS_HINT_PGI 107043
  37. Accepted by the <pname> parameter of GetIntegerv
  38. GL_NATIVE_GRAPHICS_HANDLE_PGI 107010
  39. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  40. None
  41. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  42. None
  43. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
  44. and the Frame Buffer)
  45. None
  46. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  47. Function HintPGI behaves the same as Hint, except it accepts
  48. only the hints described below (and hints from the PGI_vertex_hints
  49. extension). HintPGI also has a slightly different prototype
  50. than Hint:
  51. void HintPGI ( GLenum target, GLint mode )
  52. HintPGI calls are sent to the server as Hint, so this function
  53. does not require additional server protocol.
  54. Functions Hint and HintPGI accept the following targets and modes:
  55. [All hints are subject to Push/Pop with the HINT_BIT attributes,
  56. except for these hints: PREFER_DOUBLEBUFFER_HINT_PGI,
  57. NATIVE_GRAPHICS_BEGIN_HINT_PGI, NATIVE_GRAPHICS_END_HINT_PGI,
  58. RECLAIM_MEMORY_HINT_PGI.]
  59. <target> = PREFER_DOUBLEBUFFER_HINT_PGI
  60. This is a client-only mode. In some cases the PGI client may
  61. change the singlebuffer/doublebuffer attributes of some GLX
  62. visuals. If <mode> is TRUE, the client will tend to choose
  63. doublebuffer in these cases; if <mode> is FALSE, the client
  64. will tend to choose singlebuffer attributes.
  65. <target> = STRICT_DEPTHFUNC_HINT_PGI
  66. This hint indicates whether the application is willing to accept
  67. non-conformant depth functions. When <mode> is TRUE or NICEST,
  68. GL uses strictly conformant depth functions. When <mode> is
  69. FALSE, FASTEST, or DONT_CARE, GL may use an improper depth
  70. function.
  71. <target> = STRICT_LIGHTING_HINT_PGI
  72. This hint indicates whether the application is willing to accept
  73. non-conformant lighting operations. When <mode> is TRUE or NICEST,
  74. GL uses strictly conformant lighting operations. When <mode> is
  75. FALSE, FASTEST, or DONT_CARE, GL may use non-conformant lighting.
  76. <target> = STRICT_SCISSOR_HINT_PGI
  77. This hint indicates whether the application is willing to accept
  78. non-conformant scissoring operations. When <mode> is TRUE or NICEST,
  79. GL uses strictly conformant scissoring. When <mode> is FALSE,
  80. FASTEST, or DONT_CARE, GL may use non-conformant scissoring.
  81. <target> = FULL_STIPPLE_HINT_PGI
  82. This hint indicates whether the application is willing to accept
  83. non-conformant polygon stippling. When <mode> is TRUE or NICEST,
  84. GL uses strictly conformant polygon stippling. When <mode> is FALSE,
  85. FASTEST, or DONT_CARE, GL may use only a subset of the polygon
  86. stipple pattern.
  87. <target> = NATIVE_GRAPHICS_BEGIN_HINT_PGI
  88. This hint indicates that the application is about to perform
  89. rendering through the native API, outside the scope of GL. If
  90. <mode> is one of the parameters POINT, LINE, or FILL, then GL
  91. prepares the native API for rendering of that kind of primitive.
  92. If <mode> is TRUE, NICEST, or DONT_CARE, GL prepares the native
  93. API for rendering of any primitive. If <mode> is FASTEST, GL does
  94. minimal preparation of the native API, and the API may not be in a
  95. suitable state for any rendering. If <mode> is FALSE, GL does nothing.
  96. <target> = NATIVE_GRAPHICS_END_HINT_PGI
  97. This hint indicates that the application has completed native-API
  98. rendering outside the scope of GL, and that the application will not
  99. use native-API rendering until the next NATIVE_GRAPHICS_BEGIN_HINT_PGI
  100. hint. When <mode> is NICEST, GL assumes that the entire native-API
  101. state may be corrupted, and completely resets its state. When <mode>
  102. is TRUE, DONT_CARE, or FASTEST, GL performs minimal synchronization
  103. of the native-API state. When <mode> is FALSE, GL does not adjust
  104. the native-API state.
  105. <target> = CONSERVE_MEMORY_HINT_PGI
  106. The hint indicates that the application should attempt to conserve
  107. memory, perhaps at the cost of performance. The <mode> parameter
  108. indicates the level of conservation, from least conservation to
  109. most conservation: FALSE, FASTEST, DONT_CARE, TRUE, or NICEST.
  110. When <mode> is FALSE, GL does little or no memory conservation;
  111. when <mode> is NICEST, GL does the most agressive memory conservation.
  112. <target> = RECLAIM_MEMORY_HINT_PGI
  113. The hint indicates that the application should reclaim unused
  114. memory immediately. The <mode> parameter indicates how aggressively
  115. GL reclaims memory: FALSE, FASTEST, DONT_CARE, TRUE, or NICEST.
  116. When <mode> is FALSE, GL reclaims little or no memory;
  117. when <mode> is NICEST, GL does the most agressive memory reclaimation.
  118. <target> = ALLOW_DRAW_OBJ_HINT_PGI
  119. <target> = ALLOW_DRAW_WIN_HINT_PGI
  120. <target> = ALLOW_DRAW_SPN_HINT_PGI
  121. <target> = ALLOW_DRAW_MEM_HINT_PGI
  122. <target> = ALWAYS_FAST_HINT_PGI
  123. <target> = ALWAYS_SOFT_HINT_PGI
  124. The <mode> for each of these hints may be TRUE or FALSE only.
  125. Each of the ALLOW_DRAW_xxx_HINT_PGI hints indicates if OpenGL
  126. low-level rendering may occur at the object-coordinate level,
  127. window-coordinate level, fragment level, or plain-memory level.
  128. If <mode> for a given <target> is TRUE, rendering may occur at
  129. that level; if the <mode> is FALSE, rendering will not occur at
  130. that level (perhaps at the expense of performance or conformance).
  131. The two ALWAYS_xxxx_HINT_PGI hints describe combinations of the
  132. ALLOW_DRAW_xxx_HINT_PGI hints. If ALWAYS_FAST_HINT_PGI is TRUE,
  133. then ALLOW_DRAW_OBJ_HINT_PGI is set TRUE, and the other ALLOW_DRAW_-
  134. xxx_HINT_PGI hints are set to FALSE. If ALWAYS_FAST_HINT_PGI is
  135. FALSE, then all ALLOW_DRAW_xxx_HINT_PGI hints are set TRUE.
  136. If ALWAYS_SOFT_HINT_PGI is TRUE, then ALLOW_DRAW_OBJ_HINT_PGI
  137. is set FALSE, ALLOW_DRAW_MEM_HINT_PGI is set TRUE, and
  138. ALLOW_DRAW_WIN_HINT_PGI and ALLOW_DRAW_SPN_HINT_PGI are set to
  139. TRUE or FALSE in an implementation-dependent manner.
  140. <target> = CLIP_NEAR_HINT_PGI
  141. <target> = CLIP_FAR_HINT_PGI
  142. These hints indicate that the application does not require
  143. hither/yon clipping when the depth test is disabled. (The hint
  144. has no effect when depth testing is enabled.) If <mode> is FALSE,
  145. DONT_CARE, or FASTEST, GL may inhibit hither/yon clipping in some
  146. situations. If <mode> is NICEST, or TRUE, GL performs ordinary
  147. hither/yon clipping. If hither or yon clipping is disabled, and
  148. if fragment depth values fall outside the range [0.0-1.0], then
  149. rendering behavior is implementation-dependent.
  150. <target> = LINE_WIDE_HINT_PGI
  151. Indicates the rendering quality and speed of lines whose widths are
  152. not equal to 1.0. Allowed values are GL_FASTEST, GL_NICEST, and
  153. GL_DONT_CARE.
  154. <target> = BACK_NORMALS_HINT
  155. Indicates that normals of backfacing facets should be inverted
  156. when lighting is enabled, even if LIGHT_MODEL_TWO_SIDE is disabled.
  157. The hint has no effect when lighting is disabled, and when
  158. LIGHT_MODEL_TWO_SIDE is enabled. If <mode> is FALSE, DONT_CARE,
  159. or NICEST, GL inverts normals only when LIGHT_MODEL_TWO_SIDE is
  160. enabled. If <mode> is FASTEST or TRUE, GL inverts the normals
  161. of backfacing facets whenever lighting is enabled.
  162. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  163. None
  164. Additions to the GLX Specification
  165. None
  166. GLX Protocol
  167. None
  168. Interactions with PGI_vertex_hints
  169. If PGI_vertex_hints is available, then hints from that extension
  170. may be used with the HintPGI function.
  171. Errors
  172. INVALID_ENUM is generated if <target> or <mode> for Hint or HintPGI
  173. is not one of the GLenums discussed above.
  174. New State
  175. Initial
  176. Get Value Get Command Type Value Attrib
  177. --------- ----------- ---- ------- ------
  178. STRICT_DEPTHFUNC_HINT_PGI GetIntegerv Z TRUE hint
  179. STRICT_LIGHTING_HINT_PGI GetIntegerv Z TRUE hint
  180. STRICT_SCISSOR_HINT_PGI GetIntegerv Z TRUE hint
  181. FULL_STIPPLE_HINT_PGI GetIntegerv Z TRUE hint
  182. CONSERVE_MEMORY_HINT_PGI GetIntegerv Z FALSE hint
  183. ALWAYS_FAST_HINT_PGI GetIntegerv Z FALSE hint
  184. ALWAYS_SOFT_HINT_PGI GetIntegerv Z FALSE hint
  185. ALLOW_DRAW_OBJ_HINT_PGI GetIntegerv Z TRUE hint
  186. ALLOW_DRAW_WIN_HINT_PGI GetIntegerv Z TRUE hint
  187. ALLOW_DRAW_SPN_HINT_PGI GetIntegerv Z TRUE hint
  188. ALLOW_DRAW_MEM_HINT_PGI GetIntegerv Z TRUE hint
  189. WIDE_LINE_HINT_PGI GetIntegerv Z DONT_CARE hint
  190. CLIP_NEAR_HINT_PGI GetIntegerv Z TRUE hint
  191. CLIP_FAR_HINT_PGI GetIntegerv Z TRUE hint
  192. BACK_NORMALS_HINT_PGI GetIntegerv Z FALSE hint
  193. New Implementation Dependent State
  194. Initial
  195. Get Value Get Command Type Value Attrib
  196. --------- ----------- ---- ------- ------
  197. PREFER_DOUBLEBUFFER_HINT_PGI GetIntegerv Z +++ client
  198. NATIVE_GRAPHICS_HANDLE_PGI GetIntegerv Z *** client
  199. +++ Implementation-dependent. (TRUE preferred.)
  200. *** 0 if direct rendering to native API is not available;
  201. otherwise, this is the handle for direct rendering to native API