16 #define ok_flt(x, y) \ 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;
99 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
100 set_xform(&xform2, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
108 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
109 set_xform(&xform2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
112 ok_xform(xform3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
116 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
117 set_xform(&xform2, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
120 ok_xform(xform3, 1.0, 0., 0., 1.0, 0., 0.);
124 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 20.0, -100.0);
125 set_xform(&xform2, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
127 ok_xform(xform3, 1.0, 0., 0., 1.0, 20.0, -100.0);
139 ok_xform(xform3, 2.0, 0., 0., 4.0, -20.0, -420.0);
145 ok_xform(xform3, -5.0, 0., 0., 2.0, -20.0, -420.0);
150 ok_xform(xform3, -5.0, 8.0, -1.0, 2.0, -20.0, -420.0);
155 ok_xform(xform3, 8.0, -2.0, 2.25, 0.0, -670.0, -340.0);
191 set_xform(&xform1, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
199 set_xform(&xform2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0);
204 set_xform(&xform1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0);
210 set_xform(&xform1, (
FLOAT)18446743500000000000.0, 0.0, 1.0, 0.0, 0.0, 0.0);
213 ok_flt(xform3.
eM11, 340282326356119260000000000000000000000.0);
215 xform1.
eM11 = (
FLOAT)18446745000000000000.0;
217 ok_flt(xform3.
eM11, 340282346638528860000000000000000000000.0);
219 xform1.
eM11 = (
FLOAT)18446746000000000000.0;
224 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
225 set_xform(&xform2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
245 XFORM xform1, xform2, xform3;
248 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
249 set_xform(&xform2, eInval, 0.0, 0.0, 0.0, 0.0, 0.0);
251 ok_xform(xform3, eOut, 0.0, 0.0, 0.0, 0.0, 0.0);
253 ok_xform(xform3, eOut, 0.0, 0.0, 0.0, 0.0, 0.0);
256 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
257 set_xform(&xform2, 0.0, eInval, 0.0, 0.0, 0.0, 0.0);
259 ok_xform(xform3, 0.0, eOut, 0.0, eOut, 0.0, 0.0);
261 ok_xform(xform3, eOut, eOut, 0.0, 0.0, 0.0, 0.0);
264 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
265 set_xform(&xform2, 0.0, 0.0, eInval, 0.0, 0.0, 0.0);
267 ok_xform(xform3, eOut, 0.0, eOut, 0.0, 0.0, 0.0);
269 ok_xform(xform3, 0.0, 0.0, eOut, eOut, 0.0, 0.0);
272 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
273 set_xform(&xform2, 0.0, 0.0, 0.0, eInval, 0.0, 0.0);
275 ok_xform(xform3, 0.0, 0.0, 0.0, eOut, 0.0, 0.0);
277 ok_xform(xform3, 0.0, 0.0, 0.0, eOut, 0.0, 0.0);
280 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
281 set_xform(&xform2, eInval, eInval, 0.0, 0.0, 0.0, 0.0);
283 ok_xform(xform3, eOut, eOut, eOut, eOut, 0.0, 0.0);
285 ok_xform(xform3, eOut, eOut, 0.0, 0.0, 0.0, 0.0);
288 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
289 set_xform(&xform2, eInval, 0.0, eInval, 0.0, 0.0, 0.0);
291 ok_xform(xform3, eOut, 0.0, eOut, 0.0, 0.0, 0.0);
293 ok_xform(xform3, eOut, eOut, eOut, eOut, 0.0, 0.0);
296 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
297 set_xform(&xform2, eInval, 0.0, 0.0, eInval, 0.0, 0.0);
299 ok_xform(xform3, eOut, 0.0, 0.0, eOut, 0.0, 0.0);
301 ok_xform(xform3, eOut, 0.0, 0.0, eOut, 0.0, 0.0);
304 set_xform(&xform1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
305 set_xform(&xform2, 0.0, eInval, eInval, 0.0, 0.0, 0.0);
307 ok_xform(xform3, eOut, eOut, eOut, eOut, 0.0, 0.0);
309 ok_xform(xform3, eOut, eOut, eOut, eOut, 0.0, 0.0);
DWORD WINAPI GetLastError(VOID)
#define ok_long(expression, result)
#define ok_int(expression, result)
BOOL WINAPI CombineTransform(_Out_ LPXFORM pxformResult, _In_ const XFORM *pxform1, _In_ const XFORM *pxform2)
double __cdecl fmax(double, double)
BOOL WINAPI IsWow64Process(IN HANDLE hProcess, OUT PBOOL Wow64Process)
double __cdecl fmin(double, double)
#define GetCurrentProcess()