【发布时间】:2010-11-02 04:37:26
【问题描述】:
我正在尝试以全屏模式创建 DirectX 设备(直到此时我一直被窗口化),但无法创建设备并且我收到无效呼叫 HR 失败。
这是我的代码:
md3dPP.BackBufferWidth = 1280;
md3dPP.BackBufferHeight = 720;
md3dPP.BackBufferFormat = D3DFMT_UNKNOWN;
md3dPP.BackBufferCount = 1;
md3dPP.MultiSampleType = D3DMULTISAMPLE_NONE;
md3dPP.MultiSampleQuality = 0;
md3dPP.SwapEffect = D3DSWAPEFFECT_DISCARD;
md3dPP.hDeviceWindow = mhMainWnd;
md3dPP.Windowed = false;
md3dPP.EnableAutoDepthStencil = true;
md3dPP.AutoDepthStencilFormat = D3DFMT_D24S8;
md3dPP.Flags = 0;
md3dPP.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
md3dPP.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
HR(md3dObject->CreateDevice(
D3DADAPTER_DEFAULT, // primary adapter
mDevType, // device type
mhMainWnd, // window associated with device
devBehaviorFlags, // vertex processing
&md3dPP, // present parameters
&m_pd3dDevice)); // return created device
注意'md3dPP.Windowed = false;',如果这是真的,设备会在窗口模式下创建。
我的印象是我的一些默认值有误,但不知道该去哪里找。有没有办法获得更详细的报告,说明为什么设备创建在 D3DERR_INVALIDCALL 之后失败?
【问题讨论】:
标签: graphics directx fullscreen device