A game about forced loneliness, made by TACStudios
1using System.Diagnostics;
2using UnityEngine.Scripting.APIUpdating;
3
4namespace UnityEngine.Rendering.RenderGraphModule
5{
6 /// <summary>
7 /// RayTracingAccelerationStructure resource handle.
8 /// </summary>
9 [DebuggerDisplay("RayTracingAccelerationStructure ({handle.index})")]
10 [MovedFrom(true, "UnityEngine.Experimental.Rendering.RenderGraphModule", "UnityEngine.Rendering.RenderGraphModule")]
11 public struct RayTracingAccelerationStructureHandle
12 {
13 private static RayTracingAccelerationStructureHandle s_NullHandle = new RayTracingAccelerationStructureHandle();
14
15 /// <summary>
16 /// Returns a null ray tracing acceleration structure handle
17 /// </summary>
18 /// <value>A null ray tracing acceleration structure handle.</value>
19 public static RayTracingAccelerationStructureHandle nullHandle { get { return s_NullHandle; } }
20
21 internal ResourceHandle handle;
22
23 internal RayTracingAccelerationStructureHandle(int handle) { this.handle = new ResourceHandle(handle, RenderGraphResourceType.AccelerationStructure, false); }
24
25 /// <summary>
26 /// Cast to RayTracingAccelerationStructure
27 /// </summary>
28 /// <param name="handle">Input RayTracingAccelerationStructureHandle</param>
29 /// <returns>Resource as a RayTracingAccelerationStructure.</returns>
30 public static implicit operator RayTracingAccelerationStructure(RayTracingAccelerationStructureHandle handle) => handle.IsValid() ? RenderGraphResourceRegistry.current.GetRayTracingAccelerationStructure(handle) : null;
31
32 /// <summary>
33 /// Return true if the handle is valid.
34 /// </summary>
35 /// <returns>True if the handle is valid.</returns>
36 public bool IsValid() => handle.IsValid();
37 }
38
39
40 /// <summary>
41 /// Descriptor used to identify ray tracing acceleration structure resources
42 /// </summary>
43 [MovedFrom(true, "UnityEngine.Experimental.Rendering.RenderGraphModule", "UnityEngine.Rendering.RenderGraphModule")]
44 public struct RayTracingAccelerationStructureDesc
45 {
46 /// <summary>RayTracingAccelerationStructure name.</summary>
47 public string name;
48 }
49
50 [DebuggerDisplay("RayTracingAccelerationStructureResource ({desc.name})")]
51 class RayTracingAccelerationStructureResource : RenderGraphResource<RayTracingAccelerationStructureDesc, RayTracingAccelerationStructure>
52 {
53 public override string GetName()
54 {
55 return desc.name;
56 }
57 }
58}