|
|
Donner SVG 0.8.0-pre
SVG editor and embeddable C++20 engine.
|
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. | |
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.
| EncodedPath donner::geode::GeodeGlyphResidentEntry::encoded |
| 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.
| 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.
| 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.
| uint64_t donner::geode::GeodeGlyphResidentEntry::retainedBytes = 0 |
Total retained CPU bytes for the outline and encode.
| GeodeResidentSlot donner::geode::GeodeGlyphResidentEntry::slot |
Persistent GPU residence for encoded.