Device.LightsFixed Property
Gets the light collection on the current device, using fixed-point math.
Namespace: Microsoft.WindowsMobile.DirectX.Direct3D
Assembly: Microsoft.WindowsMobile.DirectX (in microsoft.windowsmobile.directx.dll)
Syntax
'Declaration
Public ReadOnly Property LightsFixed As LightsFixedCollection
'Usage
Dim instance As Device
Dim value As LightsFixedCollection
value = instance.LightsFixed
public LightsFixedCollection LightsFixed { get; }
public:
property LightsFixedCollection^ LightsFixed {
LightsFixedCollection^ get ();
}
/** @property */
public LightsFixedCollection get_LightsFixed ()
public function get LightsFixed () : LightsFixedCollection
Not applicable.
Property Value
A LightFixed object.
Remarks
The .NET Compact Framework provides LightFixed for fixed-point math.
Example
The following code example shows how to use LightFixed structures.
' This code example is from the
' Direct3D Mobile Fixed Point Lighting Sample
' of the .NET Compact Framework Samples in the SDK.
' The FrameMove method is called once per frame,
' and is the entry point for animating the scene.
Public Sub FrameMove()
lightData = device.LightsFixed(2)
' Rotate through the various light types
If Fix(appTime) Mod 20 < 10 Then
device.LightsFixed(2).Type = LightType.Point
Else
device.LightsFixed(2).Type = LightType.Directional
End If
' Make sure the light type is supported by the device. If
' VertexProcessingCaps.PositionAllLights is not set, the device
' does not support point or spot lights, so change light #2's
' type to a directional light.
If Not _
device.DeviceCaps.VertexProcessingCaps.SupportsPositionalLights _
Then
If device.LightsFixed(2).Type = LightType.Point Then
device.LightsFixed(2).Type = LightType.Directional
End If
End If
' Values for the light position, direction, and color
Dim x As Single = System.Convert.ToSingle(Math.Sin(appTime * 2.0F))
Dim y As Single = System.Convert.ToSingle( _
Math.Sin(appTime * 2.246F))
Dim z As Single = System.Convert.ToSingle( _
Math.Sin(appTime * 2.64F))
Dim r As Byte = System.Convert.ToByte((0.5F + 0.5F * x) * &HFF)
Dim g As Byte = System.Convert.ToByte((0.5F + 0.5F * y) * &HFF)
Dim b As Byte = System.Convert.ToByte((0.5F + 0.5F * z) * &HFF)
device.LightsFixed(2).DiffuseColor = _
ColorValueFixed.FromColor( _
System.Drawing.Color.FromArgb(r, g, b))
device.LightsFixed(2).Range = 100.0F
Select Case device.LightsFixed(2).Type
Case LightType.Point
device.LightsFixed(2).Position = _
New Vector3Fixed(4.5F * x, 4.5F * y, 4.5F * z)
device.LightsFixed(2).Attenuation1 = 0.4F
Case LightType.Directional
device.LightsFixed(2).Direction = _
New Vector3Fixed(x, y, z)
End Select
device.LightsFixed(2).Update()
End Sub
// This code example is from the
// Direct3D Mobile Fixed Point Lighting Sample
// of the .NET Compact Framework Samples in the SDK.
// The FrameMove method is called once per frame,
// and is the entry point for animating the scene.
public void FrameMove()
{
lightData = device.LightsFixed[2];
// Rotate through the various light types
if (((int)appTime % 20) < 10)
device.LightsFixed[2].Type = LightType.Point;
else
device.LightsFixed[2].Type = LightType.Directional;
// Make sure the light type is supported by the device. If
// VertexProcessingCaps.PositionAllLights is not set, the
// device does not support point or spot lights, so change
// light #2's type to a directional light.
if
(!device.DeviceCaps.VertexProcessingCaps.SupportsPositionalLights)
{
if (device.LightsFixed[2].Type == LightType.Point)
device.LightsFixed[2].Type = LightType.Directional;
}
// Values for the light position, direction, and color
float x = (float)Math.Sin(appTime*2.000f);
float y = (float)Math.Sin(appTime*2.246f);
float z = (float)Math.Sin(appTime*2.640f);
byte r = (byte)((0.5f + 0.5f * x) * 0xff);
byte g = (byte)((0.5f + 0.5f * y) * 0xff);
byte b = (byte)((0.5f + 0.5f * z) * 0xff);
device.LightsFixed[2].DiffuseColor =
ColorValueFixed.FromColor(System.Drawing.Color.FromArgb(r,
g, b));
device.LightsFixed[2].Range = 100.0f;
switch(device.LightsFixed[2].Type)
{
case LightType.Point:
device.LightsFixed[2].Position =
new Vector3Fixed(4.5f * x, 4.5f * y, 4.5f * z);
device.LightsFixed[2].Attenuation1 = 0.4f;
break;
case LightType.Directional:
device.LightsFixed[2].Direction =
new Vector3Fixed(x, y, z);
break;
}
device.LightsFixed[2].Update();
}
Platforms
Windows CE, Windows Mobile for Pocket PC, Windows Mobile for Smartphone
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.
Version Information
.NET Compact Framework
Supported in: 2.0
See Also
Reference
Device Class
Device Members
Microsoft.WindowsMobile.DirectX.Direct3D Namespace