props :: constant_buffer @properties { projection : float4x4 @projection; view : float4x4 @view; } vertex main :: (pos : float4 @position) -> float4 @position { mv : float4 = mul(props.view, pos); mvp : float4 = mul(props.projection, mv); return mvp; }