title | description | ms.assetid | keywords | topic_type | api_name | api_type | ms.topic | ms.date | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Vector Type (HLSL) |
A vector contains between one and four scalar components; every component of a vector must be of the same type. |
16e66f3c-c513-4d03-8adf-463dc8d83e12 |
|
|
|
|
reference |
05/31/2018 |
A vector is a data type that contains between one and four scalar components. Every component of a vector must be of the same type.
You can declare vector variables by using the scalar type name of the vector's contents with the number of components it contains:
TypeComponents Name
Where Type
is the scalar type of each of the components, Components
is an integer between 1 and 4 inclusive indicating the number of components and Name
is an ASCII string that uniquely identifies the variable name.
Examples:
int iScalar; // integer scalar
int1 iVector = 1; // vector containing one integer
float3 fVector = { 0.2f, 0.3f, 0.4f }; // vector containing three floats
An alternate declaration syntax uses the vector
keyword and template arguments to indicate scalar type and number of components:
vector <Type=float, Components=4> Name
Where again Type
is the scalar type of each of the components, Components
is an integer between 1 and 4 inclusive indicating the number of components, but they are specified within template-style angle brackets. Name
is an ASCII string that uniquely identifies the variable name,
Note that the template parameter defaults allow specifying 4-component vectors of a given type by leaving off the last parameter or 4-component float vectors by leaving off both.
Here are some examples:
vector <int, 1> iVector = 1;
vector <double, 4> dVector = { 0.2f, 0.3f, 0.4f, 0.5f };
vector <float16_t> hVector = { 0.1f, 0.2f, 0.3f, 0.4f }; // Defaults to 4-component float16 vector
vector fVector = { -0.4f, -0.3f, -0.2f, -0.1f }; // Defaults to 4-component float vector