Share via


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

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

See Also

Reference

Device Class

Device Members

Microsoft.WindowsMobile.DirectX.Direct3D Namespace