Name

    NV_alpha_to_coverage_dither_control

Name Strings

    GL_NV_alpha_to_coverage_dither_control

Contact

   Pierre Boudier, NVIDIA Corporation (pboudier 'at' nvidia.com)
    
Contributors

    Tristan Lorach, NVIDIA Corporation    
    Christophe KULESZA, Dassault Systemes

Status

    Pending.

Version

    Last Modified Date:         May 31, 2017
    Revision:                   1.01

Number

    500

Dependencies

    This extension is written against the OpenGL 4.4 specification 
    (Core Profile) but may be used with the Compatibility profile or OpenGL ES 
    2.0 or later.
    
Overview

    NV_alpha_to_coverage_dither_control_triangles provides a new mechanism
    to control whether dithering is applied when the existing alpha to coverage
    functionality is used.
    

New Procedures and Functions

    AlphaToCoverageDitherControlNV(enum mode):.
    
New Tokens

    Accepted by the <param> parameter of AlphaToCoverageDitherControlNV():
        ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV             0x934D
        ALPHA_TO_COVERAGE_DITHER_ENABLE_NV              0x934E
        ALPHA_TO_COVERAGE_DITHER_DISABLE_NV             0x934F
    
    Accepted by the <param> of GetIntegerv():
        ALPHA_TO_COVERAGE_DITHER_MODE_NV                0x92BF

Modification to Chapter 17.3.3 of the OpenGL 4.4 (Core Profile) Specification
(Multisample Fragment Operations)

    Modify the paragraph describing SAMPLE_ALPHA_TO_COVERAGE with

        ... No specific algorithm is required for converting the sample
    alpha values to a temporary coverage value. It is intended that the 
    number of 1's in the temporary coverage be proportional to the set 
    of alpha values for the fragment, with all 1's  corresponding to 
    the maximum of all alpha values, and all 0's corresponding to all 
    alpha values being 0. The alpha values used to generate a coverage 
    value are clamped to the range [0; 1]. It is also intended that the
    algorithm be pseudo-random in nature, to avoid image artifacts due 
    to regular coverage sample locations. 

    The function AlphaToCoverageDitherControlNV() allows to specify the 
    kind of algorithm: If the mode is ALPHA_TO_COVERAGE_DITHER_ENABLE, 
    the algorithm is different at different pixel locations. The dithering 
    should be defined relative to window, not screen, coordinates, so 
    that rendering results are invariant with respect to window position.
    If the mode is ALPHA_TO_COVERAGE_DITHER_DISABLE, then no dithering 
    should be applied and the same conversion should happen regardless of 
    the pixel coordinates. If the mode is ALPHA_TO_COVERAGE_DITHER_DEFAULT, 
    then the algorithm is implementation dependent.

    Addition to the Table 23.11. Multisampling:
    ALPHA_TO_COVERAGE_DITHER_MODE  |  E  |  GetIntegerv  |  ALPHA_TO_COVERAGE_DITHER_DEFAULT  | Control dither for alpha to coverage |  17.3.3

New State

    None.

Additions to the AGL/GLX/WGL Specifications

    None.

GLX Protocol

    None.
    
Modifications to the OpenGL Shading Language Specification, Version 4.40

    None.

Errors

    None

Issues

    (XX) 

Revision History

    Revision 1.01
    - fix incorrect enum names in the text section
    Revision 1
    - Internal revisions.
