5 #ifndef FLUTTER_IMPELLER_ENTITY_ENTITY_PASS_CLIP_STACK_H_
6 #define FLUTTER_IMPELLER_ENTITY_ENTITY_PASS_CLIP_STACK_H_
48 void PushSubpass(std::optional<Rect> subpass_coverage,
size_t clip_height);
56 Point global_pass_position,
58 size_t clip_height_floor,
62 return GetCurrentSubpassState().rendered_clip_entities.back();
66 size_t restore_height);
75 std::vector<ReplayResult> rendered_clip_entities;
76 std::vector<ClipCoverageLayer> clip_coverage;
79 SubpassState& GetCurrentSubpassState();
81 std::vector<SubpassState> subpass_state_;
82 size_t next_replay_index_ = 0;
A class that tracks all clips that have been recorded in the current entity pass stencil.
std::optional< Rect > CurrentClipCoverage() const
void PushSubpass(std::optional< Rect > subpass_coverage, size_t clip_height)
~EntityPassClipStack()=default
ReplayResult & GetLastReplayResult()
const std::vector< ReplayResult > & GetReplayEntities() const
ClipStateResult RecordClip(const ClipContents &clip_contents, Matrix transform, Point global_pass_position, uint32_t clip_depth, size_t clip_height_floor, bool is_aa)
ClipStateResult RecordRestore(Point global_pass_position, size_t restore_height)
EntityPassClipStack(const Rect &initial_coverage_rect)
Create a new [EntityPassClipStack] with an initialized coverage rect.
const std::vector< ClipCoverageLayer > GetClipCoverageLayers() const
std::optional< Rect > coverage
std::optional< Rect > clip_coverage
ClipContents clip_contents
A 4x4 matrix using column-major storage.