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 ();
}
public function get LightsFixed () : LightsFixedCollection
Property Value
Type: Microsoft.WindowsMobile.DirectX.Direct3D.LightsFixedCollection
A LightFixed object.
Remarks
The .NET Compact Framework provides LightFixed for fixed-point math.
Examples
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();
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
Platforms
Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information
.NET Compact Framework
Supported in: 3.5, 2.0