【D3D11编程学习日记】二:初始化 D3D 设备

个人博客地址:KsGin Blog (所有博客在此更新)     本篇文章主要介绍 DirectX 库以及 DirectX 的初始化,在此之前我们需要来配置 DirectX 系统环境。

        DX 的配置还是很方便的,这里是 DX11 SDK 的下载地址,在微软 DC 下载后,直接一路 Next 就可以成功安装了 。之后打开 Visual Studio,建立新项目,在项目属性的 VC++ 目录的 Include 加入 DX 安装路径里的 Include 文件夹, Library 加入 Libs 文件夹(这个和 OpenGL 在 Visual Studio 下的配置基本相同,不多介绍)。

        配置好了之后,我们先建立一个 Win32 窗口,这个我们在第一篇文章中有介绍。建立完毕后现在开始配置 DX11 (希望你不会被这一个配置吓得失去信心)。

<!--more-->

        首先看一下 D3D 程序的基本结构:(如果你对 DX 一点基本概念都没有,可以看这里 DirectX 维基百科

        我们今天要做的,就是初始化 D3D 程序这里,当显示了一个窗口后,下面继续创建一个Direct3D 11设备,这个设备用于绘制3D场景。首先必须创建三个对象:一个设备、一个立即执行上下文(immediate context)和一个交换链(Swap Chain),立即执行上下文对象是Direct3D 11中新添加的。

设备对象用于将内容绘制在一个缓冲中,设备还包含创建资源的方法。

交换链即表示对缓冲的操作,这些缓冲就是设备绘制的和显示在屏幕上的内容。交换链包含两个或两个以上的缓冲,主要是前缓冲和后备缓冲,它们就是设备绘制形成的纹理,用于显示在屏幕上。前缓冲(front                     buffer)就是当前显示在屏幕上的内容,这个缓冲是只读的,无法修改。后备缓冲(back buffer)是设备将要绘制的渲染目标,一旦它完成了绘制操作,交换链就会通过交换前缓冲和后备缓冲,将后备缓冲的内容显示在屏幕上,此时后备缓冲就变成了前缓冲。

        交换链在 DX 中有定义好的结构体 DXGI_SWAP_CHAIN_DESC

  
  typedef struct DXGI_SWAP_CHAIN_DESC {
   
    DXGI_MODE_DESC   BufferDesc;      // 描述后台缓冲的结构体
    DXGI_SAMPLE_DESC SampleDesc;      // 描述多重采样的结构体
    DXGI_USAGE       BufferUsage;     // 对于交换链,为DXGI_USAGE_RENDER_TARGET_OUTPUT
    UINT             BufferCount;     // 后台缓冲数量
    HWND             OutputWindow;    // 将要渲染到窗口的句柄
    BOOL             Windowed;        // 以窗口(window)还是全屏(full-screen)模式运行
    DXGI_SWAP_EFFECT SwapEffect;      // 设为DXGI_SWAP_EFFECT_DISCARD,让显卡驱动程序选择最高效的显示模式
    UINT             Flags;           // 通常为 0
  } DXGI_SWAP_CHAIN_DESC;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值