|
|
Name
PGI_misc_hints
Name Strings
GL_PGI_misc_hints
Version
$Date: 1996/04/12 22:54:15 $ $Revision: 1.7 $
Number
77
Dependencies
None
Overview
The extension allows the app to give various hints regarding desired level of conformance, performance, features, etc.
New Procedures and Functions
HintPGI
New Tokens
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
|