Struct Type Syntax
Microsoft DirectX 9.0 SDK Update (October 2004)

Struct Type Syntax


A struct is a user-customizable data type that contains any number of components. Each component of a struct must be one of the basic data types.

Syntax

struct
{
   Type[RxC] VariableName;
   ...
}

where:

Type[RxC]A structure member. Each member has a data type, and and optional number of components in each row and column. The type is one of the basic types. The number of rows and columns is a positive integer between 1 and 4.
VariableNameAn ASCII string that uniquely identifies the variable name.
...Any number of additional members.

Remarks

Here are some examples:

struct struct1
{
  int    a;   // single integer
}

struct struct2
{
  int    a;         // single integer
  float  b;         // single float
  int4x1 iMatrix;   // integer matrix with 4 rows, 1 column
}

When compiled into shader code using the HLSL Command-Line Compiler, each structure member is assigned to a separate shader register, which is consistent with how variables are packed by a language compiler.

struct L
{
  float4 pos;
  float3 diff;
  float  att;
};

Even though the second and third members could theoretically be packed into a single, four-component register, the compiler will assign pos to the first available register, diff to the second available register, and att to the third available register.



© 2004 Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center.