0
我想將SlimDX設備創建教程從DX11轉換爲DX9。這是一個非常簡單的教程,您可以在其中創建一個窗口,添加一個dx9設備並用純色填充屏幕。但是,當我嘗試創建設備時,我遇到了一個D3DERR_NOTAVAILABLE
錯誤。所有代碼似乎都有意義,它看起來與樣本中使用的C#代碼非常相似。有任何想法嗎?注意:我創建了BaseDisplay
類的一個實例,並在另一個類中調用InitSlimDX
方法。設備創建期間出錯(D3DERR_NOTAVAILABLE)
Imports SlimDX.Windows
Imports SlimDX.Direct3D9
Imports SlimDX
Imports Device = SlimDX.Direct3D9.Device
Imports Resource = SlimDX.Direct3D9.Resource
Imports System.Windows.Forms.ThreadExceptionDialog
Imports System.IO
Public Class BaseDisplay
Inherits RenderForm
'SlimDX Class Vars
Protected device As Device = Nothing
Protected backBuffer As Surface
Protected presentParams As PresentParameters
Public Sub New()
Show()
End Sub
Public Sub InitSlimDX()
Dim d3d As Direct3D = New Direct3D()
Dim primaryAdaptor As AdapterInformation = d3d.Adapters().First()
presentParams = New PresentParameters()
With presentParams
.BackBufferWidth = Me.ClientSize.Width
.BackBufferHeight = Me.ClientSize.Height
End With
Me.device = New Device(d3d, primaryAdaptor.Adapter, DeviceType.Hardware, Me.Handle, CreateFlags.HardwareVertexProcessing, presentParams)
Me.device.BeginScene()
backBuffer = device.GetBackBuffer(0, 0)
Me.device.ColorFill(backBuffer, New Color4(Color.CornflowerBlue))
Me.device.EndScene()
Me.device.Present()
End Sub
Public Overloads Sub Dispose()
device.Dispose()
MyBase.Dispose()
End Sub
End Class
我想清楚我的問題是什麼。之前,我在DirectX控制面板中搞亂了我的DX9設置,出於某種原因,我啓用了禁用硬件加速的「Software Only」設置。禁用此選項可解決問題。一旦網站允許我將添加解決方案作爲答案。 –