diff options
Diffstat (limited to 'Thronefall_v1.0/Decompile/CustomPostProcess.cs')
-rw-r--r-- | Thronefall_v1.0/Decompile/CustomPostProcess.cs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/CustomPostProcess.cs b/Thronefall_v1.0/Decompile/CustomPostProcess.cs new file mode 100644 index 0000000..6b88bfc --- /dev/null +++ b/Thronefall_v1.0/Decompile/CustomPostProcess.cs @@ -0,0 +1,62 @@ +using System; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.Universal; + +public class CustomPostProcess : ScriptableRendererFeature +{ + private class CustomRenderPass : ScriptableRenderPass + { + public RenderTargetIdentifier source; + + private Material mat; + + private RenderTargetHandle tempRenderTargetHandle; + + public CustomRenderPass(Material _mat) + { + mat = _mat; + tempRenderTargetHandle.Init("_TemporaryColorTexture"); + } + + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) + { + } + + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) + { + CommandBuffer commandBuffer = CommandBufferPool.Get(); + commandBuffer.GetTemporaryRT(tempRenderTargetHandle.id, renderingData.cameraData.cameraTargetDescriptor); + Blit(commandBuffer, source, tempRenderTargetHandle.Identifier(), mat); + Blit(commandBuffer, tempRenderTargetHandle.Identifier(), source); + context.ExecuteCommandBuffer(commandBuffer); + CommandBufferPool.Release(commandBuffer); + } + + public override void OnCameraCleanup(CommandBuffer cmd) + { + } + } + + [Serializable] + public class Settings + { + public Material material; + } + + private CustomRenderPass m_ScriptablePass; + + public Settings settings; + + public override void Create() + { + m_ScriptablePass = new CustomRenderPass(settings.material); + m_ScriptablePass.renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing; + } + + public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) + { + m_ScriptablePass.source = renderer.cameraColorTarget; + renderer.EnqueuePass(m_ScriptablePass); + } +} |