SlimDX 2D设备创建

时间:2013-06-22 16:01:11

标签: .net directx directx-9 slimdx

我已经涉足XNA,但由于它已经结束,我想继续使用SlimDX。

我正在尝试创建具有多个彼此绘制的图层的2D。我非常希望定位DX9

我的理解是Direct2D位于Direct3D之上,因此我需要创建一个3D设备,然后在创建2D设备时使用它。

不幸的是,我在创建设备时遇到了麻烦,我发现的例子并不完全清楚(至少对我而言)。

我不清楚我应该使用哪些组件 - Direct3D9 / DXGI(?)/ etc。我假设我真的不想引用SlimDX.Direct3D10命名空间中的任何内容,但是,我找不到Direct3D9中与我正在关注的示例匹配的等效类型。

以下内容在DX9硬件上抛出DXGI_ERROR_UNSUPPORTED: Unsupported.(并非意外)。什么是DX9等同物?

Public Shared Sub Main()
    Window = New RenderForm()
    InitialiseDevice()
    MessagePump.Run(Window, Sub()

            End Sub)
    Cleanup()
End Sub

Private Property D3DDevice As SlimDX.Direct3D10_1.Device1
Private Property Window As SlimDX.Windows.RenderForm

Private Sub InitialiseDevice()

    Dim Desc = New SwapChainDescription() With {
         .BufferCount = 1,'
         .ModeDescription = New ModeDescription(Window.ClientSize.Width, Window.ClientSize.Height, New Rational(60, 1), Format.R8G8B8A8_UNorm),
         .IsWindowed = True,
         .OutputHandle = Window.Handle,
         .SampleDescription = New SampleDescription(1, 0),
         .SwapEffect = SwapEffect.Discard,
         .Usage = Usage.RenderTargetOutput
    }

    Dim SwapChain As SwapChain

    SlimDX.
        Direct3D10_1.
        Device1.
        CreateWithSwapChain(
            Nothing,
            DriverType.Hardware,
            DeviceCreationFlags.BgraSupport,
            SlimDX.Direct3D10_1.FeatureLevel.Level_10_1,
            Desc,
            D3DDevice,
            SwapChain)
    ....


End Sub

0 个答案:

没有答案