【学习笔记】DirectX应用程序如何初始化

时间:2014-07-22 23:13:54   收藏:0   阅读:520

一、使用Windows API创建一个窗口

 

二、创建一个Swap Chain(交换链)

  这一步需要用到一个名为DXGI_SWAP_CHAIN_DESC的结构体,其详细定义如下:

mamicode.com,码迷
typedef struct DXGI_SWAP_CHAIN_DESC {
    DXGI_MODE_DESC BufferDesc;
    DXGI_SAMPLE_DESC SampleDesc;
    DXGI_USAGE BufferUsage;
    UINT BufferCount;
    HWND OutputWindow;
    BOOL Windowed;
    DXGI_SWAP_EFFECT SwapEffect;
    UINT Flags;
} DXGI_SWAP_CHAIN_DESC;
struct DXGI_SWAP_CHAIN_DESC

  1. 第一个成员BufferDesc用来指定显示模式,其具体结构如下:

mamicode.com,码迷
typedef struct DXGI_MODE_DESC {
    UINT Width;
    UINT Height;
    DXGI_RATIONAL RefreshRate;
    DXGI_FORMAT Format;
    DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
    DXGI_MODE_SCALING Scaling;
} DXGI_MODE_DESC, *LPDXGI_MODE_DESC;
struct DXGI_MODE_DESC

      它的数据成员分别指定了高度/pixel、宽度/pixel、刷新率/Hz、显示格式(色彩模式)、扫描方式、伸缩比例。

  2. 第二个成员SampleDesc用来定义多重采样设置。其结构如下:

mamicode.com,码迷
typedef struct DXGI_SAMPLE_DESC {
    UINT Count;
    UINT Quality;
} DXGI_SAMPLE_DESC, *LPDXGI_SAMPLE_DESC;
struct DXGI_SAMPLE_DESC

      它的数据成员分别指定了多重采样的采样半径/pixel、质量等级

  3. 第三个成员,设置surface的使用方式,设置CPU对backbuffer的访问方式。这些backbuffer可以用作shader input或者render target output。详见DXGI_USAGE。

  4. 第四个成员,设置swap chain中buffer的数量,包括front buffer。

  5. 第五个成员,设置输出窗口。详见IDXGIFactory::MakeWindowAssociation。

  6. 第六个成员,设置是窗口模式还是全屏模式。详见IDXGIFactory::CreateSwapChain。

  7. 第七个成员,设置当present surface之后,对于presentation buffer的处理方式。

【学习笔记】DirectX应用程序如何初始化,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!