Donner 0.5.0
Embeddable browser-grade SVG2 engine
Loading...
Searching...
No Matches
donner::svg::components::ResourceManagerContext Class Reference

Resource manager, which handles loading resources from URLs and caching results. More...

#include "donner/svg/components/resources/ResourceManagerContext.h"

Public Member Functions

 ResourceManagerContext (Registry &registry)
 Constructor.
void loadResources (ParseWarningSink &warningSink)
 Load resources such as images.
void setResourceLoader (std::unique_ptr< ResourceLoaderInterface > &&loader)
 Set the user-supplied ResourceLoaderInterface which handles loading URLs and returning their contents.
void setProcessingMode (ProcessingMode mode)
 Set the processing mode for this document.
void setSvgParseCallback (SubDocumentCache::ParseCallback callback)
 Set the callback used to parse SVG content into sub-documents.
std::optional< SVGDocumentHandleloadExternalSVG (const RcString &url, ParseWarningSink &warningSink)
 Load an external SVG document by URL, for use by <use> elements referencing external files.
std::optional< Vector2igetImageSize (Entity entity) const
 Get the size of an image resource for an entity, if it has one and successfully loaded.
void addFontFaces (std::span< const css::FontFace > fontFaces)
 Add a list of css::FontFace objects to be loaded.
const std::vector< FontResource > & loadedFonts () const
 Get loaded font faces, valid after loadResources() is called.
const std::vector< css::FontFace > & fontFaces () const
 Get all registered @font-face declarations.

Detailed Description

Resource manager, which handles loading resources from URLs and caching results.

Member Function Documentation

◆ addFontFaces()

void donner::svg::components::ResourceManagerContext::addFontFaces ( std::span< const css::FontFace > fontFaces)

Add a list of css::FontFace objects to be loaded.

Parameters
fontFacesFont faces to load.

◆ getImageSize()

std::optional< Vector2i > donner::svg::components::ResourceManagerContext::getImageSize ( Entity entity) const

Get the size of an image resource for an entity, if it has one and successfully loaded.

Parameters
entityEntity to get the image size for.

◆ loadExternalSVG()

std::optional< SVGDocumentHandle > donner::svg::components::ResourceManagerContext::loadExternalSVG ( const RcString & url,
ParseWarningSink & warningSink )

Load an external SVG document by URL, for use by <use> elements referencing external files.

The document is cached in the \ref SubDocumentCache.

Parameters
urlURL of the external SVG to load.
warningSinkSink to collect warnings.
Returns
Parsed document handle, or std::nullopt on failure.

◆ loadResources()

void donner::svg::components::ResourceManagerContext::loadResources ( ParseWarningSink & warningSink)

Load resources such as images.

Note that this doesn't issue network calls directly, but relies on the user's application to handle callbacks for loading URLs and returning their contents.

Parameters
warningSinkSink to collect warnings.

◆ setProcessingMode()

void donner::svg::components::ResourceManagerContext::setProcessingMode ( ProcessingMode mode)
inline

Set the processing mode for this document.

In secure modes (ProcessingMode::SecureStatic, ProcessingMode::SecureAnimated), external resource loading is disabled per SVG2 ยง2.7.1.

Parameters
modeProcessing mode to set.

◆ setResourceLoader()

void donner::svg::components::ResourceManagerContext::setResourceLoader ( std::unique_ptr< ResourceLoaderInterface > && loader)
inline

Set the user-supplied ResourceLoaderInterface which handles loading URLs and returning their contents.

Parameters
loaderResource loader interface, which will be held until overridden. Call this API again with nullptr to unset.

◆ setSvgParseCallback()

void donner::svg::components::ResourceManagerContext::setSvgParseCallback ( SubDocumentCache::ParseCallback callback)
inline

Set the callback used to parse SVG content into sub-documents.

This is called when an <image> element references an SVG file. The callback is injected to avoid circular build dependencies between the component layer and SVGParser.

Parameters
callbackCallback that parses SVG bytes into an SVGDocumentHandle.

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