LightsFixedCollection Class
Defines a collection of lights. This class cannot be inherited.
Namespace: Microsoft.WindowsMobile.DirectX.Direct3D
Assembly: Microsoft.WindowsMobile.DirectX (in microsoft.windowsmobile.directx.dll)
Syntax
'Declaration
Public NotInheritable Class LightsFixedCollection
'Usage
Dim instance As LightsFixedCollection
public sealed class LightsFixedCollection
public ref class LightsFixedCollection sealed
public final class LightsFixedCollection
public final class LightsFixedCollection
Remarks
This class accommodates fixed-point math operations.
Example
The following code example shows how to use a LightsFixedCollection class.
' This code example is from the
' Direct3D Mobile Fixed Point Lighting Sample
' of the .NET Compact Framework Samples
' in the .NET Framework 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 .NET Framework 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();
}
Inheritance Hierarchy
System.Object
Microsoft.WindowsMobile.DirectX.Direct3D.BaseMesh
Microsoft.WindowsMobile.DirectX.Direct3D.LightsFixedCollection
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Platforms
Windows CE, Windows Mobile for Pocket PC, Windows Mobile for Smartphone
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Version Information
.NET Compact Framework
Supported in: 2.0
See Also
Reference
LightsFixedCollection Members
Microsoft.WindowsMobile.DirectX.Direct3D Namespace