D3D_SHADER_VARIABLE_TYPE 枚举 (d3dcommon.h)

用于标识可分配给着色器变量的各种数据、纹理和缓冲区类型的值。

注意

对于使用 Direct3D 10 进行编程,此 API 的类型别名以 开头 D3D10_ ,而不是 D3D_。 这些 Direct3D 10 类型别名在 、 d3d10misc.hd3d10shader.hd3d10.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

另请参阅

常见版本枚举