Flutter Engine
The Flutter Engine
|
#include <DrawOrder.h>
Public Member Functions | |
DrawOrder (PaintersDepth originalOrder) | |
DrawOrder (PaintersDepth originalOrder, CompressedPaintersOrder compressedOrder) | |
CompressedPaintersOrder | paintOrder () const |
DisjointStencilIndex | stencilIndex () const |
PaintersDepth | depth () const |
float | depthAsFloat () const |
DrawOrder & | dependsOnPaintersOrder (CompressedPaintersOrder prevDraw) |
DrawOrder & | dependsOnStencil (DisjointStencilIndex disjointSet) |
Static Public Attributes | |
static constexpr PaintersDepth | kClearDepth = PaintersDepth::First() |
static constexpr CompressedPaintersOrder | kNoIntersection = CompressedPaintersOrder::First() |
static constexpr DisjointStencilIndex | kUnassigned = DisjointStencilIndex::First() |
DrawOrder aggregates the three separate sequences that Graphite uses to re-order draws and their substeps as much as possible while preserving the painter's order semantics of the Skia API.
To build the full DrawOrder for a draw, start with its assigned PaintersDepth (i.e. the original painter's order of the draw call). From there, the DrawOrder can be updated to reflect dependencies on previous draws, either from depth-only clip draws or because the draw is transparent and must blend with the previous color values. Lastly, once the CompressedPaintersOrder is finalized, the DrawOrder can be updated to reflect whether or not the draw will involve the stencil buffer–and if so, specify the disjoint stencil set it belongs to.
The original and effective order that draws are executed in is defined by the PaintersDepth. However, the actual execution order is defined by first the CompressedPaintersOrder and then the DisjointStencilIndex. This means that draws with much higher depths can be executed earlier if painter's order compression allows for it.
Definition at line 105 of file DrawOrder.h.
|
inlineexplicit |
Definition at line 117 of file DrawOrder.h.
|
inline |
Definition at line 122 of file DrawOrder.h.
|
inline |
Definition at line 133 of file DrawOrder.h.
|
inline |
Definition at line 142 of file DrawOrder.h.
|
inline |
Definition at line 129 of file DrawOrder.h.
|
inline |
Definition at line 131 of file DrawOrder.h.
|
inline |
Definition at line 127 of file DrawOrder.h.
|
inline |
Definition at line 128 of file DrawOrder.h.
|
inlinestaticconstexpr |
Definition at line 109 of file DrawOrder.h.
|
inlinestaticconstexpr |
Definition at line 113 of file DrawOrder.h.
|
inlinestaticconstexpr |
Definition at line 115 of file DrawOrder.h.