To reflect a C# struct or class, attach the [GenerateHLSL] attribute to
it. The optional packing parameter is PackingRules.Exact (default),
which emits the struct as is. PackingRules.Aggressive will result in a
tight packing subject to some restrictions. Static primitive fields are
emitted as #defines.