Show More
Commit Description:
Various UI improvements.
Commit Description:
Various UI improvements.
References:
File last commit:
Show/Diff file:
Action:
FNA/src/Graphics/DirectionalLight.cs
138 lines | 2.7 KiB | text/x-csharp | CSharpLexer
138 lines | 2.7 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 | ||||
namespace Microsoft.Xna.Framework.Graphics | ||||
{ | ||||
public sealed class DirectionalLight | ||||
{ | ||||
#region Public Properties | ||||
private Vector3 INTERNAL_diffuseColor; | ||||
public Vector3 DiffuseColor | ||||
{ | ||||
get | ||||
{ | ||||
return INTERNAL_diffuseColor; | ||||
} | ||||
set | ||||
{ | ||||
INTERNAL_diffuseColor = value; | ||||
if (Enabled && diffuseColorParameter != null) | ||||
{ | ||||
diffuseColorParameter.SetValue(INTERNAL_diffuseColor); | ||||
} | ||||
} | ||||
} | ||||
private Vector3 INTERNAL_direction; | ||||
public Vector3 Direction | ||||
{ | ||||
get | ||||
{ | ||||
return INTERNAL_direction; | ||||
} | ||||
set | ||||
{ | ||||
INTERNAL_direction = value; | ||||
if (directionParameter != null) | ||||
{ | ||||
directionParameter.SetValue(INTERNAL_direction); | ||||
} | ||||
} | ||||
} | ||||
private Vector3 INTERNAL_specularColor; | ||||
public Vector3 SpecularColor | ||||
{ | ||||
get | ||||
{ | ||||
return INTERNAL_specularColor; | ||||
} | ||||
set | ||||
{ | ||||
INTERNAL_specularColor = value; | ||||
if (Enabled && specularColorParameter != null) | ||||
{ | ||||
specularColorParameter.SetValue(INTERNAL_specularColor); | ||||
} | ||||
} | ||||
} | ||||
private bool INTERNAL_enabled; | ||||
public bool Enabled | ||||
{ | ||||
get | ||||
{ | ||||
return INTERNAL_enabled; | ||||
} | ||||
set | ||||
{ | ||||
if (INTERNAL_enabled != value) | ||||
{ | ||||
INTERNAL_enabled = value; | ||||
if (INTERNAL_enabled) | ||||
{ | ||||
if (diffuseColorParameter != null) | ||||
{ | ||||
diffuseColorParameter.SetValue(DiffuseColor); | ||||
} | ||||
if (specularColorParameter != null) | ||||
{ | ||||
specularColorParameter.SetValue(SpecularColor); | ||||
} | ||||
} | ||||
else | ||||
{ | ||||
if (diffuseColorParameter != null) | ||||
{ | ||||
diffuseColorParameter.SetValue(Vector3.Zero); | ||||
} | ||||
if (specularColorParameter != null) | ||||
{ | ||||
specularColorParameter.SetValue(Vector3.Zero); | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
#endregion | ||||
#region Internal Variables | ||||
internal EffectParameter diffuseColorParameter; | ||||
internal EffectParameter directionParameter; | ||||
internal EffectParameter specularColorParameter; | ||||
#endregion | ||||
#region Public Constructor | ||||
public DirectionalLight( | ||||
EffectParameter directionParameter, | ||||
EffectParameter diffuseColorParameter, | ||||
EffectParameter specularColorParameter, | ||||
DirectionalLight cloneSource | ||||
) { | ||||
this.diffuseColorParameter = diffuseColorParameter; | ||||
this.directionParameter = directionParameter; | ||||
this.specularColorParameter = specularColorParameter; | ||||
if (cloneSource != null) | ||||
{ | ||||
DiffuseColor = cloneSource.DiffuseColor; | ||||
Direction = cloneSource.Direction; | ||||
SpecularColor = cloneSource.SpecularColor; | ||||
Enabled = cloneSource.Enabled; | ||||
} | ||||
} | ||||
#endregion | ||||
} | ||||
} | ||||