Поделиться через


Device - класс

Обновлен: Ноябрь 2007

Родительский объект всех графических объектов сцены.

Пространство имен:  Microsoft.WindowsMobile.DirectX.Direct3D
Сборка:  Microsoft.WindowsMobile.DirectX (в Microsoft.WindowsMobile.DirectX.dll)

Синтаксис

'Декларация
Public Class Device _
    Implements IDisposable
'Применение
Dim instance As Device
public class Device : IDisposable
public ref class Device : IDisposable
public class Device implements IDisposable

Заметки

Устройство выполняет рендеринг, основанный на примитивах, создает ресурсы, управляет переменными уровня системы, а также возвращает и задает палитры.

Примеры

В следующем примере кода выполняется создание устройства.

Public Class Form1
    Inherits Form
    ' Set global variables for this project.
    Private device As Device = Nothing
    Public Sub New()
        ' Set the initial size and caption of the form.
        Me.ClientSize = New System.Drawing.Size(400, 300)
        Me.Text = "D3D Tutorial 01: CreateDevice"

    End Sub 'New


    Public Function InitializeGraphics() As Boolean
        Try
            ' Set up presentation parameters and create the Direct3D
            ' device.
            Dim presentParams As New PresentParameters()
            presentParams.Windowed = True
            presentParams.SwapEffect = SwapEffect.Discard
            device = New Device(0, DeviceType.Default, Me, CreateFlags.None, presentParams)
            Return True
        Catch
            Return False
        End Try

    End Function
    Private Sub Render()
        If device Is Nothing Then
            Return
        End If
        'Clear the backbuffer to a blue color. 
        device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, 1.0F, 0)
        'Begin the scene.
        device.BeginScene()

        'Render scene objects, if desired.
        'End the scene.
        device.EndScene()
        device.Present()

    End Sub
    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        ' Render on painting.
        Me.Render()
    End Sub

    Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Fix(System.Convert.ToByte(e.KeyChar)) = Fix(System.Windows.Forms.Keys.Escape) Then
            ' Handle the ESC key being pressed.
            Me.Close()
        End If

    End Sub

    Shared Sub Main()

        Dim DeviceForm As New Form1()
        Try
            If Not DeviceForm.InitializeGraphics() Then
                ' Initialize Direct3D.
                MsgBox("Could not initialize Direct3D.  This tutorial will exit.")
                Return
            End If
            DeviceForm.Show()

            'While the form is still valid, render and process messages.
            'While DeviceForm.Created
            '    DeviceForm.Render()
            '    Application.DoEvents()
            'End While
        Finally
            DeviceForm.Dispose()
        End Try

    End Sub
End Class
public class CreateDevice : Form
{
    // Set global variables for this project.
    Device device = null;

    public CreateDevice()
    {
        // Set the initial size of the form.
        this.ClientSize = new System.Drawing.Size(400, 300);
        // Set the caption for the form.
        this.Text = "D3D Tutorial 01: CreateDevice";
    }

    public bool InitializeGraphics()
    {
        try
        {
            // Set up presentation parameters and create the 
            // Direct3D device.
            PresentParameters presentParams = new PresentParameters();
            presentParams.Windowed = true;
            presentParams.SwapEffect = SwapEffect.Discard;
            device = new Device(0, DeviceType.Default, this, CreateFlags.None, presentParams);
            return true;
        }
        catch (DirectXException)
        {
            return false;
        }
    }
    private void Render()
    {
        if (device == null)
            return;

        //Clear the backbuffer to a blue color. 
        device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, 1.0f, 0);
        //Begin the scene.
        device.BeginScene();

        // Rendering scene objects, if desired.

        //End the scene.
        device.EndScene();
        device.Present();
    }
    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
    {
        // Render on painting.
        this.Render();
    }
    protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
    {
        if ((int)(byte)e.KeyChar == (int)System.Windows.Forms.Keys.Escape)
            // Handle the ESC key being pressed.
            this.Close();
    }

    /// <Summary>
    /// The main entry point for the application.
    /// </Summary>
    static void Main()
    {

        using (CreateDevice DeviceForm = new CreateDevice())
        {
            // Initialize Direct3D.
            if (!DeviceForm.InitializeGraphics())
            {
                MessageBox.Show("Could not initialize Direct3D.  This tutorial will exit.");
                return;
            }
            DeviceForm.Show();

            // While the form is still valid, render and process messages.
            // while (DeviceForm.Created)
            //{
                DeviceForm.Render();
                Application.DoEvents();
            //}
        }
    }
}

Иерархия наследования

System.Object
  Microsoft.WindowsMobile.DirectX.Direct3D.Device

Потокобезопасность

Любые открытые члены этого типа, объявленные как 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

См. также

Ссылки

Device - члены

Microsoft.WindowsMobile.DirectX.Direct3D - пространство имен

Другие ресурсы

Мобильное программирование Direct3D в .NET Compact Framework