短的向量库
[本文档仅供预览,并可能在以后的版本中更改。 Blank topics are included as placeholders.]
短的向量库提供类型与 HLSL 定义的向量类型。 简短的向量提供编程短的向量很有用的泛型定义。
运算符
是重载的并且有效的两个 C++ 数值类型之间的任何一元或二元运算为短的向量有效的类型。 对于二元运算符,两个矢量必须具有相同的大小,结果是相同大小的矢量。 运算符在下表中所述。
二元运算符 |
所有类型:+, ), *,/, 整数类型:%, ^,|, &, <<, >> |
关系运算符 |
== 和! = |
复合赋值运算符 |
所有类型:+=, - =, *=,/= 整数类型:%=, ^=,|=, &=, <<=, >>= |
增量和减量运算符 |
整数只键入:++,--,前缀和后缀。 |
按位 " 取非 " 运算符 (~) |
整数只键入。 |
一元 )运算符 |
所有类型除 unorm 和 uint 类型。 |
准则和 unorm 类型
norm 和 unorm 类型是限制 float 一系列值的数据类型,调用 夹紧。 这些类型可从其他数据类型显式构造。 在强制转换,该值首先转换为 float 然后将夹紧到准则 [- 1.0 1.0] 或… unorm 允许的值单个区域 [0.0 1.0…]。 将 +/- 不返回 +=1。 将 Nan 是未定义的。 准则可以从 unorm 隐式构造,而不是数据丢失。 浮动隐式转换运算符在这些类型定义。 二元运算符定义在这些类型和其他内置数据类型 (如 float 和 int内:+, ), *,/, ==,! =, >, <, >=, <=。 复合赋值运算符还支持:+=, - =, *=,/=。 一元求反运算 (-) 为准则类型定义。
Swizzling 表达式
短的向量库支持 vector_type.identifier 访问器访问短矢量的元素。 (这个矢量的索引不支持。) identifier,即一个 swizzling 的表达式,该值指定矢量的元素。 该表达式可以是左值或 r 值。 在缩进的各个字符可能是:x, y, z, w, r, g, b,则, 0,1。 “x”首先只意味着 zeroth 元素, “y”表示等,并且, rgba 为 xyzw 是同义词的。 0 和 1 返回常数 0 和 1。 单个组件访问器,如 “x”, “y”等,返回值类型。 多格式说明符的访问器返回一个简短的向量类型。 下表显示了一些 swizzling 的表达式及其索引的等效项。 (请注意标记不受支持。 索引为阐释目的使用。)
Swizzling 表达式 |
索引表达式 |
---|---|
double4 VA = myDouble2.y0x1; |
double4 VA (myDouble2] [1, 0, myDouble2] [0, 1); |
double4 VB = myDouble4.xxww; |
double4 VB (myDouble4 [0], [myDouble4 0], [myDouble4 3], [] myDouble2 3); |
double4 VC = myDouble3.rgb1; |
double4 VC (myDouble3 [0], [myDouble4 1], [] myDouble4 2, 1); |