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