我曾涉足 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