继续上一章提到的错误checking
HRESULT值:
S_OK - 函数成功
E_NOTIMPL - 函数没有执行
E_NOINTERFACE - 接口不支持
E_ABORT - 函数越界
E_FAIL - 函数失败
E_INVALIDARG - 一个或者多个参数无效
DXGetErrorDescription(HRESULT hResult)函数可以返回更具体的错误
由于这一章节只是对D3D11进行初始化,并没有太多可编程的部分。
所以我们这里的实例只是针对其中一些可以改变的参数进行修改,看看其有什么变化。
Exercise1 修改Backbufferdesc.Scaling
修改了SwapChain.Scaling 为 位于中心不拉伸,但是是Backbuffer大小没有变,改变了窗口大小,整体的颜色变化仍然能在整个屏幕中体现出来。而不是只有中心的颜色变化。
由此可见:该参数的作用并不是决定Backbuffer是否在Minitor中的拉伸。
Exercise2 Backbufferdesc.format
对应的格式和版本对应如下
-
Feature level >= 9.1
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8A8_UNORM (except 10.x on Windows Vista)
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB (except 10.x on Windows Vista)
-
Feature level >= 10.0
-
Feature level >= 11.0
我们也可以把对应的格式传给函数 ID3D11Device::CheckFormatSupport 来检查是否支持。
如果函数返回D3D11_FORMAT_SUPPORT_DISPLAY。说明支持