Class XRCameraSubsystem.Provider
Interface for providing camera functionality for the implementation.
Inheritance
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public class Provider : SubsystemProvider<XRCameraSubsystem>
Properties
autoFocusEnabled
Property to be implemented by the provider to get the current camera focus mode.
Declaration
public virtual bool autoFocusEnabled { get; }
Property Value
Type | Description |
---|---|
Boolean |
autoFocusRequested
Property to be implemented by the provider to get or set the focus mode for the camera.
Declaration
public virtual bool autoFocusRequested { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
cameraMaterial
Property to be implemented by the provder to get the material used by XRCameraSubsystem
to
render the camera texture.
Declaration
public virtual Material cameraMaterial { get; }
Property Value
Type | Description |
---|---|
Material | The material to render the camera texture. |
cpuImageApi
An instance of the XRCpuImage.Api used to operate on XRCpuImage objects.
Declaration
public virtual XRCpuImage.Api cpuImageApi { get; }
Property Value
Type | Description |
---|---|
XRCpuImage.Api |
currentCamera
This property should get the actual camera facing direction.
Declaration
public virtual Feature currentCamera { get; }
Property Value
Type | Description |
---|---|
Feature |
currentConfiguration
Property to be implemented by the provider to query or set the current camera configuration.
Declaration
public virtual XRCameraConfiguration? currentConfiguration { get; set; }
Property Value
Type | Description |
---|---|
Nullable<XRCameraConfiguration> | The current camera configuration, if it exists. Otherise, |
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown when setting the current configuration if the implementation does not support camera configurations. |
ArgumentException | Thrown when setting the current configuration if the given configuration is not a valid, supported camera configuration. |
InvalidOperationException | Thrown when setting the current configuration if the implementation is unable to set the current camera configuration. |
currentLightEstimation
Property to be implemented by the provider to get the current light estimation mode in use.
Declaration
public virtual Feature currentLightEstimation { get; }
Property Value
Type | Description |
---|---|
Feature |
invertCulling
True
if culling should be inverted during rendering. Some front-facing
camera modes might require this.
Declaration
public virtual bool invertCulling { get; }
Property Value
Type | Description |
---|---|
Boolean |
permissionGranted
Property to be implemented by the provider to determine whether camera permission has been granted.
Declaration
public virtual bool permissionGranted { get; }
Property Value
Type | Description |
---|---|
Boolean |
|
requestedCamera
This property should get or set the requested camera facing direction, that is, the AnyCamera bits.
Declaration
public virtual Feature requestedCamera { get; set; }
Property Value
Type | Description |
---|---|
Feature |
requestedLightEstimation
Property to be implemented by the provider to get or set the light estimation mode.
Declaration
public virtual Feature requestedLightEstimation { get; set; }
Property Value
Type | Description |
---|---|
Feature |
Methods
CreateCameraMaterial(String)
Create the camera material from the given camera shader name.
Declaration
protected Material CreateCameraMaterial(string cameraShaderName)
Parameters
Type | Name | Description |
---|---|---|
String | cameraShaderName | The name of the camera shader. |
Returns
Type | Description |
---|---|
Material | The created camera material shader. |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown if the shader cannot be found or if a material cannot be created for the shader. |
Destroy()
Method to be implemented by the provider to destroy the camera for the subsystem.
Declaration
public override void Destroy()
Overrides
GetConfigurations(XRCameraConfiguration, Allocator)
Method to be implemented by the provider to query the supported camera configurations.
Declaration
public virtual NativeArray<XRCameraConfiguration> GetConfigurations(XRCameraConfiguration defaultCameraConfiguration, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
XRCameraConfiguration | defaultCameraConfiguration | A default value used to fill the returned array before copying in real values. This ensures future additions to this struct are backwards compatible. |
Allocator | allocator | The allocation strategy to use for the returned data. |
Returns
Type | Description |
---|---|
NativeArray<XRCameraConfiguration> | The supported camera configurations. |
GetMaterialKeywords(out List<String>, out List<String>)
Method to be implemented by the provider to get the enabled and disabled shader keywords for the material.
Declaration
public virtual void GetMaterialKeywords(out List<string> enabledKeywords, out List<string> disabledKeywords)
Parameters
Type | Name | Description |
---|---|---|
List<String> | enabledKeywords | The keywords to enable for the material. |
List<String> | disabledKeywords | The keywords to disable for the material. |
GetTextureDescriptors(XRTextureDescriptor, Allocator)
Get the XRTextureDescriptors associated with the current XRCameraFrame.
Declaration
public virtual NativeArray<XRTextureDescriptor> GetTextureDescriptors(XRTextureDescriptor defaultDescriptor, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
XRTextureDescriptor | defaultDescriptor | A default value which should be used to fill the returned array before copying in the real values. This ensures future additions to this struct are backwards compatible. |
Allocator | allocator | The allocator to use when creating
the returned |
Returns
Type | Description |
---|---|
NativeArray<XRTextureDescriptor> | The current texture descriptors. |
OnBeforeBackgroundRender(Int32)
Method to be implemented by the provider to handle any required platform-specific functionality immediately before rendering the camera background. This method will always be called on the render thread and should only be called by the code responsible for executing background rendering on mobile AR platforms.
Declaration
public virtual void OnBeforeBackgroundRender(int id)
Parameters
Type | Name | Description |
---|---|---|
Int32 | id | Platform specific identifier. |
Start()
Method to be implemented by the provider to start the camera for the subsystem.
Declaration
public override void Start()
Overrides
Stop()
Method to be implemented by the provider to stop the camera for the subsystem.
Declaration
public override void Stop()
Overrides
TryAcquireLatestCpuImage(out XRCpuImage.Cinfo)
Method to be implemented by the provider to query for the latest native camera image.
Declaration
public virtual bool TryAcquireLatestCpuImage(out XRCpuImage.Cinfo cameraImageCinfo)
Parameters
Type | Name | Description |
---|---|---|
XRCpuImage.Cinfo | cameraImageCinfo | The metadata required to construct a XRCpuImage |
Returns
Type | Description |
---|---|
Boolean |
|
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if the implementation does not support camera image. |
TryGetFrame(XRCameraParams, out XRCameraFrame)
Method to be implemented by the provider to get the camera frame for the subsystem.
Declaration
public virtual bool TryGetFrame(XRCameraParams cameraParams, out XRCameraFrame cameraFrame)
Parameters
Type | Name | Description |
---|---|---|
XRCameraParams | cameraParams | The current Unity |
XRCameraFrame | cameraFrame | The current camera frame returned by the method. |
Returns
Type | Description |
---|---|
Boolean |
|
TryGetIntrinsics(out XRCameraIntrinsics)
Method to be implemented by the provider to get the camera intrinisics information.
Declaration
public virtual bool TryGetIntrinsics(out XRCameraIntrinsics cameraIntrinsics)
Parameters
Type | Name | Description |
---|---|---|
XRCameraIntrinsics | cameraIntrinsics | The camera intrinsics information returned from the method. |
Returns
Type | Description |
---|---|
Boolean |
|