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.

215 lines
7.9 KiB

  1. Name
  2. PGI_vertex_hints
  3. Name Strings
  4. GL_PGI_vertex_hints
  5. Version
  6. $Date: 1996/04/12 22:54:16 $ $Revision: 1.6 $
  7. Number
  8. 76
  9. Dependencies
  10. None
  11. Overview
  12. The extension allows the app to give hints regarding what kinds of
  13. OpenGL function calls will happen between Begin/End pairs.
  14. New Procedures and Functions
  15. None
  16. New Tokens
  17. Accepted by the <target> parameters of Hint and HintPGI:
  18. VERTEX_DATA_HINT_PGI 107050
  19. VERTEX_CONSISTENT_HINT_PGI 107051
  20. MATERIAL_SIDE_HINT_PGI 107052
  21. MAX_VERTEX_HINT_PGI 107053
  22. Accepted by the <mode> parameters of Hint and HintPGI:
  23. COLOR3_BIT_PGI 0x00010000
  24. COLOR4_BIT_PGI 0x00020000
  25. EDGEFLAG_BIT_PGI 0x00040000
  26. INDEX_BIT_PGI 0x00080000
  27. MAT_AMBIENT_BIT_PGI 0x00100000
  28. MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
  29. MAT_DIFFUSE_BIT_PGI 0x00400000
  30. MAT_EMISSION_BIT_PGI 0x00800000
  31. MAT_COLOR_INDEXES_BIT_PGI 0x01000000
  32. MAT_SHININESS_BIT_PGI 0x02000000
  33. MAT_SPECULAR_BIT_PGI 0x04000000
  34. NORMAL_BIT_PGI 0x08000000
  35. TEXCOORD1_BIT_PGI 0x10000000
  36. TEXCOORD2_BIT_PGI 0x20000000
  37. TEXCOORD3_BIT_PGI 0x40000000
  38. TEXCOORD4_BIT_PGI 0x80000000
  39. VERTEX23_BIT_PGI 0x00000004
  40. VERTEX4_BIT_PGI 0x00000008
  41. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  42. None
  43. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  44. None
  45. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
  46. and the Frame Buffer)
  47. None
  48. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  49. Functions Hint and HintPGI accept the following targets and modes:
  50. [All hints are subject to Push/Pop with the HINT_BIT attributes.]
  51. <target> = VERTEX_DATA_HINT_PGI
  52. This hint indicates which GL calls might occur between Begin/End pairs.
  53. If <mode> is any of FALSE, then the hint is "disabled" -- this means
  54. the application is not making any predictions about which GL calls
  55. might occur between Begin/End pairs. Otherwise, <mode> must be a
  56. bitwise OR of the following bits:
  57. COLOR3_BIT_PGI Color3*
  58. COLOR4_BIT_PGI Color4*
  59. EDGEFLAG_BIT_PGI EdgeFlag*
  60. INDEX_BIT_PGI Index*
  61. MAT_AMBIENT_BIT_PGI Material*(pname=AMBIENT)
  62. MAT_AMBIENT_AND_DIFFUSE_BIT_PGI Material*(pname=AMBIENT_AND_DIFFUSE)
  63. MAT_DIFFUSE_BIT_PGI Material*(pname=DIFFUSE)
  64. MAT_EMISSION_BIT_PGI Material*(pname=EMISSION)
  65. MAT_COLOR_INDEXES_BIT_PGI Material*(pname=COLOR_INDEXES)
  66. MAT_SHININESS_BIT_PGI Material*(pname=SHININESS)
  67. MAT_SPECULAR_BIT_PGI Material*(pname=SPECULAR)
  68. NORMAL_BIT_PGI Normal*
  69. TEXCOORD1_BIT_PGI TexCoord1*
  70. TEXCOORD2_BIT_PGI TexCoord2*
  71. TEXCOORD3_BIT_PGI TexCoord3*
  72. TEXCOORD4_BIT_PGI TexCoord4*
  73. VERTEX23_BIT_PGI Vertex[23]*
  74. VERTEX4_BIT_PGI Vertex4
  75. At least one of the bits VERTEX23_BIT_PGI or VERTEX4_BIT_PGI must be
  76. set in <mode>.
  77. Each bit above indicates that one of the associated OpenGL functions
  78. might occur between Begin/End pairs. If <mode> does not contain a
  79. given bit, then GL may assume that associated functions will not occur
  80. between Begin/End pairs -- in this case, behavior of these functions
  81. is undefined. (But the functions will not cause program termination.)
  82. <target> = VERTEX_CONSISTENT_HINT_PGI
  83. This hint indicates that OpenGL function calls will occur
  84. consistently between Begin/End pairs. If <mode> is either
  85. TRUE or FASTEST, then the application effectively is making
  86. the following assertion: Between Begin/End pairs, if any of
  87. the following functions -- Color, EdgeFlag, Index, Material,
  88. Normal, TexCoord -- occurs before one Vertex call, then it
  89. will occur before all Vertex calls. (Where "before" means the
  90. function will occur between the current Vertex function and the
  91. previous Vertex of Begin function.) If <mode> is NICEST, DONT_CARE,
  92. or FALSE, the application is asserting that any sequence of
  93. functions might occur between Begin/End pairs.
  94. If both VERTEX_CONSISTENT_HINT_PGI and VERTEX_DATA_HINT_PGI are
  95. enabled, then GL further assumes that any functions indicated in
  96. VERTEX_DATA_HINT_PGI will be called before each vertex call. When
  97. a single bit in VERTEX_DATA_HINT_PGI indicates a group of possible
  98. functions, GL assumes that at least one function from the group will
  99. be called before each Vertex function between Begin/End pairs.
  100. <target> = MAX_VERTEX_HINT_PGI
  101. This hint indicates the maximum number of Vertex functions which
  102. will occur between Begin/End pairs. If <mode> is FALSE then the
  103. hint is "disabled" -- any number of Vertex functions might occur
  104. between Begin/End pairs. However, if <mode> is any value greater
  105. than 0, then the application is asserting that at most that number
  106. of Vertex functions will occur between Begin/End pairs. In this
  107. case, if the application exceeds the promised number of Vertex
  108. calls, program termination may occur. Negative numbers also
  109. disable the hint.
  110. <target> = MATERIAL_SIDE_HINT_PGI
  111. This hint indicates which <face> paramters will occur for any
  112. Material functions called between Begin/End pairs. If <mode>
  113. is any of FALSE, DONT_CARE, NICEST, then this hint is "disabled" --
  114. any <face> parameters might occur in Material functions called
  115. between Begin/End pairs. If <mode> is FRONT, BACK, or
  116. FRONT_AND_BACK, then only the given value will be used in
  117. Material functions called between Begin/End pairs. If <mode>
  118. is TRUE or FASTEST, then only a single (unspecified) <face>
  119. parameter will be used in Material functions called between
  120. Begin/End pairs.
  121. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  122. None
  123. Additions to the GLX Specification
  124. None
  125. GLX Protocol
  126. None
  127. Interactions with PGI_misc_hints
  128. If the PGI_misc_hints extension is available, then the hints
  129. described above can be used through the HintPGI client function.
  130. If PGI_misc_hints is not avialable, then the hints above must
  131. be used through the usual Hint function.
  132. Errors
  133. INVALID_VALUE is generated if <target> for Hint or HintPGI is
  134. VERTEX_DATA_HINT_PGI and <mode> is not FALSE or some combination
  135. of the bits xxx_BIT_PGI. Also, if <mode> does not contain
  136. VERTEX23_BIT_PGI or VERTEX4_BIT_PGI (or both), then INVALID_VALUE
  137. is generated.
  138. INVALID_ENUM is generated if <target> for Hint or HintPGI is
  139. VERTEX_CONSISTENT_HINT_PGI and <mode> is not FASTEST, NICEST,
  140. DONT_CARE, TRUE, or FALSE
  141. INVALID_VALUE is generated if <target> for Hint or HintPGI is
  142. MAX_VERTEX_HINT_PGI and <mode> is a negative number.
  143. INVALID_ENUM is generated if <target> for Hint or HintPGI is
  144. MATERIAL_SIDE_HINT_PGI and <mode> is not FASTEST, NICEST,
  145. DONT_CARE, TRUE, FALSE, FRONT, BACK, or FRONT_AND_BACK.
  146. New State
  147. Initial
  148. Get Value Get Command Type Value Attrib
  149. --------- ----------- ---- ------- ------
  150. VERTEX_DATA_HINT_PGI GetIntegerv Z FALSE
  151. VERTEX_CONSISTENT_HINT_PGI GetIntegerv Z FALSE
  152. MAX_VERTEX_HINT_PGI GetIntegerv Z FALSE
  153. MATERIAL_SIDE_HINT_PGI GetIntegerv Z FALSE
  154. New Implementation Dependent State
  155. None