291 lines
11 KiB
Plaintext
291 lines
11 KiB
Plaintext
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
|