15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    NV_framebuffer_multisample_coverage
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_NV_framebuffer_multisample_coverage
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Mike Strauss, NVIDIA Corporation (mstrauss 'at' nvidia.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciStatus
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Shipping in NVIDIA Release 95 drivers (November 2006)
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ci    Functionality supported by GeForce 8800
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ciVersion
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ci    Last Modified Date:  May 31, 2008
225bd8deadSopenharmony_ci    Revision #9
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ciNumber
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ci    336
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ciDependencies
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ci    Requires GL_EXT_framebuffer_object.
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    Requires GL_EXT_framebuffer_blit.
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ci    Requires GL_EXT_framebuffer_multisample.
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    Written based on the wording of the OpenGL 1.5 specification.
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ciOverview
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ci    This extension extends the EXT_framebuffer_multisample 
415bd8deadSopenharmony_ci    specification by providing a new function,
425bd8deadSopenharmony_ci    RenderBufferStorageMultisampleCoverageNV, that distinguishes 
435bd8deadSopenharmony_ci    between color samples and coverage samples.
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci    EXT_framebuffer_multisample introduced the function 
465bd8deadSopenharmony_ci    RenderbufferStorageMultisampleEXT as a method of defining the 
475bd8deadSopenharmony_ci    storage parameters for a multisample render buffer.  This function 
485bd8deadSopenharmony_ci    takes a <samples> parameter.  Using rules provided by the 
495bd8deadSopenharmony_ci    specification, the <samples> parameter is resolved to an actual 
505bd8deadSopenharmony_ci    number of samples that is supported by the underlying hardware.  
515bd8deadSopenharmony_ci    EXT_framebuffer_multisample does not specify whether <samples>
525bd8deadSopenharmony_ci    refers to coverage samples or color samples.
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    This extension adds the function 
555bd8deadSopenharmony_ci    RenderbufferStorageMultisamplCoverageNV, which takes a 
565bd8deadSopenharmony_ci    <coverageSamples> parameter as well as a <colorSamples> parameter.  
575bd8deadSopenharmony_ci    These two parameters give developers more fine grained control over
585bd8deadSopenharmony_ci    the quality of multisampled images.
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ciIP Status
615bd8deadSopenharmony_ci    
625bd8deadSopenharmony_ci    No known IP issues.
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ciNew Procedures and Functions
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci    void RenderbufferStorageMultisampleCoverageNV(
675bd8deadSopenharmony_ci             enum target, sizei coverageSamples, 
685bd8deadSopenharmony_ci             sizei colorSamples, enum internalformat,
695bd8deadSopenharmony_ci             sizei width, sizei height);
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ciNew Tokens
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetRenderbufferParameterivEXT:
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci        RENDERBUFFER_COVERAGE_SAMPLES_NV         0x8CAB
765bd8deadSopenharmony_ci        RENDERBUFFER_COLOR_SAMPLES_NV            0x8E10
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetIntegerv:
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci        MAX_MULTISAMPLE_COVERAGE_MODES_NV        0x8E11
825bd8deadSopenharmony_ci        MULTISAMPLE_COVERAGE_MODES_NV            0x8E12
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 2.0 Specification (OpenGL Operation)
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    None.
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization)
895bd8deadSopenharmony_ci
905bd8deadSopenharmony_ci    None.
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 2.0 Specification (Per-Fragment
935bd8deadSopenharmony_ciOperations and the Frame Buffer)
945bd8deadSopenharmony_ci
955bd8deadSopenharmony_ci    Modification to 4.4.2.1 (Renderbuffer Objects)
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ci    Add, just above the definition of RenderbufferStorageMultisampleEXT:
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci    "The command
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ci        void RenderbufferStorageMultisampleCoverageNV(
1025bd8deadSopenharmony_ci            enum target, sizei coverageSamples, 
1035bd8deadSopenharmony_ci            sizei colorSamples, enum internalformat,
1045bd8deadSopenharmony_ci            sizei width, sizei height);
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci    establishes the data storage, format, dimensions, number of coverage
1075bd8deadSopenharmony_ci    samples, and number of color samples of a renderbuffer object's 
1085bd8deadSopenharmony_ci    image.  <target> must be RENDERBUFFER_EXT.  <internalformat> must be
1095bd8deadSopenharmony_ci    RGB, RGBA, DEPTH_COMPONENT, STENCIL_INDEX, or one of the internal 
1105bd8deadSopenharmony_ci    formats from table 3.16 or table 2.nnn that has a base internal 
1115bd8deadSopenharmony_ci    format of RGB, RGBA, DEPTH_COMPONENT, or STENCIL_INDEX.  <width> 
1125bd8deadSopenharmony_ci    and <height> are the dimensions in pixels of the renderbuffer.  If 
1135bd8deadSopenharmony_ci    either <width> or <height> is greater than 
1145bd8deadSopenharmony_ci    MAX_RENDERBUFFER_SIZE_EXT, the error INVALID_VALUE is generated.  If
1155bd8deadSopenharmony_ci    the GL is unable to create a data store of the requested size, the 
1165bd8deadSopenharmony_ci    error OUT_OF_MEMORY is generated.
1175bd8deadSopenharmony_ci
1185bd8deadSopenharmony_ci    Upon success, RenderbufferStorageMultisampleCoverageNV deletes any 
1195bd8deadSopenharmony_ci    existing data store for the renderbuffer image and the contents of 
1205bd8deadSopenharmony_ci    the data store after calling 
1215bd8deadSopenharmony_ci    RenderbufferStorageMultisampleCoverageNV are undefined.  
1225bd8deadSopenharmony_ci    RENDERBUFFER_WIDTH_EXT is set to <width>, RENDERBUFFER_HEIGHT_EXT 
1235bd8deadSopenharmony_ci    is set to <height>, and RENDERBUFFER_INTERNAL_FORMAT_EXT is set to 
1245bd8deadSopenharmony_ci    <internalformat>.
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ci    If <coverageSamples> is zero, then RENDERBUFFER_COVERAGE_SAMPLES_NV 
1275bd8deadSopenharmony_ci    is set to zero.  Otherwise <coverageSamples> represents a request 
1285bd8deadSopenharmony_ci    for a desired minimum number of coverage samples. Since different 
1295bd8deadSopenharmony_ci    implementations may support different coverage sample counts for 
1305bd8deadSopenharmony_ci    multisampled rendering, the actual number of coverage samples 
1315bd8deadSopenharmony_ci    allocated for the renderbuffer image is implementation dependent.  
1325bd8deadSopenharmony_ci    However, the resulting value for RENDERBUFFER_COVERAGE_SAMPLES_NV is
1335bd8deadSopenharmony_ci    guaranteed to be greater than or equal to <coverageSamples> and no 
1345bd8deadSopenharmony_ci    more than the next larger coverage sample count supported by the 
1355bd8deadSopenharmony_ci    implementation.
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ci    If <colorSamples> is zero then RENDERBUFFER_COLOR_SAMPLES_NV is set
1385bd8deadSopenharmony_ci    to zero.  Otherwise, <colorSamples> represents a request for a 
1395bd8deadSopenharmony_ci    desired minimum number of colors samples.  Since different 
1405bd8deadSopenharmony_ci    implementations may support different color sample counts for 
1415bd8deadSopenharmony_ci    multisampled rendering, the actual number of color samples 
1425bd8deadSopenharmony_ci    allocated for the renderbuffer image is implementation dependent.
1435bd8deadSopenharmony_ci    Furthermore, a given implementation may support different color 
1445bd8deadSopenharmony_ci    sample counts for each supported coverage sample count.  The
1455bd8deadSopenharmony_ci    resulting value for RENDERBUFFER_COLOR_SAMPLES_NV is determined
1465bd8deadSopenharmony_ci    after resolving the value for RENDERBUFFER_COVERAGE_SAMPLES_NV.
1475bd8deadSopenharmony_ci    If the requested color sample count exceeds the maximum number of
1485bd8deadSopenharmony_ci    color samples supported by the implementation given the value of
1495bd8deadSopenharmony_ci    RENDERBUFFER_COVERAGE_SAMPLES_NV, the implementation will set
1505bd8deadSopenharmony_ci    RENDERBUFFER_COLOR_SAMPLES_NV to the highest supported value.  
1515bd8deadSopenharmony_ci    Otherwise, the resulting value for RENDERBUFFER_COLOR_SAMPLES_NV is
1525bd8deadSopenharmony_ci    guaranteed to be greater than or equal to <colorSamples> and no 
1535bd8deadSopenharmony_ci    more than the next larger color sample count supported by the 
1545bd8deadSopenharmony_ci    implementation given the value of RENDERBUFFER_COVERAGE_SAMPLES_NV.
1555bd8deadSopenharmony_ci
1565bd8deadSopenharmony_ci    If <colorSamples> is greater than <coverageSamples>, the error
1575bd8deadSopenharmony_ci    INVALID_VALUE is generated.
1585bd8deadSopenharmony_ci
1595bd8deadSopenharmony_ci    If <coverageSamples> or <colorSamples> is greater than 
1605bd8deadSopenharmony_ci    MAX_SAMPLES_EXT, the error INVALID_VALUE is generated.
1615bd8deadSopenharmony_ci
1625bd8deadSopenharmony_ci    If <coverageSamples> is greater than zero, and <colorSamples> is
1635bd8deadSopenharmony_ci    zero, RENDERBUFFER_COLOR_SAMPLES_NV is set to an implementation
1645bd8deadSopenharmony_ci    dependent value based on RENDERBUFFER_COVERAGE_SAMPLES_NV.
1655bd8deadSopenharmony_ci
1665bd8deadSopenharmony_ci    An implementation may only support a subset of the possible
1675bd8deadSopenharmony_ci    combinations of coverage samples and color samples.  Requests for
1685bd8deadSopenharmony_ci    combinations not supported by the implementation are resolved to
1695bd8deadSopenharmony_ci    a supported combination using the rules above.  The number of 
1705bd8deadSopenharmony_ci    supported combinations is MAX_MULTISAMPLE_COVERAGE_MODES_NV.
1715bd8deadSopenharmony_ci    MULTISAMPLE_COVERAGE_MODES_NV is an array of 
1725bd8deadSopenharmony_ci    MAX_MULTISAMPLE_COVERAGE_MODES_NV pairs of integers representing
1735bd8deadSopenharmony_ci    the combinations of coverage samples and color samples supported
1745bd8deadSopenharmony_ci    by the implementation.  The first integer in each pair corresponds
1755bd8deadSopenharmony_ci    to coverage samples, while the second corresponds to color samples.
1765bd8deadSopenharmony_ci
1775bd8deadSopenharmony_ci    Modify the definition of RenderbufferStorageMultisampleEXT as
1785bd8deadSopenharmony_ci    follows:
1795bd8deadSopenharmony_ci
1805bd8deadSopenharmony_ci    "The command
1815bd8deadSopenharmony_ci
1825bd8deadSopenharmony_ci        void RenderbufferStorageMultisampleEXT(
1835bd8deadSopenharmony_ci            enum target, sizei samples,
1845bd8deadSopenharmony_ci            enum internalformat,
1855bd8deadSopenharmony_ci            sizei width, sizei height);
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci    is equivalent to calling
1885bd8deadSopenharmony_ci
1895bd8deadSopenharmony_ci        RenderbufferStorageMultisampleCoverageNV(target, samples, 0,
1905bd8deadSopenharmony_ci            internalforamt, width, height).
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    Modification to 4.4.4.2 (Framebuffer Completeness)
1935bd8deadSopenharmony_ci
1945bd8deadSopenharmony_ci    Modify the RENDERBUFFER_SAMPLES_EXT entry in the bullet list:
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ci    * The value of RENDERBUFFER_COVERAGE_SAMPLES_NV is the same for all
1975bd8deadSopenharmony_ci      attached images.
1985bd8deadSopenharmony_ci      { FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }  
1995bd8deadSopenharmony_ci
2005bd8deadSopenharmony_ci    Add an entry to the bullet list:
2015bd8deadSopenharmony_ci
2025bd8deadSopenharmony_ci    * The value of RENDERBUFFER_COLOR_SAMPLES_NV is the same for all
2035bd8deadSopenharmony_ci      attached images.
2045bd8deadSopenharmony_ci      { FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT }
2055bd8deadSopenharmony_ci    
2065bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 2.0 Specification (Special Functions)
2075bd8deadSopenharmony_ci
2085bd8deadSopenharmony_ci    None.
2095bd8deadSopenharmony_ci
2105bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 2.0 Specification (State and
2115bd8deadSopenharmony_ciState Requests)
2125bd8deadSopenharmony_ci
2135bd8deadSopenharmony_ci    None.
2145bd8deadSopenharmony_ci
2155bd8deadSopenharmony_ciAdditions to Appendix A of the OpenGL 2.0 Specification (Invariance)
2165bd8deadSopenharmony_ci
2175bd8deadSopenharmony_ci   None.
2185bd8deadSopenharmony_ci
2195bd8deadSopenharmony_ciErrors
2205bd8deadSopenharmony_ci
2215bd8deadSopenharmony_ci   The error INVALID_OPERATION is generated if 
2225bd8deadSopenharmony_ci   RenderbufferStorageMultisampleCoverageNV is called and 
2235bd8deadSopenharmony_ci   <colorSamples> is greater than <coverageSamples>
2245bd8deadSopenharmony_ci
2255bd8deadSopenharmony_ci   The error INVALID_VALUE is generated if
2265bd8deadSopenharmony_ci   RenderbufferStorageMultisampleCoverageNV is called and 
2275bd8deadSopenharmony_ci   <coverageSamples> is greater than MAX_SAMPLES_EXT.
2285bd8deadSopenharmony_ci
2295bd8deadSopenharmony_ci   The error INVALID_VALUE is generated if
2305bd8deadSopenharmony_ci   RenderbufferStorageMultisampleCoverageNV is called and 
2315bd8deadSopenharmony_ci   <colorSamples> is greater than MAX_SAMPLES_EXT.
2325bd8deadSopenharmony_ci
2335bd8deadSopenharmony_ciNew State
2345bd8deadSopenharmony_ci
2355bd8deadSopenharmony_ci(add to table 8.nnn, "Renderbuffers (state per renderbuffer object)")
2365bd8deadSopenharmony_ci
2375bd8deadSopenharmony_ci                                                                           Initial
2385bd8deadSopenharmony_ci    Get Value                         Type  Get Command                    Value    Description          Section       Attribute
2395bd8deadSopenharmony_ci    --------------------------------  ----  -----------------------------  -------  -------------------  ------------  ---------
2405bd8deadSopenharmony_ci    RENDERBUFFER_COVERAGE_SAMPLES_NV   Z+   GetRenderbufferParameterivEXT  0        Number of coverage   4.4.2.1           - 
2415bd8deadSopenharmony_ci                                                                                    samples used by the
2425bd8deadSopenharmony_ci                                                                                    renderbuffer
2435bd8deadSopenharmony_ci    RENDERBUFFER_COLOR_SAMPLES_NV      Z+   GetRenderbufferParameterivEXT  0        Number of color      4.4.2.1           - 
2445bd8deadSopenharmony_ci                                                                                    samples used by the
2455bd8deadSopenharmony_ci                                                                                    renderbuffer
2465bd8deadSopenharmony_ci
2475bd8deadSopenharmony_ci(modify RENDERBUFFER_SAMPLES_EXT entry in table 8.nnn)
2485bd8deadSopenharmony_ci
2495bd8deadSopenharmony_ci                                                                   Initial
2505bd8deadSopenharmony_ci    Get Value                 Type  Get Command                    Value   Description          Section       Attribute
2515bd8deadSopenharmony_ci    ------------------------  ----  -----------------------------  ------  -------------------  ------------  ---------
2525bd8deadSopenharmony_ci    RENDERBUFFER_SAMPLES_EXT    Z+  GetRenderbufferParameterivEXT  0       Alias for            4.4.2.1           - 
2535bd8deadSopenharmony_ci                                                                           RENDERBUFFER_-
2545bd8deadSopenharmony_ci                                                                           COVERAGE_SAMPLES_NV
2555bd8deadSopenharmony_ci
2565bd8deadSopenharmony_ciNew Implementation Dependent State
2575bd8deadSopenharmony_ci
2585bd8deadSopenharmony_ci                                                                Minimum
2595bd8deadSopenharmony_ci    Get Value                          Type        Get Command  Value    Description                           Section  Attribute
2605bd8deadSopenharmony_ci    ---------------------------------  ---------   -----------  -------  ------------------------------------  -------  ---------
2615bd8deadSopenharmony_ci    MAX_MULTISAMPLE_COVERAGE_MODES_NV    Z+        GetIntegerv        0  Number of unique combinations of      4.4.2.1      -
2625bd8deadSopenharmony_ci                                                                         <coverageSamples> and <colorSamples>
2635bd8deadSopenharmony_ci                                                                         supported by the implementation.
2645bd8deadSopenharmony_ci    MULTISAMPLE_COVERAGE_MODES_NV      n * 2 x Z+  GetIntegerv     -     MAX_MULTISAMPLE_COVERAGE_MODES_NV (n)  4.4.2.1      -
2655bd8deadSopenharmony_ci                                                                         pairs of integers.  Each pair is
2665bd8deadSopenharmony_ci                                                                         a unique combination of 
2675bd8deadSopenharmony_ci                                                                         <coverageSamples> and <colorSamples>
2685bd8deadSopenharmony_ci                                                                         supported by the implementation.
2695bd8deadSopenharmony_ci
2705bd8deadSopenharmony_ciIssues
2715bd8deadSopenharmony_ci
2725bd8deadSopenharmony_ci    (1)  How should RenderbufferStorageMultisampleEXT be layered on top
2735bd8deadSopenharmony_ci         of RenderbufferStorageMultisampleCoverageNV?
2745bd8deadSopenharmony_ci
2755bd8deadSopenharmony_ci         RESOLVED.  NVIDIA will expose this extension at the same time
2765bd8deadSopenharmony_ci         that EXT_framebuffer_multisample is exposed, so there will not
2775bd8deadSopenharmony_ci         be any issues with backward compatibility.  However, some 
2785bd8deadSopenharmony_ci         developers choose not to use vendor specific extensions.  These
2795bd8deadSopenharmony_ci         developers should be able to make use of current and future
2805bd8deadSopenharmony_ci         hardware that differentiates between color and coverage 
2815bd8deadSopenharmony_ci         samples.  Since color samples are a subset of coverage samples,
2825bd8deadSopenharmony_ci         the <samples> parameter to RenderbufferStorageMultisampleEXT
2835bd8deadSopenharmony_ci         should be treated as a request for coverage samples.  The 
2845bd8deadSopenharmony_ci         implementation is free to choose the number of color samples
2855bd8deadSopenharmony_ci         used by the renderbuffer.
2865bd8deadSopenharmony_ci
2875bd8deadSopenharmony_ci    (2)  <coverageSamples> is rounded up to the next highest
2885bd8deadSopenharmony_ci         number of samples supported by the implementation.  How
2895bd8deadSopenharmony_ci         should <colorSamples> be rounded given that an implementation
2905bd8deadSopenharmony_ci         may not support all combinations of <coverageSamples> and
2915bd8deadSopenharmony_ci         <colorSamples>?
2925bd8deadSopenharmony_ci
2935bd8deadSopenharmony_ci         RESOLVED:  It is a requirement that <coverageSamples> be 
2945bd8deadSopenharmony_ci         compatible with the <samples> parameter to 
2955bd8deadSopenharmony_ci         RenderbufferStorageMultisampleEXT.  While it is desirable for
2965bd8deadSopenharmony_ci         <colorSamples> to resolve the same way as <coverageSamples>, 
2975bd8deadSopenharmony_ci         this may not always be possible.  An implementation may support 
2985bd8deadSopenharmony_ci         a different maximum number of color samples for each coverage
2995bd8deadSopenharmony_ci         sample count.  It would be confusing to set an error when 
3005bd8deadSopenharmony_ci         <colorSamples> exceeds the maximum supported number of color 
3015bd8deadSopenharmony_ci         samples for a given coverage sample count, because there 
3025bd8deadSopenharmony_ci         is no mechanism to query or predict this behavior.  Therefore,
3035bd8deadSopenharmony_ci         the implementation should round <colorSamples> down when it
3045bd8deadSopenharmony_ci         exceeds the maximum number of color samples supported with the
3055bd8deadSopenharmony_ci         given coverage sample count.  Otherwise, <colorSamples> is
3065bd8deadSopenharmony_ci         rounded up to the next highest number of color samples
3075bd8deadSopenharmony_ci         supported by the implementation.
3085bd8deadSopenharmony_ci         
3095bd8deadSopenharmony_ci   (3)   EXT_framebuffer_multisample provides a way to query the maximum
3105bd8deadSopenharmony_ci         number of samples supported by an implementation.  Should a new
3115bd8deadSopenharmony_ci         query mechanism be added so that an application can determine 
3125bd8deadSopenharmony_ci         the maximum number of color samples supported with a given
3135bd8deadSopenharmony_ci         number of coverage samples?
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ci         RESOLVED:  Yes.  An application can use GetIntegerv to query 
3165bd8deadSopenharmony_ci         MAX_MULTISAMPLE_COVERAGE_MODES_NV.  The result is the number of
3175bd8deadSopenharmony_ci         unique combinations of <coverageSamples> and <colorSamples> that
3185bd8deadSopenharmony_ci         are supported by the implementation.  GetIntegerv can be used
3195bd8deadSopenharmony_ci         with MULTISAMPLE_COVERAGE_MODES_NV to query these combinations.
3205bd8deadSopenharmony_ci         The integer array is populated with 
3215bd8deadSopenharmony_ci         MAX_MULTISAMPLE_COVERAGE_MODES_NV pairs of integers, where each
3225bd8deadSopenharmony_ci         pair describes a unique multisample coverage mode.  The first
3235bd8deadSopenharmony_ci         integer in each pair is the number of coverage samples and the
3245bd8deadSopenharmony_ci         second integer is the number of color samples.  An example is
3255bd8deadSopenharmony_ci         below:
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci             // Get the number of unique multisample coverage modes
3285bd8deadSopenharmony_ci             glGetIntegerv(GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV, &numModes);
3295bd8deadSopenharmony_ci
3305bd8deadSopenharmony_ci             // Allocate enough memory to store the array of modes
3315bd8deadSopenharmony_ci             GLint *modes = (GLint*)malloc(2*numModes*sizeof(GLint));
3325bd8deadSopenharmony_ci
3335bd8deadSopenharmony_ci             // Get the list of modes
3345bd8deadSopenharmony_ci             glGetIntegerv(GL_MULTISAMPLE_COVERAGE_MODES_NV, modes);
3355bd8deadSopenharmony_ci
3365bd8deadSopenharmony_ci             // Print out all of the modes
3375bd8deadSopenharmony_ci             for (i = 0; i < numModes; i++) {
3385bd8deadSopenharmony_ci                 printf("%d coverage samples, %d color samples\n",
3395bd8deadSopenharmony_ci                        modes[i*2+0],   // coverage samples for mode i
3405bd8deadSopenharmony_ci                        modes[i*2+1]);  // color samples for mode i
3415bd8deadSopenharmony_ci             }
3425bd8deadSopenharmony_ci
3435bd8deadSopenharmony_ciRevision History
3445bd8deadSopenharmony_ci
3455bd8deadSopenharmony_ci    Rev.    Date    Author    Changes
3465bd8deadSopenharmony_ci    ----  --------  --------  --------------------------------------------
3475bd8deadSopenharmony_ci    7-9   05/31/08  mjk       Miscellaneous typo fixes.
3485bd8deadSopenharmony_ci
3495bd8deadSopenharmony_ci     6              mstrauss  Internal spec development.
350