Meta position conditional flags.
typedef enum MPFlags

Don't DPI scale x position value.
MP_NOSCALE_POSX = 1,

Don't DPI scale y position value.
MP_NOSCALE_POSY = 2,

Don't DPI scale position.
MP_NOSCALE_POS = 3,

Don't DPI scale handle x position value.
MP_NOSCALE_HDLX = 4,

Don't DPI scale handle y position value.
MP_NOSCALE_HDLY = 8,

Don't DPI scale handle.
MP_NOSCALE_HDL = 12,

Don't DPI scale x dimension value.
MP_NOSCALE_DIMSX = 16,

Don't DPI scale y dimension value.
MP_NOSCALE_DIMSY = 32,

Don't DPI scale dimensions.
MP_NOSCALE_DIMS = 48,

Don't DPI scale any values.
MP_NOSCALE = 63,

Don't wrap negative position values.
MP_NOWRAP = 64

End block 'Meta position flags'
} MPFlags;

2D meta position.
typedef struct MetaPos

Position.
S2f pos;

Handle.
S2f hdl;

Dimensions.
S2f dims;

Flags.
uint flags;

End block 'Meta position'
} MetaPos;

Construct child rect from parent rect using meta position values.
API B2i MPResolve(MetaPos metaPos, B2i pRect);
metaPos: 2D meta position.
pRect: Parent rect.
returns: Child rect.

Construct 2D meta position from scalars.
API MetaPos MPMakeS2f(S2f pos, S2f handle, S2f dims, uint flags);
px: X position.
py: Y position.
hx: X handle.
hy: Y handle.
dx: X dimension.
dy: Y dimension.
flags: Flags.
returns: Meta position.

Construct 2D meta position.
API MetaPos MPMake(float px, float py, float hx, float hy, float dx, float dy, uint flags);
px: X position.
py: Y position.
hx: X handle.
hy: Y handle.
dx: X dimension.
dy: Y dimension.
flags: Flags.
returns: Meta position.