首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

core:ID3D11DeviceChild跟子

2012-12-25 
core:ID3D11DeviceChild和子?core的类图关系:父---子ID3D11DeviceChild----ID3D11Asynchronous---ID3D1

core:ID3D11DeviceChild和子

?

core的类图关系:父--->子

ID3D11DeviceChild---->ID3D11Asynchronous--->ID3D11Query--->ID3D11Predicate

ID3D11DeviceChild---->ID3D11Asynchronous--->ID3D11Counter

ID3D11DeviceChild---->ID3D11BlendState,ID3D11CommandList,ID3D11DepthStencilState,

ID3D11DeviceContext,ID3DDeviceContextState,ID3D11SamplerState,ID3D11RasterizerState,

ID3D11InputLayout

?

ID3D11DeviceChild :所有数据的父,你可以认为继承了它相当于拥有了数据特性。它拥有两个能力:

1.获取ID3D11Device对象 ?GetDevice

2.保存数据:GetPrivateData和SetPrivateData

?

Cpp代码??core:ID3D11DeviceChild跟子
  1. static?const?char?c_szName[]?=?"My?name";??
  2. hr?=?pContext->SetPrivateData(?WKPDID_D3DDebugObjectName,?sizeof(?c_szName?)?-?1,?c_szName?);??

?

数据相关:

ID3D11Asynchronous :它用一个方法:GetDataSize?它的子代表着一个集合,存储数据的集合,想想看只有集合需要获取数据的长度。

?

ID3D11Query :它的成员方法没啥意思,就一个方法GetDesc。有意思的是它的用法:

?

Java代码??core:ID3D11DeviceChild跟子
  1. D3D11_QUERY_DESC?queryDesc;??
  2. ...?//?Fill?out?queryDesc?structure??
  3. ID3D11Query?*?pQuery;??
  4. pDevice->CreateQuery(&queryDesc,?&pQuery);??
  5. pDeviceContext->Begin(pQuery);??
  6. ??
  7. ...?//?Issue?graphics?commands??
  8. ??
  9. pDeviceContext->End(pQuery);??
  10. UINT64?queryData;?//?This?data?type?is?different?depending?on?the?query?type??
  11. ??
  12. while(?S_OK?!=?pDeviceContext->GetData(pQuery,?&queryData,?sizeof(UINT64),?0)?)??
  13. {??
  14. }??

?它能够获取某区间的数据。

?

ID3D11Predicate :(未知)

?

ID3D11Counter :它的用法跟ID3D11Query一样,只不过它是用来获取计数器的,主要用于对性能的检测。

?

?

设置状态相关:

ID3D11BlendState :此接口用于混合阶段,对混合的方式进行描述。

ID3D11DepthStencilState :创建深度缓存的时候,对深度缓存的方式进行描述。

ID3DDeviceContextState :对上下文的状态进行描述,次接口没有方法,全部依靠父类。

ID3D11SamplerState :采样器相关的状态描述,这里的采样是对纹理的采样,而不是多重采样 - -。

ID3D11RasterizerState :光栅化程序状态的描述。

1.创建:(都是由ID3DDevice对象进行创建)

?

Cpp代码??core:ID3D11DeviceChild跟子
  1. HRESULT?CreateRasterizerState(??
  2. ??[in]???const?D3D11_RASTERIZER_DESC?*pRasterizerDesc,??
  3. ??[out]??ID3D11RasterizerState?**ppRasterizerState??
  4. );??

?2.使用:(都是对ID3DDeviceContext对象的一些状态进行设置,当然了有些状态也可以进行获取)

?

Cpp代码??core:ID3D11DeviceChild跟子
  1. void?RSSetState(??
  2. ??[in]??ID3D11RasterizerState?*pRasterizerState??
  3. );??

?注:有些状态是设置给着色器的,那么它就会被不只一个方法给用到。

热点排行