Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DualTextureEffect.cs
Go to the documentation of this file.
2
4{
6
8
10
12
14
16
18
19 private bool fogEnabled;
20
21 private bool vertexColorEnabled;
22
24
26
28
30
32
33 private float alpha = 1f;
34
35 private float fogStart;
36
37 private float fogEnd = 1f;
38
40
42 {
43 get
44 {
45 return world;
46 }
47 set
48 {
49 world = value;
50 dirtyFlags |= EffectDirtyFlags.WorldViewProj | EffectDirtyFlags.Fog;
51 }
52 }
53
54 public Matrix View
55 {
56 get
57 {
58 return view;
59 }
60 set
61 {
62 view = value;
63 dirtyFlags |= EffectDirtyFlags.WorldViewProj | EffectDirtyFlags.Fog;
64 }
65 }
66
68 {
69 get
70 {
71 return projection;
72 }
73 set
74 {
75 projection = value;
76 dirtyFlags |= EffectDirtyFlags.WorldViewProj;
77 }
78 }
79
81 {
82 get
83 {
84 return diffuseColor;
85 }
86 set
87 {
88 diffuseColor = value;
89 dirtyFlags |= EffectDirtyFlags.MaterialColor;
90 }
91 }
92
93 public float Alpha
94 {
95 get
96 {
97 return alpha;
98 }
99 set
100 {
101 alpha = value;
102 dirtyFlags |= EffectDirtyFlags.MaterialColor;
103 }
104 }
105
106 public bool FogEnabled
107 {
108 get
109 {
110 return fogEnabled;
111 }
112 set
113 {
114 if (fogEnabled != value)
115 {
116 fogEnabled = value;
117 dirtyFlags |= EffectDirtyFlags.FogEnable | EffectDirtyFlags.ShaderIndex;
118 }
119 }
120 }
121
122 public float FogStart
123 {
124 get
125 {
126 return fogStart;
127 }
128 set
129 {
130 fogStart = value;
132 }
133 }
134
135 public float FogEnd
136 {
137 get
138 {
139 return fogEnd;
140 }
141 set
142 {
143 fogEnd = value;
145 }
146 }
147
149 {
150 get
151 {
153 }
154 set
155 {
156 fogColorParam.SetValue(value);
157 }
158 }
159
161 {
162 get
163 {
165 }
166 set
167 {
168 textureParam.SetValue(value);
169 }
170 }
171
173 {
174 get
175 {
177 }
178 set
179 {
180 texture2Param.SetValue(value);
181 }
182 }
183
185 {
186 get
187 {
188 return vertexColorEnabled;
189 }
190 set
191 {
192 if (vertexColorEnabled != value)
193 {
194 vertexColorEnabled = value;
195 dirtyFlags |= EffectDirtyFlags.ShaderIndex;
196 }
197 }
198 }
199
201 : base(device, DualTextureEffectCode.Code)
202 {
204 }
205
207 : base(cloneSource)
208 {
210 fogEnabled = cloneSource.fogEnabled;
212 world = cloneSource.world;
213 view = cloneSource.view;
214 projection = cloneSource.projection;
215 diffuseColor = cloneSource.diffuseColor;
216 alpha = cloneSource.alpha;
217 fogStart = cloneSource.fogStart;
218 fogEnd = cloneSource.fogEnd;
219 }
220
221 public override Effect Clone()
222 {
223 return new DualTextureEffect(this);
224 }
225
227 {
228 textureParam = base.Parameters["Texture"];
229 texture2Param = base.Parameters["Texture2"];
230 diffuseColorParam = base.Parameters["DiffuseColor"];
231 fogColorParam = base.Parameters["FogColor"];
232 fogVectorParam = base.Parameters["FogVector"];
233 worldViewProjParam = base.Parameters["WorldViewProj"];
234 shaderIndexParam = base.Parameters["ShaderIndex"];
235 }
236
237 internal override bool WantParameter(EffectParameter parameter)
238 {
239 if (parameter.Name != "VSIndices")
240 {
241 return parameter.Name != "PSIndices";
242 }
243 return false;
244 }
245
246 protected internal override void OnApply()
247 {
249 if ((dirtyFlags & EffectDirtyFlags.MaterialColor) != 0)
250 {
252 dirtyFlags &= ~EffectDirtyFlags.MaterialColor;
253 }
254 if ((dirtyFlags & EffectDirtyFlags.ShaderIndex) != 0)
255 {
256 int num = 0;
257 if (!fogEnabled)
258 {
259 num++;
260 }
262 {
263 num += 2;
264 }
266 dirtyFlags &= ~EffectDirtyFlags.ShaderIndex;
267 }
268 }
269}
override bool WantParameter(EffectParameter parameter)
static EffectDirtyFlags SetWorldViewProjAndFog(EffectDirtyFlags dirtyFlags, ref Matrix world, ref Matrix view, ref Matrix projection, ref Matrix worldView, bool fogEnabled, float fogStart, float fogEnd, EffectParameter worldViewProjParam, EffectParameter fogVectorParam)