Class RTHandleSystem
System managing a set of RTHandle textures
Inherited Members
Namespace: UnityEngine.Rendering
Syntax
public class RTHandleSystem : IDisposable
Constructors
RTHandleSystem()
RTHandleSystem constructor.
Declaration
public RTHandleSystem()
Properties
rtHandleProperties
Current properties of the RTHandle System.
Declaration
public RTHandleProperties rtHandleProperties { get; }
Property Value
| Type | Description |
|---|---|
| RTHandleProperties |
Methods
Alloc(Int32, Int32, Int32, DepthBits, GraphicsFormat, FilterMode, TextureWrapMode, TextureDimension, Boolean, Boolean, Boolean, Boolean, Int32, Single, MSAASamples, Boolean, Boolean, RenderTextureMemoryless, VRTextureUsage, String)
Allocate a new fixed sized RTHandle.
Declaration
public RTHandle Alloc(int width, int height, int slices = 1, DepthBits depthBufferBits = DepthBits.None, GraphicsFormat colorFormat = GraphicsFormat.R8G8B8A8_SRGB, FilterMode filterMode = FilterMode.Point, TextureWrapMode wrapMode = TextureWrapMode.Repeat, TextureDimension dimension = TextureDimension.Tex2D, bool enableRandomWrite = false, bool useMipMap = false, bool autoGenerateMips = true, bool isShadowMap = false, int anisoLevel = 1, float mipMapBias = 0F, MSAASamples msaaSamples = MSAASamples.None, bool bindTextureMS = false, bool useDynamicScale = false, RenderTextureMemoryless memoryless = RenderTextureMemoryless.None, VRTextureUsage vrUsage = VRTextureUsage.None, string name = "")
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | width | With of the RTHandle. |
| Int32 | height | Heigh of the RTHandle. |
| Int32 | slices | Number of slices of the RTHandle. |
| DepthBits | depthBufferBits | Bit depths of a depth buffer. |
| GraphicsFormat | colorFormat | GraphicsFormat of a color buffer. |
| FilterMode | filterMode | Filtering mode of the RTHandle. |
| TextureWrapMode | wrapMode | Addressing mode of the RTHandle. |
| TextureDimension | dimension | Texture dimension of the RTHandle. |
| Boolean | enableRandomWrite | Set to true to enable UAV random read writes on the texture. |
| Boolean | useMipMap | Set to true if the texture should have mipmaps. |
| Boolean | autoGenerateMips | Set to true to automatically generate mipmaps. |
| Boolean | isShadowMap | Set to true if the depth buffer should be used as a shadow map. |
| Int32 | anisoLevel | Anisotropic filtering level. |
| Single | mipMapBias | Bias applied to mipmaps during filtering. |
| MSAASamples | msaaSamples | Number of MSAA samples for the RTHandle. |
| Boolean | bindTextureMS | Set to true if the texture needs to be bound as a multisampled texture in the shader. |
| Boolean | useDynamicScale | Set to true to use hardware dynamic scaling. |
| RenderTextureMemoryless | memoryless | Use this property to set the render texture memoryless modes. |
| VRTextureUsage | vrUsage | Special treatment of the VR eye texture used in stereoscopic rendering. |
| String | name | Name of the RTHandle. |
Returns
| Type | Description |
|---|---|
| RTHandle |
Alloc(Int32, Int32, TextureWrapMode, TextureWrapMode, TextureWrapMode, Int32, DepthBits, GraphicsFormat, FilterMode, TextureDimension, Boolean, Boolean, Boolean, Boolean, Int32, Single, MSAASamples, Boolean, Boolean, RenderTextureMemoryless, VRTextureUsage, String)
Allocate a new fixed sized RTHandle.
Declaration
public RTHandle Alloc(int width, int height, TextureWrapMode wrapModeU, TextureWrapMode wrapModeV, TextureWrapMode wrapModeW = TextureWrapMode.Repeat, int slices = 1, DepthBits depthBufferBits = DepthBits.None, GraphicsFormat colorFormat = GraphicsFormat.R8G8B8A8_SRGB, FilterMode filterMode = FilterMode.Point, TextureDimension dimension = TextureDimension.Tex2D, bool enableRandomWrite = false, bool useMipMap = false, bool autoGenerateMips = true, bool isShadowMap = false, int anisoLevel = 1, float mipMapBias = 0F, MSAASamples msaaSamples = MSAASamples.None, bool bindTextureMS = false, bool useDynamicScale = false, RenderTextureMemoryless memoryless = RenderTextureMemoryless.None, VRTextureUsage vrUsage = VRTextureUsage.None, string name = "")
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | width | With of the RTHandle. |
| Int32 | height | Heigh of the RTHandle. |
| TextureWrapMode | wrapModeU | U coordinate wrapping mode of the RTHandle. |
| TextureWrapMode | wrapModeV | V coordinate wrapping mode of the RTHandle. |
| TextureWrapMode | wrapModeW | W coordinate wrapping mode of the RTHandle. |
| Int32 | slices | Number of slices of the RTHandle. |
| DepthBits | depthBufferBits | Bit depths of a depth buffer. |
| GraphicsFormat | colorFormat | GraphicsFormat of a color buffer. |
| FilterMode | filterMode | Filtering mode of the RTHandle. |
| TextureDimension | dimension | Texture dimension of the RTHandle. |
| Boolean | enableRandomWrite | Set to true to enable UAV random read writes on the texture. |
| Boolean | useMipMap | Set to true if the texture should have mipmaps. |
| Boolean | autoGenerateMips | Set to true to automatically generate mipmaps. |
| Boolean | isShadowMap | Set to true if the depth buffer should be used as a shadow map. |
| Int32 | anisoLevel | Anisotropic filtering level. |
| Single | mipMapBias | Bias applied to mipmaps during filtering. |
| MSAASamples | msaaSamples | Number of MSAA samples for the RTHandle. |
| Boolean | bindTextureMS | Set to true if the texture needs to be bound as a multisampled texture in the shader. |
| Boolean | useDynamicScale | Set to true to use hardware dynamic scaling. |
| RenderTextureMemoryless | memoryless | Use this property to set the render texture memoryless modes. |
| VRTextureUsage | vrUsage | Special treatment of the VR eye texture used in stereoscopic rendering. |
| String | name | Name of the RTHandle. |
Returns
| Type | Description |
|---|---|
| RTHandle |
Alloc(RenderTargetIdentifier)
Allocate a RTHandle from a regular render target identifier.
Declaration
public RTHandle Alloc(RenderTargetIdentifier texture)
Parameters
| Type | Name | Description |
|---|---|---|
| RenderTargetIdentifier | texture | Input render target identifier. |
Returns
| Type | Description |
|---|---|
| RTHandle | A new RTHandle referencing the input render target identifier. |
Alloc(RenderTargetIdentifier, String)
Allocate a RTHandle from a regular render target identifier.
Declaration
public RTHandle Alloc(RenderTargetIdentifier texture, string name)
Parameters
| Type | Name | Description |
|---|---|---|
| RenderTargetIdentifier | texture | Input render target identifier. |
| String | name | Name of the texture. |
Returns
| Type | Description |
|---|---|
| RTHandle | A new RTHandle referencing the input render target identifier. |
Alloc(ScaleFunc, Int32, DepthBits, GraphicsFormat, FilterMode, TextureWrapMode, TextureDimension, Boolean, Boolean, Boolean, Boolean, Int32, Single, MSAASamples, Boolean, Boolean, RenderTextureMemoryless, VRTextureUsage, String)
Allocate a new automatically sized RTHandle.
Declaration
public RTHandle Alloc(ScaleFunc scaleFunc, int slices = 1, DepthBits depthBufferBits = DepthBits.None, GraphicsFormat colorFormat = GraphicsFormat.R8G8B8A8_SRGB, FilterMode filterMode = FilterMode.Point, TextureWrapMode wrapMode = TextureWrapMode.Repeat, TextureDimension dimension = TextureDimension.Tex2D, bool enableRandomWrite = false, bool useMipMap = false, bool autoGenerateMips = true, bool isShadowMap = false, int anisoLevel = 1, float mipMapBias = 0F, MSAASamples msaaSamples = MSAASamples.None, bool bindTextureMS = false, bool useDynamicScale = false, RenderTextureMemoryless memoryless = RenderTextureMemoryless.None, VRTextureUsage vrUsage = VRTextureUsage.None, string name = "")
Parameters
| Type | Name | Description |
|---|---|---|
| ScaleFunc | scaleFunc | Function used for the RTHandle size computation. |
| Int32 | slices | Number of slices of the RTHandle. |
| DepthBits | depthBufferBits | Bit depths of a depth buffer. |
| GraphicsFormat | colorFormat | GraphicsFormat of a color buffer. |
| FilterMode | filterMode | Filtering mode of the RTHandle. |
| TextureWrapMode | wrapMode | Addressing mode of the RTHandle. |
| TextureDimension | dimension | Texture dimension of the RTHandle. |
| Boolean | enableRandomWrite | Set to true to enable UAV random read writes on the texture. |
| Boolean | useMipMap | Set to true if the texture should have mipmaps. |
| Boolean | autoGenerateMips | Set to true to automatically generate mipmaps. |
| Boolean | isShadowMap | Set to true if the depth buffer should be used as a shadow map. |
| Int32 | anisoLevel | Anisotropic filtering level. |
| Single | mipMapBias | Bias applied to mipmaps during filtering. |
| MSAASamples | msaaSamples | Number of MSAA samples. |
| Boolean | bindTextureMS | Set to true if the texture needs to be bound as a multisampled texture in the shader. |
| Boolean | useDynamicScale | Set to true to use hardware dynamic scaling. |
| RenderTextureMemoryless | memoryless | Use this property to set the render texture memoryless modes. |
| VRTextureUsage | vrUsage | Special treatment of the VR eye texture used in stereoscopic rendering. |
| String | name | Name of the RTHandle. |
Returns
| Type | Description |
|---|---|
| RTHandle | A new RTHandle. |
Alloc(RenderTexture)
Allocate a RTHandle from a regular RenderTexture.
Declaration
public RTHandle Alloc(RenderTexture texture)
Parameters
| Type | Name | Description |
|---|---|---|
| RenderTexture | texture | Input texture |
Returns
| Type | Description |
|---|---|
| RTHandle | A new RTHandle referencing the input texture. |
Alloc(Texture)
Allocate a RTHandle from a regular Texture.
Declaration
public RTHandle Alloc(Texture texture)
Parameters
| Type | Name | Description |
|---|---|---|
| Texture | texture | Input texture |
Returns
| Type | Description |
|---|---|
| RTHandle | A new RTHandle referencing the input texture. |
Alloc(Vector2, Int32, DepthBits, GraphicsFormat, FilterMode, TextureWrapMode, TextureDimension, Boolean, Boolean, Boolean, Boolean, Int32, Single, MSAASamples, Boolean, Boolean, RenderTextureMemoryless, VRTextureUsage, String)
Allocate a new automatically sized RTHandle.
Declaration
public RTHandle Alloc(Vector2 scaleFactor, int slices = 1, DepthBits depthBufferBits = DepthBits.None, GraphicsFormat colorFormat = GraphicsFormat.R8G8B8A8_SRGB, FilterMode filterMode = FilterMode.Point, TextureWrapMode wrapMode = TextureWrapMode.Repeat, TextureDimension dimension = TextureDimension.Tex2D, bool enableRandomWrite = false, bool useMipMap = false, bool autoGenerateMips = true, bool isShadowMap = false, int anisoLevel = 1, float mipMapBias = 0F, MSAASamples msaaSamples = MSAASamples.None, bool bindTextureMS = false, bool useDynamicScale = false, RenderTextureMemoryless memoryless = RenderTextureMemoryless.None, VRTextureUsage vrUsage = VRTextureUsage.None, string name = "")
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | scaleFactor | Constant scale for the RTHandle size computation. |
| Int32 | slices | Number of slices of the RTHandle. |
| DepthBits | depthBufferBits | Bit depths of a depth buffer. |
| GraphicsFormat | colorFormat | GraphicsFormat of a color buffer. |
| FilterMode | filterMode | Filtering mode of the RTHandle. |
| TextureWrapMode | wrapMode | Addressing mode of the RTHandle. |
| TextureDimension | dimension | Texture dimension of the RTHandle. |
| Boolean | enableRandomWrite | Set to true to enable UAV random read writes on the texture. |
| Boolean | useMipMap | Set to true if the texture should have mipmaps. |
| Boolean | autoGenerateMips | Set to true to automatically generate mipmaps. |
| Boolean | isShadowMap | Set to true if the depth buffer should be used as a shadow map. |
| Int32 | anisoLevel | Anisotropic filtering level. |
| Single | mipMapBias | Bias applied to mipmaps during filtering. |
| MSAASamples | msaaSamples | Number of MSAA samples. |
| Boolean | bindTextureMS | Set to true if the texture needs to be bound as a multisampled texture in the shader. |
| Boolean | useDynamicScale | Set to true to use hardware dynamic scaling. |
| RenderTextureMemoryless | memoryless | Use this property to set the render texture memoryless modes. |
| VRTextureUsage | vrUsage | Special treatment of the VR eye texture used in stereoscopic rendering. |
| String | name | Name of the RTHandle. |
Returns
| Type | Description |
|---|---|
| RTHandle | A new RTHandle. |
CalculateDimensions(ScaleFunc)
Calculate the dimensions (in pixels) of the RTHandles given the scale function. The base unscaled size used, is the sizes passed to the last ResetReferenceSize call.
Declaration
public Vector2Int CalculateDimensions(ScaleFunc scaleFunc)
Parameters
| Type | Name | Description |
|---|---|---|
| ScaleFunc | scaleFunc | The scale function to use when calculating the dimensions. |
Returns
| Type | Description |
|---|---|
| Vector2Int | The calculated dimensions. |
CalculateDimensions(Vector2)
Calculate the dimensions (in pixels) of the RTHandles given the scale factor.
Declaration
public Vector2Int CalculateDimensions(Vector2 scaleFactor)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | scaleFactor | The scale factor to use when calculating the dimensions. The base unscaled size used, is the sizes passed to the last ResetReferenceSize call. |
Returns
| Type | Description |
|---|---|
| Vector2Int | The calculated dimensions. |
Dispose()
Disposable pattern implementation
Declaration
public void Dispose()
Implements
GetMaxHeight()
Returns the maximum allocated height of the RTHandle System.
Declaration
public int GetMaxHeight()
Returns
| Type | Description |
|---|---|
| Int32 | Maximum allocated height of the RTHandle System. |
GetMaxWidth()
Returns the maximum allocated width of the RTHandle System.
Declaration
public int GetMaxWidth()
Returns
| Type | Description |
|---|---|
| Int32 | Maximum allocated width of the RTHandle System. |
Initialize(Int32, Int32, Boolean)
Initialize the RTHandle system.
Declaration
public void Initialize(int width, int height, bool useLegacyDynamicResControl = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | width | Initial reference rendering width. |
| Int32 | height | Initial reference rendering height. |
| Boolean | useLegacyDynamicResControl | Use legacy hardware DynamicResolution control in RTHandle system. |
Release(RTHandle)
Release memory of a RTHandle from the RTHandle System
Declaration
public void Release(RTHandle rth)
Parameters
| Type | Name | Description |
|---|---|---|
| RTHandle | rth | RTHandle that should be released. |
ResetReferenceSize(Int32, Int32)
Reset the reference size of the system and reallocate all textures.
Declaration
public void ResetReferenceSize(int width, int height)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | width | New width. |
| Int32 | height | New height. |
SetHardwareDynamicResolutionState(Boolean)
Enable or disable hardware dynamic resolution for the RTHandle System
Declaration
public void SetHardwareDynamicResolutionState(bool enableHWDynamicRes)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | enableHWDynamicRes | State of hardware dynamic resolution. |
SetReferenceSize(Int32, Int32)
Sets the reference rendering size for subsequent rendering for the RTHandle System
Declaration
public void SetReferenceSize(int width, int height)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | width | Reference rendering width for subsequent rendering. |
| Int32 | height | Reference rendering height for subsequent rendering. |
SetReferenceSize(Int32, Int32, Boolean)
Sets the reference rendering size for subsequent rendering for the RTHandle System
Declaration
public void SetReferenceSize(int width, int height, bool reset)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | width | Reference rendering width for subsequent rendering. |
| Int32 | height | Reference rendering height for subsequent rendering. |
| Boolean | reset | If set to true, the new width and height will override the old values even if they are not bigger. |