xref: /aosp_15_r20/external/angle/extensions/ANGLE_polygon_mode.txt (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard WorkerName
2*8975f5c5SAndroid Build Coastguard Worker
3*8975f5c5SAndroid Build Coastguard Worker    ANGLE_polygon_mode
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard WorkerName Strings
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker    GL_ANGLE_polygon_mode
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard WorkerStatus
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Worker    Draft
12*8975f5c5SAndroid Build Coastguard Worker
13*8975f5c5SAndroid Build Coastguard WorkerVersion
14*8975f5c5SAndroid Build Coastguard Worker
15*8975f5c5SAndroid Build Coastguard Worker    Last Modified Date: March 31, 2023
16*8975f5c5SAndroid Build Coastguard Worker    Revision: 1
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard WorkerNumber
19*8975f5c5SAndroid Build Coastguard Worker
20*8975f5c5SAndroid Build Coastguard Worker    OpenGL ES Extension XX
21*8975f5c5SAndroid Build Coastguard Worker
22*8975f5c5SAndroid Build Coastguard WorkerDependencies
23*8975f5c5SAndroid Build Coastguard Worker
24*8975f5c5SAndroid Build Coastguard Worker    This extension is written against the OpenGL ES 3.1 (November 3, 2016)
25*8975f5c5SAndroid Build Coastguard Worker    specification, but can apply to earlier versions.
26*8975f5c5SAndroid Build Coastguard Worker
27*8975f5c5SAndroid Build Coastguard WorkerOverview
28*8975f5c5SAndroid Build Coastguard Worker
29*8975f5c5SAndroid Build Coastguard Worker    Rendering triangle primitives as lines, i.e., in a wireframe mode,
30*8975f5c5SAndroid Build Coastguard Worker    is useful for debugging GPU applications.
31*8975f5c5SAndroid Build Coastguard Worker
32*8975f5c5SAndroid Build Coastguard Worker    This effect cannot be achieved by drawing the same triangle primitives with
33*8975f5c5SAndroid Build Coastguard Worker    the LINES mode due to differences in primitive assembly and rasterization.
34*8975f5c5SAndroid Build Coastguard Worker    Moreover, polygon offset state is ignored for line primitives thus making
35*8975f5c5SAndroid Build Coastguard Worker    the wireframe overlay even more difficult to be rendered correctly.
36*8975f5c5SAndroid Build Coastguard Worker
37*8975f5c5SAndroid Build Coastguard Worker    This extension has the same semantics as NV_polygon_mode but the point
38*8975f5c5SAndroid Build Coastguard Worker    rasterization mode is omitted to support the extension on layered OpenGL ES
39*8975f5c5SAndroid Build Coastguard Worker    implementations, such as ANGLE, when the underlying API does not support
40*8975f5c5SAndroid Build Coastguard Worker    point rasterization mode.
41*8975f5c5SAndroid Build Coastguard Worker
42*8975f5c5SAndroid Build Coastguard WorkerNew Procedures and Functions
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Worker    void PolygonModeANGLE(enum face, enum mode);
45*8975f5c5SAndroid Build Coastguard Worker
46*8975f5c5SAndroid Build Coastguard WorkerNew Tokens
47*8975f5c5SAndroid Build Coastguard Worker
48*8975f5c5SAndroid Build Coastguard Worker    Accepted by the <pname> parameter to GetIntegerv:
49*8975f5c5SAndroid Build Coastguard Worker
50*8975f5c5SAndroid Build Coastguard Worker        POLYGON_MODE_ANGLE                          0x0B40
51*8975f5c5SAndroid Build Coastguard Worker
52*8975f5c5SAndroid Build Coastguard Worker    Accepted by the <pname> parameters of Enable, Disable and IsEnabled:
53*8975f5c5SAndroid Build Coastguard Worker
54*8975f5c5SAndroid Build Coastguard Worker        POLYGON_OFFSET_LINE_ANGLE                   0x2A02
55*8975f5c5SAndroid Build Coastguard Worker
56*8975f5c5SAndroid Build Coastguard Worker    Returned by GetIntegerv, GetFloatv, and GetInteger64v when <pname> is
57*8975f5c5SAndroid Build Coastguard Worker    POLYGON_MODE_ANGLE:
58*8975f5c5SAndroid Build Coastguard Worker
59*8975f5c5SAndroid Build Coastguard Worker        LINE_ANGLE                                  0x1B01
60*8975f5c5SAndroid Build Coastguard Worker        FILL_ANGLE                                  0x1B02
61*8975f5c5SAndroid Build Coastguard Worker
62*8975f5c5SAndroid Build Coastguard WorkerNew State
63*8975f5c5SAndroid Build Coastguard Worker
64*8975f5c5SAndroid Build Coastguard Worker    Modify Table 20.6, Rasterization
65*8975f5c5SAndroid Build Coastguard Worker
66*8975f5c5SAndroid Build Coastguard Worker    Add:
67*8975f5c5SAndroid Build Coastguard Worker
68*8975f5c5SAndroid Build Coastguard Worker                                          Initial
69*8975f5c5SAndroid Build Coastguard Worker    Get Value                 Type Get Command  Value     Description                    Sec.
70*8975f5c5SAndroid Build Coastguard Worker    -----------------------   ---- ----------- ---------- ---------------------------    ------
71*8975f5c5SAndroid Build Coastguard Worker    POLYGON_MODE_ANGLE         E   GetIntegerv FILL_ANGLE Polygon rasterization mode     13.5.1pm
72*8975f5c5SAndroid Build Coastguard Worker                                                          (front & back)
73*8975f5c5SAndroid Build Coastguard Worker    POLYGON_OFFSET_LINE_ANGLE  B   IsEnabled   FALSE      Polygon offset enable for      13.5.2
74*8975f5c5SAndroid Build Coastguard Worker                                                          LINE_ANGLE mode rasterization
75*8975f5c5SAndroid Build Coastguard Worker
76*8975f5c5SAndroid Build Coastguard Worker    Change description for POLYGON_OFFSET_FILL to "Polygon offset enable for
77*8975f5c5SAndroid Build Coastguard Worker    FILL_ANGLE mode rasterization"
78*8975f5c5SAndroid Build Coastguard Worker
79*8975f5c5SAndroid Build Coastguard WorkerErrors
80*8975f5c5SAndroid Build Coastguard Worker
81*8975f5c5SAndroid Build Coastguard Worker    An INVALID_ENUM error is generated by PolygonModeANGLE if <face> is not
82*8975f5c5SAndroid Build Coastguard Worker    FRONT_AND_BACK.
83*8975f5c5SAndroid Build Coastguard Worker
84*8975f5c5SAndroid Build Coastguard Worker    An INVALID_ENUM error is generated by PolygonModeANGLE if <mode> is not
85*8975f5c5SAndroid Build Coastguard Worker    one of LINE_ANGLE or FILL_ANGLE.
86*8975f5c5SAndroid Build Coastguard Worker
87*8975f5c5SAndroid Build Coastguard WorkerRevision History
88*8975f5c5SAndroid Build Coastguard Worker
89*8975f5c5SAndroid Build Coastguard Worker    3/31/2023   First revision
90