15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ARB_point_parameters
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ARB_point_parameters
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Michael Gold, NVIDIA (gold 'at' nvidia.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNotice
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Copyright (c) 2000-2013 The Khronos Group Inc. Copyright terms at
165bd8deadSopenharmony_ci        http://www.khronos.org/registry/speccopyright.html
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ciSpecification Update Policy
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ci    Khronos-approved extension specifications are updated in response to
215bd8deadSopenharmony_ci    issues and bugs prioritized by the Khronos OpenGL Working Group. For
225bd8deadSopenharmony_ci    extensions which have been promoted to a core Specification, fixes will
235bd8deadSopenharmony_ci    first appear in the latest version of that core Specification, and will
245bd8deadSopenharmony_ci    eventually be backported to the extension document. This policy is
255bd8deadSopenharmony_ci    described in more detail at
265bd8deadSopenharmony_ci        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ciStatus
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ci    Approved by the ARB, 21 June 2000.
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ciVersion
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ci    Revision Date: September 23, 2010
355bd8deadSopenharmony_ci    Version: 0.6
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    Based on:  EXT_point_parameters
385bd8deadSopenharmony_ci               $Date: 1997/08/21 21:26:36 $ $Revision: 1.6 $
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ciNumber
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    ARB Extension #14
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ciDependencies
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    OpenGL 1.0 is required.
475bd8deadSopenharmony_ci    ARB_multisample affects the definition of this extension.
485bd8deadSopenharmony_ci    The extension is written against the OpenGL 1.2.1 Specification.
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ciOverview
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci    This extension supports additional geometric characteristics of
535bd8deadSopenharmony_ci    points. It can be used to render particles or tiny light sources,
545bd8deadSopenharmony_ci    commonly referred to as "Light points".
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci    The raster brightness of a point is a function of the point area,
575bd8deadSopenharmony_ci    point color, point transparency, and the response of the display's
585bd8deadSopenharmony_ci    electron gun and phosphor. The point area and the point transparency
595bd8deadSopenharmony_ci    are derived from the point size, currently provided with the <size>
605bd8deadSopenharmony_ci    parameter of glPointSize.
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    The primary motivation is to allow the size of a point to be
635bd8deadSopenharmony_ci    affected by distance attenuation. When distance attenuation has an
645bd8deadSopenharmony_ci    effect, the final point size decreases as the distance of the point
655bd8deadSopenharmony_ci    from the eye increases.
665bd8deadSopenharmony_ci
675bd8deadSopenharmony_ci    The secondary motivation is a mean to control the mapping from the
685bd8deadSopenharmony_ci    point size to the raster point area and point transparency. This is
695bd8deadSopenharmony_ci    done in order to increase the dynamic range of the raster brightness
705bd8deadSopenharmony_ci    of points. In other words, the alpha component of a point may be
715bd8deadSopenharmony_ci    decreased (and its transparency increased) as its area shrinks below
725bd8deadSopenharmony_ci    a defined threshold.
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci    This extension defines a derived point size to be closely related to
755bd8deadSopenharmony_ci    point brightness. The brightness of a point is given by:
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ci                        1
785bd8deadSopenharmony_ci        dist_atten(d) = -------------------
795bd8deadSopenharmony_ci                        a + b * d + c * d^2
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci        brightness(Pe) = Brightness * dist_atten(|Pe|)
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci    where 'Pe' is the point in eye coordinates, and 'Brightness' is some
845bd8deadSopenharmony_ci    initial value proportional to the square of the size provided with
855bd8deadSopenharmony_ci    PointSize. Here we simplify the raster brightness to be a function
865bd8deadSopenharmony_ci    of the rasterized point area and point transparency.
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ci                    brightness(Pe)       brightness(Pe) >= Threshold_Area
895bd8deadSopenharmony_ci        area(Pe) =
905bd8deadSopenharmony_ci                    Threshold_Area       Otherwise
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci        factor(Pe) = brightness(Pe)/Threshold_Area
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci        alpha(Pe) = Alpha * factor(Pe)
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    where 'Alpha' comes with the point color (possibly modified by
975bd8deadSopenharmony_ci    lighting).
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci    'Threshold_Area' above is in area units. Thus, it is proportional to
1005bd8deadSopenharmony_ci    the square of the threshold provided by the programmer through this
1015bd8deadSopenharmony_ci    extension.
1025bd8deadSopenharmony_ci
1035bd8deadSopenharmony_ci    The new point size derivation method applies to all points, while
1045bd8deadSopenharmony_ci    the threshold applies to multisample points only.
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ciIP Status
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    None.
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ciIssues
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci    * Does point alpha modification affect the current color ?
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ci      No.
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci    * Do we need a special function GetPointParameterfvARB, or get by
1175bd8deadSopenharmony_ci      with GetFloat ?
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci      GetFloat is sufficient.
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci    * If alpha is 0, then we could toss the point before it reaches the
1225bd8deadSopenharmony_ci      fragment stage.
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci      No.  This can be achieved with enabling the alpha test with
1255bd8deadSopenharmony_ci      reference of 0 and function of LEQUAL.
1265bd8deadSopenharmony_ci
1275bd8deadSopenharmony_ci    * Do we need a disable for applying the threshold ? The default
1285bd8deadSopenharmony_ci      threshold value is 1.0. It is applied even if the point size is
1295bd8deadSopenharmony_ci      constant.
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci      If the default threshold is not overridden, the area of
1325bd8deadSopenharmony_ci      multisample points with provided constant size of less than 1.0,
1335bd8deadSopenharmony_ci      is mapped to 1.0, while the alpha component is modulated
1345bd8deadSopenharmony_ci      accordingly, to compensate for the larger area. For multisample
1355bd8deadSopenharmony_ci      points this is not a problem, as there are no relevant
1365bd8deadSopenharmony_ci      applications yet. As mentioned above, the threshold does not apply
1375bd8deadSopenharmony_ci      to alias or antialias points.
1385bd8deadSopenharmony_ci
1395bd8deadSopenharmony_ci      The alternative is to have a disable of threshold application, and
1405bd8deadSopenharmony_ci      state that threshold (if not disabled) applies to non antialias
1415bd8deadSopenharmony_ci      points only (that is, alias and multisample points).
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ci      The behavior without an enable/disable looks fine.
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ci    * Future extensions (to the extension)
1465bd8deadSopenharmony_ci
1475bd8deadSopenharmony_ci      1. POINT_FADE_ALPHA_CLAMP_ARB
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ci      When the derived point size is larger than the threshold size
1505bd8deadSopenharmony_ci      defined by the POINT_FADE_THRESHOLD_SIZE_ARB parameter, it might
1515bd8deadSopenharmony_ci      be desired to clamp the computed alpha to a minimum value, in
1525bd8deadSopenharmony_ci      order to keep the point visible. In this case the formula below
1535bd8deadSopenharmony_ci      change:
1545bd8deadSopenharmony_ci
1555bd8deadSopenharmony_ci      factor = (derived_size/threshold)^2
1565bd8deadSopenharmony_ci
1575bd8deadSopenharmony_ci                      factor                  clamp <= factor 
1585bd8deadSopenharmony_ci      clamped_value = 
1595bd8deadSopenharmony_ci                      clamp                   factor < clamp
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci               1.0                            derived_size >= threshold
1625bd8deadSopenharmony_ci      alpha *=
1635bd8deadSopenharmony_ci               clamped_value                  Otherwise
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci      where clamp is defined by the POINT_FADE_ALPHA_CLAMP_ARB new
1665bd8deadSopenharmony_ci      parameter.
1675bd8deadSopenharmony_ci 
1685bd8deadSopenharmony_ciNew Procedures and Functions
1695bd8deadSopenharmony_ci
1705bd8deadSopenharmony_ci    void PointParameterfARB(enum pname,
1715bd8deadSopenharmony_ci                            float param);
1725bd8deadSopenharmony_ci    void PointParameterfvARB(enum pname,
1735bd8deadSopenharmony_ci                             const float *params);
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ciNew Tokens
1765bd8deadSopenharmony_ci
1775bd8deadSopenharmony_ci    Accepted by the <pname> parameter of PointParameterfARB, and the
1785bd8deadSopenharmony_ci    <pname> of Get:
1795bd8deadSopenharmony_ci
1805bd8deadSopenharmony_ci        POINT_SIZE_MIN_ARB
1815bd8deadSopenharmony_ci        POINT_SIZE_MAX_ARB
1825bd8deadSopenharmony_ci        POINT_FADE_THRESHOLD_SIZE_ARB
1835bd8deadSopenharmony_ci
1845bd8deadSopenharmony_ci    Accepted by the <pname> parameter of PointParameterfvARB, and the
1855bd8deadSopenharmony_ci    <pname> of Get:
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci        POINT_SIZE_MIN_ARB              0x8126
1885bd8deadSopenharmony_ci        POINT_SIZE_MAX_ARB              0x8127
1895bd8deadSopenharmony_ci        POINT_FADE_THRESHOLD_SIZE_ARB   0x8128
1905bd8deadSopenharmony_ci        POINT_DISTANCE_ATTENUATION_ARB  0x8129
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation)
1935bd8deadSopenharmony_ci
1945bd8deadSopenharmony_ci    None
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization)
1975bd8deadSopenharmony_ci
1985bd8deadSopenharmony_ci    In section 3.3, the following is inserted after the description of
1995bd8deadSopenharmony_ci    PointSize:
2005bd8deadSopenharmony_ci
2015bd8deadSopenharmony_ci    The point size is multiplied with a distance attenuation factor
2025bd8deadSopenharmony_ci    and clamped as follows:
2035bd8deadSopenharmony_ci
2045bd8deadSopenharmony_ci        derived_size = Clamp(size * sqrt(dist_atten(dist)))
2055bd8deadSopenharmony_ci
2065bd8deadSopenharmony_ci    where dist_atten is specified as
2075bd8deadSopenharmony_ci
2085bd8deadSopenharmony_ci                                 1
2095bd8deadSopenharmony_ci        dist_atten(d) = -------------------
2105bd8deadSopenharmony_ci                        a + b * d + c * d^2
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci    and 'd' is the eye-coordinate distance from the eye, (0, 0, 0, 1) in
2135bd8deadSopenharmony_ci    eye coordinates, to the vertex.
2145bd8deadSopenharmony_ci
2155bd8deadSopenharmony_ci    The derived point size is clamped to a given range, and then
2165bd8deadSopenharmony_ci    clamped to the implementation-dependent point size range.
2175bd8deadSopenharmony_ci
2185bd8deadSopenharmony_ci    If multisampling is enabled, an implementation may optionally fade
2195bd8deadSopenharmony_ci    the point alpha (section 3.12) instead of allowing the size to go
2205bd8deadSopenharmony_ci    below a given threshold.  In this case, the diameter of the
2215bd8deadSopenharmony_ci    rasterized point is
2225bd8deadSopenharmony_ci
2235bd8deadSopenharmony_ci                   derived_size                 derived_size >= threshold
2245bd8deadSopenharmony_ci        diameter = 
2255bd8deadSopenharmony_ci                   threshold                    Otherwise
2265bd8deadSopenharmony_ci
2275bd8deadSopenharmony_ci    and the fade factor is computed as follows:
2285bd8deadSopenharmony_ci
2295bd8deadSopenharmony_ci                 1                              derived_size >= threshold
2305bd8deadSopenharmony_ci        fade =
2315bd8deadSopenharmony_ci                 (derived_size/threshold)^2     Otherwise
2325bd8deadSopenharmony_ci
2335bd8deadSopenharmony_ci    The distance attenuation function coefficients, 'a', 'b', and 'c',
2345bd8deadSopenharmony_ci    the bounds of the clamp, and the point fade 'threshold', are
2355bd8deadSopenharmony_ci    specified with
2365bd8deadSopenharmony_ci
2375bd8deadSopenharmony_ci        void PointParameterfARB( enum pname, float param );
2385bd8deadSopenharmony_ci        void PointParameterfvARB( enum pname, const float *params );
2395bd8deadSopenharmony_ci
2405bd8deadSopenharmony_ci    If <pname> is POINT_SIZE_MIN_ARB or POINT_SIZE_MAX_ARB, then
2415bd8deadSopenharmony_ci    <param> specifies, or <params> points to the lower or upper bound
2425bd8deadSopenharmony_ci    respectively on the derived point size.  If the lower bound is
2435bd8deadSopenharmony_ci    greater than the upper bound, the resulting point size is
2445bd8deadSopenharmony_ci    undefined.  If <pname> is POINT_DISTANCE_ATTENUATION_ARB, then
2455bd8deadSopenharmony_ci    <params> points to the coefficients 'a', 'b', and 'c'.  If <pname>
2465bd8deadSopenharmony_ci    is POINT_FADE_THRESHOLD_SIZE_ARB, <param> specifies, or <params>
2475bd8deadSopenharmony_ci    points to the point fade threshold.
2485bd8deadSopenharmony_ci
2495bd8deadSopenharmony_ci    This extension doesn't change the feedback or selection behavior of
2505bd8deadSopenharmony_ci    points.
2515bd8deadSopenharmony_ci
2525bd8deadSopenharmony_ci    In section 3.11, the word "Finally" is removed from the first
2535bd8deadSopenharmony_ci    sentence.
2545bd8deadSopenharmony_ci
2555bd8deadSopenharmony_ci    Add the following after section 3.11.
2565bd8deadSopenharmony_ci
2575bd8deadSopenharmony_ci    Section 3.12  Multisample Point Fade
2585bd8deadSopenharmony_ci
2595bd8deadSopenharmony_ci    If multisampling is enabled and the rasterized fragment results
2605bd8deadSopenharmony_ci    from a point primitive, then the computed fade factor is applied
2615bd8deadSopenharmony_ci    to the fragment.  In RGBA mode, the fade factor is multiplied by
2625bd8deadSopenharmony_ci    the fragment's alpha (A) value to yield a final alpha value.  In
2635bd8deadSopenharmony_ci    color index mode, the fade factor has no effect.
2645bd8deadSopenharmony_ci
2655bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment
2665bd8deadSopenharmony_ciOperations and the Frame Buffer)
2675bd8deadSopenharmony_ci
2685bd8deadSopenharmony_ci    None
2695bd8deadSopenharmony_ci
2705bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions)
2715bd8deadSopenharmony_ci
2725bd8deadSopenharmony_ci    None
2735bd8deadSopenharmony_ci
2745bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 1.2.1 Specification (State and
2755bd8deadSopenharmony_ciState Requests)
2765bd8deadSopenharmony_ci
2775bd8deadSopenharmony_ci    None
2785bd8deadSopenharmony_ci
2795bd8deadSopenharmony_ciAdditions to Appendix A of the OpenGL 1.2.1 Specification (Invariance)
2805bd8deadSopenharmony_ci
2815bd8deadSopenharmony_ci    None
2825bd8deadSopenharmony_ci
2835bd8deadSopenharmony_ciAdditions to the GLX / WGL / AGL Specifications
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ci    None
2865bd8deadSopenharmony_ci
2875bd8deadSopenharmony_ciGLX Protocol
2885bd8deadSopenharmony_ci
2895bd8deadSopenharmony_ci    Two new GL rendering commands are added. The following commands are
2905bd8deadSopenharmony_ci    sent to the server as part of a glXRender request:
2915bd8deadSopenharmony_ci
2925bd8deadSopenharmony_ci        PointParameterfARB
2935bd8deadSopenharmony_ci            2           8+4*n           rendering command length
2945bd8deadSopenharmony_ci            2           2065            rendering command opcode
2955bd8deadSopenharmony_ci            4           ENUM            pname
2965bd8deadSopenharmony_ci                        0x8126    n=1   POINT_SIZE_MIN_ARB
2975bd8deadSopenharmony_ci                        0x8127    n=1   POINT_SIZE_MAX_ARB
2985bd8deadSopenharmony_ci                        0x8128    n=1   POINT_FADE_THRESHOLD_SIZE_ARB
2995bd8deadSopenharmony_ci            4           FLOAT32         param
3005bd8deadSopenharmony_ci
3015bd8deadSopenharmony_ci        PointParameterfvARB
3025bd8deadSopenharmony_ci            2           8+4*n           rendering command length
3035bd8deadSopenharmony_ci            2           2066            rendering command opcode
3045bd8deadSopenharmony_ci            4           ENUM            pname
3055bd8deadSopenharmony_ci                        0x8126    n=1   POINT_SIZE_MIN_ARB
3065bd8deadSopenharmony_ci                        0x8127    n=1   POINT_SIZE_MAX_ARB
3075bd8deadSopenharmony_ci                        0x8128    n=1   POINT_FADE_THRESHOLD_SIZE_ARB
3085bd8deadSopenharmony_ci                        0x8129    n=3   POINT_DISTANCE_ATTENUATION_ARB
3095bd8deadSopenharmony_ci            4*n         LISTofFLOAT32   params
3105bd8deadSopenharmony_ci
3115bd8deadSopenharmony_ciDependencies on ARB_multisample
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci    If ARB_multisample is not implemented, then the references to
3145bd8deadSopenharmony_ci    multisample points are invalid, and should be ignored.
3155bd8deadSopenharmony_ci
3165bd8deadSopenharmony_ciErrors
3175bd8deadSopenharmony_ci
3185bd8deadSopenharmony_ci    INVALID_ENUM is generated if PointParameterfARB parameter <pname> is
3195bd8deadSopenharmony_ci    not POINT_SIZE_MIN_ARB, POINT_SIZE_MAX_ARB, or
3205bd8deadSopenharmony_ci    POINT_FADE_THRESHOLD_SIZE_ARB.
3215bd8deadSopenharmony_ci
3225bd8deadSopenharmony_ci    INVALID_ENUM is generated if PointParameterfvARB parameter <pname>
3235bd8deadSopenharmony_ci    is not POINT_SIZE_MIN_ARB, POINT_SIZE_MAX_ARB,
3245bd8deadSopenharmony_ci    POINT_FADE_THRESHOLD_SIZE_ARB, or POINT_DISTANCE_ATTENUATION_ARB
3255bd8deadSopenharmony_ci
3265bd8deadSopenharmony_ci    INVALID_VALUE is generated when values are out of range according
3275bd8deadSopenharmony_ci    to:
3285bd8deadSopenharmony_ci
3295bd8deadSopenharmony_ci    <pname>                                 valid range
3305bd8deadSopenharmony_ci    --------                                -----------
3315bd8deadSopenharmony_ci    POINT_SIZE_MIN_ARB                      >= 0
3325bd8deadSopenharmony_ci    POINT_SIZE_MAX_ARB                      >= 0
3335bd8deadSopenharmony_ci    POINT_FADE_THRESHOLD_SIZE_ARB           >= 0
3345bd8deadSopenharmony_ci
3355bd8deadSopenharmony_ci
3365bd8deadSopenharmony_ciNew State
3375bd8deadSopenharmony_ci
3385bd8deadSopenharmony_ci(table 6.11, p. 201)
3395bd8deadSopenharmony_ci                                                                Initial
3405bd8deadSopenharmony_ci    Get Value                           Type    Get Command     Value   Description Sec.    Attribute
3415bd8deadSopenharmony_ci    ---------                           ----    -----------     ------- ----------- ----    ---------
3425bd8deadSopenharmony_ci    POINT_SIZE_MIN_ARB                  R+      GetFloatv       0.0     Attenuated  3.3     point
3435bd8deadSopenharmony_ci                                                                        Min point
3445bd8deadSopenharmony_ci                                                                        size
3455bd8deadSopenharmony_ci
3465bd8deadSopenharmony_ci    POINT_SIZE_MAX_ARB                  R+      GetFloatv       M       Attenuated  3.3     point
3475bd8deadSopenharmony_ci                                                                        Max point
3485bd8deadSopenharmony_ci                                                                        size
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ci    POINT_FADE_THRESHOLD_SIZE_ARB       R+      GetFloatv       1.0     Threshold   3.3     point
3515bd8deadSopenharmony_ci                                                                        for alpha
3525bd8deadSopenharmony_ci                                                                        attenuation
3535bd8deadSopenharmony_ci
3545bd8deadSopenharmony_ci    POINT_DISTANCE_ATTENUATION_ARB      3xR     GetFloatv       (1.0,0.0,0.0)       3.3     point
3555bd8deadSopenharmony_ci                                                                        Attenuation
3565bd8deadSopenharmony_ci                                                                        coefficients
3575bd8deadSopenharmony_ci
3585bd8deadSopenharmony_ci    M is the larger of the max antialiased and non antialiased point
3595bd8deadSopenharmony_ci    sizes.
3605bd8deadSopenharmony_ci
3615bd8deadSopenharmony_ciNew Implementation Dependent State
3625bd8deadSopenharmony_ci
3635bd8deadSopenharmony_ci    None
3645bd8deadSopenharmony_ci
3655bd8deadSopenharmony_ciRevision History
3665bd8deadSopenharmony_ci
3675bd8deadSopenharmony_ci    11/09/1999  0.1
3685bd8deadSopenharmony_ci        - First ARB draft based on the original SGI and EXT drafts.
3695bd8deadSopenharmony_ci
3705bd8deadSopenharmony_ci    12/07/1999  0.2
3715bd8deadSopenharmony_ci        - clarified behavior when POINT_SIZE_MIN exceeds POINT_SIZE_MAX
3725bd8deadSopenharmony_ci        - clarified when the point size is clamped to the supported range
3735bd8deadSopenharmony_ci        - removed issues from "Errors" section
3745bd8deadSopenharmony_ci        - fixed various typos
3755bd8deadSopenharmony_ci        - Updated to new extension template
3765bd8deadSopenharmony_ci        - added GLX protocol
3775bd8deadSopenharmony_ci
3785bd8deadSopenharmony_ci    04/20/2000  0.3
3795bd8deadSopenharmony_ci        - rewritten to fit within the context of the 1.2 specification
3805bd8deadSopenharmony_ci        - added language describing where the fade alpha is applied.
3815bd8deadSopenharmony_ci        - added language which indicates that some implementations may not
3825bd8deadSopenharmony_ci          implement POINT_FADE_THRESHOLD_SIZE_ARB
3835bd8deadSopenharmony_ci
3845bd8deadSopenharmony_ci    06/20/2000  0.4
3855bd8deadSopenharmony_ci        - removed alternate behavior for fade alpha, since it is optional
3865bd8deadSopenharmony_ci        - added new section describing fade alpha application
3875bd8deadSopenharmony_ci
3885bd8deadSopenharmony_ci    03/12/2002  0.5
3895bd8deadSopenharmony_ci        - added GLX protocol for PointParameterfARB and assigned ropcodes
3905bd8deadSopenharmony_ci
3915bd8deadSopenharmony_ci    09/23/2010  0.6 (pbrown)
3925bd8deadSopenharmony_ci        - add "const" qualifier to <params> argument to PointParameterfvARB
393