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