以下是 ID3D11DeviceContext 接口的定义:
DECLARE_INTERFACE_(ID3D11DeviceContext, ID3D11DeviceChild)
{
// Methods for resource manipulation
STDMETHOD(VSSetShaderResources)(THIS_ UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView *const *ppShaderResourceViews) PURE;
STDMETHOD(PSSetShaderResources)(THIS_ UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView *const *ppShaderResourceViews) PURE;
STDMETHOD(VSSetSamplers)(THIS_ UINT StartSlot, UINT NumSamplers, ID3D11SamplerState *const *ppSamplers) PURE;
STDMETHOD(PSSetSamplers)(THIS_ UINT StartSlot, UINT NumSamplers, ID3D11SamplerState *const *ppSamplers) PURE;
// ... (其他资源管理方法)
// Methods for rendering and drawing
STDMETHOD(ClearRenderTargetView)(THIS_ ID3D11RenderTargetView *pRenderTargetView, const FLOAT ColorRGBA[4]) PURE;
STDMETHOD(ClearDepthStencilView)(THIS_ ID3D11DepthStencilView *pDepthStencilView, UINT ClearFlags, FLOAT Depth, UINT8 Stencil) PURE;
STDMETHOD(DrawIndexed)(THIS_ UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation) PURE;
STDMETHOD(Draw)(THIS_ UINT VertexCount, UINT StartVertexLocation) PURE;
// ... (其他绘制和渲染方法)
// ... (其他设备上下文相关的方法)
};
ID3D11DeviceContext 接口派生自 ID3D11DeviceChild 接口,并提供了许多成员函数,用于资源管理、绘制命令的发起、状态设置等。
一些常用的方法包括:
- VSSetShaderResources 和 PSSetShaderResources:设置顶点着色器和像素着色器的着色器资源。
- VSSetSamplers 和 PSSetSamplers:设置顶点着色器和像素着色器的采样器状态。
- ClearRenderTargetView:清除渲染目标视图的内容。
- ClearDepthStencilView:清除深度模板视图的内容。
- DrawIndexed 和 Draw:发起绘制命令。
通过 ID3D11DeviceContext 接口,应用程序可以在 Direct3D 11 设备上执行渲染和计算命令,管理资源,并进行与图形渲染相关的各种操作。
转载请注明出处:http://www.zyzy.cn/article/detail/25787/Win32 API/D3d11.h/ID3D11DeviceContext