Win32 API:ID3D12Device 接口(D3d12.h)
ID3D12Device 接口是 DirectX 12 中用于表示图形设备的核心接口,它提供了创建和管理资源、命令队列、命令列表以及其他与图形编程相关的功能。以下是 ID3D12Device 接口的简要定义:DECLARE_INTERFACE_(ID3D12Device, ID3D12Object){ // 获取资源分配器(Resource Allocator) STDMETHOD(CreateCommittedResource)(THIS_ const D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialResourceState, ...
Win32 API:ID3D12DescriptorHeap 接口(D3d12.h)
ID3D12DescriptorHeap 接口是 DirectX 12 中用于表示描述符堆(Descriptor Heap)的接口。描述符堆用于存储图形和计算资源的描述符,如纹理、缓冲区等。以下是 ID3D12DescriptorHeap 接口的简要定义:DECLARE_INTERFACE_(ID3D12DescriptorHeap, ID3D12Pageable){ // 获取描述符堆的描述信息 STDMETHOD_(D3D12_DESCRIPTOR_HEAP_DESC, GetDesc)(THIS) PURE;};这个接口继承自 ID3D12Pageable 接口,它包含一个用于获取描述符堆描述信息的方法 GetDesc。以下是 D3D12_DESCRIPTOR_HEAP_DESC 结构的定义:typedef struct D3D12_DESCRIPTOR_HEAP_DESC{ D3D12_DESCRIPTOR_HEAP_TYPE Type; UINT NumDescripto...
Win32 API:ID3D12CommandSignature 接口(D3d12.h)
ID3D12CommandSignature 接口是 DirectX 12 中用于表示命令签名的接口。命令签名定义了GPU命令列表中的命令的参数布局,允许开发者定义自定义的GPU命令。以下是 ID3D12CommandSignature 接口的简要定义:DECLARE_INTERFACE_(ID3D12CommandSignature, ID3D12Pageable){ // 获取命令签名的描述信息 STDMETHOD_(void, GetDesc)(THIS_ D3D12_COMMAND_SIGNATURE_DESC *pDesc) PURE;};这个接口继承自 ID3D12Pageable 接口,它包含一个用于获取命令签名描述信息的方法 GetDesc。以下是 D3D12_COMMAND_SIGNATURE_DESC 结构的定义:typedef struct D3D12_COMMAND_SIGNATURE_DESC{ UINT ByteStride; UINT NumArgumentDescs; const D3D12_INDIRECT_ARGUMEN...
Win32 API:ID3D12CommandQueue 接口(D3d12.h)
ID3D12CommandQueue 接口是 DirectX 12 中用于表示命令队列的接口。命令队列用于接受并提交GPU命令列表,以便GPU执行图形和计算任务。以下是 ID3D12CommandQueue 接口的简要定义:DECLARE_INTERFACE_(ID3D12CommandQueue, ID3D12Pageable){ // 获取命令队列类型 STDMETHOD_(D3D12_COMMAND_LIST_TYPE, GetType)(THIS) PURE; // 将命令列表提交到命令队列 STDMETHOD(ExecuteCommandLists)(THIS_ UINT NumCommandLists, ID3D12CommandList* const * ppCommandLists) PURE; // ...};这个接口继承自 ID3D12Pageable 接口,它包含一系列方法用于命令队列的操作。以下是一些关键方法的说明: GetType: 获取命令队列的类型,返回一个 D3D12_COMMAND_LIST_TYPE 枚举值,表示命令队列...
Win32 API:ID3D12CommandList 接口(D3d12.h)
ID3D12CommandList 接口是 DirectX 12 中用于表示命令列表的接口。命令列表是一系列GPU命令的集合,用于执行图形和计算操作。以下是 ID3D12CommandList 接口的简要定义:DECLARE_INTERFACE_(ID3D12CommandList, ID3D12DeviceChild){ // 获取命令列表类型 STDMETHOD_(D3D12_COMMAND_LIST_TYPE, GetType)(THIS) PURE; // 关闭命令列表 STDMETHOD(Close)(THIS) PURE; // 重置命令列表,以便重新使用 STDMETHOD(Reset)(THIS_ ID3D12CommandAllocator* pAllocator, ID3D12PipelineState* pInitialState) PURE; // 执行命令列表 STDMETHOD(ExecuteCommandLists)(THIS_ UINT NumCommandLists, ID3D12CommandList*...
Win32 API:ID3D12CommandAllocator 接口(D3d12.h)
ID3D12CommandAllocator 接口是 DirectX 12 中用于管理命令分配器(Command Allocator)的接口之一。命令分配器是用于为GPU命令列表(Command List)分配内存的对象。以下是 ID3D12CommandAllocator 接口的简要定义:DECLARE_INTERFACE_(ID3D12CommandAllocator, ID3D12Pageable){ STDMETHOD(Reset)(THIS) PURE;};这个接口继承自 ID3D12Pageable 接口,它包含一个名为 Reset 的方法,用于将命令分配器重置为初始状态,以便重新使用。命令分配器通常与命令列表一起使用,当你需要执行一组图形渲染命令时,你会从命令分配器中分配一个命令列表,并将渲染命令添加到该列表中。完成渲染后,你可以重置命令分配器,以便为下一组渲染命令分配内存。以下是 ID3D12CommandAllocator 接口的简单示例用法:// 创建命令分配器ID3D12CommandAllocator* pCommandAllocator;device-&...
Win32 API:D3D12_VARIABLE_SHADING_RATE_TIER 枚举(D3d12.h)
D3D12_VARIABLE_SHADING_RATE_TIER 枚举是 Direct3D 12 API 中的一个枚举类型,用于表示可变着色率的级别(Variable Shading Rate Tier)。可变着色率是一项图形技术,可以根据像素的重要性或者运动程度,以更灵活的方式对不同部分的图形进行着色。这有助于提高性能和效率。以下是 D3D12_VARIABLE_SHADING_RATE_TIER 枚举的定义:typedef enum D3D12_VARIABLE_SHADING_RATE_TIER { D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0, D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1, D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2, D3D12_VARIABLE_SHADING_RATE_TIER_3 = 3} D3D12_VARIABLE_SHADING_RATE_TIER; D3D12_VARIABLE_SHADING_RATE_TIER_N...
Win32 API:D3D12_UAV_DIMENSION 枚举(D3d12.h)
D3D12_UAV_DIMENSION 枚举是 Direct3D 12 中的一个枚举类型,用于指定用于写入的无序访问视图(Unordered Access View, UAV)的维度。以下是该枚举的定义:typedef enum D3D12_UAV_DIMENSION { D3D12_UAV_DIMENSION_UNKNOWN = 0, D3D12_UAV_DIMENSION_BUFFER = 1, D3D12_UAV_DIMENSION_TEXTURE1D = 2, D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, D3D12_UAV_DIMENSION_TEXTURE2D = 4, D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, D3D12_UAV_DIMENSION_TEXTURE3D = 8} D3D12_UAV_DIMENSION;这个枚举包含了以下不同的无序访问视图的维度: D3D12_UAV_DIMENSION_UNKNOWN:未知维度。 D3D12_UAV_DIMENSION_BU...
Win32 API:D3D12_TILED_RESOURCES_TIER 枚举(D3d12.h)
D3D12_TILED_RESOURCES_TIER 枚举是 Direct3D 12 中的一个枚举类型,用于表示设备支持的瓦片资源(Tiled Resources)的级别。瓦片资源是一种优化技术,用于有效管理大型纹理或缓冲区,以减少资源浪费并提高性能。以下是该枚举的定义:typedef enum D3D12_TILED_RESOURCES_TIER { D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, D3D12_TILED_RESOURCES_TIER_1 = 1, D3D12_TILED_RESOURCES_TIER_2 = 2, D3D12_TILED_RESOURCES_TIER_3 = 3, D3D12_TILED_RESOURCES_TIER_4 = 4} D3D12_TILED_RESOURCES_TIER;这个枚举定义了不同的瓦片资源级别: D3D12_TILED_RESOURCES_TIER_NOT_SUPPORT...
Win32 API:D3D12_TEXTURE_ADDRESS_MODE 枚举(D3d12.h)
D3D12_TEXTURE_ADDRESS_MODE 枚举是 Direct3D 12 中的一个枚举类型,用于定义纹理采样时的纹理坐标的寻址模式。以下是该枚举的定义:typedef enum D3D12_TEXTURE_ADDRESS_MODE { D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5} D3D12_TEXTURE_ADDRESS_MODE;这个枚举包括了以下几种纹理坐标寻址模式: D3D12_TEXTURE_ADDRESS_MODE_WRAP:纹理坐标将被重复。 D3D12_TEXTURE_ADDRESS_MODE_MIRROR:纹理坐标将被镜像重复。 D3D12...
Win32 API:D3D12_STENCIL_OP 枚举(D3d12.h)
D3D12_STENCIL_OP 枚举是 Direct3D 12 中的一个枚举类型,用于定义模板测试和模板操作时的操作类型。该枚举表示在模板测试和模板操作期间所执行的不同操作。以下是该枚举的定义:typedef enum D3D12_STENCIL_OP { D3D12_STENCIL_OP_KEEP = 1, D3D12_STENCIL_OP_ZERO = 2, D3D12_STENCIL_OP_REPLACE = 3, D3D12_STENCIL_OP_INCR_SAT = 4, D3D12_STENCIL_OP_DECR_SAT = 5, D3D12_STENCIL_OP_INVERT = 6, D3D12_STENCIL_OP_INCR = 7, D3D12_STENCIL_OP_DECR = 8} D3D12_STENCIL_OP;这个枚举包括了在模板测试和模板操作期间可用的不同操作: D3D12_STENCIL_OP_KEEP...
Win32 API:D3D12_STATE_SUBOBJECT_TYPE 枚举(D3d12.h)
D3D12_STATE_SUBOBJECT_TYPE 枚举是 Direct3D 12 中的一个枚举类型,用于标识状态对象(state object)的子对象类型。状态对象是一种用于表示图形或计算管道状态的对象,而子对象则是构成状态对象的一部分,描述了不同方面的状态。以下是该枚举的定义:typedef enum D3D12_STATE_SUBOBJECT_TYPE { D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0, D3D12_STATE_SUBOBJECT_TYPE_PIPELINE_LIBRARY = 1, D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 2, D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 3, D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_A...
Win32 API:D3D12_STATE_OBJECT_TYPE 枚举(D3d12.h)
D3D12_STATE_OBJECT_TYPE 枚举是Direct3D 12中的一个枚举类型,用于标识状态对象的类型。状态对象是一种用于存储、表示和执行图形或计算管道状态的对象。以下是该枚举的定义:typedef enum D3D12_STATE_OBJECT_TYPE { D3D12_STATE_OBJECT_TYPE_COLLECTION = 0, D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3, D3D12_STATE_OBJECT_TYPE_MAX_VALID = 4} D3D12_STATE_OBJECT_TYPE; D3D12_STATE_OBJECT_TYPE_COLLECTION 表示状态对象是一个集合对象,用于包含其他状态对象。 D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE 表示状态对象是一个射线追踪管线对象,用于描述射线追踪相关的状态。 D3D12_STATE_OBJECT_TYPE_MAX_VALID 是一个占位符,表示当前有效的状态对象类型...
Win32 API:D3D12_SRV_DIMENSION 枚举(D3d12.h)
D3D12_SRV_DIMENSION 枚举是Direct3D 12中的一个枚举类型,用于指定着色器资源视图 (Shader Resource View, SRV) 的维度,即着色器将如何访问该资源。以下是该枚举的定义:typedef enum D3D12_SRV_DIMENSION { D3D12_SRV_DIMENSION_UNKNOWN = 0, D3D12_SRV_DIMENSION_BUFFER = 1, D3D12_SRV_DIMENSION_TEXTURE1D = 2, D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, D3D12_SRV_DIMENSION_TEXTURE2D = 4, D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, D3D12_SRV_DIMENSION_TEXTURE2DMS = 6...
Win32 API:D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER 枚举(D3d12.h)
D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER 枚举是Direct3D 12中的一个枚举类型,用于表示设备对共享资源的兼容性等级。共享资源兼容性等级指示了设备是否支持使用共享资源创建多个交换链、多个命令队列或者其他一些共享资源的特性。以下是该枚举的定义:typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER { D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0, D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = 1, D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = 2, D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_3 = 3} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER; D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 表示不支持共享资源。 D3D1...
Win32 API:D3D12_SHADER_VISIBILITY 枚举(D3d12.h)
D3D12_SHADER_VISIBILITY 枚举是Direct3D 12中的一个枚举类型,用于指定着色器在管道阶段中的可见性。它定义了以下三个成员:1. D3D12_SHADER_VISIBILITY_ALL:表示着色器在所有阶段都可见,即在顶点着色器、像素着色器、几何着色器等所有阶段都可以访问。 2. D3D12_SHADER_VISIBILITY_VERTEX:表示着色器仅在顶点着色器阶段可见。3. D3D12_SHADER_VISIBILITY_PIXEL:表示着色器仅在像素着色器阶段可见。这个枚举主要用于在描述根签名时指定着色器可见性,以便在管道中正确地绑定和使用资源。以下是该枚举的定义:typedef enum D3D12_SHADER_VISIBILITY { D3D12_SHADER_VISIBILITY_ALL = 0, D3D12_SHADER_VISIBILITY_VERTEX = 1, D3D12_SHADER_VISIBILITY_HULL = 2, D3D12_SHADER_VISIBILITY_DOMAIN = 3, D3D12_S...
Win32 API:D3D12_SHADER_CACHE_SUPPORT_FLAGS 枚举(D3d12.h)
在Direct3D 12中,D3D12_SHADER_CACHE_SUPPORT_FLAGS 枚举用于表示支持的着色器缓存特性的标志。这些标志用于指定硬件或驱动程序是否支持特定类型的着色器缓存。以下是 D3D12_SHADER_CACHE_SUPPORT_FLAGS 枚举的定义:typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS { D3D12_SHADER_CACHE_SUPPORT_NONE = 0, D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2} ;这个枚举定义了以下标志: D3D12_SHADER_CACHE_SUPPORT_NONE: 不支持任何着色器缓存特性。 D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO: 支持单个PSO(Pipeline State Object)的着色器缓存特性。 D3D12_SHADER_CACHE_SUPPORT_LIBRAR...
Win32 API:D3D12_SHADER_CACHE_MODE 枚举(D3d12.h)
在Direct3D 12中,D3D12_SHADER_CACHE_MODE 枚举用于表示着色器缓存的模式。这些模式用于配置着色器缓存的行为,包括缓存的使用和清理方式。以下是 D3D12_SHADER_CACHE_MODE 枚举的定义:typedef enum D3D12_SHADER_CACHE_MODE { D3D12_SHADER_CACHE_MODE_DEFAULT = 0, D3D12_SHADER_CACHE_MODE_WRITE_ONLY_ON_SUCCESS = 1, D3D12_SHADER_CACHE_MODE_READ_ONLY_ON_SUCCESS = 2} ;这个枚举定义了以下三种缓存模式: D3D12_SHADER_CACHE_MODE_DEFAULT: 默认模式,缓存既可读又可写。 D3D12_SHADER_CACHE_MODE_WRITE_ONLY_ON_SUCCESS: 在成功加载后,缓存为只写模式。 D3D12_SHADER_CACHE_MODE_READ_ONLY_ON_SUCCESS: 在成功加载后,缓存为只读模式。这些模式用于在创建Dir...
Win32 API:D3D12_SHADER_CACHE_KIND_FLAGS 枚举(D3d12.h)
在Direct3D 12中,D3D12_SHADER_CACHE_KIND_FLAGS 枚举用于表示着色器缓存的类型标志。这些标志用于配置不同类型的着色器缓存,包括顶点着色器、像素着色器等。以下是 D3D12_SHADER_CACHE_KIND_FLAGS 枚举的定义:typedef enum D3D12_SHADER_CACHE_KIND_FLAGS { D3D12_SHADER_CACHE_KIND_FLAG_NONE = 0, D3D12_SHADER_CACHE_KIND_FLAG_VERTEX = 0x1, D3D12_SHADER_CACHE_KIND_FLAG_PIXEL = 0x2, D3D12_SHADER_CACHE_KIND_FLAG_COMPUTE = 0x4, D3D12_SHADER_CACHE_KIND_FLAG_LIBRARY = 0x8, D3D12_SHADER_CACHE_KIND_FLAG_METAFILE = 0x10, D3D12_SHADER_CACHE_KIND_FLAG_PIPELINE ...
Win32 API:D3D12_SHADER_CACHE_FLAGS 枚举(D3d12.h)
在Direct3D 12中,D3D12_SHADER_CACHE_FLAGS 枚举用于表示着色器缓存的标志。这些标志用于配置着色器缓存的行为,包括缓存的创建和使用方式。以下是 D3D12_SHADER_CACHE_FLAGS 枚举的定义:typedef enum D3D12_SHADER_CACHE_FLAGS { D3D12_SHADER_CACHE_FLAG_NONE = 0, D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1} ;这个枚举定义了以下标志: D3D12_SHADER_CACHE_FLAG_NONE: 无特殊标志,表示默认情况。 D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED: 驱动程序版本化的着色器缓存标志。启用此标志表示着色器缓存将根据驱动程序版本进行版本控制,以确保在不同驱动版本之间不会混淆缓存。这些标志用于在创建Direct3D 12设备时配置着色器缓存的行为。着色器缓存可以用于存储已编译的着色器,以便在后续的应用程序运行中重用它们,从而提高性能。通过使用这些标志,应...