Name 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. New Procedures and Functions HintPGI New Tokens Accepted by the 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 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.] = 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 is TRUE, the client will tend to choose doublebuffer in these cases; if is FALSE, the client will tend to choose singlebuffer attributes. = STRICT_DEPTHFUNC_HINT_PGI This hint indicates whether the application is willing to accept non-conformant depth functions. When is TRUE or NICEST, GL uses strictly conformant depth functions. When is FALSE, FASTEST, or DONT_CARE, GL may use an improper depth function. = STRICT_LIGHTING_HINT_PGI This hint indicates whether the application is willing to accept non-conformant lighting operations. When is TRUE or NICEST, GL uses strictly conformant lighting operations. When is FALSE, FASTEST, or DONT_CARE, GL may use non-conformant lighting. = STRICT_SCISSOR_HINT_PGI This hint indicates whether the application is willing to accept non-conformant scissoring operations. When is TRUE or NICEST, GL uses strictly conformant scissoring. When is FALSE, FASTEST, or DONT_CARE, GL may use non-conformant scissoring. = FULL_STIPPLE_HINT_PGI This hint indicates whether the application is willing to accept non-conformant polygon stippling. When is TRUE or NICEST, GL uses strictly conformant polygon stippling. When is FALSE, FASTEST, or DONT_CARE, GL may use only a subset of the polygon stipple pattern. = 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 is one of the parameters POINT, LINE, or FILL, then GL prepares the native API for rendering of that kind of primitive. If is TRUE, NICEST, or DONT_CARE, GL prepares the native API for rendering of any primitive. If is FASTEST, GL does minimal preparation of the native API, and the API may not be in a suitable state for any rendering. If is FALSE, GL does nothing. = 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 is NICEST, GL assumes that the entire native-API state may be corrupted, and completely resets its state. When is TRUE, DONT_CARE, or FASTEST, GL performs minimal synchronization of the native-API state. When is FALSE, GL does not adjust the native-API state. = CONSERVE_MEMORY_HINT_PGI The hint indicates that the application should attempt to conserve memory, perhaps at the cost of performance. The parameter indicates the level of conservation, from least conservation to most conservation: FALSE, FASTEST, DONT_CARE, TRUE, or NICEST. When is FALSE, GL does little or no memory conservation; when is NICEST, GL does the most agressive memory conservation. = RECLAIM_MEMORY_HINT_PGI The hint indicates that the application should reclaim unused memory immediately. The parameter indicates how aggressively GL reclaims memory: FALSE, FASTEST, DONT_CARE, TRUE, or NICEST. When is FALSE, GL reclaims little or no memory; when is NICEST, GL does the most agressive memory reclaimation. = ALLOW_DRAW_OBJ_HINT_PGI = ALLOW_DRAW_WIN_HINT_PGI = ALLOW_DRAW_SPN_HINT_PGI = ALLOW_DRAW_MEM_HINT_PGI = ALWAYS_FAST_HINT_PGI = ALWAYS_SOFT_HINT_PGI The 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 for a given is TRUE, rendering may occur at that level; if the 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. = CLIP_NEAR_HINT_PGI = 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 is FALSE, DONT_CARE, or FASTEST, GL may inhibit hither/yon clipping in some situations. If 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. = 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. = 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 is FALSE, DONT_CARE, or NICEST, GL inverts normals only when LIGHT_MODEL_TWO_SIDE is enabled. If 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 or 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