ID3D11Device和ID3D11DeviceContext ,由于D3D要搞多线程,所以涉及到一个线程安全的问题。为解决这个问题,原来的一个类现在变成了两个,ID3D11Device是线程安全的,因为它只是检索显卡的能力和创建一些资源,而不涉及具体的渲染过程。ID3D11DeviceContext 是线程不安全的,一般多线程的话会存在多个这个对象。DeviceContext有两种类型的,一种是Deferred延迟型的,一种是立即型的
1.性能检测相关:
CheckCounter :获取的类型,名称,计量单位,和现有的计数器的描述。
CheckCounterInfo :获取一个计数器信息。
CreateCounter :建立测量GPU的性能计数器对象。
用于测量GPU的功耗情况的API
2.设备能力相关:
GetFeatureLevel :获取功能的硬件设备。
CheckFeatureSupport :获取当前的图形驱动程序支持的功能的信息。例如,多线程,双精度之类的。
这个方法最主要的是你得熟悉它,你得知道你想验证什么特性。
CheckFormatSupport :获取给定的格式上安装的视频设备的支持,跟9的caps有点像。
CheckMultisampleQualityLevels :检测多重采样的能力。
GetCreationFlags :在调用期间创建的移动设备与D3D11CreateDevice获取使用的标志。
3.数据相关:
CreateQuery :创建一个ID3D11Query对象,此对象封装了跟数据相关的查询内容。
GetPrivateData :获取应用程序定义的数据从一个设备
CreatePredicate :创建一个谓词。(暂时不清楚)
SetPrivateData :设置数据到一个设备的GUID关联的数据。
SetPrivateDataInterface :这个设备子联营公司的IUnknown派生的接口,该接口相关联的应用程序定义的GUID。
4.着色器相关:
CreateTexture1D :创建一个数组的1D纹理。
CreateTexture2D :创建一个数组的2D纹理。
CreateTexture3D :建立一个单一的3D纹理。
CreateBuffer :创建一个缓冲区(顶点缓冲,索引缓冲,或着色常数缓冲),会比较熟悉。
具体用法参考:如何: 创建顶点缓冲区,如何: 创建索引缓冲区或如何: 创建一个恒定的缓冲区.
CreateClassLinkage :创建一流的连锁库启用动态着色器链接。(未知,用于动态绑定对象,貌似!)
CreateComputeShader :创建计算着色器,此着色器单元主要是用于在GPU中进行额外的计算,包括多线程。
CreateHullShader :建立一个船体着色器。
CreateDomainShader :创建一个域着色器 ,这两个着色器用于Tessellator细分曲面技术。
CreateGeometryShader :创建一个几何着色器。
CreateGeometryShaderWithStreamOutput :创建一个几何着色器可以写入流输出缓冲区。
CreateVertexShader :创建一个对象从已编译的着色器顶点着色器。
CreatePixelShader :创建像素着色器。
所有的着色器创建的方法都是类似结构,这似乎也预示着未来它们有整合到一起的命运
5.驱动上下文相关:
CreateDeferredContext :创建一个延迟的情况下,它可以记录命令列表。
GetImmediateContext :获取即时的情况下,可以播放命令列表。为啥不是创建,因为只有一个。
CreateInputLayout :创建一个ID3D11InputLayout对象,这个对象用于描述输入时的数据结构的。
6.状态相关:
CreateRasterizerState :创建一个光栅化状态的对象,告诉光栅化阶段如何做,光栅化阶段。
CreateSamplerState :创建一个采样状态对象封装纹理采样信息,主要用于纹理处理阶段。
CreateDepthStencilState :创建一个深度模版的状态对象,它封装深度模板测试信息的输出合并阶段。
CreateBlendState :创建一个混合状态的的对象,用于确定如何混合在一起的两个 RGB 像素值和两个的 alpha 值。
这里创建的只是混合状态,真正用到是在这里:ID3D11DeviceContext::OMGetBlendState
7.视图相关:
CreateDepthStencilView :创建一个用于访问资源数据的深度模版。
CreateRenderTargetView :创建一个渲染目标视图中访问资源数据。
CreateShaderResourceView :创建一个着色器资源视图访问数据的资源。
CreateUnorderedAccessView :创建一个用于访问一个无序的访问资源。
OpenSharedResource :给一个设备接入到不同的设备上创建一个共享的资源。
8.其他:
GetDeviceRemovedReason :获取设备已删除的原因。
GetExceptionMode :获取异常模式的标志。
SetExceptionMode :获取异常模式的标志。