13GeometryResult CoverGeometry::GetPositionBuffer(
const ContentContext& renderer,
15 RenderPass& pass)
const {
17 constexpr uint16_t kRectIndicies[4] = {0, 1, 2, 3};
18 auto& data_host_buffer = renderer.GetTransientsDataBuffer();
19 auto& indexes_host_buffer = renderer.GetTransientsIndexesBuffer();
20 return GeometryResult{
24 .vertex_buffer = data_host_buffer.Emplace(
25 rect.GetTransformedPoints(entity.GetTransform().Invert())
27 8 *
sizeof(
float),
alignof(
float)),
28 .index_buffer = indexes_host_buffer.Emplace(
29 kRectIndicies, 4 *
sizeof(uint16_t),
alignof(uint16_t)),
33 .transform = entity.GetShaderTransform(pass),
37std::optional<Rect> CoverGeometry::GetCoverage(
const Matrix&
transform)
const {
42 const Rect& rect)
const {
bool CanApplyMaskFilter() const override
bool CoversArea(const Matrix &transform, const Rect &rect) const override
Determines if this geometry, transformed by the given transform, will completely cover all surface ar...
A 4x4 matrix using column-major storage.
static constexpr TRect MakeSize(const TSize< U > &size)
static constexpr TRect MakeMaximum()