最近在學習DirectX3D,目前的學習路線是龍書+X_jun同學的博客:https://blog.csdn.net/X_Jun96/article/details/80293708
接下去整理一下博客中每一節的課後習題,如果解答有問題,請各位同學批評指正。
共勉!(#^.^#)
注:有些問題博主也沒有解決,逐漸完善中。。。
1.嘗試修改項目代碼,讓窗口內的顯示變紅。
修改代碼的RGBA顏色分量爲紅色
2.某些電腦可能有多於一個的顯示適配器(顯卡)。首先要通過CreateDXGIFactory創建IDXGIFactory,然後使用IDXGIFactory::EnumAdapters來枚舉顯示適配器。嘗試通過這種方式查看你的電腦有多少個顯示適配器(IDXGIAdapter),並察看它們的信息。
尚未解決。。。
3.一個顯示適配器可能關聯了多個輸出設備(IDXGIOutput),你可以使用IDXGIAdapter::EnumOutputs方法來枚舉出特定的輸出,嘗試觀察它們的信息。
尚未解決。。。
4.對於給定的像素格式,一個輸出設備可以支持許多種顯示模式(DXGI_MODE_DESC),通過它可以看到全屏寬度、高度、刷新率。嘗試使用IDXGIOutput::GetDisplayModeList方法觀察所有支持的模式(傳遞DXGI_FORMAT_R8G8B8A8_UNORM格式進去)。
尚未解決。。。
5.默認情況下的窗口程序是可以通過ALT+ENTER來進入/退出全屏的。此外,我們可以通過IDXGISwapChain來動態設置窗口全屏屬性,找到對應的方法並嘗試一下。
個人感覺這道題是讓我們修改窗口寬度和長度:
另外:
這一行代碼可以吧alt+enter禁用掉
6.現在嘗試指定顯示適配器來創建D3D設備。通過CreateDXGIFactory函數來創建IDXGIFactory,通常它會包含接口IDXGIFactory1,但有可能它也會包含接口IDXGIFactory2。在沒有創建D3D設備的情況下,這種方式就可以幫助我們瞭解是否可以創建出Direct3D 11.1的設備。爲了能夠指定顯示適配器來創建D3D11設備,我們需要將D3D_DRIVER_TYPE強行設置爲D3D_DRIVER_TYPE_UNKNOWN,否則在創建設備的時候會得到如下報錯信息:DX ERROR: D3D11CreateDevice: When creating a device from an existing adapter (i.e. pAdapter is non-NULL), DriverType must be D3D_DRIVER_TYPE_UNKNOWN. [ INITIALIZATION ERROR #3146141: ]。