学习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方法来枚举出特定的输出,尝试观察它们的信息。

尚未解决。。。

扫描二维码关注公众号,回复: 10273211 查看本文章

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: ]。

发布了159 篇原创文章 · 获赞 41 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37768971/article/details/104116144