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

Aggregate stylesheet cascade and selector traversal budget for one style-computation pass. More...

#include "donner/svg/components/style/StyleSystem.h"

Classes

struct  Limits

Public Member Functions

 StyleResourceBudget (std::shared_ptr< DocumentResourceFamilyBudget > family=nullptr)
 StyleResourceBudget (Limits limits, std::shared_ptr< DocumentResourceFamilyBudget > family=nullptr)
 StyleResourceBudget (const StyleResourceBudget &)=delete
StyleResourceBudget & operator= (const StyleResourceBudget &)=delete
 StyleResourceBudget (StyleResourceBudget &&other) noexcept
StyleResourceBudget & operator= (StyleResourceBudget &&)=delete
void reset ()
bool reserveRuleElementMatch ()
bool reserveDeclarationApplication (std::size_t componentCount=0, std::size_t sourceBytes=0)
bool reserveComplexPropertyBytes (Entity entity, std::size_t byteCount)
void release (Entity entity)
void releaseAll ()
css::SelectorTraversalBudgetselectorTraversal ()
const css::SelectorTraversalBudgetselectorTraversal () const
std::size_t ruleElementMatches () const
std::size_t declarationApplications () const
std::size_t declarationComponentWork () const
std::size_t declarationByteWork () const
std::size_t complexPropertyBytes () const
bool rejected () const
const Limitslimits () const

Static Public Attributes

static constexpr std::size_t kMaximumRuleElementMatches = 1024 * 1024
static constexpr std::size_t kMaximumDeclarationApplications = 1024 * 1024
static constexpr std::size_t kMaximumDeclarationComponentWork = 16 * 1024 * 1024
static constexpr std::size_t kMaximumDeclarationByteWork = 16 * 1024 * 1024
static constexpr std::size_t kMaximumComplexPropertyBytes = 64 * 1024 * 1024

Detailed Description

Aggregate stylesheet cascade and selector traversal budget for one style-computation pass.


Class Documentation

◆ donner::svg::components::StyleResourceBudget::Limits

struct donner::svg::components::StyleResourceBudget::Limits
Class Members
size_t complexPropertyBytes = kMaximumComplexPropertyBytes
size_t declarationApplications = kMaximumDeclarationApplications
size_t declarationByteWork = kMaximumDeclarationByteWork
size_t declarationComponentWork = kMaximumDeclarationComponentWork
size_t ruleElementMatches = kMaximumRuleElementMatches
size_t selectorTraversalSteps = css::SelectorTraversalBudget::kMaximumSteps

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