Show More
Commit Description:
Handle the chosen range.
Commit Description:
Handle the chosen range.
References:
File last commit:
Show/Diff file:
Action:
FNA/src/Graphics/Effect/StockEffects/SpriteEffect.cs
80 lines | 2.2 KiB | text/x-csharp | CSharpLexer
80 lines | 2.2 KiB | text/x-csharp | CSharpLexer
r0 | #region File Description | |||
//----------------------------------------------------------------------------- | ||||
// SpriteEffect.cs | ||||
// | ||||
// Microsoft XNA Community Game Platform | ||||
// Copyright (C) Microsoft Corporation. All rights reserved. | ||||
//----------------------------------------------------------------------------- | ||||
#endregion | ||||
namespace Microsoft.Xna.Framework.Graphics | ||||
{ | ||||
/// <summary> | ||||
/// The default effect used by SpriteBatch. | ||||
/// </summary> | ||||
internal class SpriteEffect : Effect | ||||
{ | ||||
#region Effect Parameters | ||||
EffectParameter matrixParam; | ||||
#endregion | ||||
#region Methods | ||||
/// <summary> | ||||
/// Creates a new SpriteEffect. | ||||
/// </summary> | ||||
public SpriteEffect(GraphicsDevice device) | ||||
: base(device, Resources.SpriteEffect) | ||||
{ | ||||
CacheEffectParameters(); | ||||
} | ||||
/// <summary> | ||||
/// Creates a new SpriteEffect by cloning parameter settings from an existing instance. | ||||
/// </summary> | ||||
protected SpriteEffect(SpriteEffect cloneSource) | ||||
: base(cloneSource) | ||||
{ | ||||
CacheEffectParameters(); | ||||
} | ||||
/// <summary> | ||||
/// Creates a clone of the current SpriteEffect instance. | ||||
/// </summary> | ||||
public override Effect Clone() | ||||
{ | ||||
return new SpriteEffect(this); | ||||
} | ||||
/// <summary> | ||||
/// Looks up shortcut references to our effect parameters. | ||||
/// </summary> | ||||
void CacheEffectParameters() | ||||
{ | ||||
matrixParam = Parameters["MatrixTransform"]; | ||||
} | ||||
/// <summary> | ||||
/// Lazily computes derived parameter values immediately before applying the effect. | ||||
/// </summary> | ||||
protected internal override void OnApply() | ||||
{ | ||||
Viewport viewport = GraphicsDevice.Viewport; | ||||
Matrix projection = Matrix.CreateOrthographicOffCenter(0, viewport.Width, viewport.Height, 0, 0, 1); | ||||
Matrix halfPixelOffset = Matrix.CreateTranslation(-0.5f, -0.5f, 0); | ||||
matrixParam.SetValue(halfPixelOffset * projection); | ||||
} | ||||
#endregion | ||||
} | ||||
} | ||||