-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFxResourceVariableList.cs
87 lines (68 loc) · 2.18 KB
/
FxResourceVariableList.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharpDX.Direct3D11;
namespace FXFramework
{
class FXResourceVariableItem
{
public FXResourceVariable resource;
public String Name;
}
public class FxResourceVariableList
{
/// <summary>
/// List that store all the resource variables
/// </summary>
List<FXResourceVariableItem> ListWithResourceVariables;
public FxResourceVariableList()
{
// allocate the list
ListWithResourceVariables = new List<FXResourceVariableItem>();
}
#region Add Resources
/// <summary>
/// Add the resource from shader base on the name
/// </summary>
/// <param name="effect"></param>
/// <param name="Name"></param>
public void AddResourceFromShader(FXEffect effect, String Name)
{
FXResourceVariableItem newItem = new FXResourceVariableItem();
// set the name of the item
newItem.Name = Name;
// get the item from the effect
newItem.resource = effect.GetResourceByName(Name);
// add the new item to the list
ListWithResourceVariables.Add(newItem);
}
#endregion
#region Set views
/// <summary>
/// Bind all the sub resources to view
/// </summary>
/// <param name="view"></param>
public void SetViewsToResources(ShaderResourceView view)
{
// bind all the sub-resources with the same view
foreach (var resource in ListWithResourceVariables)
{
resource.resource.SetResource(view);
}
}
/// <summary>
/// Bind all the sub resources to view
/// </summary>
/// <param name="view"></param>
public void SetViewsToResources(UnorderedAccessView view)
{
// bind all the sub-resources with the same view
foreach (var resource in ListWithResourceVariables)
{
resource.resource.SetResource(view);
}
}
#endregion
}
}