首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设备创建过程中出错(D3DERR_NOTAVAILABLE)

设备创建过程中出错(D3DERR_NOTAVAILABLE)
EN

Stack Overflow用户
提问于 2012-09-24 21:02:09
回答 1查看 1.8K关注 0票数 0

我正在尝试将SlimDX设备创建教程从DX11转换为DX9。这是一个非常简单的教程,你可以创建一个窗口,添加一个dx9设备,然后用纯色填充屏幕。然而,当我尝试创建设备时,我得到了一个抛出的D3DERR_NOTAVAILABLE错误。所有代码看起来都很有意义,而且看起来与示例中使用的C#代码非常相似。有什么想法吗?注意:我创建了BaseDisplay类的一个实例,并在另一个类中调用了InitSlimDX方法。

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-26 02:32:27

我知道我的问题出在哪里了。早些时候,我在DirectX控制面板上修改了我的DX9设置,出于某种原因,我启用了“仅限软件”设置,禁用了硬件加速。禁用此选项解决了此问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12565599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档