Class MutableRuntimeReferenceImageLibrary
A reference image library that can be constructed and modified at runtime. By contrast, an XRReferenceImageLibrary can only be constructed at edit-time and is immutable at runtime.
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public abstract class MutableRuntimeReferenceImageLibrary : RuntimeReferenceImageLibrary, IReferenceImageLibrary
Remarks
Subsystem providers must implement this class for their provider if
supportsMutableLibrary
is true to provide the functionality to support runtime mutable libraries.
This is not something consumers of the ARSubsystems package should implement.
Properties
supportedTextureFormatCount
The number of texture formats that are supported for image addition.
Declaration
public abstract int supportedTextureFormatCount { get; }
Property Value
| Type | Description | 
|---|---|
| Int32 | 
Methods
GetEnumerator()
Gets an enumerator for this collection of reference images. This allows this image library to act as a collection in a foreach statement.
The MutableRuntimeReferenceImageLibrary.Enumerator is a struct, so no garbage is generated.
Declaration
public MutableRuntimeReferenceImageLibrary.Enumerator GetEnumerator()
Returns
| Type | Description | 
|---|---|
| MutableRuntimeReferenceImageLibrary.Enumerator | An enumerator that can be used in a   | 
GetSupportedTextureFormatAt(Int32)
Returns the supported texture format at index. Useful for enumerating the supported texture formats for image addition.
Declaration
public TextureFormat GetSupportedTextureFormatAt(int index)
Parameters
| Type | Name | Description | 
|---|---|---|
| Int32 | index | The index of the format to retrieve.  | 
Returns
| Type | Description | 
|---|---|
| TextureFormat | The supported format at   | 
GetSupportedTextureFormatAtImpl(Int32)
Derived methods should return the TextureFormat at the given index.
index has already been validated to be within [0..supportedTextureFormatCount).
Declaration
protected abstract TextureFormat GetSupportedTextureFormatAtImpl(int index)
Parameters
| Type | Name | Description | 
|---|---|---|
| Int32 | index | The index of the format to retrieve.  | 
Returns
| Type | Description | 
|---|---|
| TextureFormat | The supported format at   | 
IsTextureFormatSupported(TextureFormat)
Determines whether the given format is supported.
Declaration
public bool IsTextureFormatSupported(TextureFormat format)
Parameters
| Type | Name | Description | 
|---|---|---|
| TextureFormat | format | The TextureFormat to test.  | 
Returns
| Type | Description | 
|---|---|
| Boolean | 
  | 
ScheduleAddImageJob(NativeSlice<Byte>, Vector2Int, TextureFormat, XRReferenceImage, JobHandle)
Asynchronously adds an image to this library.
Declaration
public JobHandle ScheduleAddImageJob(NativeSlice<byte> imageBytes, Vector2Int sizeInPixels, TextureFormat format, XRReferenceImage referenceImage, JobHandle inputDeps = default(JobHandle))
Parameters
| Type | Name | Description | 
|---|---|---|
| NativeSlice<Byte> | imageBytes | The raw image bytes in   | 
| Vector2Int | sizeInPixels | The width and height of the image, in pixels.  | 
| TextureFormat | format | The format of   | 
| XRReferenceImage | referenceImage | The XRReferenceImage data associated with the image to add to the library.
This includes information like physical dimensions, associated   | 
| JobHandle | inputDeps | (Optional) input dependencies for the add image job.  | 
Returns
| Type | Description | 
|---|---|
| JobHandle | A JobHandle which can be used to chain together multiple tasks or to query for completion. May be safely discarded.  | 
Remarks
Image addition can take some time (several frames) due to extra processing that must occur to insert the image into the library. This is done using the Unity Job System. The returned JobHandle can be used to chain together multiple tasks or to query for completion, but may be safely discarded if you do not need it.
This job, like all Unity jobs, can have dependencies (using the inputDeps). This can be useful,
for example, if imageBytes is the output of another job. If you are adding multiple
images to the library, it is not necessary to pass a previous ScheduleAddImageJob JobHandle as the input
dependency to the next ScheduleAddImageJob; they can be processed concurrently.
The imageBytes must be valid until this job completes. The caller is responsible for managing its memory.
Exceptions
| Type | Condition | 
|---|---|
| ArgumentException | Thrown if   | 
| ArgumentException | Thrown if   | 
| ArgumentNullException | Thrown if   | 
| ArgumentOutOfRangeException | Thrown if   | 
| InvalidOperationException | Thrown if   | 
| ArgumentOutOfRangeException | Thrown if   | 
ScheduleAddImageJobImpl(NativeSlice<Byte>, Vector2Int, TextureFormat, XRReferenceImage, JobHandle)
This method should schedule a Unity Job which adds an image to this reference image library.
Declaration
protected abstract JobHandle ScheduleAddImageJobImpl(NativeSlice<byte> imageBytes, Vector2Int sizeInPixels, TextureFormat format, XRReferenceImage referenceImage, JobHandle inputDeps)
Parameters
| Type | Name | Description | 
|---|---|---|
| NativeSlice<Byte> | imageBytes | The raw image bytes in   | 
| Vector2Int | sizeInPixels | The width and height of the image, in pixels.  | 
| TextureFormat | format | The format of   | 
| XRReferenceImage | referenceImage | The XRReferenceImage data associated with the image to add to the library.
This includes information like physical dimensions, associated   | 
| JobHandle | inputDeps | Input dependencies for the add image job.  | 
Returns
| Type | Description | 
|---|---|
| JobHandle | A JobHandle which can be used to chain together multiple tasks or to query for completion.  |