A game about forced loneliness, made by TACStudios
1using UnityEngine.Scripting.APIUpdating;
2
3namespace UnityEngine.Rendering.RenderGraphModule
4{
5 /// <summary>
6 /// Helper class allowing access to default resources (black or white texture, etc.) during render passes.
7 /// </summary>
8 [MovedFrom(true, "UnityEngine.Experimental.Rendering.RenderGraphModule", "UnityEngine.Rendering.RenderGraphModule")]
9 public class RenderGraphDefaultResources
10 {
11 // We need to keep around a RTHandle version of default regular 2D textures since RenderGraph API is all RTHandle.
12 RTHandle m_BlackTexture2D;
13 RTHandle m_WhiteTexture2D;
14 RTHandle m_ShadowTexture2D;
15
16 /// <summary>Default black 2D texture.</summary>
17 public TextureHandle blackTexture { get; private set; }
18 /// <summary>Default white 2D texture.</summary>
19 public TextureHandle whiteTexture { get; private set; }
20 /// <summary>Default clear color XR 2D texture.</summary>
21 public TextureHandle clearTextureXR { get; private set; }
22 /// <summary>Default magenta XR 2D texture.</summary>
23 public TextureHandle magentaTextureXR { get; private set; }
24 /// <summary>Default black XR 2D texture.</summary>
25 public TextureHandle blackTextureXR { get; private set; }
26 /// <summary>Default black XR 2D Array texture.</summary>
27 public TextureHandle blackTextureArrayXR { get; private set; }
28 /// <summary>Default black (UInt) XR 2D texture.</summary>
29 public TextureHandle blackUIntTextureXR { get; private set; }
30 /// <summary>Default black XR 3D texture.</summary>
31 public TextureHandle blackTexture3DXR { get; private set; }
32 /// <summary>Default white XR 2D texture.</summary>
33 public TextureHandle whiteTextureXR { get; private set; }
34 /// <summary>Default 1x1 shadow texture.</summary>
35 public TextureHandle defaultShadowTexture { get; private set; }
36
37 internal RenderGraphDefaultResources()
38 {
39 m_BlackTexture2D = RTHandles.Alloc(Texture2D.blackTexture);
40 m_WhiteTexture2D = RTHandles.Alloc(Texture2D.whiteTexture);
41 m_ShadowTexture2D = RTHandles.Alloc(1, 1, Experimental.Rendering.GraphicsFormat.D32_SFloat, isShadowMap: true, name: "DefaultShadowTexture");
42 }
43
44 internal void Cleanup()
45 {
46 m_BlackTexture2D.Release();
47 m_WhiteTexture2D.Release();
48 m_ShadowTexture2D.Release();
49 }
50
51 internal void InitializeForRendering(RenderGraph renderGraph)
52 {
53 blackTexture = renderGraph.ImportTexture(m_BlackTexture2D, true);
54 whiteTexture = renderGraph.ImportTexture(m_WhiteTexture2D, true);
55 defaultShadowTexture = renderGraph.ImportTexture(m_ShadowTexture2D, true);
56
57 clearTextureXR = renderGraph.ImportTexture(TextureXR.GetClearTexture(), true);
58 magentaTextureXR = renderGraph.ImportTexture(TextureXR.GetMagentaTexture(), true);
59 blackTextureXR = renderGraph.ImportTexture(TextureXR.GetBlackTexture(), true);
60 blackTextureArrayXR = renderGraph.ImportTexture(TextureXR.GetBlackTextureArray(), true);
61 blackUIntTextureXR = renderGraph.ImportTexture(TextureXR.GetBlackUIntTexture(), true);
62 blackTexture3DXR = renderGraph.ImportTexture(TextureXR.GetBlackTexture3D(), true);
63 whiteTextureXR = renderGraph.ImportTexture(TextureXR.GetWhiteTexture(), true);
64 }
65 }
66}