Donner SVG 0.8.0-pre
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::svg::components::ComputedFilterResourceBudget Class Reference

Owns computed-filter structural reservations and shared raster payload admission. More...

#include "donner/svg/components/filter/ComputedFilterResourceBudget.h"

Classes

struct  Limits

Public Member Functions

 ComputedFilterResourceBudget (std::shared_ptr< DocumentResourceFamilyBudget > family=nullptr)
 ComputedFilterResourceBudget (std::shared_ptr< DocumentResourceFamilyBudget > family, Limits limits)
 ComputedFilterResourceBudget (const ComputedFilterResourceBudget &)=delete
ComputedFilterResourceBudget & operator= (const ComputedFilterResourceBudget &)=delete
 ComputedFilterResourceBudget (ComputedFilterResourceBudget &&other) noexcept
ComputedFilterResourceBudget & operator= (ComputedFilterResourceBudget &&)=delete
bool reserve (Entity entity, std::size_t bytes)
void release (Entity entity)
std::shared_ptr< const std::vector< std::uint8_t > > shareImage (Entity sourceEntity, std::uint64_t sourceRevision, const std::vector< std::uint8_t > &sourcePixels)
 Return one immutable copy of a loaded image, shared by every graph using the same source.
std::shared_ptr< const std::vector< std::uint8_t > > adoptImage (std::vector< std::uint8_t > &&sourcePixels)
 Adopt a transient renderer-produced image after reserving its full retained lifetime.
std::size_t retainedBytes () const
std::size_t sharedImageMaterializations () const
std::size_t sharedImageComparedBytes () const
bool rejected () const
const Limitslimits () const

Static Public Attributes

static constexpr std::size_t kMaximumBytes = 16 * 1024 * 1024

Detailed Description

Owns computed-filter structural reservations and shared raster payload admission.


Class Documentation

◆ donner::svg::components::ComputedFilterResourceBudget::Limits

struct donner::svg::components::ComputedFilterResourceBudget::Limits
Class Members
size_t maximumBytes = kMaximumBytes

Member Function Documentation

◆ adoptImage()

std::shared_ptr< const std::vector< std::uint8_t > > donner::svg::components::ComputedFilterResourceBudget::adoptImage ( std::vector< std::uint8_t > && sourcePixels)
inline

Adopt a transient renderer-produced image after reserving its full retained lifetime.

Parameters
sourcePixelsTightly packed straight-alpha RGBA pixels.
Returns
Shared immutable pixels, or null when admission fails.

◆ shareImage()

std::shared_ptr< const std::vector< std::uint8_t > > donner::svg::components::ComputedFilterResourceBudget::shareImage ( Entity sourceEntity,
std::uint64_t sourceRevision,
const std::vector< std::uint8_t > & sourcePixels )
inline

Return one immutable copy of a loaded image, shared by every graph using the same source.

The family reservation is captured by the allocation's deleter, so accounting remains live until the final computed graph or render snapshot releases the pixels.

Parameters
sourceEntityEntity that owns the decoded image.
sourceRevisionMonotonic identity of the decoded image payload.
sourcePixelsDecoded straight-alpha RGBA pixels.
Returns
Shared immutable pixels, or null when admission fails.

The documentation for this class was generated from the following file: