• Immutable description of a font instance’s shared state.
  • A mutable font instance description.
  • A map of namespace-local font instance keys to shared keys. Weak references are used to track the liveness of each key mapping as other consumers of BaseFontInstance might hold strong references to the entry. A mapping from BaseFontInstance to the shared key is then used to determine which shared key to assign to that instance. When the weak count of the mapping is zero, the entry is allowed to expire. Again, care must be taken when clearing a namespace within the key map as it may cause shared key expirations that require individual processing. Shared instance keys will be created within the provided unique namespace.
  • A map of font instance data accessed concurrently from multiple threads.
  • A shared map from fonts key local to a namespace to shared font keys that can be shared across many namespaces. Local keys are tracked in a hashmap that stores a strong reference per mapping so that their count can be tracked. A map of font templates is used to hash font templates to their final shared key. The shared key will stay alive so long as there are any strong references to the mapping entry. Care must be taken when clearing namespaces of shared keys as this may trigger shared font keys to expire which require individual processing. Shared font keys will be created within the provided unique namespace.
  • A map of font keys to font templates that might hold both namespace-local font templates as well as shared templates.
  • Shared font resources that may need to be passed between multiple threads such as font templates and font instances. They are individually protected by locks to ensure safety.






Type Aliases§