次の方法で共有


LightsFixedCollection クラス

ライトのコレクションを定義します。このクラスは継承できません。

名前空間 :  Microsoft.WindowsMobile.DirectX.Direct3D
アセンブリ :  Microsoft.WindowsMobile.DirectX (Microsoft.WindowsMobile.DirectX.dll 内)

構文

'宣言
Public NotInheritable Class LightsFixedCollection
'使用
Dim instance As LightsFixedCollection
public sealed class LightsFixedCollection
public ref class LightsFixedCollection sealed
public final class LightsFixedCollection

解説

このクラスは、固定小数点演算に使用できます。

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.

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

継承階層

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

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

バージョン情報

.NET Compact Framework

サポート対象 : 3.5、2.0

参照

参照

LightsFixedCollection メンバ

Microsoft.WindowsMobile.DirectX.Direct3D 名前空間

その他の技術情報

.NET Compact Framework での Mobile Direct3D プログラミング