學習X_Jun的D3D教程:01初始化課後習題

最近在學習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: ]。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章