22 ok((__x.l == __y.l) || (__x.l == 0), "Wrong value for " #x ", expected " #y " (%f), got %f\n", (double)(y), (double)(x)); \
24 ok(__x.l == __y.l, "Wrong value for " #x ", expected " #y " (%f), got %f\n", (double)(y), (double)(x)); \
28#define ok_xform(xform, m11, m12, m21, m22, dx, dy) \
29 ok_flt(xform.eM11, m11); \
30 ok_flt(xform.eM12, m12); \
31 ok_flt(xform.eM21, m21); \
32 ok_flt(xform.eM22, m22); \
33 ok_flt(xform.eDx, dx); \
34 ok_flt(xform.eDy, dy);
36#define set_xform(pxform, m11, m12, m21, m22, dx, dy) \
37 (pxform)->eM11 = m11; \
38 (pxform)->eM12 = m12; \
39 (pxform)->eM21 = m21; \
40 (pxform)->eM22 = m22; \
51 XFORM xform1, xform2, xform3;
72 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
73 set_xform(&xform2, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
74 set_xform(&xform3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
79 if (fmid ==
fmin)
break;
84 if (fmid ==
fmax)
break;
95 XFORM xform1, xform2, xform3;
109 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
110 set_xform(&xform2, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
118 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
119 set_xform(&xform2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
122 ok_xform(xform3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
126 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
127 set_xform(&xform2, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
130 ok_xform(xform3, 1.0, 0., 0., 1.0, 0., 0.);
134 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 20.0, -100.0);
135 set_xform(&xform2, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
137 ok_xform(xform3, 1.0, 0., 0., 1.0, 20.0, -100.0);
149 ok_xform(xform3, 2.0, 0., 0., 4.0, -20.0, -420.0);
155 ok_xform(xform3, -5.0, 0., 0., 2.0, -20.0, -420.0);
160 ok_xform(xform3, -5.0, 8.0, -1.0, 2.0, -20.0, -420.0);
165 ok_xform(xform3, 8.0, -2.0, 2.25, 0.0, -670.0, -340.0);
201 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
209 set_xform(&xform2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0);
214 set_xform(&xform1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0);
220 set_xform(&xform1, (
FLOAT)18446743500000000000.0, 0.0, 1.0, 0.0, 0.0, 0.0);
223 ok_flt(xform3.
eM11, 340282326356119260000000000000000000000.0);
225 xform1.
eM11 = (
FLOAT)18446745000000000000.0;
227 ok_flt(xform3.
eM11, 340282346638528860000000000000000000000.0);
229 xform1.
eM11 = (
FLOAT)18446746000000000000.0;
234 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
235 set_xform(&xform2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
255 XFORM xform1, xform2, xform3;
258 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
259 set_xform(&xform2, eInval, 0.0, 0.0, 0.0, 0.0, 0.0);
261 ok_xform(xform3, eOut, 0.0, 0.0, 0.0, 0.0, 0.0);
263 ok_xform(xform3, eOut, 0.0, 0.0, 0.0, 0.0, 0.0);
266 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
267 set_xform(&xform2, 0.0, eInval, 0.0, 0.0, 0.0, 0.0);
269 ok_xform(xform3, 0.0, eOut, 0.0, eOut, 0.0, 0.0);
271 ok_xform(xform3, eOut, eOut, 0.0, 0.0, 0.0, 0.0);
274 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
275 set_xform(&xform2, 0.0, 0.0, eInval, 0.0, 0.0, 0.0);
277 ok_xform(xform3, eOut, 0.0, eOut, 0.0, 0.0, 0.0);
279 ok_xform(xform3, 0.0, 0.0, eOut, eOut, 0.0, 0.0);
282 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
283 set_xform(&xform2, 0.0, 0.0, 0.0, eInval, 0.0, 0.0);
285 ok_xform(xform3, 0.0, 0.0, 0.0, eOut, 0.0, 0.0);
287 ok_xform(xform3, 0.0, 0.0, 0.0, eOut, 0.0, 0.0);
290 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
291 set_xform(&xform2, eInval, eInval, 0.0, 0.0, 0.0, 0.0);
293 ok_xform(xform3, eOut, eOut, eOut, eOut, 0.0, 0.0);
295 ok_xform(xform3, eOut, eOut, 0.0, 0.0, 0.0, 0.0);
298 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
299 set_xform(&xform2, eInval, 0.0, eInval, 0.0, 0.0, 0.0);
301 ok_xform(xform3, eOut, 0.0, eOut, 0.0, 0.0, 0.0);
303 ok_xform(xform3, eOut, eOut, eOut, eOut, 0.0, 0.0);
306 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
307 set_xform(&xform2, eInval, 0.0, 0.0, eInval, 0.0, 0.0);
309 ok_xform(xform3, eOut, 0.0, 0.0, eOut, 0.0, 0.0);
311 ok_xform(xform3, eOut, 0.0, 0.0, eOut, 0.0, 0.0);
314 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
315 set_xform(&xform2, 0.0, eInval, eInval, 0.0, 0.0, 0.0);
317 ok_xform(xform3, eOut, eOut, eOut, eOut, 0.0, 0.0);
319 ok_xform(xform3, eOut, eOut, eOut, eOut, 0.0, 0.0);
#define ok_long(expression, result)
#define ok_int(expression, result)
#define GetCurrentProcess()
double __cdecl fmin(double, double)
DWORD WINAPI GetLastError(void)
BOOL WINAPI CombineTransform(_Out_ LPXFORM pxformResult, _In_ const XFORM *pxform1, _In_ const XFORM *pxform2)