/
RendererPipeline.cs
50 lines (43 loc) · 1.3 KB
/
RendererPipeline.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
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FlaxEngine;
namespace RenderingPipeline
{
public class RendererPipeline : IDisposable
{
private readonly List<IRenderer> _renderers = new List<IRenderer>();
private bool _disposedValue = false;
// TODO: The size can be adjusted at runtime by setting the IRenderer.Output size. Document this & use it.
// TODO: Somehow set the task order.
public T AddRenderer<T>(T renderer) where T : IRenderer
{
_renderers.Add(renderer);
return renderer;
}
#region IDisposable Support
protected virtual void Dispose(bool disposing)
{
if (!_disposedValue)
{
if (disposing)
{
for (int i = 0; i < _renderers.Count; i++)
{
_renderers[i].Dispose();
}
_renderers.Clear();
}
_disposedValue = true;
}
}
public void Dispose()
{
// Do not change this code. Put cleanup code in Dispose(bool disposing) above.
Dispose(true);
}
#endregion
}
}