Donner SVG 0.8.0-pre
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::geode::GeodeGlyphResidentEntry Struct Reference

One unique glyph outline: the CPU outline, its analytic encode, and its GPU residence. More...

#include "donner/svg/renderer/geode/GeodeGlyphResidency.h"

Public Attributes

Path outline
 Unplaced outline (stretch baked in). Empty for glyphs the font has no vector outline for; the entry is still cached so the miss is not repaid every frame.
EncodedPath encoded
 Analytic dual-ray encode of outline. Empty when outline is.
GeodeResidentSlot slot
 Persistent GPU residence for encoded.
uint64_t lastUsedFrame = 0
 Device-scoped frame generation of the last occurrence that used this entry. The eviction pass never drops an entry a frame that has not submitted touched, because that frame's recorded draws still read its geometry. Zero means "never used"; generations start at 1, so an entry that somehow never reached a draw is evictable immediately.
uint64_t encodedBytes = 0
 Approximate CPU footprint of the encode, used as the residence budget's unit. Slab capacity is not usable here: the slab reports whole chunks.
uint64_t retainedBytes = 0
 Total retained CPU bytes for the outline and encode.

Detailed Description

One unique glyph outline: the CPU outline, its analytic encode, and its GPU residence.

The entry owns the outline and the encode so their addresses are stable for as long as the entry lives; slot.encodedKey points at encoded, and the pattern / gradient / stroke text paths borrow outline to build a placed path without going back to the font backend.

Member Data Documentation

◆ encoded

EncodedPath donner::geode::GeodeGlyphResidentEntry::encoded

Analytic dual-ray encode of outline. Empty when outline is.

◆ encodedBytes

uint64_t donner::geode::GeodeGlyphResidentEntry::encodedBytes = 0

Approximate CPU footprint of the encode, used as the residence budget's unit. Slab capacity is not usable here: the slab reports whole chunks.

◆ lastUsedFrame

uint64_t donner::geode::GeodeGlyphResidentEntry::lastUsedFrame = 0

Device-scoped frame generation of the last occurrence that used this entry. The eviction pass never drops an entry a frame that has not submitted touched, because that frame's recorded draws still read its geometry. Zero means "never used"; generations start at 1, so an entry that somehow never reached a draw is evictable immediately.

◆ outline

Path donner::geode::GeodeGlyphResidentEntry::outline

Unplaced outline (stretch baked in). Empty for glyphs the font has no vector outline for; the entry is still cached so the miss is not repaid every frame.

◆ retainedBytes

uint64_t donner::geode::GeodeGlyphResidentEntry::retainedBytes = 0

Total retained CPU bytes for the outline and encode.

◆ slot

GeodeResidentSlot donner::geode::GeodeGlyphResidentEntry::slot

Persistent GPU residence for encoded.


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