dx11的一些数据结构
- 功能是什么
创建一个设备(device)来代表显示适配器(display adapter)并且创建一个交换链(swap chain)用于渲染 - 设备device在dx11里是用来干什么的
从ID3DX11Device上看,他主要是用来创建各种dx11对象,例如:buffer,shadow等 - swap chain是做什么的
他用来实现一个或多个surfaces用来保存在present之前的渲染的数据 - ID3D11RenderTargetView是什么
他继承自ID3D11View
他标识了可在渲染中访问的渲染目标的了些子资源。这次子资源都有什么呢?所以说他有 函数叫GetResources
下面看一下GetResources的用法
void GetResource( [out] ID3D11Resource **ppResource );
Resource是什么东西,他们的类型有哪些:
D3D11_RESOURCE_DIMENSION_UNKNOWNResource is of unknown type.
D3D11_RESOURCE_DIMENSION_BUFFER
Resource is a buffer.
D3D11_RESOURCE_DIMENSION_TEXTURE1D
Resource is a 1D texture.
D3D11_RESOURCE_DIMENSION_TEXTURE2D
Resource is a 2D texture.
D3D11_RESOURCE_DIMENSION_TEXTURE3D
Resource is a 3D texture.
- 什么是ID3D11DeviceContext
The ID3D11DeviceContext interface represents a device context which generates rendering commands
意思就是他代表了一个设备上下文,他主要是用来生成渲染命令。
他的一些方法
下面对一些成员函数做一些解释:
OMSetRenderTarget:Bind one or more render targets atomically and the depth-stencil buffer to the output-merger stage.自动绑定一个或多个渲染目标和尝试缓存的buffer给output-merger-state。
RSSetViewports:给流水线的光栅化阶段绑定一些些视口viewports,绑定的对象为D3D11_VIEWPORT,D3D11_VIEWPORT是一个结构体,如下图所示:
- Output-Merger State
output-merger状态通过使用一些组队的流水线生成最终显示的像素和颜色,像素通过PIX SHADER和渲染目标和depth/stencil缓存生成。OM state是最终确定哪一个像素显示和颜色混合。
本博客注有“转”字样的为转载文章,其余为本人原创文章,转载请务必注明出处或保存此段。c++/lua/windows逆向交流群:69148232