step1:
初始化全局变量:交换链,设备,上下文(用于渲染),渲染目标视角
step2:
调用
bool InitializeDirect3dApp(HINSTANCE hInstance)
1)这个函数填充了DXGI_MODE_DESC结构,和DXGI_SWAP_CHAIN_DESC结构
2) 接着创建设备和交换链,(利用刚刚填充好的描述信息)
3)在创建一个后台缓存(用来创建render target view)
GetBuffer:(得到贴图的指针)
1.缓存索引(0给出第一个缓存);
2.尝试操纵的接口类型(2D贴图类型就是ID3D11Texture2)
3.获取缓存地址,必须使用LPVOID类型获得
4)创建渲染目标
CreateRenderTargetView:
1.所创建的2D贴图视图;(我的理解是上面得到的地址,把那个缓存地址当作后台来输出)
2.渲染目标描述,设置为NULL;
3.要创建渲染目标ID3D11RenderTargetView的地址;
5) d3dContext_->OMSetRenderTargets(1,&backBufferTarget_,0);
OMSetRenderTarget:
1.绑定的视图数量;
2.渲染目标视图列表;
3.深度/模板视图;
个人总结:D3D11没有使用D3D9的绘制方法,没有设置摄像机视角什么的,直接用一个缓存区(2D贴图类型的缓存区)来创建渲染目标视图,然后把这个视图渲染到屏幕上。
d3d11DevCon->ClearRenderTargetView(renderTargetView, bgColor);
//Present the backbuffer to the screen
SwapChain->Present(0, 0);
例子中使用了上面两个函数来绘制,第一个是把颜色送进渲染目标视图中,第二个是把交换链来表现出来。
交换链其实就是就是渲染目标的集合。