Class TexturesExtension
Subclass of CompositionLayerExtension to support defining textures, and the rects for rendering those textures for a CompositionLayer instance on the same game object.
Source rect is used to define the rectangle within the source texture that the layer provider should use when reading texture information for the layer.
Destination rect is used to define the rectangle within the source texture that the layer provider should use when writing texture information for the layer.
Support for this component is up the the instance of ILayerProvider currently assigned to the CompositionLayerManager.
If this extension is not added to a layer game object, it is expected that the provider will provide the necessary textures in some other way. This may occur in cases such as the rendering of protected content.
Inheritance
Inherited Members
Namespace: Unity.XR.CompositionLayers.Extensions
Assembly: Unity.XR.CompositionLayers.dll
Syntax
[ExecuteAlways]
[DisallowMultipleComponent]
[AddComponentMenu("XR/Composition Layers/Extensions/Source Textures")]
public class TexturesExtension : CompositionLayerExtension
Properties
CropToAspect
Crop to the texture's aspect ratio
If true, the hosting layer will crop its aspect ratio within the height/width bounds set in the layer properties.
Declaration
public bool CropToAspect { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
CustomRects
When true the rect values for source and destination can be modified to custom values.
Declaration
public bool CustomRects { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
InEditorEmulation
When 0 Emultion is used on left eye when 1 it is used on the right.
Declaration
public int InEditorEmulation { get; set; }
Property Value
| Type | Description |
|---|---|
| int |
IsDynamic
When true, the layer is treated as always dirty so its swapchain image is rewritten every frame, regardless of the source texture type.
Enable this for textures whose contents are updated externally on the GPU (for example by a native plugin or an AHardwareBuffer-backed Texture2D). Such textures are not RenderTextures and do not trigger the layer provider's normal change detection, so they would otherwise appear static after the first write.
Declaration
public bool IsDynamic { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
LeftEyeDestinationRect
Left eye destination rectangle.
Rects should always be clamped to be within the [0, 1] range.
Declaration
public Rect LeftEyeDestinationRect { get; set; }
Property Value
| Type | Description |
|---|---|
| Rect |
LeftEyeSourceRect
Left eye source rectangle.
Rects should always be clamped to be within the [0, 1] range.
Declaration
public Rect LeftEyeSourceRect { get; set; }
Property Value
| Type | Description |
|---|---|
| Rect |
LeftTexture
The texture instance to be used for the left eye.
Declaration
public Texture LeftTexture { get; set; }
Property Value
| Type | Description |
|---|---|
| Texture |
MipMapMode
Controls how mipmap levels are propagated into the layer's swapchain image for LocalTexture sources. Defaults to None.
The mode can be changed at runtime. Transitions that change the mip count (to or from None) trigger a swapchain recreation. switching between CopyFromSource and AutoGenerate only changes the per-frame write path.
Declaration
public TexturesExtension.MipMapModeEnum MipMapMode { get; set; }
Property Value
| Type | Description |
|---|---|
| TexturesExtension.MipMapModeEnum |
Resolution
External texture resolution (Android Only).
Declaration
public Vector2 Resolution { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector2 |
RightEyeDestinationRect
Right eye destination rectangle.
Rects should always be clamped to be within the [0, 1] range.
Declaration
public Rect RightEyeDestinationRect { get; set; }
Property Value
| Type | Description |
|---|---|
| Rect |
RightEyeSourceRect
Right eye source rectangle.
Rects should always be clamped to be within the [0, 1] range.
Declaration
public Rect RightEyeSourceRect { get; set; }
Property Value
| Type | Description |
|---|---|
| Rect |
RightTexture
The texture instance to be used for the right eye.
Declaration
public Texture RightTexture { get; set; }
Property Value
| Type | Description |
|---|---|
| Texture |
Target
Options for which type of object this extension should be associated with.
Declaration
public override CompositionLayerExtension.ExtensionTarget Target { get; }
Property Value
| Type | Description |
|---|---|
| CompositionLayerExtension.ExtensionTarget |
Overrides
TargetEye
Defines the eye range that this instance is defined to support.
Declaration
public TexturesExtension.TargetEyeEnum TargetEye { get; set; }
Property Value
| Type | Description |
|---|---|
| TexturesExtension.TargetEyeEnum |
TextureAdded
Boolean value to track if layer's source texture be added during update
Declaration
public bool TextureAdded { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
sourceTexture
When true the layer will be used for render Android external surface.
Declaration
public TexturesExtension.SourceTextureEnum sourceTexture { get; set; }
Property Value
| Type | Description |
|---|---|
| TexturesExtension.SourceTextureEnum |
Methods
GetNativeStructPtr()
Return a pointer to this extension's native struct.
Declaration
public override void* GetNativeStructPtr()
Returns
| Type | Description |
|---|---|
| void* | the pointer to texture extension's native struct. |