Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EffectTechniqueCollection.cs
Go to the documentation of this file.
1using System;
4
6
7public sealed class EffectTechniqueCollection : IEnumerable<EffectTechnique>
8{
9 private Effect _parent;
10
11 private unsafe ID3DXBaseEffect* pEffect;
12
14
15 public EffectTechnique this[int index]
16 {
17 get
18 {
19 if (index >= 0 && index < pTechniques.Count)
20 {
21 return pTechniques[index];
22 }
23 return null;
24 }
25 }
26
27 public EffectTechnique this[string name]
28 {
29 get
30 {
32 if (enumerator.MoveNext())
33 {
34 do
35 {
36 EffectTechnique current = enumerator.Current;
37 if (current._name == name)
38 {
39 return current;
40 }
41 }
42 while (enumerator.MoveNext());
43 }
44 return null;
45 }
46 }
47
48 public int Count => pTechniques.Count;
49
50 internal unsafe EffectTechniqueCollection(ID3DXBaseEffect* parent, Effect effect, int count)
51 {
52 _parent = effect;
53 pEffect = parent;
54 base._002Ector();
56 int num = 0;
57 if (0 < count)
58 {
59 do
60 {
62 sbyte* technique = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, uint, sbyte*>)(int)(*(uint*)(*(int*)ptr + 48)))((nint)ptr, (uint)num);
64 num++;
65 }
66 while (num < count);
67 }
68 }
69
71 {
73 if (enumerator.MoveNext())
74 {
75 do
76 {
77 EffectTechnique current = enumerator.Current;
78 if (current._handle == tech)
79 {
80 return current;
81 }
82 }
83 while (enumerator.MoveNext());
84 }
85 return null;
86 }
87
88 internal unsafe void UpdateParent(ID3DXBaseEffect* parent)
89 {
90 pEffect = parent;
91 int num = 0;
92 if (0 < pTechniques.Count)
93 {
94 do
95 {
97 sbyte* ptr2 = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, uint, sbyte*>)(int)(*(uint*)(*(int*)ptr + 48)))((nint)ptr, (uint)num);
100 effectTechnique.pEffect = parent2;
101 effectTechnique._handle = ptr2;
102 effectTechnique.pPasses.UpdateParent(parent2, ptr2);
103 effectTechnique.pAnnotations.UpdateParent(effectTechnique.pEffect, effectTechnique._handle);
104 num++;
105 }
106 while (num < pTechniques.Count);
107 }
108 }
109
114
119
121 {
122 //ILSpy generated this explicit interface implementation from .override directive in GetGenericEnumerator
123 return this.GetGenericEnumerator();
124 }
125
127 {
128 return pTechniques.GetEnumerator();
129 }
130
132 {
133 //ILSpy generated this explicit interface implementation from .override directive in GetBaseEnumerator
134 return this.GetBaseEnumerator();
135 }
136}
unsafe EffectTechniqueCollection(ID3DXBaseEffect *parent, Effect effect, int count)
void Add(TKey key, TValue value)
new IEnumerator< T > GetEnumerator()