Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.8 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    GL_NV_polygon_mode
    Name
    
        NV_polygon_mode
    
    Name Strings
    
        GL_NV_polygon_mode
    
    Contact
    
        James Helferty, NVIDIA Corporation (jhelferty 'at' nvidia.com)
    
    Contributors
    
        James Helferty, NVIDIA Corporation
        Daniel Koch, NVIDIA Corporation
    
    Status
    
        Complete
    
    Version
    
        Last Modified Date:         Sept 11, 2014
        Revision:                   1
    
    Number
    
        OpenGL ES Extension #238
    
    Dependencies
    
        This extension is written against the OpenGL ES 3.1 (June 4, 2014)
        specification, but can apply to earlier versions.
    
        This extension trivially interacts with NV_draw_texture
    
    Overview
    
        This extension adds a PolygonModeNV entry point which can be used to change
        the polygon rasterization method. Using this extension, state consistent
        with rendering triangle primitives can trivially be toggled to render
        primitives as lines or points. In addition, independent enables are
        provided for polygon offset in conjunction with these new point and line
        polygon modes.
    
        This introduces a level of support for PolygonMode comparable with the
        OpenGL 4.3 core profile.
    
    New Procedures and Functions
    
        void PolygonModeNV(enum face, enum mode);
    
    New Tokens
    
        Accepted by the <pname> parameter to GetIntegerv:
    
            POLYGON_MODE_NV                             0x0B40
    
        Accepted by the <pname> parameter to IsEnabled:
    
            POLYGON_OFFSET_POINT_NV                     0x2A01
            POLYGON_OFFSET_LINE_NV                      0x2A02
    
        Returned by GetIntegerv, GetFloatv, and GetInteger64v when <pname> is
        POLYGON_MODE_NV:
    
            POINT_NV                                    0x1B00
            LINE_NV                                     0x1B01
            FILL_NV                                     0x1B02
    
    Additions to Chapter 13 of the OpenGL 3.1 Specification (Fixed-Function
    Primitive Assembly and Rasterization)
    
        Insert new section 13.5.1pm, "Options Controlling Polygon Rasterization"
        between section 13.5.1 and 13.5.2:
    
        The interpretation of polygons for rasterization is controlled using
    
            void PolygonModeNV( enum face, enum mode );
    
        <face> must be FRONT_AND_BACK, indicating that the rasterizing method
        described by <mode> replaces the rasterizing method for both front- and
        back-facing polygons. <mode> is one of the symbolic constants POINT_NV,
        LINE_NV, or FILL_NV. Calling PolygonModeNV with POINT_NV causes the
        vertices of a polygon to be treated, for rasterization purposes, as if they
        had been drawn with <mode> POINTS. LINE_NV causes edges to be rasterized as
        line segments. FILL_NV is the default mode of polygon rasterization,
        corresponding to the description in section 13.5.1.  Note that these modes
        affect only the final rasterization of polygons: in particular, a polygon's
        vertices are lit, and the polygon is clipped and possibly culled before
        these modes are applied.
    
        Modify Section 13.5.2, "Depth Offset" as follows:
    
        Replace the second-last paragraph that begins "Boolean state value
        POLYGON_OFFSET_FILL determines whether <o> is applied during the
        rasterization of polygons..." with:
    
        Boolean state values POLYGON_OFFSET_POINT_NV, POLYGON_OFFSET_LINE_NV, and
        POLYGON_OFFSET_FILL determine whether <o> is applied during the
        rasterization of polygons in POINT_NV, LINE_NV, and FILL_NV modes. These
        boolean state values are enabled and disabled as argument values to the
        commands Enable and Disable.  If POLYGON_OFFSET_POINT_NV is enabled, <o> is
        added to the depth value of each fragment produced by the rasterization of
        a polygon in POINT_NV mode.  Likewise, if POLYGON_OFFSET_LINE_NV or
        POLYGON_OFFSET_FILL is enabled, <o> is added to the depth value of each
        fragment produced by the rasterization of a polygon in LINE_NV or FILL_NV
        modes, respectively.
    
        Modify Section 13.5.3, "Polygon Multisample Rasterization" as follows:
    
        Append the paragraph:
    
        The rasterization described above applies only to the FILL_NV state of
        PolygonModeNV. For POINT_NV and LINE_NV, the rasterizations described in
        sections 13.3.2 (Point Multisample Rasterization) and 13.4.4 (Line
        Multisample Rasterization) apply.
    
        Modify Section 13.5.4 "Polygon Rasterization State"
    
        The state required for polygon rasterization consists of whether point,
        line, and fill mode polygon offsets are enabled or disabled, and the factor
        and bias values of the polygon offset equation. The initial polygon offset
        factor and bias values are both 0; initially polygon offset is disabled for
        all modes. The initial state for PolygonModeNV is FILL_NV.
    
    Additions to Chapter 15 of the OpenGL 3.1 Specification (Writing Fragments and
    Samples to the Framebuffer)
    
        Modify Section 15.1.4, "Stencil Test" as follows:
    
        Replace the third paragraph with:
    
        There are two sets of stencil-related state, the front stencil state set
        and the back stencil state set. Stencil tests and writes use the front set
        of stencil state when processing fragments rasterized from non-polygon
        primitives (points and lines) and front-facing polygon primitives while the
        back set of stencil state is used when processing fragments rasterized from
        back-facing polygon primitives. For the purposes of stencil testing, a
        primitive is still considered a polygon even if the polygon is to be
        rasterized as points or lines due to the current polygon mode. Whether a
        polygon is front- or back-facing is determined in the same manner used for
        face culling (see section 13.5.1).
    
    Interactions with NV_draw_texture
    
        In NV_draw_texture, change references to PolygonMode to PolygonModeNV, and
        disregard the interaction ignoring PolygonMode for ES.
    
    New State
    
        Modify Table 20.6, Rasterization
    
        Add:
    
                                              Initial
        Get Value               Type Get Command  Value  Description                  Sec.
        ----------------------- ---- ----------- ------- --------------------------- ------
        POLYGON_MODE_NV          E   GetIntegerv FILL_NV Polygon rasterization mode  13.5.1pm
                                                         (front & back)
        POLYGON_OFFSET_POINT_NV  B   IsEnabled   FALSE   Polygon offset enable for   13.5.2
                                                         POINT_NV mode rasterization
        POLYGON_OFFSET_LINE_NV   B   IsEnabled   FALSE   Polygon offset enable for   13.5.2
                                                         LINE_NV mode rasterization
    
        Change description for POLYGON_OFFSET_FILL to "Polygon offset enable for
        FILL_NV mode rasterization"
    
    Errors
    
        An INVALID_ENUM error is generated by PolygonModeNV if <face> is not
        FRONT_AND_BACK.
    
        An INVALID_ENUM error is generated by PolygonModeNV if <mode> is not one of
        POINT_NV, LINE_NV, or FILL_NV.
    
    Issues
    
        1. How does PolygonModeNV interact with tessellation shaders?
    
        See Issue 29 of ARB_tessellation_shader.
    
    Revision History
    
        Rev.    Date    Author     Changes
        ----  --------  ---------  -----------------------------------------
         1    09/10/14  jhelferty  Initial revision.
    
    人人超碰97caoporen国产