15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci ARB_cull_distance 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_ARB_cull_distance 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Brian Paul, VMware Inc. (brianp 'at' vmware.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciContributors 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Brian Paul, VMware 165bd8deadSopenharmony_ci Daniel Rakos, AMD 175bd8deadSopenharmony_ci Pat Brown, NVIDIA 185bd8deadSopenharmony_ci Piers Daniell, NVIDIA 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ciNotice 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ci Copyright (c) 2014 The Khronos Group Inc. Copyright terms at 235bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ciSpecification Update Policy 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ci Khronos-approved extension specifications are updated in response to 285bd8deadSopenharmony_ci issues and bugs prioritized by the Khronos OpenGL Working Group. For 295bd8deadSopenharmony_ci extensions which have been promoted to a core Specification, fixes will 305bd8deadSopenharmony_ci first appear in the latest version of that core Specification, and will 315bd8deadSopenharmony_ci eventually be backported to the extension document. This policy is 325bd8deadSopenharmony_ci described in more detail at 335bd8deadSopenharmony_ci https://www.khronos.org/registry/OpenGL/docs/update_policy.php 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciStatus 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci Complete. 385bd8deadSopenharmony_ci Approved by the ARB on June 26, 2014. 395bd8deadSopenharmony_ci Ratified by the Khronos Board of Promoters on August 7, 2014. 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ciVersion 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ci Date: June 17, 2014 445bd8deadSopenharmony_ci Revision: 9 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ciNumber 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci ARB Extension #162 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ciDependencies 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci OpenGL 3.0 is required. 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci The extension is written against the OpenGL 4.4 Specification, Core 555bd8deadSopenharmony_ci Profile, March 19, 2014. 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci The extension is written against the OpenGL Shading Language 4.40 585bd8deadSopenharmony_ci Specification, January 22, 2014. 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ciOverview 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci This extension adds a new GLSL gl_CullDistance shader output, similar 635bd8deadSopenharmony_ci to gl_ClipDistance, but used for whole primitive culling. 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci This new stage in the pipeline is added as part of the primitive clipping 665bd8deadSopenharmony_ci stage. 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ciIP Status 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci No known IP claims. 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ciNew Procedures and Functions 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci None 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ciNew Types 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci None 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ciNew Tokens 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooeleanv, GetDoublev, GetFloatv 835bd8deadSopenharmony_ci GetIntegerv, and GetInteger64v: 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci MAX_CULL_DISTANCES 0x82F9 865bd8deadSopenharmony_ci MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ciAdditions to Chapter 7 of the OpenGL 4.4 (Core Profile) Specification (Programs and Shaders) 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci Modify Section 7.4.1, Shader Interface Matching 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci (modify last sentence of third paragraph on p. 112) 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci If either shader redeclares the built-in array gl_CullDistance[] or 955bd8deadSopenharmony_ci gl_ClipDistance[], the array must have the same size in both shaders. 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ciAdditions to Chapter 11 of the OpenGL 4.4 (Core Profile) Specification (Programmable Vertex Processing) 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ci Modify Section 11.1.3.10, Shader Outputs 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci (replace the first sentence of the third paragraph on p. 358) 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci The built-in output variables gl_ClipDistance and glCullDistance hold the 1045bd8deadSopenharmony_ci clip distance(s) and cull distance(s), respectively, used in the culling 1055bd8deadSopenharmony_ci stage, as described in section 13.5. 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ci Modify Section 11.2.1.2.2, Tessellation Control Shader Inputs 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci (modify last sentence of first paragraph on p. 365) 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci The members of each element of the gl_in array are gl_Position, 1125bd8deadSopenharmony_ci gl_PointSize, gl_ClipDistance, gl_CullDistance, and gl_ClipVertex. 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ci Modify Section 11.2.1.2.3, Tessellation Control Shader Outputs 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci (modify last sentence of first paragraph on p. 366) 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci The members of each element of the gl_out array are gl_Position, 1195bd8deadSopenharmony_ci gl_PointSize, gl_ClipDistance, and gl_CullDistance, and behave identically 1205bd8deadSopenharmony_ci to equivalently named vertex shader outputs (section 11.1.3). 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci Modify Section 11.2.3.3, Tessellation Evaluation Shader Inputs 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ci (modify last sentence of first paragraph on p. 380) 1255bd8deadSopenharmony_ci 1265bd8deadSopenharmony_ci The members of each element of the gl_in array are gl_Position, 1275bd8deadSopenharmony_ci gl_PointSize, gl_ClipDistance, and gl_CullDistance. 1285bd8deadSopenharmony_ci 1295bd8deadSopenharmony_ci Modify Section 11.2.3.4, Tessellation Evaluation Shader Ouputs 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ci (modify last sentence of first paragraph on p. 381) 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ci These variables are gl_Position, gl_PointSize, gl_ClipDistance, and 1345bd8deadSopenharmony_ci gl_CullDistance, and all behave identically to equivalently named vertex 1355bd8deadSopenharmony_ci shader outputs (see section 11.1.3). 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ci Modify Section 11.3.4.4, Geometry Shader Inputs 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci (add after first bullet in first paragraph on p. 387) 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ci * Structure member gl_CullDistance[] holds the per-vertex array of cull 1425bd8deadSopenharmony_ci distances, as written by the vertex shader to its built-in output 1435bd8deadSopenharmony_ci variable gl_CullDistance[]. 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ci Modify Section 11.3.4.5, Geometry Shader Outputs 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci (replace second paragraph on p. 389) 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ci The built-in outputs gl_ClipDistance and gl_CullDistance hold the clip 1505bd8deadSopenharmony_ci distance(s) and cull distance(s), respectively, used in the clipping 1515bd8deadSopenharmony_ci stage, as described in section 13.5. 1525bd8deadSopenharmony_ci 1535bd8deadSopenharmony_ciAdditions to Chapter 13 of the OpenGL 4.4 (Core Profile) Specification (Fixed-Function Vertex Post-Processing) 1545bd8deadSopenharmony_ci 1555bd8deadSopenharmony_ci Modify Section 13.5, Primitive Clipping 1565bd8deadSopenharmony_ci 1575bd8deadSopenharmony_ci (replace first sentence of first paragraph on p. 404) 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ci Primitives are culled against the cull volume and then clipped against the 1605bd8deadSopenharmony_ci clip volume. 1615bd8deadSopenharmony_ci 1625bd8deadSopenharmony_ci (replace the second, third, and fourth paragraph on p. 404) 1635bd8deadSopenharmony_ci 1645bd8deadSopenharmony_ci This view volume may be further restricted by as many as <n> client- 1655bd8deadSopenharmony_ci defined half-spaces. <n> is an implementation-dependent maximum that must 1665bd8deadSopenharmony_ci be at least 8, and maybe determined by calling GetIntegerv with the 1675bd8deadSopenharmony_ci symbolic constant MAX_COMBINED_CLIP_AND_CULL_DISTANCES. 1685bd8deadSopenharmony_ci 1695bd8deadSopenharmony_ci The cull volume is the intersection of up to MAX_CULL_DISTANCES client- 1705bd8deadSopenharmony_ci defined half-spaces (if no client-defined cull half-spaces are enabled, 1715bd8deadSopenharmony_ci culling against the cull volume is skipped). The number of enabled cull 1725bd8deadSopenharmony_ci half-spaces is determined by the explicit or implicit size of the built-in 1735bd8deadSopenharmony_ci array gl_CullDistance in the last shader stage before rasterization that 1745bd8deadSopenharmony_ci has an active program. 1755bd8deadSopenharmony_ci 1765bd8deadSopenharmony_ci A shader may write a single cull distance for each enabled cull half-space 1775bd8deadSopenharmony_ci to elements of the gl_CullDistance[] array. If the cull distance for any 1785bd8deadSopenharmony_ci enabled cull half-space is negative for all of the vertices of the 1795bd8deadSopenharmony_ci primitive under consideration, the primitive is discarded. Otherwise the 1805bd8deadSopenharmony_ci primitive is clipped against the clip volume as defined below. 1815bd8deadSopenharmony_ci 1825bd8deadSopenharmony_ci The clip volume is the intersection of up to MAX_CLIP_DISTANCES client- 1835bd8deadSopenharmony_ci defined half-spaces with the view volume (if no client-defined clip half- 1845bd8deadSopenharmony_ci spaces are enabled, the clip volume is the view volume). Client-defined 1855bd8deadSopenharmony_ci clip half-spaces are enabled or disabled by calling Enable or Disable with 1865bd8deadSopenharmony_ci <target> CLIP_DISTANCE<i>, where <i> is an integer between 0 and <n> - 1; 1875bd8deadSopenharmony_ci specifying a value of <i> enables or disables the client-defined clip 1885bd8deadSopenharmony_ci half-space with index <i>. The constants obey CLIP_DISTANCE<i> = 1895bd8deadSopenharmony_ci CLIP_DISTANCE0 + <i>. 1905bd8deadSopenharmony_ci 1915bd8deadSopenharmony_ci A shader may write a single clip distance for each enabled clip half-space 1925bd8deadSopenharmony_ci to elements of the gl_ClipDistance[] array. Clip half-space <i> is then 1935bd8deadSopenharmony_ci given by the set of points satisfying the inequality 1945bd8deadSopenharmony_ci 1955bd8deadSopenharmony_ci c[i](P) >= 0, 1965bd8deadSopenharmony_ci 1975bd8deadSopenharmony_ci where c[i](P) is the value of clip distance <i> at point P. For point 1985bd8deadSopenharmony_ci primitives, c[i](P) is simply the clip distance for the vertex in 1995bd8deadSopenharmony_ci question. For line and triangle primitives, per-vertex clip distances are 2005bd8deadSopenharmony_ci interpolated using a weighted mean, with weights derived according to the 2015bd8deadSopenharmony_ci algorithms described in sections 14.5 and 14.6. 2025bd8deadSopenharmony_ci 2035bd8deadSopenharmony_ci Depth clamping ... 2045bd8deadSopenharmony_ci 2055bd8deadSopenharmony_ciAdditions to the OpenGL Shading Language 2065bd8deadSopenharmony_ci 2075bd8deadSopenharmony_ci Including the following line in a shader can be used to control the 2085bd8deadSopenharmony_ci language features described in this extension: 2095bd8deadSopenharmony_ci 2105bd8deadSopenharmony_ci #extension GL_ARB_cull_distance : <behavior> 2115bd8deadSopenharmony_ci 2125bd8deadSopenharmony_ci where <behavior> is as specified in section 3.3. 2135bd8deadSopenharmony_ci 2145bd8deadSopenharmony_ci New preprocessor #define is added to the OpenGL Shading Language: 2155bd8deadSopenharmony_ci 2165bd8deadSopenharmony_ci #define GL_ARB_cull_distance 1 2175bd8deadSopenharmony_ci 2185bd8deadSopenharmony_ciAdditions to Chapter 7 of the OpenGL Shading Language 4.40 Specification (Built-in Variables) 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ci Modify Section 7.1, Built-In Language Variables 2215bd8deadSopenharmony_ci 2225bd8deadSopenharmony_ci (add a new field to the end of the declaration of "gl_PerVertex" for 2235bd8deadSopenharmony_ci all language input and output blocks on p. 120-122) 2245bd8deadSopenharmony_ci 2255bd8deadSopenharmony_ci float gl_CullDistance[]; 2265bd8deadSopenharmony_ci 2275bd8deadSopenharmony_ci (add new declaration to the built-in variables available in the fragment 2285bd8deadSopenharmony_ci language on p. 122) 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci in float gl_CullDistance[]; 2315bd8deadSopenharmony_ci 2325bd8deadSopenharmony_ci (add after second paragraph on p. 124) 2335bd8deadSopenharmony_ci 2345bd8deadSopenharmony_ci The variable gl_CullDistance provides a mechanism for controlling user 2355bd8deadSopenharmony_ci culling. The element gl_CullDistance[i] specifies a cull distance for 2365bd8deadSopenharmony_ci plane <i>. A distance of 0 means the vertex is on the plane, a positive 2375bd8deadSopenharmony_ci distance means the vertex is inside the cull volume, and a negative 2385bd8deadSopenharmony_ci distance means the point is outside the cull volume. Primitives whose 2395bd8deadSopenharmony_ci vertices all have a negative clip distance for plane <i> will be 2405bd8deadSopenharmony_ci discarded. 2415bd8deadSopenharmony_ci 2425bd8deadSopenharmony_ci The gl_CullDistance array is predeclared as unsized and must be sized by 2435bd8deadSopenharmony_ci the shader either redeclaring it with a size or indexing it only with 2445bd8deadSopenharmony_ci integral constant expressions. The size determines the number and set of 2455bd8deadSopenharmony_ci enabled cull distances and can be at most gl_MaxCullDistances. The number 2465bd8deadSopenharmony_ci of varying components (see gl_MaxVaryingComponents) consumed by 2475bd8deadSopenharmony_ci gl_CullDistance will match the size of the array. Shaders writing 2485bd8deadSopenharmony_ci gl_CullDistance must write all enabled distances, or culling results are 2495bd8deadSopenharmony_ci undefined. 2505bd8deadSopenharmony_ci 2515bd8deadSopenharmony_ci As an output variable, gl_CullDistance provides the place for the shader 2525bd8deadSopenharmony_ci to write these distances. As an input in all but the fragment language, 2535bd8deadSopenharmony_ci it reads the values written in the previous shader stage. In the 2545bd8deadSopenharmony_ci fragment language, gl_CullDistance array contains linearly interpolated 2555bd8deadSopenharmony_ci values for the vertex values written by a shader to the gl_CullDistance 2565bd8deadSopenharmony_ci vertex output variable. 2575bd8deadSopenharmony_ci 2585bd8deadSopenharmony_ci It is a compile-time or link-time error for the set of shaders forming 2595bd8deadSopenharmony_ci a program to have the sum of the sizes of the gl_ClipDistance and 2605bd8deadSopenharmony_ci gl_CullDistance arrays to be larger than 2615bd8deadSopenharmony_ci gl_MaxCombinedClipAndCullDistances. 2625bd8deadSopenharmony_ci 2635bd8deadSopenharmony_ci Modify Section 7.1.1, Compatibility Profile Built-In Language Variables 2645bd8deadSopenharmony_ci 2655bd8deadSopenharmony_ci (modify last sentence on p. 128) 2665bd8deadSopenharmony_ci 2675bd8deadSopenharmony_ci It is a compile-time or link-time error for the set of shaders forming 2685bd8deadSopenharmony_ci a program to statically read or write both gl_ClipVertex and 2695bd8deadSopenharmony_ci either gl_ClipDistance or gl_CullDistance. 2705bd8deadSopenharmony_ci 2715bd8deadSopenharmony_ci Modify Section 7.3, Built-In Constants 2725bd8deadSopenharmony_ci 2735bd8deadSopenharmony_ci (add to the list of implementation-dependent constants after 2745bd8deadSopenharmony_ci gl_MaxClipDistances on p. 132) 2755bd8deadSopenharmony_ci 2765bd8deadSopenharmony_ci const int gl_MaxCullDistances = 8; 2775bd8deadSopenharmony_ci const int gl_MaxCombinedClipAndCullDistances = 8; 2785bd8deadSopenharmony_ci 2795bd8deadSopenharmony_ciAdditions to the AGL/EGL/GLX/WGL Specifications 2805bd8deadSopenharmony_ci 2815bd8deadSopenharmony_ci None 2825bd8deadSopenharmony_ci 2835bd8deadSopenharmony_ciErrors 2845bd8deadSopenharmony_ci 2855bd8deadSopenharmony_ci None 2865bd8deadSopenharmony_ci 2875bd8deadSopenharmony_ciNew State 2885bd8deadSopenharmony_ci 2895bd8deadSopenharmony_ci None. 2905bd8deadSopenharmony_ci 2915bd8deadSopenharmony_ciNew Implementation Dependent State 2925bd8deadSopenharmony_ci 2935bd8deadSopenharmony_ci (add to table 23.53, Implementation Dependent Values) 2945bd8deadSopenharmony_ci 2955bd8deadSopenharmony_ci Get Value Type Get Command Minimum value Description Sec. 2965bd8deadSopenharmony_ci ------------------------------------ ---- ----------- ------------- --------------------------------- ---- 2975bd8deadSopenharmony_ci MAX_CULL_DISTANCES Z+ GetIntegerv 8 Max no. of user culling planes 13.5 2985bd8deadSopenharmony_ci MAX_COMBINED_CLIP_AND_CULL_DISTANCES Z+ GetIntegerv 8 Max combined no. of user clipping 13.5 2995bd8deadSopenharmony_ci and culling planes 3005bd8deadSopenharmony_ci 3015bd8deadSopenharmony_ciIssues 3025bd8deadSopenharmony_ci 3035bd8deadSopenharmony_ci (1) Why is this extension necessary? 3045bd8deadSopenharmony_ci 3055bd8deadSopenharmony_ci RESOLVED: This feature is supported by a competing graphics API. One 3065bd8deadSopenharmony_ci could implement some of this functionality with a geometry shader but 3075bd8deadSopenharmony_ci that doesn't work well in all circumstances, or is very difficult. 3085bd8deadSopenharmony_ci 3095bd8deadSopenharmony_ci (2) Should there be enable flags for cull distances as there are for 3105bd8deadSopenharmony_ci clip distances? 3115bd8deadSopenharmony_ci 3125bd8deadSopenharmony_ci RESOLVED: The clip plane enables still exist for OpenGL 4.4 core 3135bd8deadSopenharmony_ci profile, but they are mostly there because of backwards compatibility 3145bd8deadSopenharmony_ci reasons. The proposal is to not have separate enables for cull 3155bd8deadSopenharmony_ci distances, instead usage in the shader should determine this. 3165bd8deadSopenharmony_ci 3175bd8deadSopenharmony_ci (3) How many cull distances are supported? 3185bd8deadSopenharmony_ci 3195bd8deadSopenharmony_ci RESOLVED: Eight. But as resources used by cull distances and clip 3205bd8deadSopenharmony_ci distances may be aliased on some implementations we also introduce a 3215bd8deadSopenharmony_ci combined resource limit of eight. 3225bd8deadSopenharmony_ci 3235bd8deadSopenharmony_ci (4) How do we determine the number of enabled cull distances? 3245bd8deadSopenharmony_ci 3255bd8deadSopenharmony_ci RESOLVED: Redeclaring the gl_CullDistance array with a size of <n> 3265bd8deadSopenharmony_ci automatically enables the first <n> cull distances. 3275bd8deadSopenharmony_ci 3285bd8deadSopenharmony_ci (5) Which shader stage determines the number of enabled cull distances in 3295bd8deadSopenharmony_ci case multiple shader stages redeclare gl_CullDistance? 3305bd8deadSopenharmony_ci 3315bd8deadSopenharmony_ci RESOLVED: The implicit or explicit size of gl_CullDistance in the 3325bd8deadSopenharmony_ci very last shader stage before rasterization determines the number 3335bd8deadSopenharmony_ci of enabled cull distances. 3345bd8deadSopenharmony_ci 3355bd8deadSopenharmony_ci (6) How should we validate that we don't go over resource limits? 3365bd8deadSopenharmony_ci 3375bd8deadSopenharmony_ci RESOLVED: There is an implicit or explicit size for both 3385bd8deadSopenharmony_ci gl_ClipDistance and gl_CullDistance in the shader. If the sum of the 3395bd8deadSopenharmony_ci sizes of the two arrays is over MAX_COMBINED_CLIP_AND_CULL_DISTANCES 3405bd8deadSopenharmony_ci it results in a compile-time or link-time error. 3415bd8deadSopenharmony_ci 3425bd8deadSopenharmony_ci (7) Should there be a built-in gl_CullDistance in the fragment language? 3435bd8deadSopenharmony_ci 3445bd8deadSopenharmony_ci RESOLVED: Yes, just like gl_ClipDistance is available in the fragment 3455bd8deadSopenharmony_ci language. 3465bd8deadSopenharmony_ci 3475bd8deadSopenharmony_ciRevision History 3485bd8deadSopenharmony_ci 3495bd8deadSopenharmony_ci Revision 9, 2014/06/17 (Daniel Rakos) 3505bd8deadSopenharmony_ci - Added missing tokens. 3515bd8deadSopenharmony_ci 3525bd8deadSopenharmony_ci Revision 8, 2014/06/06 (Daniel Rakos) 3535bd8deadSopenharmony_ci - Resolved issues (5) and (7). 3545bd8deadSopenharmony_ci - Clarified language describing the number of enabled cull distances. 3555bd8deadSopenharmony_ci 3565bd8deadSopenharmony_ci Revision 7, 2014/05/30 (Daniel Rakos) 3575bd8deadSopenharmony_ci - Resolved issues (2), (3), (4), and (6). 3585bd8deadSopenharmony_ci 3595bd8deadSopenharmony_ci Revision 6, 2014/05/22 (Daniel Rakos) 3605bd8deadSopenharmony_ci - Minor language cleanup. 3615bd8deadSopenharmony_ci 3625bd8deadSopenharmony_ci Revision 5, 2014/05/19 (Daniel Rakos) 3635bd8deadSopenharmony_ci - Added language to explicitly disallow the use of gl_ClipVertex and 3645bd8deadSopenharmony_ci gl_CullDistance at the same time. 3655bd8deadSopenharmony_ci 3665bd8deadSopenharmony_ci Revision 4, 2014/05/16 (Daniel Rakos) 3675bd8deadSopenharmony_ci - Added missing language about #extension and #define for the feature. 3685bd8deadSopenharmony_ci 3695bd8deadSopenharmony_ci Revision 3, 2014/04/25 (Daniel Rakos) 3705bd8deadSopenharmony_ci - Renamed to ARB_cull_distance. 3715bd8deadSopenharmony_ci - Added implementation-dependent states MAX_CULL_DISTANCES and 3725bd8deadSopenharmony_ci MAX_COMBINED_CLIP_AND_CULL_DISTANCES. 3735bd8deadSopenharmony_ci - Rewrote language based on discussion. 3745bd8deadSopenharmony_ci - Added issues (3) to (7). 3755bd8deadSopenharmony_ci 3765bd8deadSopenharmony_ci Revision 2, 2014/04/10 (Brian Paul) 3775bd8deadSopenharmony_ci - Fleshed out edits to chapter 13 of the spec. 3785bd8deadSopenharmony_ci - Added issue (2). 3795bd8deadSopenharmony_ci 3805bd8deadSopenharmony_ci Revision 1, 2014/02/03 (Brian Paul) 3815bd8deadSopenharmony_ci - Initial revision. 382