Show More
Commit Description:
Various UI improvements.
Commit Description:
Various UI improvements.
References:
File last commit:
Show/Diff file:
Action:
FNA/src/Graphics/Effect/EffectPass.cs
76 lines | 1.3 KiB | text/x-csharp | CSharpLexer
76 lines | 1.3 KiB | text/x-csharp | CSharpLexer
r0 | #region License | |||
/* FNA - XNA4 Reimplementation for Desktop Platforms | ||||
* Copyright 2009-2020 Ethan Lee and the MonoGame Team | ||||
* | ||||
* Released under the Microsoft Public License. | ||||
* See LICENSE for details. | ||||
*/ | ||||
#endregion | ||||
#region Using Statements | ||||
using System; | ||||
#endregion | ||||
namespace Microsoft.Xna.Framework.Graphics | ||||
{ | ||||
public sealed class EffectPass | ||||
{ | ||||
#region Public Properties | ||||
public string Name | ||||
{ | ||||
get; | ||||
private set; | ||||
} | ||||
public EffectAnnotationCollection Annotations | ||||
{ | ||||
get; | ||||
private set; | ||||
} | ||||
#endregion | ||||
#region Private Variables | ||||
private Effect parentEffect; | ||||
private IntPtr parentTechnique; | ||||
private uint pass; | ||||
#endregion | ||||
#region Internal Constructor | ||||
internal EffectPass( | ||||
string name, | ||||
EffectAnnotationCollection annotations, | ||||
Effect parent, | ||||
IntPtr technique, | ||||
uint passIndex | ||||
) { | ||||
Name = name; | ||||
Annotations = annotations; | ||||
parentEffect = parent; | ||||
parentTechnique = technique; | ||||
pass = passIndex; | ||||
} | ||||
#endregion | ||||
#region Public Methods | ||||
public void Apply() | ||||
{ | ||||
if (parentTechnique != parentEffect.CurrentTechnique.TechniquePointer) | ||||
{ | ||||
throw new InvalidOperationException( | ||||
"Applied a pass not in the current technique!" | ||||
); | ||||
} | ||||
parentEffect.OnApply(); | ||||
parentEffect.INTERNAL_applyEffect(pass); | ||||
} | ||||
#endregion | ||||
} | ||||
} | ||||