15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    PGI_misc_hints
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_PGI_misc_hints
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciVersion
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    $Date: 1996/04/22 23:24:16 $ $Revision: 1.1 $
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNumber
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    77
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciDependencies
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    None
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciOverview
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    The extension allows the app to give various hints regarding 
245bd8deadSopenharmony_ci    desired level of conformance, performance, features, etc.
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciNew Procedures and Functions
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    HintPGI
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciNew Tokens
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    Accepted by the <target> parameters of Hint and HintPGI:
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ci        PREFER_DOUBLEBUFFER_HINT_PGI        107000
355bd8deadSopenharmony_ci        STRICT_DEPTHFUNC_HINT_PGI           107030
365bd8deadSopenharmony_ci        STRICT_LIGHTING_HINT_PGI            107031
375bd8deadSopenharmony_ci        STRICT_SCISSOR_HINT_PGI             107032
385bd8deadSopenharmony_ci        FULL_STIPPLE_HINT_PGI               107033
395bd8deadSopenharmony_ci        NATIVE_GRAPHICS_BEGIN_HINT_PGI      107011
405bd8deadSopenharmony_ci        NATIVE_GRAPHICS_END_HINT_PGI        107012
415bd8deadSopenharmony_ci        CONSERVE_MEMORY_HINT_PGI            107005
425bd8deadSopenharmony_ci        RECLAIM_MEMORY_HINT_PGI             107006
435bd8deadSopenharmony_ci        ALWAYS_FAST_HINT_PGI                107020
445bd8deadSopenharmony_ci        ALWAYS_SOFT_HINT_PGI                107021
455bd8deadSopenharmony_ci        ALLOW_DRAW_OBJ_HINT_PGI             107022
465bd8deadSopenharmony_ci        ALLOW_DRAW_WIN_HINT_PGI             107023
475bd8deadSopenharmony_ci        ALLOW_DRAW_FRG_HINT_PGI             107024
485bd8deadSopenharmony_ci        ALLOW_DRAW_MEM_HINT_PGI             107025
495bd8deadSopenharmony_ci        CLIP_NEAR_HINT_PGI                  107040
505bd8deadSopenharmony_ci        CLIP_FAR_HINT_PGI                   107041
515bd8deadSopenharmony_ci        WIDE_LINE_HINT_PGI                  107042
525bd8deadSopenharmony_ci        BACK_NORMALS_HINT_PGI               107043
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetIntegerv
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci        GL_NATIVE_GRAPHICS_HANDLE_PGI       107010
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci    None
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization)
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    None
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
675bd8deadSopenharmony_ciand the Frame Buffer)
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ci    None
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions)
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    Function HintPGI behaves the same as Hint, except it accepts
745bd8deadSopenharmony_ci    only the hints described below (and hints from the PGI_vertex_hints
755bd8deadSopenharmony_ci    extension).  HintPGI also has a slightly different prototype
765bd8deadSopenharmony_ci    than Hint:
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci         void HintPGI ( GLenum target, GLint mode )
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ci    HintPGI calls are sent to the server as Hint, so this function
815bd8deadSopenharmony_ci    does not require additional server protocol.
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci    Functions Hint and HintPGI accept the following targets and modes:
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ci    [All hints are subject to Push/Pop with the HINT_BIT attributes,
865bd8deadSopenharmony_ci    except for these hints: PREFER_DOUBLEBUFFER_HINT_PGI, 
875bd8deadSopenharmony_ci    NATIVE_GRAPHICS_BEGIN_HINT_PGI, NATIVE_GRAPHICS_END_HINT_PGI,
885bd8deadSopenharmony_ci    RECLAIM_MEMORY_HINT_PGI.]
895bd8deadSopenharmony_ci
905bd8deadSopenharmony_ci    <target> = PREFER_DOUBLEBUFFER_HINT_PGI
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci    This is a client-only mode.  In some cases the PGI client may
935bd8deadSopenharmony_ci    change the singlebuffer/doublebuffer attributes of some GLX
945bd8deadSopenharmony_ci    visuals.  If <mode> is TRUE, the client will tend to choose
955bd8deadSopenharmony_ci    doublebuffer in these cases; if <mode> is FALSE, the client
965bd8deadSopenharmony_ci    will tend to choose singlebuffer attributes.
975bd8deadSopenharmony_ci    
985bd8deadSopenharmony_ci    <target> = STRICT_DEPTHFUNC_HINT_PGI
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci    This hint indicates whether the application is willing to accept
1015bd8deadSopenharmony_ci    non-conformant depth functions.  When <mode> is TRUE or NICEST,
1025bd8deadSopenharmony_ci    GL uses strictly conformant depth functions.  When <mode> is
1035bd8deadSopenharmony_ci    FALSE, FASTEST, or DONT_CARE, GL may use an improper depth
1045bd8deadSopenharmony_ci    function.
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci    <target> = STRICT_LIGHTING_HINT_PGI
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    This hint indicates whether the application is willing to accept
1095bd8deadSopenharmony_ci    non-conformant lighting operations.  When <mode> is TRUE or NICEST,
1105bd8deadSopenharmony_ci    GL uses strictly conformant lighting operations.  When <mode> is
1115bd8deadSopenharmony_ci    FALSE, FASTEST, or DONT_CARE, GL may use non-conformant lighting.
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci    <target> = STRICT_SCISSOR_HINT_PGI
1145bd8deadSopenharmony_ci
1155bd8deadSopenharmony_ci    This hint indicates whether the application is willing to accept
1165bd8deadSopenharmony_ci    non-conformant scissoring operations.  When <mode> is TRUE or NICEST,
1175bd8deadSopenharmony_ci    GL uses strictly conformant scissoring.  When <mode> is FALSE,
1185bd8deadSopenharmony_ci    FASTEST, or DONT_CARE, GL may use non-conformant scissoring.
1195bd8deadSopenharmony_ci
1205bd8deadSopenharmony_ci    <target> = FULL_STIPPLE_HINT_PGI
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci    This hint indicates whether the application is willing to accept
1235bd8deadSopenharmony_ci    non-conformant polygon stippling.  When <mode> is TRUE or NICEST,
1245bd8deadSopenharmony_ci    GL uses strictly conformant polygon stippling.  When <mode> is FALSE,
1255bd8deadSopenharmony_ci    FASTEST, or DONT_CARE, GL may use only a subset of the polygon
1265bd8deadSopenharmony_ci    stipple pattern.
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ci    <target> = NATIVE_GRAPHICS_BEGIN_HINT_PGI
1295bd8deadSopenharmony_ci
1305bd8deadSopenharmony_ci    This hint indicates that the application is about to perform
1315bd8deadSopenharmony_ci    rendering through the native API, outside the scope of GL.  If
1325bd8deadSopenharmony_ci    <mode> is one of the parameters POINT, LINE, or FILL, then GL
1335bd8deadSopenharmony_ci    prepares the native API for rendering of that kind of primitive.
1345bd8deadSopenharmony_ci    If <mode> is TRUE, NICEST, or DONT_CARE, GL prepares the native
1355bd8deadSopenharmony_ci    API for rendering of any primitive.  If <mode> is FASTEST, GL does
1365bd8deadSopenharmony_ci    minimal preparation of the native API, and the API may not be in a
1375bd8deadSopenharmony_ci    suitable state for any rendering.  If <mode> is FALSE, GL does nothing.
1385bd8deadSopenharmony_ci
1395bd8deadSopenharmony_ci    <target> = NATIVE_GRAPHICS_END_HINT_PGI
1405bd8deadSopenharmony_ci
1415bd8deadSopenharmony_ci    This hint indicates that the application has completed native-API
1425bd8deadSopenharmony_ci    rendering outside the scope of GL, and that the application will not
1435bd8deadSopenharmony_ci    use native-API rendering until the next NATIVE_GRAPHICS_BEGIN_HINT_PGI
1445bd8deadSopenharmony_ci    hint.  When <mode> is NICEST, GL assumes that the entire native-API
1455bd8deadSopenharmony_ci    state may be corrupted, and completely resets its state.  When <mode>
1465bd8deadSopenharmony_ci    is TRUE, DONT_CARE, or FASTEST, GL performs minimal synchronization
1475bd8deadSopenharmony_ci    of the native-API state.  When <mode> is FALSE, GL does not adjust
1485bd8deadSopenharmony_ci    the native-API state.
1495bd8deadSopenharmony_ci
1505bd8deadSopenharmony_ci    <target> = CONSERVE_MEMORY_HINT_PGI
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ci    The hint indicates that the application should attempt to conserve
1535bd8deadSopenharmony_ci    memory, perhaps at the cost of performance.  The <mode> parameter
1545bd8deadSopenharmony_ci    indicates the level of conservation, from least conservation to
1555bd8deadSopenharmony_ci    most conservation: FALSE, FASTEST, DONT_CARE, TRUE, or NICEST.
1565bd8deadSopenharmony_ci    When <mode> is FALSE, GL does little or no memory conservation;
1575bd8deadSopenharmony_ci    when <mode> is NICEST, GL does the most agressive memory conservation.
1585bd8deadSopenharmony_ci
1595bd8deadSopenharmony_ci    <target> = RECLAIM_MEMORY_HINT_PGI
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci    The hint indicates that the application should reclaim unused
1625bd8deadSopenharmony_ci    memory immediately.  The <mode> parameter indicates how aggressively
1635bd8deadSopenharmony_ci    GL reclaims memory: FALSE, FASTEST, DONT_CARE, TRUE, or NICEST.
1645bd8deadSopenharmony_ci    When <mode> is FALSE, GL reclaims little or no memory;
1655bd8deadSopenharmony_ci    when <mode> is NICEST, GL does the most agressive memory reclaimation.
1665bd8deadSopenharmony_ci
1675bd8deadSopenharmony_ci    <target> = ALLOW_DRAW_OBJ_HINT_PGI
1685bd8deadSopenharmony_ci    <target> = ALLOW_DRAW_WIN_HINT_PGI
1695bd8deadSopenharmony_ci    <target> = ALLOW_DRAW_SPN_HINT_PGI
1705bd8deadSopenharmony_ci    <target> = ALLOW_DRAW_MEM_HINT_PGI
1715bd8deadSopenharmony_ci    <target> = ALWAYS_FAST_HINT_PGI
1725bd8deadSopenharmony_ci    <target> = ALWAYS_SOFT_HINT_PGI
1735bd8deadSopenharmony_ci
1745bd8deadSopenharmony_ci    The <mode> for each of these hints may be TRUE or FALSE only.
1755bd8deadSopenharmony_ci    Each of the ALLOW_DRAW_xxx_HINT_PGI hints indicates if OpenGL
1765bd8deadSopenharmony_ci    low-level rendering may occur at the object-coordinate level,
1775bd8deadSopenharmony_ci    window-coordinate level, fragment level, or plain-memory level.
1785bd8deadSopenharmony_ci    If <mode> for a given <target> is TRUE, rendering may occur at
1795bd8deadSopenharmony_ci    that level; if the <mode> is FALSE, rendering will not occur at
1805bd8deadSopenharmony_ci    that level (perhaps at the expense of performance or conformance).
1815bd8deadSopenharmony_ci
1825bd8deadSopenharmony_ci    The two ALWAYS_xxxx_HINT_PGI hints describe combinations of the
1835bd8deadSopenharmony_ci    ALLOW_DRAW_xxx_HINT_PGI hints.  If ALWAYS_FAST_HINT_PGI is TRUE,
1845bd8deadSopenharmony_ci    then ALLOW_DRAW_OBJ_HINT_PGI is set TRUE, and the other ALLOW_DRAW_-
1855bd8deadSopenharmony_ci    xxx_HINT_PGI hints are set to FALSE.  If ALWAYS_FAST_HINT_PGI is
1865bd8deadSopenharmony_ci    FALSE, then all ALLOW_DRAW_xxx_HINT_PGI hints are set TRUE.
1875bd8deadSopenharmony_ci    If ALWAYS_SOFT_HINT_PGI is TRUE, then ALLOW_DRAW_OBJ_HINT_PGI
1885bd8deadSopenharmony_ci    is set FALSE, ALLOW_DRAW_MEM_HINT_PGI is set TRUE, and 
1895bd8deadSopenharmony_ci    ALLOW_DRAW_WIN_HINT_PGI and ALLOW_DRAW_SPN_HINT_PGI are set to
1905bd8deadSopenharmony_ci    TRUE or FALSE in an implementation-dependent manner.
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    <target> = CLIP_NEAR_HINT_PGI
1935bd8deadSopenharmony_ci    <target> = CLIP_FAR_HINT_PGI
1945bd8deadSopenharmony_ci
1955bd8deadSopenharmony_ci    These hints indicate that the application does not require
1965bd8deadSopenharmony_ci    hither/yon clipping when the depth test is disabled.  (The hint
1975bd8deadSopenharmony_ci    has no effect when depth testing is enabled.) If <mode> is FALSE,
1985bd8deadSopenharmony_ci    DONT_CARE, or FASTEST, GL may inhibit hither/yon clipping in some
1995bd8deadSopenharmony_ci    situations.  If <mode> is NICEST, or TRUE, GL performs ordinary
2005bd8deadSopenharmony_ci    hither/yon clipping.  If hither or yon clipping is disabled, and
2015bd8deadSopenharmony_ci    if fragment depth values fall outside the range [0.0-1.0], then
2025bd8deadSopenharmony_ci    rendering behavior is implementation-dependent.
2035bd8deadSopenharmony_ci
2045bd8deadSopenharmony_ci    <target> = LINE_WIDE_HINT_PGI
2055bd8deadSopenharmony_ci
2065bd8deadSopenharmony_ci    Indicates the rendering quality and speed of lines whose widths are
2075bd8deadSopenharmony_ci    not equal to 1.0.  Allowed values are GL_FASTEST, GL_NICEST, and
2085bd8deadSopenharmony_ci    GL_DONT_CARE.
2095bd8deadSopenharmony_ci
2105bd8deadSopenharmony_ci    <target> = BACK_NORMALS_HINT
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci    Indicates that normals of backfacing facets should be inverted
2135bd8deadSopenharmony_ci    when lighting is enabled, even if LIGHT_MODEL_TWO_SIDE is disabled.
2145bd8deadSopenharmony_ci    The hint has no effect when lighting is disabled, and when
2155bd8deadSopenharmony_ci    LIGHT_MODEL_TWO_SIDE is enabled.  If <mode> is FALSE, DONT_CARE,
2165bd8deadSopenharmony_ci    or NICEST, GL inverts normals only when LIGHT_MODEL_TWO_SIDE is
2175bd8deadSopenharmony_ci    enabled.  If <mode> is FASTEST or TRUE, GL inverts the normals
2185bd8deadSopenharmony_ci    of backfacing facets whenever lighting is enabled.
2195bd8deadSopenharmony_ci
2205bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
2215bd8deadSopenharmony_ci
2225bd8deadSopenharmony_ci    None
2235bd8deadSopenharmony_ci
2245bd8deadSopenharmony_ciAdditions to the GLX Specification
2255bd8deadSopenharmony_ci
2265bd8deadSopenharmony_ci    None
2275bd8deadSopenharmony_ci
2285bd8deadSopenharmony_ciGLX Protocol
2295bd8deadSopenharmony_ci
2305bd8deadSopenharmony_ci    None
2315bd8deadSopenharmony_ci
2325bd8deadSopenharmony_ciInteractions with PGI_vertex_hints
2335bd8deadSopenharmony_ci
2345bd8deadSopenharmony_ci    If PGI_vertex_hints is available, then hints from that extension
2355bd8deadSopenharmony_ci    may be used with the HintPGI function.
2365bd8deadSopenharmony_ci
2375bd8deadSopenharmony_ciErrors
2385bd8deadSopenharmony_ci
2395bd8deadSopenharmony_ci    INVALID_ENUM is generated if <target> or <mode> for Hint or HintPGI
2405bd8deadSopenharmony_ci    is not one of the GLenums discussed above.
2415bd8deadSopenharmony_ci
2425bd8deadSopenharmony_ciNew State
2435bd8deadSopenharmony_ci								Initial
2445bd8deadSopenharmony_ci    Get Value				Get Command	Type	Value	Attrib
2455bd8deadSopenharmony_ci    ---------				-----------	----	-------	------
2465bd8deadSopenharmony_ci
2475bd8deadSopenharmony_ci    STRICT_DEPTHFUNC_HINT_PGI           GetIntegerv      Z       TRUE    hint
2485bd8deadSopenharmony_ci
2495bd8deadSopenharmony_ci    STRICT_LIGHTING_HINT_PGI            GetIntegerv      Z       TRUE    hint
2505bd8deadSopenharmony_ci
2515bd8deadSopenharmony_ci    STRICT_SCISSOR_HINT_PGI             GetIntegerv      Z       TRUE    hint
2525bd8deadSopenharmony_ci
2535bd8deadSopenharmony_ci    FULL_STIPPLE_HINT_PGI               GetIntegerv      Z       TRUE    hint
2545bd8deadSopenharmony_ci
2555bd8deadSopenharmony_ci    CONSERVE_MEMORY_HINT_PGI            GetIntegerv      Z       FALSE   hint
2565bd8deadSopenharmony_ci
2575bd8deadSopenharmony_ci    ALWAYS_FAST_HINT_PGI                GetIntegerv      Z       FALSE   hint
2585bd8deadSopenharmony_ci
2595bd8deadSopenharmony_ci    ALWAYS_SOFT_HINT_PGI                GetIntegerv      Z       FALSE   hint
2605bd8deadSopenharmony_ci
2615bd8deadSopenharmony_ci    ALLOW_DRAW_OBJ_HINT_PGI             GetIntegerv      Z       TRUE    hint
2625bd8deadSopenharmony_ci
2635bd8deadSopenharmony_ci    ALLOW_DRAW_WIN_HINT_PGI             GetIntegerv      Z       TRUE    hint
2645bd8deadSopenharmony_ci
2655bd8deadSopenharmony_ci    ALLOW_DRAW_SPN_HINT_PGI             GetIntegerv      Z       TRUE    hint
2665bd8deadSopenharmony_ci
2675bd8deadSopenharmony_ci    ALLOW_DRAW_MEM_HINT_PGI             GetIntegerv      Z       TRUE    hint
2685bd8deadSopenharmony_ci
2695bd8deadSopenharmony_ci    WIDE_LINE_HINT_PGI                  GetIntegerv      Z     DONT_CARE hint
2705bd8deadSopenharmony_ci
2715bd8deadSopenharmony_ci    CLIP_NEAR_HINT_PGI                  GetIntegerv      Z       TRUE    hint
2725bd8deadSopenharmony_ci
2735bd8deadSopenharmony_ci    CLIP_FAR_HINT_PGI                   GetIntegerv      Z       TRUE    hint
2745bd8deadSopenharmony_ci
2755bd8deadSopenharmony_ci    BACK_NORMALS_HINT_PGI               GetIntegerv      Z       FALSE   hint
2765bd8deadSopenharmony_ci
2775bd8deadSopenharmony_ci
2785bd8deadSopenharmony_ciNew Implementation Dependent State
2795bd8deadSopenharmony_ci								Initial
2805bd8deadSopenharmony_ci    Get Value				Get Command	Type	Value	Attrib
2815bd8deadSopenharmony_ci    ---------				-----------	----	-------	------
2825bd8deadSopenharmony_ci
2835bd8deadSopenharmony_ci    PREFER_DOUBLEBUFFER_HINT_PGI        GetIntegerv      Z        +++   client
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ci    NATIVE_GRAPHICS_HANDLE_PGI          GetIntegerv      Z        ***   client
2865bd8deadSopenharmony_ci
2875bd8deadSopenharmony_ci    +++ Implementation-dependent.  (TRUE preferred.)
2885bd8deadSopenharmony_ci
2895bd8deadSopenharmony_ci    *** 0 if direct rendering to native API is not available;
2905bd8deadSopenharmony_ci        otherwise, this is the handle for direct rendering to native API
291