-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDanonRenderPipelineInstance.cs
38 lines (33 loc) · 1.69 KB
/
DanonRenderPipelineInstance.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using DanonRenderPipeline.Internal;
using UnityEngine;
using UnityEngine.Rendering;
namespace DanonRenderPipeline {
public sealed class DanonRenderPipelineInstance : RenderPipeline {
private readonly DanonRenderPipelineAsset m_asset;
private readonly DRPCameraRenderer m_cameraRenderer;
private readonly bool m_useDynamicBatching;
private readonly bool m_useGPUInstancing;
public DanonRenderPipelineInstance(in DanonRenderPipelineAsset asset, bool useDynamicBatching,
bool useGPUInstancing, bool useSRPBatcher) {
m_asset = asset;
m_cameraRenderer = new DRPCameraRenderer();
m_useDynamicBatching = useDynamicBatching;
m_useGPUInstancing = useGPUInstancing;
GraphicsSettings.useScriptableRenderPipelineBatching = useSRPBatcher;
if (QualitySettings.activeColorSpace != ColorSpace.Linear)
Debug.LogWarning($"The active color space is currently set to {QualitySettings.activeColorSpace}, " +
"but it should be set to Linear. Rendering might not work properly.");
}
protected override void Render(ScriptableRenderContext context, Camera[] cameras) {
BeginFrameRendering(context, cameras);
foreach (var camera in cameras) {
m_cameraRenderer.Start(context, camera);
BeginCameraRendering(context, camera);
m_cameraRenderer.Render(m_useDynamicBatching, m_useGPUInstancing);
EndCameraRendering(context, camera);
m_cameraRenderer.End();
}
EndFrameRendering(context, cameras);
}
}
}