15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    NV_multisample_coverage
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_NV_multisample_coverage
85bd8deadSopenharmony_ci    GLX_NV_multisample_coverage
95bd8deadSopenharmony_ci    WGL_NV_multisample_coverage
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ciContact
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ci    Mike Strauss (mstrauss 'at' nvidia.com)
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ciStatus
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ci    Shipping in NVIDIA release 169.xx drivers (May 2008) for GeForce
185bd8deadSopenharmony_ci    8 and up
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ciVersion
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ci    Revision:                   4
235bd8deadSopenharmony_ci    Last Modified Date:         March 7, 2013
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciNumber
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ci    393
285bd8deadSopenharmony_ci
295bd8deadSopenharmony_ciDependencies
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ci    ARB_multisample is required.
325bd8deadSopenharmony_ci    Written using the language of the OpenGL 2.1 specification.
335bd8deadSopenharmony_ci    Written using the language of the GLX 1.4 specification.
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciOverview
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    The ARB_multisample extension provides a mechanism for antialiasing
385bd8deadSopenharmony_ci    primitives.  This mechanism allows an application to request an
395bd8deadSopenharmony_ci    additional buffer, the multisample buffer, that is added to the
405bd8deadSopenharmony_ci    framebuffer.  An application can request the number of samples per
415bd8deadSopenharmony_ci    fragment that are stored in the multisample buffer.  Rendering 
425bd8deadSopenharmony_ci    proceeds by writing color, depth, and stencil values for each 
435bd8deadSopenharmony_ci    sample to the multisample buffer.  The results are automatically
445bd8deadSopenharmony_ci    resolved to a single displayable color each time a pixel is 
455bd8deadSopenharmony_ci    updated.
465bd8deadSopenharmony_ci
475bd8deadSopenharmony_ci    Coverage Sample Anti-Aliasing (CSAA) is an extension to multisample
485bd8deadSopenharmony_ci    antialiasing.  The technique separates "samples" into two types of
495bd8deadSopenharmony_ci    samples.  "Color samples" are samples with color, depth, and 
505bd8deadSopenharmony_ci    stencil information stored in the multisample buffer.  "Coverage
515bd8deadSopenharmony_ci    samples" include both color samples and additional samples that only
525bd8deadSopenharmony_ci    provide pixel coverage information.
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    This extension follows the example of the
555bd8deadSopenharmony_ci    NV_framebuffer_multisample_coverage extension, which adds CSAA
565bd8deadSopenharmony_ci    support for framebuffer objects.  The base description of 
575bd8deadSopenharmony_ci    multisample rendering is written in terms of coverage samples and
585bd8deadSopenharmony_ci    color samples.  The windows system notion of "samples"
595bd8deadSopenharmony_ci    (SAMPLES_ARB) is layered on top of coverage and color samples.
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ciIP Status
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ci    None.
645bd8deadSopenharmony_ci
655bd8deadSopenharmony_ciNew Procedures and Functions
665bd8deadSopenharmony_ci
675bd8deadSopenharmony_ci    None.
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ciNew Tokens
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ci    Accepted by the <attribList> parameter of glXChooseVisual, and by
725bd8deadSopenharmony_ci    the <attrib> parameter of glXGetConfig, the <attrib_list> parameter
735bd8deadSopenharmony_ci    of glXChooseFBConfig, and the <attribute> parameter of
745bd8deadSopenharmony_ci    glXGetFBConfigAttrib:
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci        GLX_COVERAGE_SAMPLES_NV              100001
775bd8deadSopenharmony_ci        GLX_COLOR_SAMPLES_NV                 0x20B3
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ci    Accepted by the <piAttributes> parameter of
805bd8deadSopenharmony_ci    wglGetPixelFormatAttribivEXT, wglGetPixelFormatAttribfvEXT, and
815bd8deadSopenharmony_ci    the <piAttribIList> and <pfAttribIList> of wglChoosePixelFormatEXT:
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci        WGL_COVERAGE_SAMPLES_NV              0x2042
845bd8deadSopenharmony_ci        WGL_COLOR_SAMPLES_NV                 0x20B9
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetDoublev,
875bd8deadSopenharmony_ci    GetIntegerv, and GetFloatv:
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci        COLOR_SAMPLES_NV                     0x8E20
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci    (Note:  Earlier versions of this extension included a token
925bd8deadSopenharmony_ci     COVERAGE_SAMPLES_NV that was an alias for SAMPLES/SAMPLES_ARB.  This was
935bd8deadSopenharmony_ci     removed to avoid a name collision with a similar COVERAGE_SAMPLES_NV
945bd8deadSopenharmony_ci     token from the NV_coverage_sample extension to OpenGL ES.)
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 2.0 Specification (OpenGL Operation)
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci    None.
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization)
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    Modify Section 3.2.1, Multisampling (p. 93).
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ci    (replace third and fourth paragraphs, p. 94)
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci    During multisample rendering the contents of a pixel fragment are
1075bd8deadSopenharmony_ci    changed in three ways.  First, each fragment includes a coverage
1085bd8deadSopenharmony_ci    value with SAMPLES_ARB bits.  The value of SAMPLES_ARB is an
1095bd8deadSopenharmony_ci    implementation-dependent constant, and is queried by calling
1105bd8deadSopenharmony_ci    GetIntegerv with <pname> set to SAMPLES_ARB.
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci    Second, each fragment includes SAMPLES_ARB coverage samples.  The
1135bd8deadSopenharmony_ci    number of coverage samples includes both samples that indicate only
1145bd8deadSopenharmony_ci    coverage information, as well as samples that include coverage,
1155bd8deadSopenharmony_ci    color, depth, and texture coordinate information.  The location of
1165bd8deadSopenharmony_ci    the coverage information only samples may be anywhere within the
1175bd8deadSopenharmony_ci    pixel.  These samples may be used with an implementation-dependent
1185bd8deadSopenharmony_ci    algorithm as additional weights when resolving the color values to a
1195bd8deadSopenharmony_ci    single pixel color.
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci    Third, each fragment includes COLOR_SAMPLES_NV depth values,
1225bd8deadSopenharmony_ci    color values, and sets of texture coordinates instead of the
1235bd8deadSopenharmony_ci    single depth value, color value, and set of texture coordinates
1245bd8deadSopenharmony_ci    that are maintained in single-sample rendering mode.  These samples
1255bd8deadSopenharmony_ci    are referred to as color samples, although they contain more than
1265bd8deadSopenharmony_ci    color information.  COLOR_SAMPLES_NV is an implementation-dependent
1275bd8deadSopenharmony_ci    constant, and is queried by calling GetIntegerv with <pname> set to
1285bd8deadSopenharmony_ci    COLOR_SAMPLES_NV.  An implementation may choose to assign the same 
1295bd8deadSopenharmony_ci    color value and the same set of texture coordinates to more than 
1305bd8deadSopenharmony_ci    one sample.  The location for evaluating the color value and the 
1315bd8deadSopenharmony_ci    set of texture coordinates can be anywhere within the pixel 
1325bd8deadSopenharmony_ci    including the fragment center or any of the color sample locations.
1335bd8deadSopenharmony_ci    The color value and the set of texture coordinates need not be 
1345bd8deadSopenharmony_ci    evaluated at the same location.  Each pixel fragment thus 
1355bd8deadSopenharmony_ci    consists of integer x and y grid coordinates, SAMPLES_ARB
1365bd8deadSopenharmony_ci    samples, COLOR_SAMPLES_NV of which contain color and depth values,
1375bd8deadSopenharmony_ci    COLOR_SAMPLES_NV sets of texture coordinates, and a coverage value
1385bd8deadSopenharmony_ci    with a maximum of SAMPLES_ARB bits.
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci    (modify seventh paragraph, p. 94)
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ci    If MULTISAMPLE is enabled, multisample rasterization of all
1435bd8deadSopenharmony_ci    primitives differs substantially from single-sample rasterization.
1445bd8deadSopenharmony_ci    It is understood that each pixel in the framebuffer has SAMPLES_ARB
1455bd8deadSopenharmony_ci    locations associated with it.  Of these locations, COLOR_SAMPLES_NV
1465bd8deadSopenharmony_ci    have associated color, depth, and texture coordinates.  The
1475bd8deadSopenharmony_ci    remaining locations only supply additional pixel coverage
1485bd8deadSopenharmony_ci    information.  These locations are exact positions, rather than
1495bd8deadSopenharmony_ci    regions or areas, and each is referred to as a sample point.  The
1505bd8deadSopenharmony_ci    sample points...
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 2.0 Specification (Per-Fragment
1535bd8deadSopenharmony_ciOperations and the Frame Buffer)
1545bd8deadSopenharmony_ci
1555bd8deadSopenharmony_ci    Modify Section 4.1.11, Additional Multisample Fragment 
1565bd8deadSopenharmony_ci    Operations (p. 213).
1575bd8deadSopenharmony_ci
1585bd8deadSopenharmony_ci    (modify second paragraph, p. 213)
1595bd8deadSopenharmony_ci
1605bd8deadSopenharmony_ci    If MULTISAMPLE is enabled, and the value of SAMPLE_BUFFERS is one,
1615bd8deadSopenharmony_ci    the alpha test, stencil test, depth test, blending, and dithering
1625bd8deadSopenharmony_ci    operations are performed for each pixel color sample, rather than
1635bd8deadSopenharmony_ci    just once for each fragment...
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci    (modify third paragraph, p 215)
1665bd8deadSopenharmony_ci
1675bd8deadSopenharmony_ci    After all operations have been completed on the multisample...
1685bd8deadSopenharmony_ci    The method of combination is not specified, though a simple average
1695bd8deadSopenharmony_ci    computed independently for each color component is recommended when
1705bd8deadSopenharmony_ci    the number of coverage samples and color samples are equal.
1715bd8deadSopenharmony_ci
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 2.0 Specification (Special Functions)
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ci    None.
1765bd8deadSopenharmony_ci
1775bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 2.0 Specification (State and
1785bd8deadSopenharmony_ciState Requests)
1795bd8deadSopenharmony_ci
1805bd8deadSopenharmony_ci 
1815bd8deadSopenharmony_ci
1825bd8deadSopenharmony_ciAdditions to Appendix A of the OpenGL 2.0 Specification (Invariance)
1835bd8deadSopenharmony_ci
1845bd8deadSopenharmony_ci    None.
1855bd8deadSopenharmony_ci
1865bd8deadSopenharmony_ciAdditions to the GLX Specification 
1875bd8deadSopenharmony_ci
1885bd8deadSopenharmony_ci    Modify Section 3.3.3 Configuration Management (p. 12)
1895bd8deadSopenharmony_ci
1905bd8deadSopenharmony_ci    (modify fourth paragraph, p. 12)
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    The attribute GLX_SAMPLE_BUFFERS indicates the number of multisample
1935bd8deadSopenharmony_ci    buffers, which must be zero or one.  The attribute
1945bd8deadSopenharmony_ci    GLX_COVERAGE_SAMPLES_NV gives the number of coverage samples per
1955bd8deadSopenharmony_ci    pixel, and the attribute GLX_COLOR_SAMPLES_NV gives the number of
1965bd8deadSopenharmony_ci    color samples per pixel;  if GLX_SAMPLE_BUFFERS is zero, then
1975bd8deadSopenharmony_ci    GLX_COVERAGE_SAMPLES_NV and GLX_COLOR_SAMPLES_NV will also be zero.
1985bd8deadSopenharmony_ci    If GLX_SAMPLE_BUFFERS is one, then the number of color, depth, and
1995bd8deadSopenharmony_ci    stencil bits for each sample in the multisample buffer are
2005bd8deadSopenharmony_ci    specified by the GLX_*_SIZE attributes.  GLX_SAMPLES is an alias for
2015bd8deadSopenharmony_ci    GLX_COVERAGE_SAMPLES_NV.
2025bd8deadSopenharmony_ci
2035bd8deadSopenharmony_ci    (modify GLX_SAMPLES entry in Table 3.1: GLXFBConfig attributes,
2045bd8deadSopenharmony_ci     p. 12)
2055bd8deadSopenharmony_ci
2065bd8deadSopenharmony_ci    Attribute               Type    Notes
2075bd8deadSopenharmony_ci    ----------------------- ------- ------------------------------
2085bd8deadSopenharmony_ci    GLX_COVERAGE_SAMPLES_NV integer no. coverage samples per pixel
2095bd8deadSopenharmony_ci
2105bd8deadSopenharmony_ci    (add a new entry to Table 3.1: GLXFBConfig attributes, p.12,
2115bd8deadSopenharmony_ci     following the GLX_COVERAGE_SAMPLES_NV entry)
2125bd8deadSopenharmony_ci
2135bd8deadSopenharmony_ci    Attribute               Type    Notes
2145bd8deadSopenharmony_ci    ----------------------- ------- ------------------------------
2155bd8deadSopenharmony_ci    GLX_COLOR_SAMPLES_NV    integer no. color samples per pixel
2165bd8deadSopenharmony_ci
2175bd8deadSopenharmony_ci
2185bd8deadSopenharmony_ci    (add a new following the discussion of GLX_TRASPARENT_TYPE,
2195bd8deadSopenharmony_ci     p 18.)
2205bd8deadSopenharmony_ci
2215bd8deadSopenharmony_ci    If GLX_COVERAGE_SAMPLES_NV is in <attrib_list>, but
2225bd8deadSopenharmony_ci    GLX_COLOR_SAMPLES_NV is not in <attrib_list> the selected
2235bd8deadSopenharmony_ci    GLXFBConfigs must have the same number of color samples as
2245bd8deadSopenharmony_ci    coverage samples.
2255bd8deadSopenharmony_ci
2265bd8deadSopenharmony_ci    (modify the GLX_SAMPLES entry in Table 3.4: Default values and
2275bd8deadSopenharmony_ci    match criteria for GLXFBConfig attributes, p. 19)
2285bd8deadSopenharmony_ci
2295bd8deadSopenharmony_ci                                    Selection
2305bd8deadSopenharmony_ci                                    and Sorting Sort 
2315bd8deadSopenharmony_ci    Attribute               Default Criteria    Priority
2325bd8deadSopenharmony_ci    ----------------------- ------- ----------- --------
2335bd8deadSopenharmony_ci    GLX_COVERAGE_SAMPLES_NV 0       SMALLER     7
2345bd8deadSopenharmony_ci
2355bd8deadSopenharmony_ci    
2365bd8deadSopenharmony_ci    (add a new entry to table 3.4:  Default values and match criteria
2375bd8deadSopenharmony_ci    for GLXFBConfig attributes, p. 19, following the 
2385bd8deadSopenharmony_ci    GLX_COVERAGE_SAMPLES_NV entry.
2395bd8deadSopenharmony_ci    
2405bd8deadSopenharmony_ci                                    Selection
2415bd8deadSopenharmony_ci                                    and Sorting Sort 
2425bd8deadSopenharmony_ci    Attribute               Default Criteria    Priority
2435bd8deadSopenharmony_ci    ----------------------- ------- ----------- --------
2445bd8deadSopenharmony_ci    GLX_COLOR_SAMPLES_NV    0       SMALLER     8
2455bd8deadSopenharmony_ci
2465bd8deadSopenharmony_ci
2475bd8deadSopenharmony_ci    (modify the GLX_DEPTH_SIZE, GLX_STENCIL_SIZE, GLX_ACCUM_*_SIZE,
2485bd8deadSopenharmony_ci    and GLX_X_VISUAL_TYPE entries in table 3.4: Default values and
2495bd8deadSopenharmony_ci    match criteria for GLXFBConfig attributes, p. 19, by incrementing
2505bd8deadSopenharmony_ci    the value of Sort Priority for each)
2515bd8deadSopenharmony_ci
2525bd8deadSopenharmony_ci    (modify sixth paragraph, p. 20)
2535bd8deadSopenharmony_ci
2545bd8deadSopenharmony_ci    7. Smaller GLX_COVERAGE_SAMPLES_NV.
2555bd8deadSopenharmony_ci
2565bd8deadSopenharmony_ci    (add a new paragraph following the sixth paragraph, p. 20)
2575bd8deadSopenharmony_ci
2585bd8deadSopenharmony_ci    8. Smaller GLX_COLOR_SAMPLES_NV.
2595bd8deadSopenharmony_ci
2605bd8deadSopenharmony_ci    (modify paragraphs seven through ten, p. 20, by incrementing
2615bd8deadSopenharmony_ci    the list number for each)
2625bd8deadSopenharmony_ci
2635bd8deadSopenharmony_ci    Modify Section 3.4.1 Using Visuals for Configuration Management
2645bd8deadSopenharmony_ci
2655bd8deadSopenharmony_ci    (modify the GLX_SAMPLES entry in Table 3.7: GLX attributes for
2665bd8deadSopenharmony_ci    Visuals, p. 37)
2675bd8deadSopenharmony_ci
2685bd8deadSopenharmony_ci    Attribute                 Type     Notes   
2695bd8deadSopenharmony_ci    ------------------------- -------- --------------------------
2705bd8deadSopenharmony_ci    GLX_COVERAGE_SAMPLES_NV   integer  number of coverage samples
2715bd8deadSopenharmony_ci                                       per pixel.
2725bd8deadSopenharmony_ci
2735bd8deadSopenharmony_ci    (add a new entry to table 3.7: GLX attributes for Visuals, p.37,
2745bd8deadSopenharmony_ci    following the GLX_COVERAGE_SAMPLES_NV entry)
2755bd8deadSopenharmony_ci
2765bd8deadSopenharmony_ci    Attribute                 Type     Notes   
2775bd8deadSopenharmony_ci    ------------------------- -------- --------------------------
2785bd8deadSopenharmony_ci    GLX_COLOR_SAMPLES_NV      integer  number of color samples
2795bd8deadSopenharmony_ci                                       per pixel.
2805bd8deadSopenharmony_ci
2815bd8deadSopenharmony_ci
2825bd8deadSopenharmony_ci    (modify the GLX_SAMPLES entry in table 3.8: Defaults and selection
2835bd8deadSopenharmony_ci    criteria used by glXChooseVisual, p.38)
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ci    Attribute                 Default Selection Criteria   
2865bd8deadSopenharmony_ci    ------------------------- ------- ------------------
2875bd8deadSopenharmony_ci    GLX_COVERAGE_SAMPLES_NV      0    Smaller
2885bd8deadSopenharmony_ci
2895bd8deadSopenharmony_ci    (add a new entry to table 3.8: Defaults and selection criteria used
2905bd8deadSopenharmony_ci    by glXChooseVisual, p.38, following the GLX_COVERAGE_SAMPLES_NV
2915bd8deadSopenharmony_ci    entry)
2925bd8deadSopenharmony_ci
2935bd8deadSopenharmony_ci    Attribute                 Default Selection Criteria   
2945bd8deadSopenharmony_ci    ------------------------- ------- ------------------
2955bd8deadSopenharmony_ci    GLX_COLOR_SAMPLES_NV         0    Smaller
2965bd8deadSopenharmony_ci
2975bd8deadSopenharmony_ci
2985bd8deadSopenharmony_ciGLX Protocol
2995bd8deadSopenharmony_ci
3005bd8deadSopenharmony_ci    None.
3015bd8deadSopenharmony_ci
3025bd8deadSopenharmony_ciAdditions to the WGL Specification
3035bd8deadSopenharmony_ci
3045bd8deadSopenharmony_ci    Modify additions from ARB_multisample
3055bd8deadSopenharmony_ci
3065bd8deadSopenharmony_ci    (modify first and second paragraphs)
3075bd8deadSopenharmony_ci
3085bd8deadSopenharmony_ci    The parameter WGL_SAMPLE_BUFFERS_ARB is added to
3095bd8deadSopenharmony_ci    wglGetPixelFormatAttrib*v. When queried, by calling
3105bd8deadSopenharmony_ci    wglGetPixelFormatAttrib*v with <piAttributes> set to
3115bd8deadSopenharmony_ci    WGL_SAMPLE_BUFFERS_ARB, it returns the number of multisample
3125bd8deadSopenharmony_ci    buffers included in the pixel format.  For a normal pixel format,
3135bd8deadSopenharmony_ci    the return value is zero.  A return value of one indicates that a
3145bd8deadSopenharmony_ci    single multisample buffer is available.  The number of coverage
3155bd8deadSopenharmony_ci    samples per pixel is queried by calling wglGetPixelFormatAttrib*v 
3165bd8deadSopenharmony_ci    with <piAttributes> set to WGL_COVERAGE_SAMPLES_NV.  The number of
3175bd8deadSopenharmony_ci    color samples per pixel is queried by calling 
3185bd8deadSopenharmony_ci    wglGetPixelFormatAttrib*v with <piAttributes> set to 
3195bd8deadSopenharmony_ci    WGL_COLOR_SAMPLES_NV. It is understood that the number of color, 
3205bd8deadSopenharmony_ci    depth, and stencil bits per sample in the multisample buffer are as 
3215bd8deadSopenharmony_ci    specified by the WGL_*_SIZE parameters.  It is also understood that 
3225bd8deadSopenharmony_ci    there are no single-sample depth or stencil buffers associated with 
3235bd8deadSopenharmony_ci    this pixel format -- the only depth and stencil buffers are those 
3245bd8deadSopenharmony_ci    in the multisample buffer.  WGL_COVERAGE_SAMPLES_NV and 
3255bd8deadSopenharmony_ci    WGL_COLOR_SAMPLES_NV are zero if WGL_SAMPLES_BUFFERS_ARB is zero.
3265bd8deadSopenharmony_ci    WGL_SAMPLES_ARB is an alias for WGL_COVERAGE_SAMPLES_NV.
3275bd8deadSopenharmony_ci
3285bd8deadSopenharmony_ci    wglChoosePixelFormatARB accepts WGL_SAMPLE_BUFFERS_ARB in
3295bd8deadSopenharmony_ci    <piAttribIList> and <pfAttribIList> with the corresponding value
3305bd8deadSopenharmony_ci    set to the minimum number of multisample buffers that can be 
3315bd8deadSopenharmony_ci    accepted.  Pixel formats with the smallest number of multisample
3325bd8deadSopenharmony_ci    buffers that meets or exceeds the specified minimum number are
3335bd8deadSopenharmony_ci    preferred.  Currently operations with more than one multisample
3345bd8deadSopenharmony_ci    buffer are undefined, so the returned value will be either zero or
3355bd8deadSopenharmony_ci    one.
3365bd8deadSopenharmony_ci
3375bd8deadSopenharmony_ci    (add a new paragraph, missing from ARB_multisample, following the
3385bd8deadSopenharmony_ci     second paragraph)
3395bd8deadSopenharmony_ci
3405bd8deadSopenharmony_ci    wglChoosePixelFormatARB accepts WGL_COVERAGE_SAMPLES_NV in
3415bd8deadSopenharmony_ci    <piAttribIList> and  <pfAttibIList> with the corresponding value
3425bd8deadSopenharmony_ci    set to the requested number of coverage samples for the multisample 
3435bd8deadSopenharmony_ci    buffer.  wglChoosePixelFormatARB accepts WGL_COLOR_SAMPLES_NV in 
3445bd8deadSopenharmony_ci    <piAttribIList> and <pfAttribIList> with the corresponding value 
3455bd8deadSopenharmony_ci    set to the requested number of color samples for the multisample
3465bd8deadSopenharmony_ci    buffer.  A pixel format with differing numbers of coverage and
3475bd8deadSopenharmony_ci    color samples may only be chosen when WGL_COLOR_SAMPLES_NV is
3485bd8deadSopenharmony_ci    specified.
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ci
3515bd8deadSopenharmony_ciErrors
3525bd8deadSopenharmony_ci
3535bd8deadSopenharmony_ci    None.
3545bd8deadSopenharmony_ci
3555bd8deadSopenharmony_ciNew State
3565bd8deadSopenharmony_ci
3575bd8deadSopenharmony_ci
3585bd8deadSopenharmony_ciNew Implementation Dependent State
3595bd8deadSopenharmony_ci
3605bd8deadSopenharmony_ci                                          Minimum
3615bd8deadSopenharmony_ci    Get Value            Type Get Command Value   Description                Sec.
3625bd8deadSopenharmony_ci    -------------------- ---- ----------- ------- -------------------------- -----
3635bd8deadSopenharmony_ci    SAMPLES_ARB          Z+   GetIntegerv 0       Number of coverage samples 3.2.1
3645bd8deadSopenharmony_ci                                                  (state already in ARB_multisample,
3655bd8deadSopenharmony_ci                                                   just defined to be coverage samples)
3665bd8deadSopenharmony_ci    COLOR_SAMPLES_NV     Z+   GetIntegerv 0       Number of color samples    3.2.1
3675bd8deadSopenharmony_ci
3685bd8deadSopenharmony_ciIssues
3695bd8deadSopenharmony_ci
3705bd8deadSopenharmony_ci    1)  How do we provide backward compatibility for glXChooseFBConfig
3715bd8deadSopenharmony_ci        and wglChoosePixelFormatARB if COVERAGE_SAMPLES_NV aliases to
3725bd8deadSopenharmony_ci        SAMPLES_ARB?
3735bd8deadSopenharmony_ci
3745bd8deadSopenharmony_ci        RESOLVED:  Traditional multisample antialiasing can be
3755bd8deadSopenharmony_ci        be described as CSAA where the number of coverage and color
3765bd8deadSopenharmony_ci        samples are the same (all samples provide coverage, color, 
3775bd8deadSopenharmony_ci        depth, and stencil information).  Existing applications and
3785bd8deadSopenharmony_ci        applications that do not wish to use this extension will use
3795bd8deadSopenharmony_ci        SAMPLES_ARB when choosing a multisample GLXFBConfig or pixel 
3805bd8deadSopenharmony_ci        format.  In this case, glXChooseFBConfig and 
3815bd8deadSopenharmony_ci        wglChoosePixelFormatARB should never return a CSAA visual or 
3825bd8deadSopenharmony_ci        pixel format.  This is enforced in the spec by requiring the 
3835bd8deadSopenharmony_ci        presence of COLOR_SAMPLES_NV in the attribute list in order to
3845bd8deadSopenharmony_ci        return a CSAA GLXFBConfig or pixel format.
3855bd8deadSopenharmony_ci
3865bd8deadSopenharmony_ci        (NOTE:  The token COVERAGE_SAMPLES_NV was removed in version 4
3875bd8deadSopenharmony_ci         of the extension, but its value was always indistinguishable
3885bd8deadSopenharmony_ci         from SAMPLES_ARB.)
3895bd8deadSopenharmony_ci
3905bd8deadSopenharmony_ci    2)  How do we provide backward compatibility for 
3915bd8deadSopenharmony_ci        glXGetFBConfigAttrib and wglGetPixelFormatAttrib*v if 
3925bd8deadSopenharmony_ci        COVERAGE_SAMPLES_NV aliases to SAMPLES_ARB?
3935bd8deadSopenharmony_ci
3945bd8deadSopenharmony_ci        RESOLVED: The glXGetFBConfigAttrib and 
3955bd8deadSopenharmony_ci        wglGetPixelFormatAttrib*v routines provide a mechanism for 
3965bd8deadSopenharmony_ci        applications to query properties of a GLXFBConfig or pixel 
3975bd8deadSopenharmony_ci        format.  This is useful for obtaining additional information 
3985bd8deadSopenharmony_ci        about a GLXFBConfig or pixel format after choosing one with the
3995bd8deadSopenharmony_ci        appropriate routine.  An application can also use these 
4005bd8deadSopenharmony_ci        routines to apply custom GLXFBConfig/pixel format selection 
4015bd8deadSopenharmony_ci        logic when presented with a set of GLXFBConfigs or pixel 
4025bd8deadSopenharmony_ci        formats.
4035bd8deadSopenharmony_ci
4045bd8deadSopenharmony_ci        In the latter case, existing applications and future 
4055bd8deadSopenharmony_ci        applications that do not use this extension may accidentally 
4065bd8deadSopenharmony_ci        select a CSAA GLXFBConfig or pixel format because they only 
4075bd8deadSopenharmony_ci        look at SAMPLES_ARB, which aliases to COVERAGE_SAMPLES_NV.  
4085bd8deadSopenharmony_ci        This problem is not unique to CSAA GLXFBConfigs and pixel 
4095bd8deadSopenharmony_ci        formats.  An application can run into a problem selecting the 
4105bd8deadSopenharmony_ci        wrong GLXFBConfig or pixel format any time a new GLXFBConfig or
4115bd8deadSopenharmony_ci        pixel format attribute is added that differs from the old 
4125bd8deadSopenharmony_ci        default.  The GLX specification provides GLXFBConfig sorting
4135bd8deadSopenharmony_ci        guidelines to aid in working around this problem.  For WGL,
4145bd8deadSopenharmony_ci        vendors are encouraged to order their visuals and pixel formats
4155bd8deadSopenharmony_ci        in such a way that gives preference to old formats.  With 
4165bd8deadSopenharmony_ci        regards to CSAA, it is recommended that vendors list traditional
4175bd8deadSopenharmony_ci        multisample pixel formats first, and CSAA pixel formats later.
4185bd8deadSopenharmony_ci        The assumption being that applications will tend to choose the
4195bd8deadSopenharmony_ci        first pixel format that meets the criteria.
4205bd8deadSopenharmony_ci
4215bd8deadSopenharmony_ci        (NOTE:  The token COVERAGE_SAMPLES_NV was removed in version 4
4225bd8deadSopenharmony_ci         of the extension, but its value was always indistinguishable
4235bd8deadSopenharmony_ci         from SAMPLES_ARB.)
4245bd8deadSopenharmony_ci
4255bd8deadSopenharmony_ci    3)  The NV_framebuffer_multisample_coverage extension supplies
4265bd8deadSopenharmony_ci        specific rules with regards to how the requested number of
4275bd8deadSopenharmony_ci        coverage and color samples are rounded to an implementation
4285bd8deadSopenharmony_ci        supported value.  Should this extension provide similar rules?
4295bd8deadSopenharmony_ci
4305bd8deadSopenharmony_ci        RESOLVED.  The NV_framebuffer_multisample_coverage extension
4315bd8deadSopenharmony_ci        is built on top of EXT_framebuffer_multisample, which provides
4325bd8deadSopenharmony_ci        explicit rules for rounding the number of requested samples.  
4335bd8deadSopenharmony_ci        Specifically, the spec says to round the number of requested 
4345bd8deadSopenharmony_ci        samples up to the next implementation supported value.  
4355bd8deadSopenharmony_ci        NV_framebuffer_multisample_coverage says that the number of 
4365bd8deadSopenharmony_ci        coverage samples is rounded to the next highest implementation
4375bd8deadSopenharmony_ci        supported value.  The number of color samples is rounded up to
4385bd8deadSopenharmony_ci        the next highest implementation supported value given the 
4395bd8deadSopenharmony_ci        chosen number of coverage samples.
4405bd8deadSopenharmony_ci
4415bd8deadSopenharmony_ci        Choosing WGL pixel formats has always been a flexible
4425bd8deadSopenharmony_ci        and fuzzy process.  On the other hand, the GLX specification 
4435bd8deadSopenharmony_ci        provides explicit rules for sorting and choosing GLXFBConfigs.
4445bd8deadSopenharmony_ci        Language has been added to the GLX spec to sort first on 
4455bd8deadSopenharmony_ci        coverage samples, and then on color samples.  This has a
4465bd8deadSopenharmony_ci        similar effect as the rules given in 
4475bd8deadSopenharmony_ci        NV_framebuffer_multisample_coverage as long as both 
4485bd8deadSopenharmony_ci        COVERAGE_SAMPLES_NV and COLOR_SAMPLES_NV are specified.  For
4495bd8deadSopenharmony_ci        WGL pixel format selection, the implementation is free to 
4505bd8deadSopenharmony_ci        sort in whatever way it wishes.  Although it is recommended
4515bd8deadSopenharmony_ci        that sorting be done in a way that is compatible with 
4525bd8deadSopenharmony_ci        NV_framebuffer_mulitsample_coverage. 
4535bd8deadSopenharmony_ci
4545bd8deadSopenharmony_ciRevision History
4555bd8deadSopenharmony_ci
4565bd8deadSopenharmony_ci        Revision 1, 6/22/2007, mstrauss:  Initial version
4575bd8deadSopenharmony_ci        Revision 2, 6/23/2007, mstrauss:  Removed GLX visual language.
4585bd8deadSopenharmony_ci                                          Added GLXFBconfig language.
4595bd8deadSopenharmony_ci        Revision 3, 4/20/2009, jajones:   Filled in GLX token values.
4605bd8deadSopenharmony_ci                                          Restored GLX 1.2 compatibility
4615bd8deadSopenharmony_ci                                          table entries.
4625bd8deadSopenharmony_ci        Revision 4, 3/7/2013, pbrown:     Removed the OpenGL API token
4635bd8deadSopenharmony_ci                                          COVERAGE_SAMPLES_NV, which was
4645bd8deadSopenharmony_ci                                          just an alias for SAMPLES_ARB.
4655bd8deadSopenharmony_ci
4665bd8deadSopenharmony_ci
467