LightsFixedCollection-Klasse

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Definiert eine Auflistung der Lichter. Diese Klasse kann nicht geerbt werden.

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
[<SealedAttribute>]
type LightsFixedCollection =  class end

Hinweise

Diese Klasse nimmt Operationen mit Festkommaberechnungen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht die Verwendung einer Klasse LightsFixedCollection.

' 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.PublicSub FrameMove()
    lightData = device.LightsFixed(2)

    ' Rotate through the various light typesIf Fix(appTime) Mod 20 < 10 Then
        device.LightsFixed(2).Type = LightType.Point
    Else
        device.LightsFixed(2).Type = LightType.Directional
    EndIf
    ' 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.IfNot _
     device.DeviceCaps.VertexProcessingCaps.SupportsPositionalLights _
        ThenIf device.LightsFixed(2).Type = LightType.Point Then
            device.LightsFixed(2).Type = LightType.Directional
        EndIfEndIf
    ' Values for the light position, direction, and colorDim x AsSingle = System.Convert.ToSingle(Math.Sin(appTime * 2.0F))
    Dim y AsSingle = System.Convert.ToSingle( _
        Math.Sin(appTime * 2.246F))
    Dim z AsSingle = System.Convert.ToSingle( _
        Math.Sin(appTime * 2.64F))

    Dim r AsByte = System.Convert.ToByte((0.5F + 0.5F * x) * &HFF)
    Dim g AsByte = System.Convert.ToByte((0.5F + 0.5F * y) * &HFF)
    Dim b AsByte = 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

    SelectCase 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)
    EndSelect
    device.LightsFixed(2).Update()
EndSub
// 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.publicvoid FrameMove()
{
    lightData = device.LightsFixed[2];
    // Rotate through the various light typesif (((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 colorfloat 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();
}

Vererbungshierarchie

System.Object
  Microsoft.WindowsMobile.DirectX.Direct3D.LightsFixedCollection

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC

Die .NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET framework.

Versionsinformationen

.NET Compact Framework

Unterstützt in: 3.5, 2.0

Siehe auch

Referenz

Member LightsFixedCollection

Microsoft.WindowsMobile.DirectX.Direct3D-Namespace

Weitere Ressourcen

Mobile Direct3D-Programmierung in .NET Compact Framework