forked from Qortal/Brooklyn
129 lines
3.7 KiB
Plaintext
129 lines
3.7 KiB
Plaintext
|
XXX this could be converted/formatted for Sphinx someday.
|
||
|
XXX do not use tabs in this file.
|
||
|
|
||
|
|
||
|
|
||
|
position ]
|
||
|
primary/secondary colors ]
|
||
|
generics (normals, ]
|
||
|
texcoords, fog) ] User vertices / arrays
|
||
|
point size ]
|
||
|
edge flag ]
|
||
|
primitive ID } System-generated values
|
||
|
vertex ID }
|
||
|
| | |
|
||
|
V V V
|
||
|
+-------------------+
|
||
|
| Vertex shader |
|
||
|
+-------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
position
|
||
|
clip distance
|
||
|
generics
|
||
|
front/back & primary/secondary colors
|
||
|
point size
|
||
|
edge flag
|
||
|
primitive ID
|
||
|
| | |
|
||
|
V V V
|
||
|
+------------------------+
|
||
|
| Geometry shader |
|
||
|
| (consume vertex ID) |
|
||
|
| (may change prim type) |
|
||
|
+------------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
[...]
|
||
|
fb layer
|
||
|
| | |
|
||
|
V V V
|
||
|
+--------------------------+
|
||
|
| Clipper |
|
||
|
| (consume clip distances) |
|
||
|
+--------------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
+-------------------+
|
||
|
| Polygon Culling |
|
||
|
+-------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
+-----------------------+
|
||
|
| Choose front or |
|
||
|
| back face color |
|
||
|
| (consume other color) |
|
||
|
+-----------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
[...]
|
||
|
primary/secondary colors only
|
||
|
| | |
|
||
|
V V V
|
||
|
+-------------------+
|
||
|
| Polygon Offset |
|
||
|
+-------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
+----------------------+
|
||
|
| Unfilled polygons |
|
||
|
| (consume edge flags) |
|
||
|
| (change prim type) |
|
||
|
+----------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
position
|
||
|
generics
|
||
|
primary/secondary colors
|
||
|
point size
|
||
|
primitive ID
|
||
|
fb layer
|
||
|
| | |
|
||
|
V V V
|
||
|
+---------------------------------+
|
||
|
| Optional Draw module helpers |
|
||
|
| * Polygon Stipple |
|
||
|
| * Line Stipple |
|
||
|
| * Line AA/smooth (as tris) |
|
||
|
| * Wide lines (as tris) |
|
||
|
| * Wide points/sprites (as tris) |
|
||
|
| * Point AA/smooth (as tris) |
|
||
|
| (NOTE: these stages may emit |
|
||
|
| new/extra generic attributes |
|
||
|
| such as texcoords) |
|
||
|
+---------------------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
position ]
|
||
|
generics (+ new/extra ones) ]
|
||
|
primary/secondary colors ] Software rast vertices
|
||
|
point size ]
|
||
|
primitive ID ]
|
||
|
fb layer ]
|
||
|
| | |
|
||
|
V V V
|
||
|
+---------------------+
|
||
|
| Triangle/Line/Point |
|
||
|
| Rasterization |
|
||
|
+---------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
generic attribs
|
||
|
primary/secondary colors
|
||
|
primitive ID
|
||
|
fragment win coord pos } System-generated values
|
||
|
front/back face flag }
|
||
|
| | |
|
||
|
V V V
|
||
|
+-------------------+
|
||
|
| Fragment shader |
|
||
|
+-------------------+
|
||
|
| | |
|
||
|
V V V
|
||
|
zero or more colors
|
||
|
zero or one Z value
|
||
|
|
||
|
|
||
|
NOTE: The instance ID is not shown. It can be imagined to be a global variable
|
||
|
accessible to all shader stages.
|