Interface IUniqueKey

All Known Implementing Classes:
GLGraphicsPipelineKey, PipelineKey

public interface IUniqueKey
Marker interface for unique resource key, allows for exclusive use of a resource for a use case (AKA "domain"). There are three rules governing the use of unique keys:
  • Only one resource can have a given unique key at a time. Hence, "unique".
  • A resource can have at most one unique key at a time.
  • Unlike scratch keys, multiple requests for a unique key will return the same resource even if the resource already has refs.
This key type allows a code path to create cached resources for which it is the exclusive user. The code path creates a domain which it sets on its keys. This guarantees that there are no cross-domain collisions.

Unique keys preempt scratch keys. While a resource has a unique key it is inaccessible via its scratch key. It can become scratch again if the unique key is removed.