Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ OnApply()

override void Microsoft.Xna.Framework.Graphics.AlphaTestEffect.OnApply ( )
inlinepackagevirtual

Reimplemented from Microsoft.Xna.Framework.Graphics.Effect.

Definition at line 268 of file AlphaTestEffect.cs.

269 {
270 dirtyFlags = EffectHelpers.SetWorldViewProjAndFog(dirtyFlags, ref world, ref view, ref projection, ref worldView, fogEnabled, fogStart, fogEnd, worldViewProjParam, fogVectorParam);
271 if ((dirtyFlags & EffectDirtyFlags.MaterialColor) != 0)
272 {
274 dirtyFlags &= ~EffectDirtyFlags.MaterialColor;
275 }
276 if ((dirtyFlags & EffectDirtyFlags.AlphaTest) != 0)
277 {
278 Vector4 value = default(Vector4);
279 bool flag = false;
280 float num = (float)referenceAlpha / 255f;
281 switch (alphaFunction)
282 {
283 case CompareFunction.Less:
284 value.X = num - 0.0019607844f;
285 value.Z = 1f;
286 value.W = -1f;
287 break;
288 case CompareFunction.LessEqual:
289 value.X = num + 0.0019607844f;
290 value.Z = 1f;
291 value.W = -1f;
292 break;
293 case CompareFunction.GreaterEqual:
294 value.X = num - 0.0019607844f;
295 value.Z = -1f;
296 value.W = 1f;
297 break;
298 case CompareFunction.Greater:
299 value.X = num + 0.0019607844f;
300 value.Z = -1f;
301 value.W = 1f;
302 break;
303 case CompareFunction.Equal:
304 value.X = num;
305 value.Y = 0.0019607844f;
306 value.Z = 1f;
307 value.W = -1f;
308 flag = true;
309 break;
310 case CompareFunction.NotEqual:
311 value.X = num;
312 value.Y = 0.0019607844f;
313 value.Z = -1f;
314 value.W = 1f;
315 flag = true;
316 break;
317 case CompareFunction.Never:
318 value.Z = -1f;
319 value.W = -1f;
320 break;
321 default:
322 value.Z = 1f;
323 value.W = 1f;
324 break;
325 }
327 dirtyFlags &= ~EffectDirtyFlags.AlphaTest;
328 if (isEqNe != flag)
329 {
330 isEqNe = flag;
331 dirtyFlags |= EffectDirtyFlags.ShaderIndex;
332 }
333 }
334 if ((dirtyFlags & EffectDirtyFlags.ShaderIndex) != 0)
335 {
336 int num2 = 0;
337 if (!fogEnabled)
338 {
339 num2++;
340 }
342 {
343 num2 += 2;
344 }
345 if (isEqNe)
346 {
347 num2 += 4;
348 }
350 dirtyFlags &= ~EffectDirtyFlags.ShaderIndex;
351 }
352 }

References Microsoft.Xna.Framework.Graphics.AlphaTestEffect.alpha, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.alphaFunction, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.alphaTestParam, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.diffuseColor, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.diffuseColorParam, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.dirtyFlags, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.fogEnabled, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.fogEnd, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.fogStart, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.fogVectorParam, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.isEqNe, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.projection, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.referenceAlpha, Microsoft.Xna.Framework.Graphics.EffectParameter.SetValue(), Microsoft.Xna.Framework.Graphics.EffectHelpers.SetWorldViewProjAndFog(), Microsoft.Xna.Framework.Graphics.AlphaTestEffect.shaderIndexParam, Microsoft.Xna.Framework.Graphics.Vector4, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.vertexColorEnabled, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.view, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.world, Microsoft.Xna.Framework.Graphics.AlphaTestEffect.worldView, and Microsoft.Xna.Framework.Graphics.AlphaTestEffect.worldViewProjParam.