我已经涉足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