#define MIN_COORD (INT_MIN / 16)
#define MAX_COORD (INT_MAX / 16)
-#define IntLPtoDP(pdc, ppt, count) \
+#define IntLPtoDP(pdc, ppt, count) do { \
DC_vUpdateWorldToDevice(pdc); \
- DC_vXformWorldToDevice(pdc, count, (PPOINTL)(ppt), (PPOINTL)(ppt));
+ DC_vXformWorldToDevice(pdc, count, (PPOINTL)(ppt), (PPOINTL)(ppt)); \
+ } while (0)
#define CoordLPtoDP(pdc, ppt) \
DC_vXformWorldToDevice(pdc, 1, (PPOINTL)(ppt), (PPOINTL)(ppt));
-#define IntDPtoLP(pdc, ppt, count) \
+#define IntDPtoLP(pdc, ppt, count) do { \
DC_vUpdateDeviceToWorld(pdc); \
- DC_vXformDeviceToWorld(pdc, count, (PPOINTL)(ppt), (PPOINTL)(ppt));
+ DC_vXformDeviceToWorld(pdc, count, (PPOINTL)(ppt), (PPOINTL)(ppt)); \
+ } while (0)
#define CoordDPtoLP(pdc, ppt) \
DC_vXformDeviceToWorld(pdc, 1, (PPOINTL)(ppt), (PPOINTL)(ppt));
PMATRIX pmx;
pmx = DC_pmxDeviceToWorld(pdc);
+ if (!MX_IsInvertible(pmx))
+ return;
+
XFORMOBJ_vInit(&xo, pmx);
XFORMOBJ_bApplyXform(&xo, XF_LTOL, cNumPoints, pptlDest, pptlSource);
}