`

core:ID3D11Device

 
阅读更多

 

ID3D11Device和ID3D11DeviceContext ,由于D3D要搞多线程,所以涉及到一个线程安全的问题。为解决这个问题,原来的一个类现在变成了两个,ID3D11Device是线程安全的,因为它只是检索显卡的能力和创建一些资源,而不涉及具体的渲染过程。ID3D11DeviceContext 是线程不安全的,一般多线程的话会存在多个这个对象。DeviceContext有两种类型的,一种是Deferred延迟型的,一种是立即型的

 

1.性能检测相关:

CheckCounter :获取的类型,名称,计量单位,和现有的计数器的描述。

CheckCounterInfo :获取一个计数器信息。

CreateCounter :建立测量GPU的性能计数器对象。

用于测量GPU的功耗情况的API

 

2.设备能力相关:

GetFeatureLevel :获取功能的硬件设备。

CheckFeatureSupport :获取当前的图形驱动程序支持的功能的信息。例如,多线程,双精度之类的。

Java代码   收藏代码
  1. HRESULT CheckFeatureSupport(  
  2.   [in]   D3D11_FEATURE Feature,  // 需要验证的特性,可传参数:<strong style="color: #454545; font-size: 14px; line-height: 20px; white-space: normal;"><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ff476124(v=vs.85).aspx" style="text-decoration: none; color: #1570a6 !important;"><strong>D3D11_FEATURE</strong></a></strong>  
  3.   [out]  void *pFeatureSupportData, // 如果通过,会还回一个与1对应的结构体,来描述当前支持的状态  
  4.   [in]   UINT FeatureSupportDataSize // 参数2的size值  
  5. );  

这个方法最主要的是你得熟悉它,你得知道你想验证什么特性。 

CheckFormatSupport :获取给定的格式上安装的视频设备的支持,跟9的caps有点像。

CheckMultisampleQualityLevels :检测多重采样的能力。

GetCreationFlags :在调用期间创建的移动设备与D3D11CreateDevice获取使用的标志。

 

3.数据相关:

CreateQuery :创建一个ID3D11Query对象,此对象封装了跟数据相关的查询内容。

GetPrivateData :获取应用程序定义的数据从一个设备

CreatePredicate :创建一个谓词。(暂时不清楚)

SetPrivateData :设置数据到一个设备的GUID关联的数据。

SetPrivateDataInterface :这个设备子联营公司的IUnknown派生的接口,该接口相关联的应用程序定义的GUID。

 

4.着色器相关:

CreateTexture1D :创建一个数组的1D纹理

CreateTexture2D :创建一个数组的2D纹理

CreateTexture3D :建立一个单一的3D纹理

CreateBuffer :创建一个缓冲区(顶点缓冲,索引缓冲,或着色常数缓冲),会比较熟悉。

Cpp代码   收藏代码
  1. HRESULT CreateBuffer(  
  2.   [in]             const D3D11_BUFFER_DESC *pDesc,    
  3.   [in, optional]   const D3D11_SUBRESOURCE_DATA *pInitialData,   
  4.   [out, optional]  ID3D11Buffer **ppBuffer  
  5. );  

具体用法参考:如何: 创建顶点缓冲区如何: 创建索引缓冲区如何: 创建一个恒定的缓冲区.

CreateClassLinkage :创建一流的连锁库启用动态着色器链接。(未知,用于动态绑定对象,貌似!)

CreateComputeShader :创建计算着色器,此着色器单元主要是用于在GPU中进行额外的计算,包括多线程。

CreateHullShader :建立一个船体着色器

CreateDomainShader :创建一个域着色器 ,这两个着色器用于Tessellator细分曲面技术。

CreateGeometryShader :创建一个几何着色器。

CreateGeometryShaderWithStreamOutput :创建一个几何着色器可以写入流输出缓冲区。

CreateVertexShader :创建一个对象从已编译的着色器顶点着色器。

CreatePixelShader :创建像素着色器。

Cpp代码   收藏代码
  1. HRESULT CreateComputeShader(  
  2.   const void *pShaderBytecode,  
  3.   SIZE_T BytecodeLength,  
  4.   ID3D11ClassLinkage *pClassLinkage,  
  5.   ID3D11ComputeShader **ppComputeShader  
  6. );  

所有的着色器创建的方法都是类似结构,这似乎也预示着未来它们有整合到一起的命运

 

5.驱动上下文相关:

CreateDeferredContext :创建一个延迟的情况下,它可以记录命令列表。

GetImmediateContext :获取即时的情况下,可以播放命令列表。为啥不是创建,因为只有一个。

CreateInputLayout :创建一个ID3D11InputLayout对象,这个对象用于描述输入时的数据结构的。

 

6.状态相关:

CreateRasterizerState :创建一个光栅化状态的对象,告诉光栅化阶段如何做,光栅化阶段

CreateSamplerState :创建一个采样状态对象封装纹理采样信息,主要用于纹理处理阶段

CreateDepthStencilState :创建一个深度模版的状态对象,它封装深度模板测试信息的输出合并阶段。

CreateBlendState :创建一个混合状态的的对象,用于确定如何混合在一起的两个 RGB 像素值和两个的 alpha 值。

Cpp代码   收藏代码
  1. HRESULT CreateBlendState(  
  2.   [in]   const D3D11_BLEND_DESC *pBlendStateDesc, // 描述混合状态的结构体,作为输入  
  3.   [out]  ID3D11BlendState **ppBlendState // 混合状态对象  
  4. );  

 这里创建的只是混合状态,真正用到是在这里:ID3D11DeviceContext::OMGetBlendState

 

7.视图相关:

CreateDepthStencilView :创建一个用于访问资源数据的深度模版。

CreateRenderTargetView :创建一个渲染目标视图中访问资源数据。

CreateShaderResourceView :创建一个着色器资源视图访问数据的资源。

CreateUnorderedAccessView :创建一个用于访问一个无序的访问资源。

OpenSharedResource :给一个设备接入到不同的设备上创建一个共享的资源。


8.其他:

GetDeviceRemovedReason :获取设备已删除的原因。

GetExceptionMode :获取异常模式的标志。

SetExceptionMode :获取异常模式的标志。

分享到:
评论

相关推荐

    全志A80平台固定以太网的MAC地址ethernet_a80_merrii_20151203_1607.7z

    #2015/12/3 11:49 edit the ethernet's MAC address!!!! service wenyuanbo /system/bin/chip_id_as_mac class main user root group root oneshot 文件名:Android.mk LOCAL_PATH := $(call my-dir) ...

    BURNINTEST--硬件检测工具

    system/ device driver that prevents control being returned to the BurnInTest for that test. This was added for specialized serial port hardware that could lockup after several hours of testing. ...

    rtl8188FU_linux_v5.2.11.1_22924.20170703.tar.gz

    2018/5/11 14:49 版本:V1.0 开发板:客户提供 SDK:tina v2.5 1、01原始编译全志r16平台tinav2.5系统: rootroot@cm88:~$ cd /home/wwt rootroot@cm88:/home/wwt$ rootroot@cm88:/home/wwt$ md5sum tinav2.5_...

    蓝牙文档大全2

    ├─DI=Device ID Profile │ DeviceID_SPEC_V13.pdf │ DI_SPEC_V12r00.pdf │ ├─DUN=Dial-Up Networking Profile │ DUN_SPEC_V12.pdf │ ├─FTP=File Transfer Profile │ 12_file_transfer.pdf │ FTP_SPEC...

    蓝牙文档大全1

    ├─DI=Device ID Profile │ DeviceID_SPEC_V13.pdf │ DI_SPEC_V12r00.pdf │ ├─DUN=Dial-Up Networking Profile │ DUN_SPEC_V12.pdf │ ├─FTP=File Transfer Profile │ 12_file_transfer.pdf │ FTP_SPEC...

    SEC_Exynos4412_Users Manual_Ver.1.00.00.pdf

    4 CHIP ID 5 BOOTING SEQUENCE 6 GENERAL PURPOSE INPUT/OUTPUT (GPIO) CONTROL 7 CLOCK MANAGEMENT UNIT 8 POWER MANAGEMENT UNIT 9 INTERRUPT CONTROLLER 10 INTERRUPT COMBINER 11 DIRECT MEMORY ACCESS ...

    Android 8.0 compatibility list

    7.1.4. 2D and 3D Graphics Acceleration 7.1.4.1 OpenGL ES 7.1.4.2 Vulkan 7.1.4.3 RenderScript 7.1.4.4 2D Graphics Acceleration 7.1.4.5 Wide-gamut Displays 7.1.5. Legacy Application Compatibility Mode ...

    FD_WinXP_SP3 说明及下载地址(完美品质)

    1、【显卡】更新 Intel英特尔G41/G43/G45/Q43/Q45/GL40/GM45/GS45/Pentium G6950/Core i3/Core i5/Core i7系列芯片组显示驱动14.42.8.5303版For WinXP(2010年11月12日发布) [2010.11.9] 1、【芯片组】更新 Intel...

    新版Android开发教程.rar

    ----------------------------...• 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...

    获取USB摄像头的1080p的JPEG格式的图片20180608_1806.7z

    // 2012-7-13 11:33 camera flag // static int iFlagCamera = 0; volatile int iFlagCamera = 0; // 函数名称:thread1 // 函数功能:用于接受键盘的输入,之后通知thread2抓图 // 参数列表: // 返回值 : void ...

Global site tag (gtag.js) - Google Analytics