#include <draw_order_resolver.h>
Public Types | |
using | ElementRefs = std::vector< size_t > |
Public Member Functions | |
DrawOrderResolver () | |
void | AddElement (size_t element_index, bool is_opaque) |
void | PushClip (size_t element_index) |
void | PopClip () |
void | Flush () |
ElementRefs | GetSortedDraws (size_t opaque_skip_count, size_t translucent_skip_count) const |
Returns the sorted draws for the current draw order layer. This should only be called after all recording has finished. More... | |
Helper that records draw indices in painter's order and sorts the draws into an optimized order based on translucency and clips.
Definition at line 15 of file draw_order_resolver.h.
using impeller::DrawOrderResolver::ElementRefs = std::vector<size_t> |
Definition at line 17 of file draw_order_resolver.h.
impeller::DrawOrderResolver::DrawOrderResolver | ( | ) |
Definition at line 12 of file draw_order_resolver.cc.
void impeller::DrawOrderResolver::AddElement | ( | size_t | element_index, |
bool | is_opaque | ||
) |
void impeller::DrawOrderResolver::Flush | ( | ) |
Definition at line 44 of file draw_order_resolver.cc.
References PopClip().
Referenced by impeller::testing::TEST().
DrawOrderResolver::ElementRefs impeller::DrawOrderResolver::GetSortedDraws | ( | size_t | opaque_skip_count, |
size_t | translucent_skip_count | ||
) | const |
Returns the sorted draws for the current draw order layer. This should only be called after all recording has finished.
[in] | opaque_skip_count | The number of opaque elements to skip when appending the combined elements. This is used for the "clear color" optimization. |
[in] | translucent_skip_count | The number of translucent elements to skip when appending the combined elements. This is used for the "clear color" optimization. |
Definition at line 71 of file draw_order_resolver.cc.
Referenced by impeller::testing::TEST().
void impeller::DrawOrderResolver::PopClip | ( | ) |
Definition at line 27 of file draw_order_resolver.cc.
References VALIDATION_LOG.
Referenced by Flush(), and impeller::testing::TEST().
void impeller::DrawOrderResolver::PushClip | ( | size_t | element_index | ) |