0

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

我正在尝试创建一些 2D 的东西,其中有几个图层相互绘制。理想情况下,我希望以 DX9 为目标

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

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

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

以下DXGI_ERROR_UNSUPPORTED: Unsupported.是 DX9 硬件上的问题(并不意外)。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
4

0 回答 0