using System; using UnityEngine.Rendering.RenderGraphModule; namespace UnityEngine.Rendering.Universal { /// /// Class that holds settings related to texture resources. /// internal class Universal2DResourceData : UniversalResourceDataBase { TextureHandle[][] CheckAndGetTextureHandle(ref TextureHandle[][] handle) { if (!CheckAndWarnAboutAccessibility()) return new TextureHandle[][] { new TextureHandle[] { TextureHandle.nullHandle } }; return handle; } void CheckAndSetTextureHandle(ref TextureHandle[][] handle, TextureHandle[][] newHandle) { if (!CheckAndWarnAboutAccessibility()) return; if (handle == null || handle.Length != newHandle.Length) handle = new TextureHandle[newHandle.Length][]; for (int i = 0; i < newHandle.Length; i++) handle[i] = newHandle[i]; } internal TextureHandle intermediateDepth { get => CheckAndGetTextureHandle(ref _intermediateDepth); set => CheckAndSetTextureHandle(ref _intermediateDepth, value); } private TextureHandle _intermediateDepth; internal TextureHandle[][] lightTextures { get => CheckAndGetTextureHandle(ref _lightTextures); set => CheckAndSetTextureHandle(ref _lightTextures, value); } private TextureHandle[][] _lightTextures = new TextureHandle[0][]; internal TextureHandle[] normalsTexture { get => CheckAndGetTextureHandle(ref _cameraNormalsTexture); set => CheckAndSetTextureHandle(ref _cameraNormalsTexture, value); } private TextureHandle[] _cameraNormalsTexture = new TextureHandle[0]; internal TextureHandle shadowsTexture { get => CheckAndGetTextureHandle(ref _shadowsTexture); set => CheckAndSetTextureHandle(ref _shadowsTexture, value); } private TextureHandle _shadowsTexture; internal TextureHandle shadowsDepth { get => CheckAndGetTextureHandle(ref _shadowsDepth); set => CheckAndSetTextureHandle(ref _shadowsDepth, value); } private TextureHandle _shadowsDepth; internal TextureHandle upscaleTexture { get => CheckAndGetTextureHandle(ref _upscaleTexture); set => CheckAndSetTextureHandle(ref _upscaleTexture, value); } private TextureHandle _upscaleTexture; internal TextureHandle cameraSortingLayerTexture { get => CheckAndGetTextureHandle(ref _cameraSortingLayerTexture); set => CheckAndSetTextureHandle(ref _cameraSortingLayerTexture, value); } private TextureHandle _cameraSortingLayerTexture; /// public override void Reset() { _intermediateDepth = TextureHandle.nullHandle; _shadowsTexture = TextureHandle.nullHandle; _shadowsDepth = TextureHandle.nullHandle; _upscaleTexture = TextureHandle.nullHandle; _cameraSortingLayerTexture = TextureHandle.nullHandle; for (int i = 0; i < _cameraNormalsTexture.Length; i++) _cameraNormalsTexture[i] = TextureHandle.nullHandle; for (int i = 0; i < _lightTextures.Length; i++) for (int j = 0; j < _lightTextures[i].Length; j++) _lightTextures[i][j] = TextureHandle.nullHandle; } } }