Donner SVG 0.8.0
0.8.0 ยท ebf353960.8.0 main
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
ImageComponent.h File Reference
#include <atomic>
#include <cassert>
#include <cstdint>
#include <memory>
#include <optional>
#include <utility>
#include "donner/base/EcsRegistry_fwd.h"
#include "donner/base/RcString.h"
#include "donner/svg/SVGDocumentHandle.h"
#include "donner/svg/components/DocumentResourceFamilyBudget.h"
#include "donner/svg/resources/ImageResource.h"
Include dependency graph for ImageComponent.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  donner::svg::components::DecodedImageCacheReclaimer
 Optional decoded-animation cache hook invoked before a family-budget reservation. More...
struct  donner::svg::components::DeferredDecodedImageComponent
 A decoded image waiting for enough recoverable document-family capacity. More...
struct  donner::svg::components::ImageComponent
 Parameters for the <image> element. More...
class  donner::svg::components::DecodedImageReservation
 Owns a decoded-raster reservation from a shared document-family budget. More...
struct  donner::svg::components::LoadedImageComponent
 Loaded raster image resource, created from a ImageComponent when the href references a raster image (PNG, JPEG, GIF). More...
struct  donner::svg::components::LoadedSVGImageComponent
 Loaded SVG sub-document, created from a ImageComponent when the href references an SVG file (image/svg+xml). More...
struct  donner::svg::components::ExternalUseComponent
 Loaded external SVG sub-document referenced by a <use> element. More...

Namespaces

namespace  donner
 Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css.
namespace  donner::svg
 Donner SVG library, which can load, manipulate and render SVG files.
namespace  donner::svg::components
 Contains the implementation of the Donner ECS,.

Class Documentation

◆ donner::svg::components::DeferredDecodedImageComponent

struct donner::svg::components::DeferredDecodedImageComponent

A decoded image waiting for enough recoverable document-family capacity.

Class Members
RcString href Image reference whose decode was deferred.
size_t requiredBytes = 0 Exact decoded RGBA bytes required for admission.

◆ donner::svg::components::ImageComponent

struct donner::svg::components::ImageComponent

Parameters for the <image> element.

Class Members
RcString href URI to the image resource, which can either be a file path, URL, or data URL (e.g. "data:image/png;base64,...").

◆ donner::svg::components::LoadedSVGImageComponent

struct donner::svg::components::LoadedSVGImageComponent

Loaded SVG sub-document, created from a ImageComponent when the href references an SVG file (image/svg+xml).

Stores the shared internal document handle used by SVGDocument.

Class Members
SVGDocumentHandle subDocument Parsed external SVG sub-document handle.

◆ donner::svg::components::ExternalUseComponent

struct donner::svg::components::ExternalUseComponent

Loaded external SVG sub-document referenced by a <use> element.

When a <use> element's href points to an external SVG file, the document is loaded via SubDocumentCache and stored here as an SVGDocumentHandle for rendering as a nested sub-document.

Class Members
RcString fragment Fragment identifier within the external document (e.g., "elementId" from "file.svg#elementId"). Empty if the whole document is referenced.
SVGDocumentHandle subDocument Parsed external SVG sub-document handle.