在GLSL中,您可以使用名称和索引访问矢量的组件,例如。如果您有vec2 foo
,则可以执行foo.x
和foo[0]
之类的操作。
是否可以在C?
中复制此接口我目前有以下内容:
typedef union{
struct{ float x1, x2; };
struct{ float x, y; };
float d[2];
}vec2;
允许我访问vec2 foo
foo.x
和foo.d[0]
的{{1}}组件。
是否有可能免除那些讨厌的.d
,到达foo[0]
? (无论如何,也许使用一些(甚至更糟糕的)宏观技巧?)