Back to the OpenGL extension cross reference
GL_PGI_misc_hints
PGI_misc_hints
Name Strings
GL_PGI_misc_hints
Version
$Date: 1996/04/22 23:24:16 $ $Revision: 1.1 $
Number
77
Dependencies
None
Overview
The extension allows the app to give various hints regarding
desired level of conformance, performance, features, etc.
HintPGI
Accepted by the <target> parameters of Hint and HintPGI:
PREFER_DOUBLEBUFFER_HINT_PGI 107000
STRICT_DEPTHFUNC_HINT_PGI 107030
STRICT_LIGHTING_HINT_PGI 107031
STRICT_SCISSOR_HINT_PGI 107032
FULL_STIPPLE_HINT_PGI 107033
NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011
NATIVE_GRAPHICS_END_HINT_PGI 107012
CONSERVE_MEMORY_HINT_PGI 107005
RECLAIM_MEMORY_HINT_PGI 107006
ALWAYS_FAST_HINT_PGI 107020
ALWAYS_SOFT_HINT_PGI 107021
ALLOW_DRAW_OBJ_HINT_PGI 107022
ALLOW_DRAW_WIN_HINT_PGI 107023
ALLOW_DRAW_FRG_HINT_PGI 107024
ALLOW_DRAW_MEM_HINT_PGI 107025
CLIP_NEAR_HINT_PGI 107040
CLIP_FAR_HINT_PGI 107041
WIDE_LINE_HINT_PGI 107042
BACK_NORMALS_HINT_PGI 107043
Accepted by the <pname> parameter of GetIntegerv
GL_NATIVE_GRAPHICS_HANDLE_PGI 107010
Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
None
Additions to Chapter 3 of the 1.0 Specification (Rasterization)
None
Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
and the Frame Buffer)
None
Additions to Chapter 5 of the 1.0 Specification (Special Functions)
Function HintPGI behaves the same as Hint, except it accepts
only the hints described below (and hints from the PGI_vertex_hints
extension). HintPGI also has a slightly different prototype
than Hint:
void HintPGI ( GLenum target, GLint mode )
HintPGI calls are sent to the server as Hint, so this function
does not require additional server protocol.
Functions Hint and HintPGI accept the following targets and modes:
[All hints are subject to Push/Pop with the HINT_BIT attributes,
except for these hints: PREFER_DOUBLEBUFFER_HINT_PGI,
NATIVE_GRAPHICS_BEGIN_HINT_PGI, NATIVE_GRAPHICS_END_HINT_PGI,
RECLAIM_MEMORY_HINT_PGI.]
<target> = PREFER_DOUBLEBUFFER_HINT_PGI
This is a client-only mode. In some cases the PGI client may
change the singlebuffer/doublebuffer attributes of some GLX
visuals. If <mode> is TRUE, the client will tend to choose
doublebuffer in these cases; if <mode> is FALSE, the client
will tend to choose singlebuffer attributes.
<target> = STRICT_DEPTHFUNC_HINT_PGI
This hint indicates whether the application is willing to accept
non-conformant depth functions. When <mode> is TRUE or NICEST,
GL uses strictly conformant depth functions. When <mode> is
FALSE, FASTEST, or DONT_CARE, GL may use an improper depth
function.
<target> = STRICT_LIGHTING_HINT_PGI
This hint indicates whether the application is willing to accept
non-conformant lighting operations. When <mode> is TRUE or NICEST,
GL uses strictly conformant lighting operations. When <mode> is
FALSE, FASTEST, or DONT_CARE, GL may use non-conformant lighting.
<target> = STRICT_SCISSOR_HINT_PGI
This hint indicates whether the application is willing to accept
non-conformant scissoring operations. When <mode> is TRUE or NICEST,
GL uses strictly conformant scissoring. When <mode> is FALSE,
FASTEST, or DONT_CARE, GL may use non-conformant scissoring.
<target> = FULL_STIPPLE_HINT_PGI
This hint indicates whether the application is willing to accept
non-conformant polygon stippling. When <mode> is TRUE or NICEST,
GL uses strictly conformant polygon stippling. When <mode> is FALSE,
FASTEST, or DONT_CARE, GL may use only a subset of the polygon
stipple pattern.
<target> = NATIVE_GRAPHICS_BEGIN_HINT_PGI
This hint indicates that the application is about to perform
rendering through the native API, outside the scope of GL. If
<mode> is one of the parameters POINT, LINE, or FILL, then GL
prepares the native API for rendering of that kind of primitive.
If <mode> is TRUE, NICEST, or DONT_CARE, GL prepares the native
API for rendering of any primitive. If <mode> is FASTEST, GL does
minimal preparation of the native API, and the API may not be in a
suitable state for any rendering. If <mode> is FALSE, GL does nothing.
<target> = NATIVE_GRAPHICS_END_HINT_PGI
This hint indicates that the application has completed native-API
rendering outside the scope of GL, and that the application will not
use native-API rendering until the next NATIVE_GRAPHICS_BEGIN_HINT_PGI
hint. When <mode> is NICEST, GL assumes that the entire native-API
state may be corrupted, and completely resets its state. When <mode>
is TRUE, DONT_CARE, or FASTEST, GL performs minimal synchronization
of the native-API state. When <mode> is FALSE, GL does not adjust
the native-API state.
<target> = CONSERVE_MEMORY_HINT_PGI
The hint indicates that the application should attempt to conserve
memory, perhaps at the cost of performance. The <mode> parameter
indicates the level of conservation, from least conservation to
most conservation: FALSE, FASTEST, DONT_CARE, TRUE, or NICEST.
When <mode> is FALSE, GL does little or no memory conservation;
when <mode> is NICEST, GL does the most agressive memory conservation.
<target> = RECLAIM_MEMORY_HINT_PGI
The hint indicates that the application should reclaim unused
memory immediately. The <mode> parameter indicates how aggressively
GL reclaims memory: FALSE, FASTEST, DONT_CARE, TRUE, or NICEST.
When <mode> is FALSE, GL reclaims little or no memory;
when <mode> is NICEST, GL does the most agressive memory reclaimation.
<target> = ALLOW_DRAW_OBJ_HINT_PGI
<target> = ALLOW_DRAW_WIN_HINT_PGI
<target> = ALLOW_DRAW_SPN_HINT_PGI
<target> = ALLOW_DRAW_MEM_HINT_PGI
<target> = ALWAYS_FAST_HINT_PGI
<target> = ALWAYS_SOFT_HINT_PGI
The <mode> for each of these hints may be TRUE or FALSE only.
Each of the ALLOW_DRAW_xxx_HINT_PGI hints indicates if OpenGL
low-level rendering may occur at the object-coordinate level,
window-coordinate level, fragment level, or plain-memory level.
If <mode> for a given <target> is TRUE, rendering may occur at
that level; if the <mode> is FALSE, rendering will not occur at
that level (perhaps at the expense of performance or conformance).
The two ALWAYS_xxxx_HINT_PGI hints describe combinations of the
ALLOW_DRAW_xxx_HINT_PGI hints. If ALWAYS_FAST_HINT_PGI is TRUE,
then ALLOW_DRAW_OBJ_HINT_PGI is set TRUE, and the other ALLOW_DRAW_-
xxx_HINT_PGI hints are set to FALSE. If ALWAYS_FAST_HINT_PGI is
FALSE, then all ALLOW_DRAW_xxx_HINT_PGI hints are set TRUE.
If ALWAYS_SOFT_HINT_PGI is TRUE, then ALLOW_DRAW_OBJ_HINT_PGI
is set FALSE, ALLOW_DRAW_MEM_HINT_PGI is set TRUE, and
ALLOW_DRAW_WIN_HINT_PGI and ALLOW_DRAW_SPN_HINT_PGI are set to
TRUE or FALSE in an implementation-dependent manner.
<target> = CLIP_NEAR_HINT_PGI
<target> = CLIP_FAR_HINT_PGI
These hints indicate that the application does not require
hither/yon clipping when the depth test is disabled. (The hint
has no effect when depth testing is enabled.) If <mode> is FALSE,
DONT_CARE, or FASTEST, GL may inhibit hither/yon clipping in some
situations. If <mode> is NICEST, or TRUE, GL performs ordinary
hither/yon clipping. If hither or yon clipping is disabled, and
if fragment depth values fall outside the range [0.0-1.0], then
rendering behavior is implementation-dependent.
<target> = LINE_WIDE_HINT_PGI
Indicates the rendering quality and speed of lines whose widths are
not equal to 1.0. Allowed values are GL_FASTEST, GL_NICEST, and
GL_DONT_CARE.
<target> = BACK_NORMALS_HINT
Indicates that normals of backfacing facets should be inverted
when lighting is enabled, even if LIGHT_MODEL_TWO_SIDE is disabled.
The hint has no effect when lighting is disabled, and when
LIGHT_MODEL_TWO_SIDE is enabled. If <mode> is FALSE, DONT_CARE,
or NICEST, GL inverts normals only when LIGHT_MODEL_TWO_SIDE is
enabled. If <mode> is FASTEST or TRUE, GL inverts the normals
of backfacing facets whenever lighting is enabled.
Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
None
Additions to the GLX Specification
None
GLX Protocol
None
Interactions with PGI_vertex_hints
If PGI_vertex_hints is available, then hints from that extension
may be used with the HintPGI function.
Errors
INVALID_ENUM is generated if <target> or <mode> for Hint or HintPGI
is not one of the GLenums discussed above.
New State
Initial
Get Value Get Command Type Value Attrib
--------- ----------- ---- ------- ------
STRICT_DEPTHFUNC_HINT_PGI GetIntegerv Z TRUE hint
STRICT_LIGHTING_HINT_PGI GetIntegerv Z TRUE hint
STRICT_SCISSOR_HINT_PGI GetIntegerv Z TRUE hint
FULL_STIPPLE_HINT_PGI GetIntegerv Z TRUE hint
CONSERVE_MEMORY_HINT_PGI GetIntegerv Z FALSE hint
ALWAYS_FAST_HINT_PGI GetIntegerv Z FALSE hint
ALWAYS_SOFT_HINT_PGI GetIntegerv Z FALSE hint
ALLOW_DRAW_OBJ_HINT_PGI GetIntegerv Z TRUE hint
ALLOW_DRAW_WIN_HINT_PGI GetIntegerv Z TRUE hint
ALLOW_DRAW_SPN_HINT_PGI GetIntegerv Z TRUE hint
ALLOW_DRAW_MEM_HINT_PGI GetIntegerv Z TRUE hint
WIDE_LINE_HINT_PGI GetIntegerv Z DONT_CARE hint
CLIP_NEAR_HINT_PGI GetIntegerv Z TRUE hint
CLIP_FAR_HINT_PGI GetIntegerv Z TRUE hint
BACK_NORMALS_HINT_PGI GetIntegerv Z FALSE hint
New Implementation Dependent State
Initial
Get Value Get Command Type Value Attrib
--------- ----------- ---- ------- ------
PREFER_DOUBLEBUFFER_HINT_PGI GetIntegerv Z +++ client
NATIVE_GRAPHICS_HANDLE_PGI GetIntegerv Z *** client
+++ Implementation-dependent. (TRUE preferred.)
*** 0 if direct rendering to native API is not available;
otherwise, this is the handle for direct rendering to native API
Implementation Support
List of OpenGL implementations supporting the GL_PGI_misc_hints extension
Original File
Original text file for the GL_PGI_misc_hints extension
Page generated on Sun Nov 20 18:38:55 2005