Skip to content

Latest commit

 

History

History
62 lines (45 loc) · 2.21 KB

dx-graphics-hlsl-vector.md

File metadata and controls

62 lines (45 loc) · 2.21 KB
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
Vector Type HLSL
apiref
Vector Type
NA
reference
05/31/2018

Vector Type

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.

Type Declaration

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

Template-style Declaration

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

See also

Data Types (DirectX HLSL)