Share via


Device.LightsFixed (Propiedad)

Actualización: noviembre 2007

Obtiene la colección de luces del dispositivo actual, utilizando operaciones matemáticas de punto fijo.

Espacio de nombres:  Microsoft.WindowsMobile.DirectX.Direct3D
Ensamblado:  Microsoft.WindowsMobile.DirectX (en Microsoft.WindowsMobile.DirectX.dll)

Sintaxis

'Declaración
Public ReadOnly Property LightsFixed As LightsFixedCollection
'Uso
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

Valor de propiedad

Tipo: Microsoft.WindowsMobile.DirectX.Direct3D.LightsFixedCollection
Objeto LightFixed.

Comentarios

.NET Compact Framework proporciona LightFixed para operaciones matemáticas de punto fijo.

Ejemplos

En el ejemplo de código siguiente se muestra cómo se utilizan las estructuras LightFixed.

' 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();
}

Permisos

Plataformas

Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Compact Framework

Compatible con: 3.5, 2.0

Vea también

Referencia

Device (Clase)

Device (Miembros)

Microsoft.WindowsMobile.DirectX.Direct3D (Espacio de nombres)