15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    EXT_fog_coord
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_EXT_fog_coord
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Jon Leech, Silicon Graphics (ljp 'at' sgi.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciStatus
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Shipping (version 1.6)
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciVersion
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    $Date: 1999/06/21 19:57:19 $ $Revision: 1.11 $
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciNumber
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    149
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciDependencies
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ci    OpenGL 1.1 is required.
285bd8deadSopenharmony_ci    The extension is written against the OpenGL 1.2 Specification.
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciOverview
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    This extension allows specifying an explicit per-vertex fog
335bd8deadSopenharmony_ci    coordinate to be used in fog computations, rather than using a
345bd8deadSopenharmony_ci    fragment depth-based fog equation.
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ciIssues
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ci  * Should the specified value be used directly as the fog weighting
395bd8deadSopenharmony_ci    factor, or in place of the z input to the fog equations?
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci        As the z input; more flexible and meets ISV requests.
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ci  * Do we want vertex array entry points? Interleaved array formats?
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci        Yes for entry points, no for interleaved formats, following the
465bd8deadSopenharmony_ci        argument for secondary_color.
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ci  * Which scalar types should FogCoord accept? The full range, or just
495bd8deadSopenharmony_ci    the unsigned and float versions? At the moment it follows Index(),
505bd8deadSopenharmony_ci    which takes unsigned byte, signed short, signed int, float, and
515bd8deadSopenharmony_ci    double.
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci        Since we're now specifying a number which behaves like an
545bd8deadSopenharmony_ci        eye-space distance, rather than a [0,1] quantity, integer types
555bd8deadSopenharmony_ci        are less useful. However, restricting the commands to floating
565bd8deadSopenharmony_ci        point forms only introduces some nonorthogonality.
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci        Restrict to only float and double, for now.
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci  * Interpolation of the fog coordinate may be perspective-correct or
615bd8deadSopenharmony_ci    not. Should this be affected by PERSPECTIVE_CORRECTION_HINT,
625bd8deadSopenharmony_ci    FOG_HINT, or another to-be-defined hint?
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci        PERSPECTIVE_CORRECTION_HINT; this is already defined to affect
655bd8deadSopenharmony_ci        all interpolated parameters. Admittedly this is a loss of
665bd8deadSopenharmony_ci        orthogonality.
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci  * Should the current fog coordinate be queryable?
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci        Yes, but it's not returned by feedback.
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci  * Control the fog coordinate source via an Enable instead of a fog
735bd8deadSopenharmony_ci    parameter?
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci        No. We might want to add more sources later.
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ci  * Should the fog coordinate be restricted to non-negative values?
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ci        Perhaps. Eye-coordinate distance of fragments will be
805bd8deadSopenharmony_ci        non-negative due to clipping. Specifying explicit negative
815bd8deadSopenharmony_ci        coordinates may result in very large computed f values, although
825bd8deadSopenharmony_ci        they are defined to be clipped after computation.
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci  * Use existing DEPTH enum instead of FRAGMENT_DEPTH? Change name of
855bd8deadSopenharmony_ci    FRAGMENT_DEPTH_EXT to FOG_FRAGMENT_DEPTH_EXT?
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci        Use FRAGMENT_DEPTH_EXT; FOG_FRAGMENT_DEPTH_EXT is somewhat
885bd8deadSopenharmony_ci        misleading, since fragment depth itself has no dependence on
895bd8deadSopenharmony_ci        fog.
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ciNew Procedures and Functions
925bd8deadSopenharmony_ci
935bd8deadSopenharmony_ci    void FogCoord[fd]EXT(T coord)
945bd8deadSopenharmony_ci    void FogCoord[fd]vEXT(T coord)
955bd8deadSopenharmony_ci    void FogCoordPointerEXT(enum type, sizei stride, void *pointer)
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ciNew Tokens
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci    Accepted by the <pname> parameter of Fogi and Fogf:
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ci        FOG_COORDINATE_SOURCE_EXT           0x8450
1025bd8deadSopenharmony_ci
1035bd8deadSopenharmony_ci    Accepted by the <param> parameter of Fogi and Fogf:
1045bd8deadSopenharmony_ci
1055bd8deadSopenharmony_ci        FOG_COORDINATE_EXT                  0x8451
1065bd8deadSopenharmony_ci        FRAGMENT_DEPTH_EXT                  0x8452
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
1095bd8deadSopenharmony_ci    GetFloatv, and GetDoublev:
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci        CURRENT_FOG_COORDINATE_EXT          0x8453
1125bd8deadSopenharmony_ci        FOG_COORDINATE_ARRAY_TYPE_EXT       0x8454
1135bd8deadSopenharmony_ci        FOG_COORDINATE_ARRAY_STRIDE_EXT     0x8455
1145bd8deadSopenharmony_ci
1155bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetPointerv:
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ci        FOG_COORDINATE_ARRAY_POINTER_EXT    0x8456
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci    Accepted by the <array> parameter of EnableClientState and
1205bd8deadSopenharmony_ci    DisableClientState:
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci        FOG_COORDINATE_ARRAY_EXT            0x8457
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation)
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ci  These changes describe a new current state type, the fog coordinate,
1275bd8deadSopenharmony_ci  and the commands to specify it:
1285bd8deadSopenharmony_ci
1295bd8deadSopenharmony_ci  - (2.6, p. 12) Second paragraph changed to:
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci        "Each vertex is specified with two, three, or four coordinates.
1325bd8deadSopenharmony_ci        In addition, a current normal, current texture coordinates,
1335bd8deadSopenharmony_ci        current color, and current fog coordinate may be used in
1345bd8deadSopenharmony_ci        processing each vertex."
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci  - 2.6.3, p. 19) First paragraph changed to
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ci        "The only GL commands that are allowed within any Begin/End
1395bd8deadSopenharmony_ci        pairs are the commands for specifying vertex coordinates, vertex
1405bd8deadSopenharmony_ci        colors, normal coordinates, texture coordinates, and fog
1415bd8deadSopenharmony_ci        coordinates (Vertex, Color, Index, Normal, TexCoord,
1425bd8deadSopenharmony_ci        FogCoord)..."
1435bd8deadSopenharmony_ci
1445bd8deadSopenharmony_ci  - (2.7, p. 20) Insert the following paragraph following the third
1455bd8deadSopenharmony_ci        paragraph describing current normals:
1465bd8deadSopenharmony_ci
1475bd8deadSopenharmony_ci        "   The current fog coodinate is set using
1485bd8deadSopenharmony_ci                void FogCoord[fd]EXT(T coord)
1495bd8deadSopenharmony_ci                void FogCoord[fd]vEXT(T coord)."
1505bd8deadSopenharmony_ci
1515bd8deadSopenharmony_ci    The last paragraph is changed to read:
1525bd8deadSopenharmony_ci
1535bd8deadSopenharmony_ci        "The state required to support vertex specification consists of
1545bd8deadSopenharmony_ci        four floating-point numbers to store the current texture
1555bd8deadSopenharmony_ci        coordinates s, t, r, and q, one floating-point value to store
1565bd8deadSopenharmony_ci        the current fog coordinate, four floating-point values to store
1575bd8deadSopenharmony_ci        the current RGBA color, and one floating-point value to store
1585bd8deadSopenharmony_ci        the current color index. There is no notion of a current vertex,
1595bd8deadSopenharmony_ci        so no state is devoted to vertex coordinates. The initial values
1605bd8deadSopenharmony_ci        of s, t, and r of the current texture coordinates are zero; the
1615bd8deadSopenharmony_ci        initial value of q is one. The initial fog coordinate is zero.
1625bd8deadSopenharmony_ci        The initial current normal has coordinates (0,0,1). The initial
1635bd8deadSopenharmony_ci        RGBA color is (R,G,B,A) = (1,1,1,1). The initial color index is
1645bd8deadSopenharmony_ci        1."
1655bd8deadSopenharmony_ci
1665bd8deadSopenharmony_ci  - (2.8, p. 21) Added fog coordinate command for vertex arrays:
1675bd8deadSopenharmony_ci
1685bd8deadSopenharmony_ci    Change first paragraph to read:
1695bd8deadSopenharmony_ci
1705bd8deadSopenharmony_ci        "The vertex specification commands described in section 2.7
1715bd8deadSopenharmony_ci        accept data in almost any format, but their use requires many
1725bd8deadSopenharmony_ci        command executions to specify even simple geometry. Vertex data
1735bd8deadSopenharmony_ci        may also be placed into arrays that are stored in the client's
1745bd8deadSopenharmony_ci        address space. Blocks of data in these arrays may then be used
1755bd8deadSopenharmony_ci        to specify multiple geometric primitives through the execution
1765bd8deadSopenharmony_ci        of a single GL command. The client may specify up to seven
1775bd8deadSopenharmony_ci        arrays: one each to store edge flags, texture coordinates, fog
1785bd8deadSopenharmony_ci        coordinates, colors, color indices, normals, and vertices. The
1795bd8deadSopenharmony_ci        commands"
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ci    Add to functions listed following first paragraph:
1825bd8deadSopenharmony_ci
1835bd8deadSopenharmony_ci        void FogCoordPointerEXT(enum type, sizei stride, void *pointer)
1845bd8deadSopenharmony_ci
1855bd8deadSopenharmony_ci    Add to table 2.4 (p. 22):
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci        Command                     Sizes   Types
1885bd8deadSopenharmony_ci        -------                     -----   -----
1895bd8deadSopenharmony_ci        FogCoordPointerEXT          1       float,double
1905bd8deadSopenharmony_ci
1915bd8deadSopenharmony_ci    Starting with the second paragraph on p. 23, change to add
1925bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_EXT:
1935bd8deadSopenharmony_ci
1945bd8deadSopenharmony_ci        "An individual array is enabled or disabled by calling one of
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ci            void EnableClientState(enum array)
1975bd8deadSopenharmony_ci            void DisableClientState(enum array)
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci        with array set to EDGE_FLAG_ARRAY, TEXTURE_COORD_ARRAY,
2005bd8deadSopenharmony_ci        FOG_COORDINATE_ARRAY_EXT, COLOR_ARRAY, INDEX_ARRAY,
2015bd8deadSopenharmony_ci        NORMAL_ARRAY, or VERTEX_ARRAY, for the edge flag, texture
2025bd8deadSopenharmony_ci        coordinate, fog coordinate, color, color index, normal, or
2035bd8deadSopenharmony_ci        vertex array, respectively.
2045bd8deadSopenharmony_ci
2055bd8deadSopenharmony_ci        The ith element of every enabled array is transferred to the GL
2065bd8deadSopenharmony_ci        by calling
2075bd8deadSopenharmony_ci
2085bd8deadSopenharmony_ci            void ArrayElement(int i)
2095bd8deadSopenharmony_ci
2105bd8deadSopenharmony_ci        For each enabled array, it is as though the corresponding
2115bd8deadSopenharmony_ci        command from section 2.7 or section 2.6.2 were called with a
2125bd8deadSopenharmony_ci        pointer to element i. For the vertex array, the corresponding
2135bd8deadSopenharmony_ci        command is Vertex<size><type>v, where <size> is one of [2,3,4],
2145bd8deadSopenharmony_ci        and <type> is one of [s,i,f,d], corresponding to array types
2155bd8deadSopenharmony_ci        short, int, float, and double respectively. The corresponding
2165bd8deadSopenharmony_ci        commands for the edge flag, texture coordinate, fog coordinate,
2175bd8deadSopenharmony_ci        color, color, color index, and normal arrays are EdgeFlagv,
2185bd8deadSopenharmony_ci        TexCoord<size><type>v, FogCoord<type>v, Color<size><type>v,
2195bd8deadSopenharmony_ci        Index<type>v, and Normal<type>v, respectively..."
2205bd8deadSopenharmony_ci
2215bd8deadSopenharmony_ci    Change pseudocode on p. 27 to disable fog coordinate array for
2225bd8deadSopenharmony_ci    canned interleaved array formats. After the lines
2235bd8deadSopenharmony_ci
2245bd8deadSopenharmony_ci            DisableClientState(EDGE_FLAG_ARRAY);
2255bd8deadSopenharmony_ci            DisableClientState(INDEX_ARRAY);
2265bd8deadSopenharmony_ci
2275bd8deadSopenharmony_ci        insert the line
2285bd8deadSopenharmony_ci
2295bd8deadSopenharmony_ci            DisableClientState(FOG_COORDINATE_ARRAY_EXT);
2305bd8deadSopenharmony_ci
2315bd8deadSopenharmony_ci    Substitute "seven" for every occurence of "six" in the final
2325bd8deadSopenharmony_ci    paragraph on p. 27.
2335bd8deadSopenharmony_ci
2345bd8deadSopenharmony_ci  - (2.12, p. 41) Add fog coordinate to the current rasterpos state.
2355bd8deadSopenharmony_ci
2365bd8deadSopenharmony_ci    Change the first sentence of the first paragraph to read
2375bd8deadSopenharmony_ci
2385bd8deadSopenharmony_ci        "The state required for the current raster position consists of
2395bd8deadSopenharmony_ci        three window coordinates x_w, y_w, and z_w, a clip coordinate
2405bd8deadSopenharmony_ci        w_c value, an eye coordinate distance, a fog coordinate, a valid
2415bd8deadSopenharmony_ci        bit, and associated data consisting of a color and texture
2425bd8deadSopenharmony_ci        coordinates."
2435bd8deadSopenharmony_ci
2445bd8deadSopenharmony_ci    Change the last paragraph to read
2455bd8deadSopenharmony_ci
2465bd8deadSopenharmony_ci        "The current raster position requires six single-precision
2475bd8deadSopenharmony_ci        floating-point values for its x_w, y_w, and z_w window
2485bd8deadSopenharmony_ci        coordinates, its w_c clip coordinate, its eye coordinate
2495bd8deadSopenharmony_ci        distance, and its fog coordinate, a single valid bit, a color
2505bd8deadSopenharmony_ci        (RGBA color and color index), and texture coordinates for
2515bd8deadSopenharmony_ci        associated data. In the initial state, the coordinates and
2525bd8deadSopenharmony_ci        texture coordinates are both (0,0,0,1), the fog coordinate is 0,
2535bd8deadSopenharmony_ci        the eye coordinate distance is 0, the valid bit is set, the
2545bd8deadSopenharmony_ci        associated RGBA color is (1,1,1,1), and the associated color
2555bd8deadSopenharmony_ci        index color is 1. In RGBA mode, the associated color index
2565bd8deadSopenharmony_ci        always has its initial value; in color index mode, the RGBA
2575bd8deadSopenharmony_ci        color always maintains its initial value."
2585bd8deadSopenharmony_ci
2595bd8deadSopenharmony_ci  - (3.10, p. 139) Change the second and third paragraphs to read
2605bd8deadSopenharmony_ci
2615bd8deadSopenharmony_ci        "This factor f may be computed according to one of three
2625bd8deadSopenharmony_ci        equations:"
2635bd8deadSopenharmony_ci
2645bd8deadSopenharmony_ci            f = exp(-d*c)       (3.24)
2655bd8deadSopenharmony_ci            f = exp(-(d*c)^2)   (3.25)
2665bd8deadSopenharmony_ci            f = (e-c)/(e-s)     (3.26)
2675bd8deadSopenharmony_ci
2685bd8deadSopenharmony_ci        If the fog source (as defined below) is FRAGMENT_DEPTH_EXT, then
2695bd8deadSopenharmony_ci        c is the eye-coordinate distance from the eye, (0 0 0 1) in eye
2705bd8deadSopenharmony_ci        coordinates, to the fragment center. If the fog source is
2715bd8deadSopenharmony_ci        FOG_COORDINATE_EXT, then c is the interpolated value of the fog
2725bd8deadSopenharmony_ci        coordinate for this fragment. The equation and the fog source,
2735bd8deadSopenharmony_ci        along with either d or e and s, is specified with
2745bd8deadSopenharmony_ci
2755bd8deadSopenharmony_ci            void Fog{if}(enum pname, T param);
2765bd8deadSopenharmony_ci            void Fog{if}v(enum pname, T params);
2775bd8deadSopenharmony_ci
2785bd8deadSopenharmony_ci        If <pname> is FOG_MODE, then <param> must be, or <param> must
2795bd8deadSopenharmony_ci        point to an integer that is one of the symbolic constants EXP,
2805bd8deadSopenharmony_ci        EXP2, or LINEAR, in which case equation 3.24, 3.25, or 3.26,,
2815bd8deadSopenharmony_ci        respectively, is selected for the fog calculation (if, when 3.26
2825bd8deadSopenharmony_ci        is selected, e = s, results are undefined). If <pname> is
2835bd8deadSopenharmony_ci        FOG_COORDINATE_SOURCE_EXT, then <param> is or <params> points to
2845bd8deadSopenharmony_ci        an integer that is one of the symbolic constants
2855bd8deadSopenharmony_ci        FRAGMENT_DEPTH_EXT or FOG_COORDINATE_EXT. If <pname> is
2865bd8deadSopenharmony_ci        FOG_DENSITY, FOG_START, or FOG_END, then <param> is or <params>
2875bd8deadSopenharmony_ci        points to a value that is d, s, or e, respectively. If d is
2885bd8deadSopenharmony_ci        specified less than zero, the error INVALID_VALUE results."
2895bd8deadSopenharmony_ci
2905bd8deadSopenharmony_ci  - (3.10, p. 140) Change the last paragraph preceding section 3.11
2915bd8deadSopenharmony_ci    to read
2925bd8deadSopenharmony_ci
2935bd8deadSopenharmony_ci        "The state required for fog consists of a three valued integer
2945bd8deadSopenharmony_ci        to select the fog equation, three floating-point values d, e,
2955bd8deadSopenharmony_ci        and s, an RGBA fog color and a fog color index, a two-valued
2965bd8deadSopenharmony_ci        integer to select the fog coordinate source, and a single bit to
2975bd8deadSopenharmony_ci        indicate whether or not fog is enabled. In the initial state,
2985bd8deadSopenharmony_ci        fog is disabled, FOG_COORDINATE_SOURCE_EXT is
2995bd8deadSopenharmony_ci        FRAGMENT_DEPTH_EXT, FOG_MODE is EXP, d = 1.0, e = 1.0, and s =
3005bd8deadSopenharmony_ci        0.0; C_f = (0,0,0,0) and i_f=0."
3015bd8deadSopenharmony_ci
3025bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization)
3035bd8deadSopenharmony_ci
3045bd8deadSopenharmony_ci    None
3055bd8deadSopenharmony_ci
3065bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment
3075bd8deadSopenharmony_ciOperations and the Frame Buffer)
3085bd8deadSopenharmony_ci
3095bd8deadSopenharmony_ci    None
3105bd8deadSopenharmony_ci
3115bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions)
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci    None
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 1.2 Specification (State and State
3165bd8deadSopenharmony_ciRequests)
3175bd8deadSopenharmony_ci
3185bd8deadSopenharmony_ci    None
3195bd8deadSopenharmony_ci
3205bd8deadSopenharmony_ciAdditions to Appendix A of the OpenGL 1.2.1 Specification (Invariance)
3215bd8deadSopenharmony_ci
3225bd8deadSopenharmony_ci    None
3235bd8deadSopenharmony_ci
3245bd8deadSopenharmony_ciAdditions to the GLX / WGL / AGL Specifications
3255bd8deadSopenharmony_ci
3265bd8deadSopenharmony_ci    None
3275bd8deadSopenharmony_ci
3285bd8deadSopenharmony_ciGLX Protocol
3295bd8deadSopenharmony_ci
3305bd8deadSopenharmony_ci    Two new GL rendering commands are added. The following commands are
3315bd8deadSopenharmony_ci    sent to the server as part of a glXRender request:
3325bd8deadSopenharmony_ci
3335bd8deadSopenharmony_ci        FogCoordfvEXT
3345bd8deadSopenharmony_ci            2           8               rendering command length
3355bd8deadSopenharmony_ci            2           4124            rendering command opcode
3365bd8deadSopenharmony_ci            4           FLOAT32         v[0]
3375bd8deadSopenharmony_ci
3385bd8deadSopenharmony_ci        FogCoorddvEXT
3395bd8deadSopenharmony_ci            2           12              rendering command length
3405bd8deadSopenharmony_ci            2           4125            rendering command opcode
3415bd8deadSopenharmony_ci            8           FLOAT64         v[0]
3425bd8deadSopenharmony_ci
3435bd8deadSopenharmony_ciErrors
3445bd8deadSopenharmony_ci
3455bd8deadSopenharmony_ci    INVALID_ENUM is generated if FogCoordPointerEXT parameter <type> is
3465bd8deadSopenharmony_ci    not FLOAT or DOUBLE.
3475bd8deadSopenharmony_ci
3485bd8deadSopenharmony_ci    INVALID_VALUE is generated if FogCoordPointerEXT parameter <stride>
3495bd8deadSopenharmony_ci    is negative.
3505bd8deadSopenharmony_ci
3515bd8deadSopenharmony_ciNew State
3525bd8deadSopenharmony_ci
3535bd8deadSopenharmony_ci(table 6.5, p. 195)
3545bd8deadSopenharmony_ci    Get Value                   Type    Get Command     Initial Value   Description     Sec Attribute
3555bd8deadSopenharmony_ci    ---------                   ----    -----------     -------------   -----------     --- ---------
3565bd8deadSopenharmony_ci    CURRENT_FOG_COORDINATE_EXT  R       GetIntegerv,    0               Current         2.7 current
3575bd8deadSopenharmony_ci                                        GetFloatv                       fog coordinate
3585bd8deadSopenharmony_ci
3595bd8deadSopenharmony_ci(table 6.6, p. 197)
3605bd8deadSopenharmony_ci    Get Value                           Type    Get Command     Initial Value   Description                     Sec Attribute
3615bd8deadSopenharmony_ci    ---------                           ----    -----------     -------------   -----------                     --- ---------
3625bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_EXT            B       IsEnabled       False           Fog coord array enable          2.8 vertex-array
3635bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_TYPE_EXT       Z8      GetIntegerv     FLOAT           Type of fog coordinate          2.8 vertex-array
3645bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_STRIDE_EXT     Z+      GetIntegerv     0               Stride between fog coords       2.8 vertex-array
3655bd8deadSopenharmony_ci    FOG_COORDINATE_ARRAY_POINTER_EXT    Y       GetPointerv     0               Pointer to the fog coord array  2.8 vertex-array
3665bd8deadSopenharmony_ci
3675bd8deadSopenharmony_ci
3685bd8deadSopenharmony_ci(table 6.8, p. 198)
3695bd8deadSopenharmony_ci    Get Value                   Type    Get Command     Initial Value       Description     Sec     Attribute
3705bd8deadSopenharmony_ci    ---------                   ----    -----------     -------------       -----------     ---     ---------
3715bd8deadSopenharmony_ci    FOG_COORDINATE_SOURCE_EXT   Z2      GetIntegerv,    FRAGMENT_DEPTH_EXT  Source of fog   3.10    fog
3725bd8deadSopenharmony_ci                                        GetFloatv                           coordinate for
3735bd8deadSopenharmony_ci                                                                            fog calculation
3745bd8deadSopenharmony_ci
3755bd8deadSopenharmony_ciRevision History
3765bd8deadSopenharmony_ci
3775bd8deadSopenharmony_ci  * Revision 1.6 - Functionality complete
3785bd8deadSopenharmony_ci
3795bd8deadSopenharmony_ci  * Revision 1.7-1.9 - Fix typos and add fields to bring up to date with
3805bd8deadSopenharmony_ci    the new extension template. No functionality changes.
381