D3D_SHADER_VARIABLE_TYPE 枚举 (d3dcommon.h)
用于标识可分配给着色器变量的各种数据、纹理和缓冲区类型的值。
注意
对于使用 Direct3D 10 进行编程,此 API 的类型别名以 开头 D3D10_
,而不是 D3D_
。 这些 Direct3D 10 类型别名在 、 d3d10misc.h
和 d3d10shader.h
中d3d10.h
定义。
语法
typedef enum _D3D_SHADER_VARIABLE_TYPE {
D3D_SVT_VOID = 0,
D3D_SVT_BOOL = 1,
D3D_SVT_INT = 2,
D3D_SVT_FLOAT = 3,
D3D_SVT_STRING = 4,
D3D_SVT_TEXTURE = 5,
D3D_SVT_TEXTURE1D = 6,
D3D_SVT_TEXTURE2D = 7,
D3D_SVT_TEXTURE3D = 8,
D3D_SVT_TEXTURECUBE = 9,
D3D_SVT_SAMPLER = 10,
D3D_SVT_SAMPLER1D = 11,
D3D_SVT_SAMPLER2D = 12,
D3D_SVT_SAMPLER3D = 13,
D3D_SVT_SAMPLERCUBE = 14,
D3D_SVT_PIXELSHADER = 15,
D3D_SVT_VERTEXSHADER = 16,
D3D_SVT_PIXELFRAGMENT = 17,
D3D_SVT_VERTEXFRAGMENT = 18,
D3D_SVT_UINT = 19,
D3D_SVT_UINT8 = 20,
D3D_SVT_GEOMETRYSHADER = 21,
D3D_SVT_RASTERIZER = 22,
D3D_SVT_DEPTHSTENCIL = 23,
D3D_SVT_BLEND = 24,
D3D_SVT_BUFFER = 25,
D3D_SVT_CBUFFER = 26,
D3D_SVT_TBUFFER = 27,
D3D_SVT_TEXTURE1DARRAY = 28,
D3D_SVT_TEXTURE2DARRAY = 29,
D3D_SVT_RENDERTARGETVIEW = 30,
D3D_SVT_DEPTHSTENCILVIEW = 31,
D3D_SVT_TEXTURE2DMS = 32,
D3D_SVT_TEXTURE2DMSARRAY = 33,
D3D_SVT_TEXTURECUBEARRAY = 34,
D3D_SVT_HULLSHADER = 35,
D3D_SVT_DOMAINSHADER = 36,
D3D_SVT_INTERFACE_POINTER = 37,
D3D_SVT_COMPUTESHADER = 38,
D3D_SVT_DOUBLE = 39,
D3D_SVT_RWTEXTURE1D = 40,
D3D_SVT_RWTEXTURE1DARRAY = 41,
D3D_SVT_RWTEXTURE2D = 42,
D3D_SVT_RWTEXTURE2DARRAY = 43,
D3D_SVT_RWTEXTURE3D = 44,
D3D_SVT_RWBUFFER = 45,
D3D_SVT_BYTEADDRESS_BUFFER = 46,
D3D_SVT_RWBYTEADDRESS_BUFFER = 47,
D3D_SVT_STRUCTURED_BUFFER = 48,
D3D_SVT_RWSTRUCTURED_BUFFER = 49,
D3D_SVT_APPEND_STRUCTURED_BUFFER = 50,
D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51,
D3D_SVT_MIN8FLOAT = 52,
D3D_SVT_MIN10FLOAT = 53,
D3D_SVT_MIN16FLOAT = 54,
D3D_SVT_MIN12INT = 55,
D3D_SVT_MIN16INT = 56,
D3D_SVT_MIN16UINT = 57,
D3D_SVT_INT16,
D3D_SVT_UINT16,
D3D_SVT_FLOAT16,
D3D_SVT_INT64,
D3D_SVT_UINT64,
D3D10_SVT_VOID,
D3D10_SVT_BOOL,
D3D10_SVT_INT,
D3D10_SVT_FLOAT,
D3D10_SVT_STRING,
D3D10_SVT_TEXTURE,
D3D10_SVT_TEXTURE1D,
D3D10_SVT_TEXTURE2D,
D3D10_SVT_TEXTURE3D,
D3D10_SVT_TEXTURECUBE,
D3D10_SVT_SAMPLER,
D3D10_SVT_SAMPLER1D,
D3D10_SVT_SAMPLER2D,
D3D10_SVT_SAMPLER3D,
D3D10_SVT_SAMPLERCUBE,
D3D10_SVT_PIXELSHADER,
D3D10_SVT_VERTEXSHADER,
D3D10_SVT_PIXELFRAGMENT,
D3D10_SVT_VERTEXFRAGMENT,
D3D10_SVT_UINT,
D3D10_SVT_UINT8,
D3D10_SVT_GEOMETRYSHADER,
D3D10_SVT_RASTERIZER,
D3D10_SVT_DEPTHSTENCIL,
D3D10_SVT_BLEND,
D3D10_SVT_BUFFER,
D3D10_SVT_CBUFFER,
D3D10_SVT_TBUFFER,
D3D10_SVT_TEXTURE1DARRAY,
D3D10_SVT_TEXTURE2DARRAY,
D3D10_SVT_RENDERTARGETVIEW,
D3D10_SVT_DEPTHSTENCILVIEW,
D3D10_SVT_TEXTURE2DMS,
D3D10_SVT_TEXTURE2DMSARRAY,
D3D10_SVT_TEXTURECUBEARRAY,
D3D11_SVT_HULLSHADER,
D3D11_SVT_DOMAINSHADER,
D3D11_SVT_INTERFACE_POINTER,
D3D11_SVT_COMPUTESHADER,
D3D11_SVT_DOUBLE,
D3D11_SVT_RWTEXTURE1D,
D3D11_SVT_RWTEXTURE1DARRAY,
D3D11_SVT_RWTEXTURE2D,
D3D11_SVT_RWTEXTURE2DARRAY,
D3D11_SVT_RWTEXTURE3D,
D3D11_SVT_RWBUFFER,
D3D11_SVT_BYTEADDRESS_BUFFER,
D3D11_SVT_RWBYTEADDRESS_BUFFER,
D3D11_SVT_STRUCTURED_BUFFER,
D3D11_SVT_RWSTRUCTURED_BUFFER,
D3D11_SVT_APPEND_STRUCTURED_BUFFER,
D3D11_SVT_CONSUME_STRUCTURED_BUFFER,
D3D_SVT_FORCE_DWORD = 0x7fffffff
} D3D_SHADER_VARIABLE_TYPE;
常量
D3D_SVT_VOID 值: 0 变量是 void 指针。 |
D3D_SVT_BOOL 值:1 变量为布尔值。 |
D3D_SVT_INT 值: 2 变量是一个整数。 |
D3D_SVT_FLOAT 值: 3 变量是浮点数。 |
D3D_SVT_STRING 值: 4 变量是字符串。 |
D3D_SVT_TEXTURE 值: 5 变量是纹理。 |
D3D_SVT_TEXTURE1D 值: 6 变量是 1D 纹理。 |
D3D_SVT_TEXTURE2D 值: 7 变量是 2D 纹理。 |
D3D_SVT_TEXTURE3D 值: 8 变量是 3D 纹理。 |
D3D_SVT_TEXTURECUBE 值: 9 变量是纹理立方体。 |
D3D_SVT_SAMPLER 值: 10 变量是采样器。 |
D3D_SVT_SAMPLER1D 值: 11 变量是 1D 采样器。 |
D3D_SVT_SAMPLER2D 值: 12 变量是 2D 采样器。 |
D3D_SVT_SAMPLER3D 值: 13 变量是 3D 采样器。 |
D3D_SVT_SAMPLERCUBE 值: 14 变量是多维数据集采样器。 |
D3D_SVT_PIXELSHADER 值: 15 变量是像素着色器。 |
D3D_SVT_VERTEXSHADER 值: 16 变量是顶点着色器。 |
D3D_SVT_PIXELFRAGMENT 值: 17 变量是像素片段。 |
D3D_SVT_VERTEXFRAGMENT 值: 18 变量是顶点片段。 |
D3D_SVT_UINT 值: 19 变量是无符号整数。 |
D3D_SVT_UINT8 值: 20 变量是 8 位无符号整数。 |
D3D_SVT_GEOMETRYSHADER 值: 21 变量是几何着色器。 |
D3D_SVT_RASTERIZER 值: 22 变量是光栅器状态对象。 |
D3D_SVT_DEPTHSTENCIL 值: 23 变量是深度模具状态对象。 |
D3D_SVT_BLEND 值: 24 变量是混合状态对象。 |
D3D_SVT_BUFFER 值: 25 变量是缓冲区。 |
D3D_SVT_CBUFFER 值: 26 变量是常量缓冲区。 |
D3D_SVT_TBUFFER 值: 27 变量是纹理缓冲区。 |
D3D_SVT_TEXTURE1DARRAY 值: 28 变量是一个 1D 纹理数组。 |
D3D_SVT_TEXTURE2DARRAY 值: 29 变量是一个 2D 纹理数组。 |
D3D_SVT_RENDERTARGETVIEW 值: 30 变量是呈现器目标视图。 |
D3D_SVT_DEPTHSTENCILVIEW 值: 31 变量是深度模具视图。 |
D3D_SVT_TEXTURE2DMS 值: 32 变量是 2D 多重采样纹理。 |
D3D_SVT_TEXTURE2DMSARRAY 值: 33 变量是 2D 多重采样纹理数组。 |
D3D_SVT_TEXTURECUBEARRAY 值: 34 变量是纹理立方体数组。 |
D3D_SVT_HULLSHADER 值: 35 变量保存编译的外壳着色器二进制文件。 |
D3D_SVT_DOMAINSHADER 值: 36 变量保存已编译的域着色器二进制文件。 |
D3D_SVT_INTERFACE_POINTER 值: 37 变量是一个接口。 |
D3D_SVT_COMPUTESHADER 值: 38 变量保存已编译的计算着色器二进制文件。 |
D3D_SVT_DOUBLE 值: 39 变量是一个双精度 (64 位) 浮点数。 |
D3D_SVT_RWTEXTURE1D 值: 40 变量是 1D 读写纹理。 |
D3D_SVT_RWTEXTURE1DARRAY 值: 41 变量是一维读写纹理的数组。 |
D3D_SVT_RWTEXTURE2D 值: 42 变量是 2D 读写纹理。 |
D3D_SVT_RWTEXTURE2DARRAY 值: 43 变量是 2D 读写纹理的数组。 |
D3D_SVT_RWTEXTURE3D 值: 44 变量是 3D 读写纹理。 |
D3D_SVT_RWBUFFER 值: 45 变量是读写缓冲区。 |
D3D_SVT_BYTEADDRESS_BUFFER 值: 46 变量是字节地址缓冲区。 |
D3D_SVT_RWBYTEADDRESS_BUFFER 值: 47 变量是读取和写入字节地址缓冲区。 |
D3D_SVT_STRUCTURED_BUFFER 值: 48 变量是结构化缓冲区。 有关结构化缓冲区的详细信息,请参阅 “备注 ”部分。 |
D3D_SVT_RWSTRUCTURED_BUFFER 值: 49 变量是读取和写入结构化缓冲区。 |
D3D_SVT_APPEND_STRUCTURED_BUFFER 值: 50 变量是追加结构化缓冲区。 |
D3D_SVT_CONSUME_STRUCTURED_BUFFER 值: 51 变量是消耗型结构化缓冲区。 |
D3D_SVT_MIN8FLOAT 值: 52 变量是一个 8 字节 FLOAT。 |
D3D_SVT_MIN10FLOAT 值: 53 变量为 10 字节 FLOAT。 |
D3D_SVT_MIN16FLOAT 值: 54 变量为 16 字节 FLOAT。 |
D3D_SVT_MIN12INT 值: 55 变量为 12 字节 INT。 |
D3D_SVT_MIN16INT 值: 56 变量为 16 字节 INT。 |
D3D_SVT_MIN16UINT 值: 57 变量为 16 字节 INT。 |
D3D10_SVT_VOID 变量是 void 指针。 |
D3D10_SVT_BOOL 变量为布尔值。 |
D3D10_SVT_INT 变量是一个整数。 |
D3D10_SVT_FLOAT 变量是浮点数。 |
D3D10_SVT_STRING 变量是字符串。 |
D3D10_SVT_TEXTURE 变量是纹理。 |
D3D10_SVT_TEXTURE1D 变量是 1D 纹理。 |
D3D10_SVT_TEXTURE2D 变量是 2D 纹理。 |
D3D10_SVT_TEXTURE3D 变量是 3D 纹理。 |
D3D10_SVT_TEXTURECUBE 变量是纹理立方体。 |
D3D10_SVT_SAMPLER 变量是采样器。 |
D3D10_SVT_SAMPLER1D 变量是 1D 采样器。 |
D3D10_SVT_SAMPLER2D 变量是 2D 采样器。 |
D3D10_SVT_SAMPLER3D 变量是 3D 采样器。 |
D3D10_SVT_SAMPLERCUBE 变量是多维数据集采样器。 |
D3D10_SVT_PIXELSHADER 变量是像素着色器。 |
D3D10_SVT_VERTEXSHADER 变量是顶点着色器。 |
D3D10_SVT_PIXELFRAGMENT 变量是像素片段。 |
D3D10_SVT_VERTEXFRAGMENT 变量是顶点片段。 |
D3D10_SVT_UINT 变量是无符号整数。 |
D3D10_SVT_UINT8 变量是 8 位无符号整数。 |
D3D10_SVT_GEOMETRYSHADER 变量是几何着色器。 |
D3D10_SVT_RASTERIZER 变量是光栅器状态对象。 |
D3D10_SVT_DEPTHSTENCIL 变量是深度模具状态对象。 |
D3D10_SVT_BLEND 变量是混合状态对象。 |
D3D10_SVT_BUFFER 变量是缓冲区。 |
D3D10_SVT_CBUFFER 变量是常量缓冲区。 |
D3D10_SVT_TBUFFER 变量是纹理缓冲区。 |
D3D10_SVT_TEXTURE1DARRAY 变量是一个 1D 纹理数组。 |
D3D10_SVT_TEXTURE2DARRAY 变量是一个 2D 纹理数组。 |
D3D10_SVT_RENDERTARGETVIEW 变量是呈现器目标视图。 |
D3D10_SVT_DEPTHSTENCILVIEW 变量是深度模具视图。 |
D3D10_SVT_TEXTURE2DMS 变量是 2D 多重采样纹理。 |
D3D10_SVT_TEXTURE2DMSARRAY 变量是 2D 多重采样纹理数组。 |
D3D10_SVT_TEXTURECUBEARRAY 变量是纹理立方体数组。 |
D3D11_SVT_HULLSHADER 变量保存编译的外壳着色器二进制文件。 |
D3D11_SVT_DOMAINSHADER 变量保存已编译的域着色器二进制文件。 |
D3D11_SVT_INTERFACE_POINTER 变量是一个接口。 |
D3D11_SVT_COMPUTESHADER 变量保存已编译的计算着色器二进制文件。 |
D3D11_SVT_DOUBLE 变量是一个双精度 (64 位) 浮点数。 |
D3D11_SVT_RWTEXTURE1D 变量是 1D 读写纹理。 |
D3D11_SVT_RWTEXTURE1DARRAY 变量是一维读写纹理的数组。 |
D3D11_SVT_RWTEXTURE2D 变量是 2D 读写纹理。 |
D3D11_SVT_RWTEXTURE2DARRAY 变量是 2D 读写纹理的数组。 |
D3D11_SVT_RWTEXTURE3D 变量是 3D 读写纹理。 |
D3D11_SVT_RWBUFFER 变量是读写缓冲区。 |
D3D11_SVT_BYTEADDRESS_BUFFER 变量是字节地址缓冲区。 |
D3D11_SVT_RWBYTEADDRESS_BUFFER 变量是读取和写入字节地址缓冲区。 |
D3D11_SVT_STRUCTURED_BUFFER 变量是结构化缓冲区。 |
D3D11_SVT_RWSTRUCTURED_BUFFER 变量是读取和写入结构化缓冲区。 |
D3D11_SVT_APPEND_STRUCTURED_BUFFER 变量是追加结构化缓冲区。 |
D3D11_SVT_CONSUME_STRUCTURED_BUFFER 变量是消耗型结构化缓冲区。 |
D3D_SVT_FORCE_DWORD 值: 0x7fffffff 程序员不使用此值;它的存在是强制枚举编译为 32 位。 |
注解
调用 ID3D11ShaderReflectionType::GetDesc 方法将返回 D3D11_SHADER_TYPE_DESC 结构的 Type 成员中的 D3D_SHADER_VARIABLE_TYPE 值。
结构化缓冲区中的类型描述缓冲区中元素的结构。 这些类型的布局通常与其 C++ 结构对应项匹配。 以下示例演示结构化缓冲区:
struct mystruct {float4 val; uint ind;}; RWStructuredBuffer<mystruct> rwbuf;
RWStructuredBuffer<float3> rwbuf2;
要求
要求 | 值 |
---|---|
Header | d3dcommon.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈