| 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 <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 |