LightsFixedCollection - класс
Обновлен: Ноябрь 2007
Определяет коллекцию источников света. Этот класс не может быть унаследован.
Пространство имен: 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 (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
Платформы
Windows CE, Windows Mobile for Smartphone, Windows Mobile для карманных ПК
Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.
Сведения о версии
.NET Compact Framework
Поддерживается в версиях: 3.5, 2.0
См. также
Ссылки
Microsoft.WindowsMobile.DirectX.Direct3D - пространство имен
Другие ресурсы
Мобильное программирование Direct3D в .NET Compact Framework