30 unsigned int diff =
x >
y ?
x -
y :
y -
x;
32 return diff <= max_diff;
96 for (
i = 0;
i < 4; ++
i)
98 for (
j = 0;
j < 4; ++
j)
108#define expect_vec2(expected, vector, ulps) expect_vec2_(__LINE__, expected, vector, ulps)
113 "Got unexpected vector {%.8e, %.8e}, expected {%.8e, %.8e}.\n",
117#define expect_vec3(expected, vector, ulps) expect_vec3_(__LINE__, expected, vector, ulps)
122 "Got unexpected vector {%.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e}.\n",
126#define expect_vec4(expected, vector, ulps) expect_vec4_(__LINE__, expected, vector, ulps)
131 "Got unexpected vector {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e}.\n",
135#define expect_color(expected, color, ulps) expect_color_(__LINE__, expected, color, ulps)
140 "Got unexpected color {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e}.\n",
144#define expect_plane(expected, plane, ulps) expect_plane_(__LINE__, expected, plane, ulps)
149 "Got unexpected plane {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e}.\n",
153#define expect_quaternion(expected, quaternion, ulps) expect_quaternion_(__LINE__, expected, quaternion, ulps)
159 "Got unexpected quaternion {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e}.\n",
160 quaternion->
x, quaternion->
y, quaternion->
z, quaternion->
w,
164#define expect_matrix(expected, matrix, ulps) expect_matrix_(__LINE__, expected, matrix, ulps)
169 "Got unexpected matrix {%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, "
170 "%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e}, "
171 "expected {%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, "
172 "%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e}.\n",
183#define expect_vec4_array(count, expected, vector, ulps) expect_vec4_array_(__LINE__, count, expected, vector, ulps)
194 "Got unexpected vector {%.8e, %.8e, %.8e, %.8e} at index %u, expected {%.8e, %.8e, %.8e, %.8e}.\n",
203 float m00,
float m01,
float m02,
float m03,
204 float m10,
float m11,
float m12,
float m13,
205 float m20,
float m21,
float m22,
float m23,
206 float m30,
float m31,
float m32,
float m33)
208 mat->m[0][0] = m00;
mat->m[0][1] = m01;
mat->m[0][2] = m02;
mat->m[0][3] = m03;
216 RECT r = {0, 0, 640, 480};
227 unsigned int adapter_ordinal;
242 behavior_flags, &present_parameters, &
device)))
247 behavior_flags, &present_parameters, &
device)))
250 behavior_flags = (behavior_flags
255 behavior_flags, &present_parameters, &
device)))
268 color1.
r = 0.6f; color1.
g = 0.55f; color1.
b = 0.23f; color1.
a = 0.82f;
269 color2.
r = 0.3f; color2.
g = 0.5f; color2.
b = 0.76f; color2.
a = 0.11f;
279 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
281 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
283 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
301 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
303 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
305 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
313 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
315 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
317 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
321 D3DXColorNegative(&got,&
color);
324 color1.
r = 0.2f; color1.
g = 1.75f; color1.
b = 0.41f; color1.
a = 0.93f;
326 D3DXColorNegative(&got,&color1);
329 color1.
r = 0.2f; color1.
g = -0.75f; color1.
b = 0.41f; color1.
a = 0.93f;
331 D3DXColorNegative(&got,&color1);
334 funcpointer = D3DXColorNegative(&got,
NULL);
335 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
336 funcpointer = D3DXColorNegative(
NULL,
NULL);
337 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
345 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
347 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
355 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
357 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
359 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
369 ok(
equal,
"Got unexpected Fresnel term %.8e.\n", fresnel);
376 float angle, determinant;
383 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
384 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
385 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
386 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
387 mat.m[0][0] = 10.0f;
mat.m[1][1] = 20.0f;
mat.m[2][2] = 30.0f;
388 mat.m[3][3] = -40.0f;
390 mat2.
m[0][0] = 1.0f; mat2.
m[1][0] = 2.0f; mat2.
m[2][0] = 3.0f;
391 mat2.
m[3][0] = 4.0f; mat2.
m[0][1] = 5.0f; mat2.
m[1][1] = 6.0f;
392 mat2.
m[2][1] = 7.0f; mat2.
m[3][1] = 8.0f; mat2.
m[0][2] = -8.0f;
393 mat2.
m[1][2] = -7.0f; mat2.
m[2][2] = -6.0f; mat2.
m[3][2] = -5.0f;
394 mat2.
m[0][3] = -4.0f; mat2.
m[1][3] = -3.0f; mat2.
m[2][3] = -2.0f;
395 mat2.
m[3][3] = -1.0f;
399 q.x = 1.0f;
q.y = -4.0f;
q.z =7.0f;
q.w = -11.0f;
400 r.x = 0.87f;
r.y = 0.65f;
r.z =0.43f;
r.w= 0.21f;
402 at.
x = -2.0f; at.
y = 13.0f; at.
z = -9.0f;
403 axis.
x = 1.0f; axis.
y = -3.0f; axis.
z = 7.0f;
404 eye.
x = 8.0f; eye.
y = -5.0f; eye.
z = 5.75f;
413 -459.239990f, -576.719971f, -263.440002f, 0.0f,
414 519.760010f, -352.440002f, -277.679993f, 0.0f,
415 363.119995f, -121.040001f, -117.479996f, 0.0f,
416 -1239.0f, 667.0f, 567.0f, 1.0f);
421 expectedmat.
m[3][0] = 1.0f; expectedmat.
m[3][1] = -3.0f; expectedmat.
m[3][2] = 7.0f; expectedmat.
m[3][3] = 1.0f;
425 expectedmat.
m[3][0] = -1240.0f; expectedmat.
m[3][1] = 670.0f; expectedmat.
m[3][2] = 560.0f; expectedmat.
m[3][3] = 1.0f;
429 expectedmat.
m[3][0] = 0.0f; expectedmat.
m[3][1] = 0.0f; expectedmat.
m[3][2] = 0.0f; expectedmat.
m[3][3] = 1.0f;
434 3.56f, 0.0f, 0.0f, 0.0f,
435 0.0f, 3.56f, 0.0f, 0.0f,
436 0.0f, 0.0f, 3.56f, 0.0f,
437 1.0f, -3.0f, 7.0f, 1.0f);
444 expectedmat.
m[3][0] = 0.0f; expectedmat.
m[3][1] = 0.0f; expectedmat.
m[3][2] = 0.0f; expectedmat.
m[3][3] = 1.0f;
454 ok(
equal,
"Got unexpected determinant %.8e.\n", determinant);
458 16067.0f/73944.0f, -10165.0f/147888.0f, -2729.0f/147888.0f, -1631.0f/49296.0f,
459 -565.0f/36972.0f, 2723.0f/73944.0f, -1073.0f/73944.0f, 289.0f/24648.0f,
460 -389.0f/2054.0f, 337.0f/4108.0f, 181.0f/4108.0f, 317.0f/4108.0f,
461 163.0f/5688.0f, -101.0f/11376.0f, -73.0f/11376.0f, -127.0f/3792.0f);
465 ok(
equal,
"Got unexpected determinant %.8e.\n", determinant);
468 ok(!
ret,
"Unexpected return value %p.\n",
ret);
471 "Unexpected determinant %.8e.\n", determinant);
475 memset(&mat3, 0,
sizeof(mat3));
476 got = D3DXMatrixIsIdentity(&mat3);
478 D3DXMatrixIdentity(&mat3);
480 got = D3DXMatrixIsIdentity(&mat3);
482 mat3.
m[0][0] = 0.000009f;
484 got = D3DXMatrixIsIdentity(&mat3);
488 got = D3DXMatrixIsIdentity(
NULL);
493 -0.82246518f, -0.40948939f, -0.39480308f, 0.0f,
494 -0.55585691f, 0.43128574f, 0.71064550f, 0.0f,
495 -0.12072885f, 0.80393475f, -0.58233452f, 0.0f,
496 4.4946337f, 0.80971903f, 10.060076f, 1.0f);
502 0.82246518f, -0.40948939f, 0.39480308f, 0.0f,
503 0.55585691f, 0.43128574f, -0.71064550f, 0.0f,
504 0.12072885f, 0.80393475f, 0.58233452f, 0.0f,
505 -4.4946337f, 0.80971903f, -10.060076f, 1.0f);
511 73.0f, 193.0f, -197.0f, -77.0f,
512 231.0f, 551.0f, -489.0f, -169.0f,
513 239.0f, 523.0f, -400.0f, -116.0f,
514 -164.0f, -320.0f, 187.0f, 31.0f);
520 73.0f, 231.0f, 239.0f, -164.0f,
521 193.0f, 551.0f, 523.0f, -320.0f,
522 -197.0f, -489.0f, -400.0f, 187.0f,
523 -77.0f, -169.0f, -116.0f, 31.0f);
529 0.8f, 0.0f, 0.0f, 0.0f,
530 0.0f, 0.27027027f, 0.0f, 0.0f,
531 0.0f, 0.0f, -0.15151515f, 0.0f,
532 0.0f, 0.0f, -0.48484848f, 1.0f);
538 3.6363636f, 0.0f, 0.0f, 0.0f,
539 0.0f, 0.18018018f, 0.0f, 0.0f,
540 0.0f, 0.0f, -0.045662100f, 0.0f,
541 -1.7272727f, -0.56756757f, 0.42465753f, 1.0f);
547 3.6363636f, 0.0f, 0.0f, 0.0f,
548 0.0f, 0.18018018f, 0.0f, 0.0f,
549 0.0f, 0.0f, 0.045662100f, 0.0f,
550 -1.7272727f, -0.56756757f, 0.42465753f, 1.0f);
556 0.8f, 0.0f, 0.0f, 0.0f,
557 0.0f, 0.27027027f, 0.0f, 0.0f,
558 0.0f, 0.0f, 0.15151515f, 0.0f,
559 0.0f, 0.0f, -0.48484848f, 1.0f);
565 13.288858f, 0.0f, 0.0f, 0.0f,
566 0.0f, 9.9666444f, 0.0f, 0.0f,
567 0.0f, 0.0f, 0.78378378f, 1.0f,
568 0.0f, 0.0f, 1.8810811f, 0.0f);
574 13.288858f, 0.0f, 0.0f, 0.0f,
575 0.0f, 9.9666444f, 0.0f, 0.0f,
576 0.0f, 0.0f, -0.78378378f, -1.0f,
577 0.0f, 0.0f, 1.8810811f, 0.0f);
583 -24.0f, 0.0f, 0.0f, 0.0f,
584 0.0f, -6.4f, 0.0f, 0.0f,
585 0.0f, 0.0f, 0.78378378f, 1.0f,
586 0.0f, 0.0f, 1.8810811f, 0.0f);
592 11.636364f, 0.0f, 0.0f, 0.0f,
593 0.0f, 0.57657658f, 0.0f, 0.0f,
594 -1.7272727f, -0.56756757f, 0.84079602f, 1.0f,
595 0.0f, 0.0f, -2.6905473f, 0.0f);
601 11.636364f, 0.0f, 0.0f, 0.0f,
602 0.0f, 0.57657658f, 0.0f, 0.0f,
603 1.7272727f, 0.56756757f, -0.84079602f, -1.0f,
604 0.0f, 0.0f, -2.6905473f, 0.0f);
610 -24.0f, -0.0f, 0.0f, 0.0f,
611 0.0f, -6.4f, 0.0f, 0.0f,
612 0.0f, 0.0f, -0.78378378f, -1.0f,
613 0.0f, 0.0f, 1.8810811f, 0.0f);
619 0.30769235f, -0.23076922f, 0.92307687f, 0.0f,
620 -0.23076922, 0.92307693f, 0.30769232f, 0.0f,
621 0.92307687f, 0.30769232f, -0.23076922f, 0.0f,
622 1.6153846f, 0.53846157f, -2.1538463f, 1.0f);
628 0.50847453f, 0.76380461f, 0.39756277f, 0.0f,
629 -0.81465209f, 0.57627118f, -0.065219201f, 0.0f,
630 -0.27891868f, -0.29071301f, 0.91525424f, 0.0f,
631 0.0f, 0.0f, 0.0f, 1.0f);
637 -129.0f, -162.0f, -74.0f, 0.0f,
638 146.0f, -99.0f, -78.0f, 0.0f,
639 102.0f, -34.0f, -33.0f, 0.0f,
640 0.0f, 0.0f, 0.0f, 1.0f);
646 1.0f, 0.0f, 0.0f, 0.0f,
647 0.0f, 0.5f,
sqrt(3.0f)/2.0f, 0.0f,
648 0.0f, -
sqrt(3.0f)/2.0f, 0.5f, 0.0f,
649 0.0f, 0.0f, 0.0f, 1.0f);
655 0.5f, 0.0f, -
sqrt(3.0f)/2.0f, 0.0f,
656 0.0f, 1.0f, 0.0f, 0.0f,
657 sqrt(3.0f)/2.0f, 0.0f, 0.5f, 0.0f,
658 0.0f, 0.0f, 0.0f, 1.0f);
664 0.88877726f, 0.091874748f, -0.44903678f, 0.0f,
665 0.35171318f, 0.49148652f, 0.79670501f, 0.0f,
666 0.29389259f, -0.86602545f, 0.40450847f, 0.0f,
667 0.0f, 0.0f, 0.0f, 1.0f);
673 0.5f,
sqrt(3.0f)/2.0f, 0.0f, 0.0f,
674 -
sqrt(3.0f)/2.0f, 0.5f, 0.0f, 0.0f,
675 0.0f, 0.0f, 1.0f, 0.0f,
676 0.0f, 0.0f, 0.0f, 1.0f);
682 0.69f, 0.0f, 0.0f, 0.0f,
683 0.0f, 0.53f, 0.0f, 0.0f,
684 0.0f, 0.0f, 4.11f, 0.0f,
685 0.0f, 0.0f, 0.0f, 1.0f);
691 12.786773f, 5.0009613f, 4.3537784f, 3.7065949f,
692 1.8827150f, 8.8056154f, 1.4512594f, 1.2355317f,
693 -7.5308599f, -6.6679487f, 1.3335901f, -4.9421268f,
694 -13.179006f, -11.668910f, -10.158816f, -1.5100943f);
700 1.0f, 0.0f, 0.0f, 0.0f,
701 0.0f, 1.0f, 0.0f, 0.0f,
702 0.0f, 0.0f, 1.0f, 0.0f,
703 0.0f, 0.0f, 0.0f, 1.0f);
708 1.0f, 0.0f, 0.0f, 0.0f,
709 0.0f, 1.0f, 0.0f, 0.0f,
710 0.0f, 0.0f, 1.0f, 0.0f,
711 9.7f, -8.6f, 1.3f, 1.0f);
716 -0.2148f, 1.3116f, 0.4752f, 0.0f,
717 0.9504f, -0.8836f, 0.9244f, 0.0f,
718 1.0212f, 0.1936f, -1.3588f, 0.0f,
719 0.0f, 0.0f, 0.0f, 1.0f);
724 1.0f, 0.0f, 0.0f, 0.0f,
725 0.0f, 1.0f, 0.0f, 0.0f,
726 0.0f, 0.0f, 1.0f, 0.0f,
727 0.0f, 0.0f, 0.0f, 1.0f);
732 1.0f, 0.0f, 0.0f, 0.0f,
733 0.0f, -3.0f, 0.0f, 0.0f,
734 0.0f, 0.0f, 7.0f, 0.0f,
735 0.0f, 0.0f, 0.0f, 1.0f);
740 1.0f, 0.0f, 0.0f, 0.0f,
741 0.0f, 1.0f, 0.0f, 0.0f,
742 0.0f, 0.0f, 1.0f, 0.0f,
743 0.0f, 0.0f, 0.0f, 1.0f);
748 1.0f, 0.0f, 0.0f, 0.0f,
749 0.0f, 1.0f, 0.0f, 0.0f,
750 0.0f, 0.0f, 1.0f, 0.0f,
751 0.0f, 0.0f, 0.0f, 1.0f);
756 -0.2148f, 1.3116f, 0.4752f, 0.0f,
757 0.9504f, -0.8836f, 0.9244f, 0.0f,
758 1.0212f, 0.1936f, -1.3588f, 0.0f,
759 9.7f, -8.6f, 1.3f, 1.0f);
764 1.0f, 0.0f, 0.0f, 0.0f,
765 0.0f, 1.0f, 0.0f, 0.0f,
766 0.0f, 0.0f, 1.0f, 0.0f,
767 9.7f, -8.6f, 1.3f, 1.0f);
772 1.0f, 0.0f, 0.0f, 0.0f,
773 0.0f, -3.0f, 0.0f, 0.0f,
774 0.0f, 0.0f, 7.0f, 0.0f,
775 9.7f, -8.6f, 1.3f, 1.0f);
780 1.0f, 0.0f, 0.0f, 0.0f,
781 0.0f, 1.0f, 0.0f, 0.0f,
782 0.0f, 0.0f, 1.0f, 0.0f,
783 9.7f, -8.6f, 1.3f, 1.0f);
788 1.0f, 0.0f, 0.0f, 0.0f,
789 0.0f, 1.0f, 0.0f, 0.0f,
790 0.0f, 0.0f, 1.0f, 0.0f,
791 9.7f, -8.6f, 1.3f, 1.0f);
796 -0.2148f, 1.3116f, 0.4752f, 0.0f,
797 0.9504f, -0.8836f, 0.9244f, 0.0f,
798 1.0212f, 0.1936f, -1.3588f, 0.0f,
799 8.5985f, -21.024f, 14.383499, 1.0f);
804 -0.2148f, 1.3116f, 0.4752f, 0.0f,
805 -2.8512f, 2.6508f, -2.7732f, 0.0f,
806 7.148399f, 1.3552f, -9.5116f, 0.0f,
807 0.0f, 0.0f, 0.0f, 1.0f);
812 -0.2148f, 1.3116f, 0.4752f, 0.0f,
813 0.9504f, -0.8836f, 0.9244f, 0.0f,
814 1.0212f, 0.1936f, -1.3588f, 0.0f,
815 0.0f, 0.0f, 0.0f, 1.0f);
820 -0.2148f, 1.3116f, 0.4752f, 0.0f,
821 0.9504f, -0.8836f, 0.9244f, 0.0f,
822 1.0212f, 0.1936f, -1.3588f, 0.0f,
823 0.0f, 0.0f, 0.0f, 1.0f);
828 1.0f, 0.0f, 0.0f, 0.0f,
829 0.0f, -3.0f, 0.0f, 0.0f,
830 0.0f, 0.0f, 7.0f, 0.0f,
831 0.0f, 0.0f, 0.0f, 1.0f);
836 1.0f, 0.0f, 0.0f, 0.0f,
837 0.0f, 1.0f, 0.0f, 0.0f,
838 0.0f, 0.0f, 1.0f, 0.0f,
839 0.0f, 0.0f, 0.0f, 1.0f);
844 1.0f, 0.0f, 0.0f, 0.0f,
845 0.0f, 1.0f, 0.0f, 0.0f,
846 0.0f, 0.0f, 1.0f, 0.0f,
847 0.0f, 0.0f, 0.0f, 1.0f);
852 25521.0f, 39984.0f, 20148.0f, 0.0f,
853 39984.0f, 4933.0f, -3324.0f, 0.0f,
854 20148.0f, -3324.0f, -5153.0f, 0.0f,
855 0.0f, 0.0f, 0.0f, 1.0f);
860 1.0f, 0.0f, 0.0f, 0.0f,
861 0.0f, -3.0f, 0.0f, 0.0f,
862 0.0f, 0.0f, 7.0f, 0.0f,
863 0.0f, 52.0f, 54.0f, 1.0f);
868 1.0f, 0.0f, 0.0f, 0.0f,
869 0.0f, 1.0f, 0.0f, 0.0f,
870 0.0f, 0.0f, 1.0f, 0.0f,
871 0.0f, 0.0f, 0.0f, 1.0f);
876 -0.2148f, 1.3116f, 0.4752f, 0.0f,
877 0.9504f, -0.8836f, 0.9244f, 0.0f,
878 1.0212f, 0.1936f, -1.3588f, 0.0f,
879 18.2985f, -29.624001f, 15.683499f, 1.0f);
884 -0.2148f, 1.3116f, 0.4752f, 0.0f,
885 -2.8512f, 2.6508f, -2.7732f, 0.0f,
886 7.148399f, 1.3552f, -9.5116f, 0.0f,
887 9.7f, -8.6f, 1.3f, 1.0f);
892 -0.2148f, 1.3116f, 0.4752f, 0.0f,
893 0.9504f, -0.8836f, 0.9244f, 0.0f,
894 1.0212f, 0.1936f, -1.3588f, 0.0f,
895 9.7f, -8.6f, 1.3f, 1.0f);
900 -0.2148f, 1.3116f, 0.4752f, 0.0f,
901 0.9504f, -0.8836f, 0.9244f, 0.0f,
902 1.0212f, 0.1936f, -1.3588f, 0.0f,
903 9.7f, -8.6f, 1.3f, 1.0f);
908 1.0f, 0.0f, 0.0f, 0.0f,
909 0.0f, -3.0f, 0.0f, 0.0f,
910 0.0f, 0.0f, 7.0f, 0.0f,
911 9.7f, -8.6f, 1.3f, 1.0f);
916 1.0f, 0.0f, 0.0f, 0.0f,
917 0.0f, 1.0f, 0.0f, 0.0f,
918 0.0f, 0.0f, 1.0f, 0.0f,
919 9.7f, -8.6f, 1.3f, 1.0f);
924 1.0f, 0.0f, 0.0f, 0.0f,
925 0.0f, 1.0f, 0.0f, 0.0f,
926 0.0f, 0.0f, 1.0f, 0.0f,
927 9.7f, -8.6f, 1.3f, 1.0f);
932 25521.0f, 39984.0f, 20148.0f, 0.0f,
933 39984.0f, 4933.0f, -3324.0f, 0.0f,
934 20148.0f, -3324.0f, -5153.0f, 0.0f,
935 9.7f, -8.6f, 1.3f, 1.0f);
940 1.0f, 0.0f, 0.0f, 0.0f,
941 0.0f, -3.0f, 0.0f, 0.0f,
942 0.0f, 0.0f, 7.0f, 0.0f,
943 9.7f, 43.400002f, 55.299999f, 1.0f);
948 1.0f, 0.0f, 0.0f, 0.0f,
949 0.0f, 1.0f, 0.0f, 0.0f,
950 0.0f, 0.0f, 1.0f, 0.0f,
951 9.7f, -8.6f, 1.3f, 1.0f);
956 -0.2148f, 1.3116f, 0.4752f, 0.0f,
957 -2.8512f, 2.6508f, -2.7732f, 0.0f,
958 7.148399f, 1.3552f, -9.5116f, 0.0f,
959 8.5985f, -21.024f, 14.383499, 1.0f);
964 -0.2148f, 1.3116f, 0.4752f, 0.0f,
965 0.9504f, -0.8836f, 0.9244f, 0.0f,
966 1.0212f, 0.1936f, -1.3588f, 0.0f,
967 8.5985f, -21.024f, 14.383499, 1.0f);
972 -0.2148f, 1.3116f, 0.4752f, 0.0f,
973 0.9504f, -0.8836f, 0.9244f, 0.0f,
974 1.0212f, 0.1936f, -1.3588f, 0.0f,
975 8.5985f, -21.024f, 14.383499, 1.0f);
980 53094.015625f, 2044.133789f, 21711.687500f, 0.0f,
981 -7294.705078f, 47440.683594f, 28077.113281, 0.0f,
982 -12749.161133f, 28365.580078f, 13503.520508f, 0.0f,
983 0.0f, 0.0f, 0.0f, 1.0f);
988 -0.2148f, 1.3116f, 0.4752f, 0.0f,
989 -2.8512f, 2.6508f, -2.7732f, 0.0f,
990 7.148399f, 1.3552f, -9.5116f, 0.0f,
991 104.565598f, -35.492798f, -25.306400f, 1.0f);
996 -0.2148f, 1.3116f, 0.4752f, 0.0f,
997 0.9504f, -0.8836f, 0.9244f, 0.0f,
998 1.0212f, 0.1936f, -1.3588f, 0.0f,
999 0.0f, 0.0f, 0.0f, 1.0f);
1004 25521.0f, 39984.0f, 20148.0f, 0.0f,
1005 39984.0f, 4933.0f, -3324.0f, 0.0f,
1006 20148.0f, -3324.0f, -5153.0f, 0.0f,
1007 0.0f, 0.0f, 0.0f, 1.0f);
1012 1.0f, 0.0f, 0.0f, 0.0f,
1013 0.0f, -3.0f, 0.0f, 0.0f,
1014 0.0f, 0.0f, 7.0f, 0.0f,
1015 0.0f, 52.0f, 54.0f, 1.0f);
1020 1.0f, 0.0f, 0.0f, 0.0f,
1021 0.0f, 1.0f, 0.0f, 0.0f,
1022 0.0f, 0.0f, 1.0f, 0.0f,
1023 0.0f, 0.0f, 0.0f, 1.0f);
1028 25521.0f, 39984.0f, 20148.0f, 0.0f,
1029 39984.0f, 4933.0f, -3324.0f, 0.0f,
1030 20148.0f, -3324.0f, -5153.0f, 0.0f,
1031 -287420.0f, -14064.0f, 37122.0f, 1.0f);
1036 -0.2148f, 1.3116f, 0.4752f, 0.0f,
1037 -2.8512f, 2.6508f, -2.7732f, 0.0f,
1038 7.148399f, 1.3552f, -9.5116f, 0.0f,
1039 18.2985f, -29.624001f, 15.683499f, 1.0f);
1044 -0.2148f, 1.3116f, 0.4752f, 0.0f,
1045 0.9504f, -0.8836f, 0.9244f, 0.0f,
1046 1.0212f, 0.1936f, -1.3588f, 0.0f,
1047 18.2985f, -29.624001f, 15.683499f, 1.0f);
1052 -0.2148f, 1.3116f, 0.4752f, 0.0f,
1053 0.9504f, -0.8836f, 0.9244f, 0.0f,
1054 1.0212f, 0.1936f, -1.3588f, 0.0f,
1055 18.2985f, -29.624001f, 15.683499f, 1.0f);
1060 53094.015625f, 2044.133789f, 21711.687500f, 0.0f,
1061 -7294.705078f, 47440.683594f, 28077.113281, 0.0f,
1062 -12749.161133f, 28365.580078f, 13503.520508f, 0.0f,
1063 9.7f, -8.6f, 1.3f, 1.0f);
1068 -0.2148f, 1.3116f, 0.4752f, 0.0f,
1069 -2.8512f, 2.6508f, -2.7732f, 0.0f,
1070 7.148399f, 1.3552f, -9.5116f, 0.0f,
1071 114.265594f, -44.092796f, -24.006401f, 1.0f);
1076 -0.2148f, 1.3116f, 0.4752f, 0.0f,
1077 0.9504f, -0.8836f, 0.9244f, 0.0f,
1078 1.0212f, 0.1936f, -1.3588f, 0.0f,
1079 9.7f, -8.6f, 1.3f, 1.0f);
1084 25521.0f, 39984.0f, 20148.0f, 0.0f,
1085 39984.0f, 4933.0f, -3324.0f, 0.0f,
1086 20148.0f, -3324.0f, -5153.0f, 0.0f,
1087 9.7f, -8.6f, 1.3f, 1.0f);
1092 1.0f, 0.0f, 0.0f, 0.0f,
1093 0.0f, -3.0f, 0.0f, 0.0f,
1094 0.0f, 0.0f, 7.0f, 0.0f,
1095 9.7f, 43.400002f, 55.299999f, 1.0f);
1100 1.0f, 0.0f, 0.0f, 0.0f,
1101 0.0f, 1.0f, 0.0f, 0.0f,
1102 0.0f, 0.0f, 1.0f, 0.0f,
1103 9.7f, -8.6f, 1.3f, 1.0f);
1108 25521.0f, 39984.0f, 20148.0f, 0.0f,
1109 39984.0f, 4933.0f, -3324.0f, 0.0f,
1110 20148.0f, -3324.0f, -5153.0f, 0.0f,
1111 -287410.3125f, -14072.599609f, 37123.300781f, 1.0f);
1116 53094.015625f, 2044.133789f, 21711.687500f, 0.0f,
1117 -7294.705078f, 47440.683594f, 28077.113281, 0.0f,
1118 -12749.161133f, 28365.580078f, 13503.520508f, 0.0f,
1119 8.598499f, -21.024f, 14.383499f, 1.0f);
1124 -0.2148f, 1.3116f, 0.4752f, 0.0f,
1125 -2.8512f, 2.6508f, -2.7732f, 0.0f,
1126 7.148399f, 1.3552f, -9.5116f, 0.0f,
1127 113.164093f, -56.5168f, -10.922897f, 1.0f);
1132 -0.2148f, 1.3116f, 0.4752f, 0.0f,
1133 0.9504f, -0.8836f, 0.9244f, 0.0f,
1134 1.0212f, 0.1936f, -1.3588f, 0.0f,
1135 8.5985f, -21.024f, 14.383499, 1.0f);
1140 53094.015625f, 2044.133789f, 21711.687500f, 0.0f,
1141 -7294.705078f, 47440.683594f, 28077.113281, 0.0f,
1142 -12749.161133f, 28365.580078f, 13503.520508f, 0.0f,
1143 86280.34375f, -357366.3125f, -200024.125f, 1.0f);
1148 25521.0f, 39984.0f, 20148.0f, 0.0f,
1149 39984.0f, 4933.0f, -3324.0f, 0.0f,
1150 20148.0f, -3324.0f, -5153.0f, 0.0f,
1151 -287410.3125f, -14064.0f, 37122.0f, 1.0f);
1156 53094.015625f, 2044.133789f, 21711.687500f, 0.0f,
1157 -7294.705078f, 47440.683594f, 28077.113281, 0.0f,
1158 -12749.161133f, 28365.580078f, 13503.520508f, 0.0f,
1159 86280.34375f, -357366.3125f, -200009.75f, 1.0f);
1164 25521.0f, 39984.0f, 20148.0f, 0.0f,
1165 39984.0f, 4933.0f, -3324.0f, 0.0f,
1166 20148.0f, -3324.0f, -5153.0f, 0.0f,
1167 -287410.3125f, -14072.599609f, 37123.300781f, 1.0f);
1172 53094.015625f, 2044.133789f, 21711.687500f, 0.0f,
1173 -7294.705078f, 47440.683594f, 28077.113281, 0.0f,
1174 -12749.161133f, 28365.580078f, 13503.520508f, 0.0f,
1175 86290.046875f, -357374.90625f, -200022.828125f, 1.0f);
1180 -0.21480007f, 1.3116000f, 0.47520003f, 0.0f,
1181 0.95040143f, -0.88360137f, 0.92439979f, 0.0f,
1182 1.0212044f, 0.19359307f, -1.3588026f, 0.0f,
1183 18.298532f, -29.624001f, 15.683499f, 1.0f);
1188 -0.2148f, 1.3116f, 0.4752f, 0.0f,
1189 -2.8512f, 2.6508f, -2.7732f, 0.0f,
1190 7.148399f, 1.3552f, -9.5116f, 0.0f,
1191 122.86409f, -65.116798f, -9.622897f, 1.0f);
1196 53094.015625f, 2044.133789f, 21711.687500f, 0.0f,
1197 -7294.705078f, 47440.683594f, 28077.113281, 0.0f,
1198 -12749.161133f, 28365.580078f, 13503.520508f, 0.0f,
1199 18.2985f, -29.624001f, 15.683499f, 1.0f);
1203 q.x = 1.0f;
q.y = 1.0f;
q.z = 1.0f;
q.w = 1.0f;
1204 axis.
x = 1.0f; axis.
y = 1.0f; axis.
z = 2.0f;
1207 41.0f, -12.0f, -24.0f, 0.0f,
1208 -12.0f, 25.0f, -12.0f, 0.0f,
1209 -24.0f, -12.0f, 34.0f, 0.0f,
1210 0.0f, 0.0f, 0.0f, 1.0f);
1214 q.x = 1.0f;
q.y = 1.0f;
q.z = 1.0f;
q.w = 1.0f;
1215 axis.
x = 1.0f; axis.
y = 1.0f; axis.
z = 3.0f;
1218 57.0f, -12.0f, -36.0f, 0.0f,
1219 -12.0f, 25.0f, -12.0f, 0.0f,
1220 -36.0f, -12.0f, 43.0f, 0.0f,
1221 0.0f, 0.0f, 0.0f, 1.0f);
1225 q.x = 1.0f;
q.y = 1.0f;
q.z = 1.0f;
q.w = 0.0f;
1226 axis.
x = 1.0f; axis.
y = 1.0f; axis.
z = 3.0f;
1229 25.0f, 0.0f, -20.0f, 0.0f,
1230 0.0f, 25.0f, -20.0f, 0.0f,
1231 -20.0f, -20.0f, 35.0f, 0.0f,
1232 0.0f, 0.0f, 0.0f, 1.0f);
1236 q.x = 1.0f;
q.y = 1.0f;
q.z = 0.0f;
q.w = 0.0f;
1237 axis.
x = 1.0f; axis.
y = 1.0f; axis.
z = 3.0f;
1240 5.0f, -4.0f, 0.0f, 0.0f,
1241 -4.0f, 5.0f, 0.0f, 0.0f,
1242 0.0f, 0.0f, 27.0f, 0.0f,
1243 0.0f, 0.0f, 0.0f, 1.0f);
1247 q.x = 1.0f;
q.y = 0.0f;
q.z = 0.0f;
q.w = 0.0f;
1248 axis.
x = 5.0f; axis.
y = 2.0f; axis.
z = 1.0f;
1251 5.0f, 0.0f, 0.0f, 0.0f,
1252 0.0f, 2.0f, 0.0f, 0.0f,
1253 0.0f, 0.0f, 1.0f, 0.0f,
1254 0.0f, 0.0f, 0.0f, 1.0f);
1258 q.x = 1.0f;
q.y = 0.0f;
q.z = 0.0f;
q.w = 0.0f;
1259 axis.
x = 1.0f; axis.
y = 4.0f; axis.
z = 1.0f;
1262 1.0f, 0.0f, 0.0f, 0.0f,
1263 0.0f, 4.0f, 0.0f, 0.0f,
1264 0.0f, 0.0f, 1.0f, 0.0f,
1265 0.0f, 0.0f, 0.0f, 1.0f);
1269 q.x = 0.0f;
q.y = 1.0f;
q.z = 0.0f;
q.w = 0.0f;
1270 axis.
x = 1.0f; axis.
y = 4.0f; axis.
z = 1.0f;
1273 1.0f, 0.0f, 0.0f, 0.0f,
1274 0.0f, 4.0f, 0.0f, 0.0f,
1275 0.0f, 0.0f, 1.0f, 0.0f,
1276 0.0f, 0.0f, 0.0f, 1.0f);
1280 q.x = 1.0f;
q.y = 0.0f;
q.z = 0.0f;
q.w = 1.0f;
1281 axis.
x = 1.0f; axis.
y = 4.0f; axis.
z = 1.0f;
1284 1.0f, 0.0f, 0.0f, 0.0f,
1285 0.0f, 8.0f, -6.0f, 0.0f,
1286 0.0f, -6.0f, 17.0f, 0.0f,
1287 0.0f, 0.0f, 0.0f, 1.0f);
1291 q.x = 1.0f;
q.y = 0.0f;
q.z = 0.0f;
q.w = 1.0f;
1292 axis.
x = 0.0f; axis.
y = 4.0f; axis.
z = 0.0f;
1295 0.0f, 0.0f, 0.0f, 0.0f,
1296 0.0f, 4.0f, -8.0f, 0.0f,
1297 0.0f, -8.0f, 16.0f, 0.0f,
1298 0.0f, 0.0f, 0.0f, 1.0f);
1302 q.x = 0.0f;
q.y = 1.0f;
q.z = 0.0f;
q.w = 1.0f;
1303 axis.
x = 1.0f; axis.
y = 4.0f; axis.
z = 1.0f;
1306 5.0f, 0.0f, 0.0f, 0.0f,
1307 0.0f, 4.0f, 0.0f, 0.0f,
1308 0.0f, 0.0f, 5.0f, 0.0f,
1309 0.0f, 0.0f, 0.0f, 1.0f);
1313 q.x = 1.0f;
q.y = 0.0f;
q.z = 0.0f;
q.w = 0.0f;
1314 axis.
x = 1.0f; axis.
y = 1.0f; axis.
z = 3.0f;
1317 1.0f, 0.0f, 0.0f, 0.0f,
1318 0.0f, 1.0f, 0.0f, 0.0f,
1319 0.0f, 0.0f, 3.0f, 0.0f,
1320 0.0f, 0.0f, 0.0f, 1.0f);
1324 q.x = 11.0f;
q.y = 13.0f;
q.z = 15.0f;
q.w = 17.0f;
1325 axis.
x = 3.0f; axis.
y = 3.0f; axis.
z = 3.0f;
1328 3796587.0f, -1377948.0f, -1589940.0f, 0.0f,
1329 -1377948.0f, 3334059.0f, -1879020.0f, 0.0f,
1330 -1589940.0f, -1879020.0f, 2794443.0f, 0.0f,
1331 0.0f, 0.0f, 0.0f, 1.0f);
1335 q.x = 11.0f;
q.y = 13.0f;
q.z = 15.0f;
q.w = 17.0f;
1336 axis.
x = 1.0f; axis.
y = 1.0f; axis.
z = 1.0f;
1339 1265529.0f, -459316.0f, -529980.0f, 0.0f,
1340 -459316.0f, 1111353.0f, -626340.0f, 0.0f,
1341 -529980.0f, -626340.0f, 931481.0f, 0.0f,
1342 0.0f, 0.0f, 0.0f, 1.0f);
1346 q.x = 11.0f;
q.y = 13.0f;
q.z = 15.0f;
q.w = 17.0f;
1347 axis.
x = 1.0f; axis.
y = 1.0f; axis.
z = 3.0f;
1350 2457497.0f, -434612.0f, -1423956.0f, 0.0f,
1351 -434612.0f, 1111865.0f, -644868.0f, 0.0f,
1352 -1423956.0f, -644868.0f, 1601963.0f, 0.0f,
1353 0.0f, 0.0f, 0.0f, 1.0f);
1357 q.x = 11.0f;
q.y = 13.0f;
q.z = 15.0f;
q.w = 17.0f;
1358 axis.
x = 0.0f; axis.
y = 0.0f; axis.
z = 3.0f;
1361 1787952.0f, 37056.0f, -1340964.0f, 0.0f,
1362 37056.0f, 768.0f, -27792.0f, 0.0f,
1363 -1340964.0f, -27792.0f, 1005723.0f, 0.0f,
1364 0.0f, 0.0f, 0.0f, 1.0f);
1368 q.x = 11.0f;
q.y = 13.0f;
q.z = 15.0f;
q.w = 17.0f;
1369 axis.
x = 0.0f; axis.
y = 0.0f; axis.
z = 1.0f;
1372 595984.0f, 12352.0f, -446988.0f, 0.0f,
1373 12352.0f, 256.0f, -9264.0f, 0.0f,
1374 -446988.0f, -9264.0f, 335241.0f, 0.0f,
1375 0.0f, 0.0f, 0.0f, 1.0f);
1379 q.x = 11.0f;
q.y = 13.0f;
q.z = 15.0f;
q.w = 17.0f;
1380 axis.
x = 0.0f; axis.
y = 3.0f; axis.
z = 0.0f;
1383 150528.0f, 464352.0f, -513408.0f, 0.0f,
1384 464352.0f, 1432443.0f, -1583772.0f, 0.0f,
1385 -513408.0f, -1583772.0f, 1751088.0f, 0.0f,
1386 0.0f, 0.0f, 0.0f, 1.0f);
1390 q.x = 11.0f;
q.y = 13.0f;
q.z = 15.0f;
q.w = 17.0f;
1391 axis.
x = 0.0f; axis.
y = 1.0f; axis.
z = 0.0f;
1394 50176.0f, 154784.0f, -171136.0f, 0.0f,
1395 154784.0f, 477481.0f, -527924.0f, 0.0f,
1396 -171136.0f, -527924.0f, 583696.0f, 0.0f,
1397 0.0f, 0.0f, 0.0f, 1.0f);
1401 q.x = 11.0f;
q.y = 13.0f;
q.z = 15.0f;
q.w = 17.0f;
1402 axis.
x = 1.0f; axis.
y = 0.0f; axis.
z = 0.0f;
1405 619369.0f, -626452.0f, 88144.0f, 0.0f,
1406 -626452.0f, 633616.0f, -89152.0f, 0.0f,
1407 88144.0f, -89152, 12544.0f, 0.0f,
1408 0.0f, 0.0f, 0.0f, 1.0f);
1414 1.0f, 0.0f, 0.0f, 0.0f,
1415 0.0f, 1.0f, 0.0f, 0.0f,
1416 0.0f, 0.0f, 1.0f, 0.0f,
1417 0.69f, 0.53f, 4.11f, 1.0f);
1423 10.0f, 11.0f, 19.0f, 2.0f,
1424 5.0f, 20.0f, -21.0f, 3.0f,
1425 7.0f, 16.0f, 30.f, -4.0f,
1426 8.0f, 33.0f, 43.0f, -40.0f);
1440 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1441 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1442 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1443 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1444 mat.m[0][0] = 10.0f;
mat.m[1][1] = 20.0f;
mat.m[2][2] = 30.0f;
1445 mat.m[3][3] = -40.0f;
1456 got = D3DXPlaneDot(
NULL, &
vec);
1464 got = D3DXPlaneDotCoord(&
plane, &
vec);
1467 got = D3DXPlaneDotCoord(
NULL, &
vec);
1470 got = D3DXPlaneDotCoord(
NULL,
NULL);
1475 got = D3DXPlaneDotNormal(&
plane, &
vec);
1478 got = D3DXPlaneDotNormal(
NULL, &
vec);
1481 got = D3DXPlaneDotNormal(
NULL,
NULL);
1485 vec1.
x = 11.0f; vec1.
y = 13.0f; vec1.
z = 15.0f;
1487 expectedplane.
a = 17.0f; expectedplane.
b = 31.0f; expectedplane.
c = 24.0f; expectedplane.
d = -950.0f;
1493 gotplane.
a = vec1.
x; gotplane.
b = vec1.
y; gotplane.
c = vec1.
z;
1494 expectedplane.
d = -1826.0f;
1499 vec1.
x = 1.0f; vec1.
y = 2.0f; vec1.
z = 3.0f;
1502 expectedplane.
a = 0.085914f; expectedplane.
b = -0.704492f; expectedplane.
c = 0.704492f; expectedplane.
d = -0.790406f;
1507 vec1.
x = 9.0f; vec1.
y = 6.0f; vec1.
z = 3.0f;
1509 expectedvec.
x = 20.0f/3.0f; expectedvec.
y = 17.0f/3.0f; expectedvec.
z = 14.0f/3.0f;
1513 vec1.
x = 11.0f; vec1.
y = 13.0f; vec1.
z = 15.0f;
1515 expectedvec.
x = 20.0f/3.0f; expectedvec.
y = 17.0f/3.0f; expectedvec.
z = 14.0f/3.0f;
1517 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
1520 expectedplane.
a = -3.0f/
sqrt(26.0f); expectedplane.
b = -1.0f/
sqrt(26.0f); expectedplane.
c = 4.0f/
sqrt(26.0f); expectedplane.
d = 7.0/
sqrt(26.0f);
1523 nulplane.
a = 0.0; nulplane.
b = 0.0f; nulplane.
c = 0.0f; nulplane.
d = 0.0f;
1524 expectedplane.
a = 0.0f; expectedplane.
b = 0.0f; expectedplane.
c = 0.0f; expectedplane.
d = 0.0f;
1529 expectedplane.
a = 49.0f; expectedplane.
b = -98.0f; expectedplane.
c = 55.0f; expectedplane.
d = -165.0f;
1537 D3DXQUATERNION expectedquat, gotquat, Nq, Nq1, nul, smallq, smallr,
q,
r,
s,
t,
u;
1543 nul.
x = 0.0f; nul.
y = 0.0f; nul.
z = 0.0f; nul.
w = 0.0f;
1544 q.x = 1.0f;
q.y = 2.0f;
q.z = 4.0f;
q.w = 10.0f;
1545 r.x = -3.0f;
r.y = 4.0f;
r.z = -5.0f;
r.w = 7.0;
1546 t.x = -1111.0f;
t.y = 111.0f;
t.z = -11.0f;
t.w = 1.0f;
1547 u.x = 91.0f;
u.y = - 82.0f;
u.z = 7.3f;
u.w = -6.4f;
1548 smallq.
x = 0.1f; smallq.
y = 0.2f; smallq.
z= 0.3f; smallq.
w = 0.4f;
1549 smallr.
x = 0.5f; smallr.
y = 0.6f; smallr.
z= 0.7f; smallr.
w = 0.8f;
1555 expectedquat.
x = -867.444458; expectedquat.
y = 87.851111f; expectedquat.
z = -9.937778f; expectedquat.
w = 3.235555f;
1560 expectedquat.
x = -1.0f; expectedquat.
y = -2.0f; expectedquat.
z = -4.0f; expectedquat.
w = 10.0f;
1561 D3DXQuaternionConjugate(&gotquat,&
q);
1564 funcpointer = D3DXQuaternionConjugate(&gotquat,
NULL);
1565 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
1566 funcpointer = D3DXQuaternionConjugate(
NULL,
NULL);
1567 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
1570 got = D3DXQuaternionDot(&
q,&
r);
1572 ok(
equal,
"Got unexpected dot %.8e.\n", got);
1574 got = D3DXQuaternionDot(
NULL,&
r);
1576 ok(
equal,
"Got unexpected dot %.8e.\n", got);
1577 got = D3DXQuaternionDot(
NULL,
NULL);
1579 ok(
equal,
"Got unexpected dot %.8e.\n", got);
1582 expectedquat.
x = -0.216382f; expectedquat.
y = -0.432764f; expectedquat.
z = -0.8655270f; expectedquat.
w = -0.129449f;
1586 expectedquat.
x = 0.0f; expectedquat.
y = 0.0f; expectedquat.
z = 0.0f; expectedquat.
w = 1.0f;
1590 Nq1.
x = 0.2f; Nq1.
y = 0.1f; Nq1.
z = 0.3; Nq1.
w= 0.9f;
1591 expectedquat.
x = 0.195366; expectedquat.
y = 0.097683f; expectedquat.
z = 0.293049f; expectedquat.
w = 0.930813f;
1596 expectedquat.
x = 0.0f; expectedquat.
y = 0.0f; expectedquat.
z = 0.0f; expectedquat.
w = 1.0f;
1597 D3DXQuaternionIdentity(&gotquat);
1600 funcpointer = D3DXQuaternionIdentity(
NULL);
1601 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
1604 expectedquat.
x = -1.0f/121.0f; expectedquat.
y = -2.0f/121.0f; expectedquat.
z = -4.0f/121.0f; expectedquat.
w = 10.0f/121.0f;
1608 expectedquat.
x = 1.0f; expectedquat.
y = 2.0f; expectedquat.
z = 4.0f; expectedquat.
w = 10.0f;
1614 s.x = 0.0f;
s.y = 0.0f;
s.z = 0.0f;
s.w = 1.0f;
1615 expectedbool =
TRUE;
1616 gotbool = D3DXQuaternionIsIdentity(&
s);
1617 ok( expectedbool == gotbool,
"Expected boolean : %d, Got bool : %d\n", expectedbool, gotbool);
1618 s.x = 2.3f;
s.y = -4.2f;
s.z = 1.2f;
s.w=0.2f;
1619 expectedbool =
FALSE;
1620 gotbool = D3DXQuaternionIsIdentity(&
q);
1621 ok( expectedbool == gotbool,
"Expected boolean : %d, Got bool : %d\n", expectedbool, gotbool);
1623 gotbool = D3DXQuaternionIsIdentity(
NULL);
1624 ok(gotbool ==
FALSE,
"Expected boolean: %d, Got boolean: %d\n",
FALSE, gotbool);
1627 got = D3DXQuaternionLength(&
q);
1629 ok(
equal,
"Got unexpected length %.8e.\n", got);
1631 got = D3DXQuaternionLength(
NULL);
1633 ok(
equal,
"Got unexpected length %.8e.\n", got);
1636 got = D3DXQuaternionLengthSq(&
q);
1638 ok(
equal,
"Got unexpected length %.8e.\n", got);
1640 got = D3DXQuaternionLengthSq(
NULL);
1642 ok(
equal,
"Got unexpected length %.8e.\n", got);
1645 expectedquat.
x = 1.0f; expectedquat.
y = 2.0f; expectedquat.
z = 4.0f; expectedquat.
w = 0.0f;
1648 expectedquat.
x = -3.0f; expectedquat.
y = 4.0f; expectedquat.
z = -5.0f; expectedquat.
w = 0.0f;
1651 Nq.
x = 1.0f/11.0f; Nq.
y = 2.0f/11.0f; Nq.
z = 4.0f/11.0f; Nq.
w=10.0f/11.0f;
1652 expectedquat.
x = 0.093768f; expectedquat.
y = 0.187536f; expectedquat.
z = 0.375073f; expectedquat.
w = 0.0f;
1655 Nq.
x = 0.0f; Nq.
y = 0.0f; Nq.
z = 0.0f; Nq.
w = 1.0f;
1656 expectedquat.
x = 0.0f; expectedquat.
y = 0.0f; expectedquat.
z = 0.0f; expectedquat.
w = 0.0f;
1659 Nq.
x = 5.4f; Nq.
y = 1.2f; Nq.
z = -0.3f; Nq.
w = -0.3f;
1660 expectedquat.
x = 10.616652f; expectedquat.
y = 2.359256f; expectedquat.
z = -0.589814f; expectedquat.
w = 0.0f;
1664 Nq1.
x = 0.2f; Nq1.
y = 0.1f; Nq1.
z = 0.3; Nq1.
w = 0.9f;
1665 expectedquat.
x = 0.206945f; expectedquat.
y = 0.103473f; expectedquat.
z = 0.310418f; expectedquat.
w = 0.0f;
1669 Nq1.
x = 0.2f; Nq1.
y = 0.1f; Nq1.
z = 0.3; Nq1.
w = -1.0f;
1670 expectedquat.
x = 0.2f; expectedquat.
y = 0.1f; expectedquat.
z = 0.3f; expectedquat.
w = 0.0f;
1675 expectedquat.
x = 3.0f; expectedquat.
y = 61.0f; expectedquat.
z = -32.0f; expectedquat.
w = 85.0f;
1680 expectedquat.
x = 1.0f/11.0f; expectedquat.
y = 2.0f/11.0f; expectedquat.
z = 4.0f/11.0f; expectedquat.
w = 10.0f/11.0f;
1685 axis.
x = 2.0f; axis.
y = 7.0; axis.
z = 13.0f;
1687 expectedquat.
x = 0.067116; expectedquat.
y = 0.234905f; expectedquat.
z = 0.436251f; expectedquat.
w = 0.866025f;
1691 axis.
x = 0.0f; axis.
y = 0.0; axis.
z = 0.0f;
1692 expectedquat.
x = 0.0f; expectedquat.
y = 0.0f; expectedquat.
z = 0.0f; expectedquat.
w = 0.866025f;
1698 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1699 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1700 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1701 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1702 mat.m[0][0] = 10.0f;
mat.m[1][1] = 20.0f;
mat.m[2][2] = 30.0f;
1703 mat.m[3][3] = 48.0f;
1704 expectedquat.
x = 2.368682f; expectedquat.
y = 0.768221f; expectedquat.
z = -0.384111f; expectedquat.
w = 3.905125f;
1708 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1709 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1710 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1711 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1712 mat.m[0][0] = -10.0f;
mat.m[1][1] = -60.0f;
mat.m[2][2] = 40.0f;
1713 mat.m[3][3] = 48.0f;
1714 expectedquat.
x = 1.233905f; expectedquat.
y = -0.237290f; expectedquat.
z = 5.267827f; expectedquat.
w = -0.284747f;
1718 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1719 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1720 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1721 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1722 mat.m[0][0] = -10.0f;
mat.m[1][1] = 60.0f;
mat.m[2][2] = -80.0f;
1723 mat.m[3][3] = 48.0f;
1724 expectedquat.
x = 0.651031f; expectedquat.
y = 6.144103f; expectedquat.
z = -0.203447f; expectedquat.
w = 0.488273f;
1728 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1729 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1730 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1731 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1732 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = -0.9f;
1733 mat.m[3][3] = 48.0f;
1734 expectedquat.
x = 1.709495f; expectedquat.
y = 2.339872f; expectedquat.
z = -0.534217f; expectedquat.
w = 1.282122f;
1738 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1739 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1740 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1741 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1742 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = -0.51f;
1743 mat.m[3][3] = 48.0f;
1744 expectedquat.
x = 1.724923f; expectedquat.
y = 2.318944f; expectedquat.
z = -0.539039f; expectedquat.
w = 1.293692f;
1748 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1749 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1750 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1751 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1752 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = -0.49f;
1753 mat.m[3][3] = 48.0f;
1754 expectedquat.
x = 1.725726f; expectedquat.
y = 2.317865f; expectedquat.
z = -0.539289f; expectedquat.
w = 1.294294f;
1758 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1759 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1760 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1761 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1762 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = -0.01f;
1763 mat.m[3][3] = 48.0f;
1764 expectedquat.
x = 1.745328f; expectedquat.
y = 2.291833f; expectedquat.
z = -0.545415f; expectedquat.
w = 1.308996f;
1768 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1769 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1770 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1771 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1772 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = 0.0f;
1773 mat.m[3][3] = 48.0f;
1774 expectedquat.
x = 1.745743f; expectedquat.
y = 2.291288f; expectedquat.
z = -0.545545f; expectedquat.
w = 1.309307f;
1778 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1779 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1780 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1781 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1782 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = 0.01f;
1783 mat.m[3][3] = 48.0f;
1784 expectedquat.
x = 18.408188f; expectedquat.
y = 5.970223f; expectedquat.
z = -2.985111f; expectedquat.
w = 0.502494f;
1788 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1789 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1790 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1791 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1792 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = 0.5f;
1793 mat.m[3][3] = 48.0f;
1794 expectedquat.
x = 15.105186f; expectedquat.
y = 4.898980f; expectedquat.
z = -2.449490f; expectedquat.
w = 0.612372f;
1798 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1799 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1800 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1801 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1802 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = 0.70f;
1803 mat.m[3][3] = 48.0f;
1804 expectedquat.
x = 14.188852f; expectedquat.
y = 4.601790f; expectedquat.
z = -2.300895f; expectedquat.
w = 0.651920f;
1808 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1809 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1810 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1811 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1812 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = 0.99f;
1813 mat.m[3][3] = 48.0f;
1814 expectedquat.
x = 13.114303f; expectedquat.
y = 4.253287f; expectedquat.
z = -2.126644f; expectedquat.
w = 0.705337f;
1818 mat.m[0][1] = 5.0f;
mat.m[0][2] = 7.0f;
mat.m[0][3] = 8.0f;
1819 mat.m[1][0] = 11.0f;
mat.m[1][2] = 16.0f;
mat.m[1][3] = 33.0f;
1820 mat.m[2][0] = 19.0f;
mat.m[2][1] = -21.0f;
mat.m[2][3] = 43.0f;
1821 mat.m[3][0] = 2.0f;
mat.m[3][1] = 3.0f;
mat.m[3][2] = -4.0f;
1822 mat.m[0][0] = -10.0f;
mat.m[1][1] = 10.0f;
mat.m[2][2] = 2.0f;
1823 mat.m[3][3] = 48.0f;
1824 expectedquat.
x = 10.680980f; expectedquat.
y = 3.464102f; expectedquat.
z = -1.732051f; expectedquat.
w = 0.866025f;
1829 expectedquat.
x = 0.303261f; expectedquat.
y = 0.262299f; expectedquat.
z = 0.410073f; expectedquat.
w = 0.819190f;
1834 expectedquat.
x = -0.2f; expectedquat.
y = 2.6f; expectedquat.
z = 1.3f; expectedquat.
w = 9.1f;
1837 expectedquat.
x = 334.0f; expectedquat.
y = -31.9f; expectedquat.
z = 6.1f; expectedquat.
w = 6.7f;
1840 expectedquat.
x = 0.239485f; expectedquat.
y = 0.346580f; expectedquat.
z = 0.453676f; expectedquat.
w = 0.560772f;
1845 expectedquat.
x = -156.296f; expectedquat.
y = 30.242f; expectedquat.
z = -2.5022f; expectedquat.
w = 7.3576f;
1850 r.x = 1.0f;
r.y = 2.0f;
r.z = 4.0f;
r.w = 10.0f;
1851 s.x = -3.0f;
s.y = 4.0f;
s.z = -5.0f;
s.w = 7.0;
1852 t.x = -1111.0f;
t.y = 111.0f;
t.z = -11.0f;
t.w = 1.0f;
1853 u.x = 91.0f;
u.y = - 82.0f;
u.z = 7.3f;
u.w = -6.4f;
1855 expectedquat.
x = 7.121285f; expectedquat.
y = 2.159964f; expectedquat.
z = -3.855094f; expectedquat.
w = 5.362844f;
1857 expectedquat.
x = -1113.492920f; expectedquat.
y = 82.679260f; expectedquat.
z = -6.696645f; expectedquat.
w = -4.090050f;
1859 expectedquat.
x = -1111.0f; expectedquat.
y = 111.0f; expectedquat.
z = -11.0f; expectedquat.
w = 1.0f;
1863 expectedquat.
x = -1113.492920f; expectedquat.
y = 82.679260f; expectedquat.
z = -6.696645f; expectedquat.
w = -4.090050f;
1868 r.x = 0.2f;
r.y = 0.3f;
r.z = 1.3f;
r.w = -0.6f;
1869 s.x = -3.0f;
s.y =-2.0f;
s.z = 4.0f;
s.w = 0.2f;
1870 t.x = 0.4f;
t.y = 8.3f;
t.z = -3.1f;
t.w = -2.7f;
1871 u.x = 1.1f;
u.y = -0.7f;
u.z = 9.2f;
u.w = 0.0f;
1873 expectedquat.
x = -4.139569f; expectedquat.
y = -2.469115f; expectedquat.
z = 2.364477f; expectedquat.
w = 0.465494f;
1875 expectedquat.
x = 2.342533f; expectedquat.
y = 2.365127f; expectedquat.
z = 8.628538f; expectedquat.
w = -0.898356f;
1877 expectedquat.
x = 1.1f; expectedquat.
y = -0.7f; expectedquat.
z = 9.2f; expectedquat.
w = 0.0f;
1880 expectedquat.
x = -3.754567f; expectedquat.
y = -0.586085f; expectedquat.
z = 3.815818f; expectedquat.
w = -0.198150f;
1882 expectedquat.
x = 0.140773f; expectedquat.
y = -8.737090f; expectedquat.
z = -0.516593f; expectedquat.
w = 3.053942f;
1884 expectedquat.
x = -0.4f; expectedquat.
y = -8.3f; expectedquat.
z = 3.1f; expectedquat.
w = 2.7f;
1886 r.x = -1.0f;
r.y = 0.0f;
r.z = 0.0f;
r.w = 0.0f;
1887 s.x = 1.0f;
s.y =0.0f;
s.z = 0.0f;
s.w = 0.0f;
1888 t.x = 1.0f;
t.y = 0.0f;
t.z = 0.0f;
t.w = 0.0f;
1889 u.x = -1.0f;
u.y = 0.0f;
u.z = 0.0f;
u.w = 0.0f;
1891 expectedquat.
x = 1.0f; expectedquat.
y = 0.0f; expectedquat.
z = 0.0f; expectedquat.
w = 0.0f;
1893 expectedquat.
x = 1.0f; expectedquat.
y = 0.0f; expectedquat.
z = 0.0f; expectedquat.
w = 0.0f;
1895 expectedquat.
x = 1.0f; expectedquat.
y = 0.0f; expectedquat.
z = 0.0f; expectedquat.
w = 0.0f;
1899 Nq.
x = 1.0f/22.0f; Nq.
y = 2.0f/22.0f; Nq.
z = 4.0f/22.0f; Nq.
w = 10.0f/22.0f;
1900 expectedvec.
x = 1.0f/22.0f; expectedvec.
y = 2.0f/22.0f; expectedvec.
z = 4.0f/22.0f;
1906 expectedvec.
x = 1.0f; expectedvec.
y = 2.0f; expectedvec.
z = 4.0f;
1910 expectedvec.
x = 0.0f; expectedvec.
y = 0.0f; expectedvec.
z = 0.0f;
1928 float coeff1, coeff2, got,
scale;
1932 nul.
x = 0.0f; nul.
y = 0.0f;
1933 u.x = 3.0f;
u.y = 4.0f;
1934 v.x = -7.0f;
v.y = 9.0f;
1935 w.x = 4.0f;
w.y = -3.0f;
1936 x.x = 2.0f;
x.y = -11.0f;
1939 1.0f, 2.0f, 3.0f, 4.0f,
1940 5.0f, 6.0f, 7.0f, 8.0f,
1941 9.0f, 10.0f, 11.0f, 12.0f,
1942 13.0f, 14.0f, 15.0f, 16.0f);
1944 coeff1 = 2.0f; coeff2 = 5.0f;
1948 expectedvec.
x = -4.0f; expectedvec.
y = 13.0f;
1949 D3DXVec2Add(&gotvec,&
u,&
v);
1952 funcpointer = D3DXVec2Add(&gotvec,
NULL,&
v);
1953 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
1955 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
1958 expectedvec.
x = -12.0f; expectedvec.
y = -21.0f;
1963 expectedvec.
x = 5820.25f; expectedvec.
y = -3654.5625f;
1968 got = D3DXVec2CCW(&
u, &
v);
1970 ok(
equal,
"Got unexpected ccw %.8e.\n", got);
1972 got = D3DXVec2CCW(
NULL, &
v);
1974 ok(
equal,
"Got unexpected ccw %.8e.\n", got);
1977 ok(
equal,
"Got unexpected ccw %.8e.\n", got);
1980 got = D3DXVec2Dot(&
u, &
v);
1982 ok(
equal,
"Got unexpected dot %.8e.\n", got);
1984 got = D3DXVec2Dot(
NULL, &
v);
1986 ok(
equal,
"Got unexpected dot %.8e.\n", got);
1989 ok(
equal,
"Got unexpected dot %.8e.\n", got);
1992 expectedvec.
x = 2604.625f; expectedvec.
y = -4533.0f;
1997 got = D3DXVec2Length(&
u);
1999 ok(
equal,
"Got unexpected length %.8e.\n", got);
2001 got = D3DXVec2Length(
NULL);
2003 ok(
equal,
"Got unexpected length %.8e.\n", got);
2006 got = D3DXVec2LengthSq(&
u);
2008 ok(
equal,
"Got unexpected length %.8e.\n", got);
2010 got = D3DXVec2LengthSq(
NULL);
2012 ok(
equal,
"Got unexpected length %.8e.\n", got);
2015 expectedvec.
x = 68.0f; expectedvec.
y = -28.5f;
2016 D3DXVec2Lerp(&gotvec, &
u, &
v,
scale);
2019 funcpointer = D3DXVec2Lerp(&gotvec,
NULL,&
v,
scale);
2020 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2022 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2025 expectedvec.
x = 3.0f; expectedvec.
y = 9.0f;
2026 D3DXVec2Maximize(&gotvec, &
u, &
v);
2029 funcpointer = D3DXVec2Maximize(&gotvec,
NULL,&
v);
2030 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2032 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2035 expectedvec.
x = -7.0f; expectedvec.
y = 4.0f;
2036 D3DXVec2Minimize(&gotvec,&
u,&
v);
2039 funcpointer = D3DXVec2Minimize(&gotvec,
NULL,&
v);
2040 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2042 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2045 expectedvec.
x = 0.6f; expectedvec.
y = 0.8f;
2049 expectedvec.
x = 0.0f; expectedvec.
y = 0.0f;
2054 expectedvec.
x = -19.5f; expectedvec.
y = -26.0f;
2055 D3DXVec2Scale(&gotvec,&
u,
scale);
2058 funcpointer = D3DXVec2Scale(&gotvec,
NULL,
scale);
2059 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2061 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2064 expectedvec.
x = 10.0f; expectedvec.
y = -5.0f;
2065 D3DXVec2Subtract(&gotvec, &
u, &
v);
2068 funcpointer = D3DXVec2Subtract(&gotvec,
NULL,&
v);
2069 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2071 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2074 expectedtrans.
x = 36.0f; expectedtrans.
y = 44.0f; expectedtrans.
z = 52.0f; expectedtrans.
w = 60.0f;
2077 gottrans.
x =
u.x; gottrans.
y =
u.y;
2082 expectedvec.
x = 0.6f; expectedvec.
y = 11.0f/15.0f;
2085 gotvec.
x =
u.x; gotvec.
y =
u.y;
2090 expectedvec.
x = 23.0f; expectedvec.
y = 30.0f;
2102 float coeff1, coeff2, got,
scale;
2105 nul.
x = 0.0f; nul.
y = 0.0f; nul.
z = 0.0f;
2106 u.x = 9.0f;
u.y = 6.0f;
u.z = 2.0f;
2107 v.x = 2.0f;
v.y = -3.0f;
v.z = -4.0;
2108 w.x = 3.0f;
w.y = -5.0f;
w.z = 7.0f;
2109 x.x = 4.0f;
x.y = 1.0f;
x.z = 11.0f;
2111 viewport.
Width = 800; viewport.
MinZ = 0.2f; viewport.
X = 10;
2112 viewport.
Height = 680; viewport.
MaxZ = 0.9f; viewport.
Y = 5;
2115 1.0f, 2.0f, 3.0f, 4.0f,
2116 5.0f, 6.0f, 7.0f, 8.0f,
2117 9.0f, 10.0f, 11.0f, 12.0f,
2118 13.0f, 14.0f, 15.0f, 16.0f);
2120 view.m[0][1] = 5.0f;
view.m[0][2] = 7.0f;
view.m[0][3] = 8.0f;
2121 view.m[1][0] = 11.0f;
view.m[1][2] = 16.0f;
view.m[1][3] = 33.0f;
2122 view.m[2][0] = 19.0f;
view.m[2][1] = -21.0f;
view.m[2][3] = 43.0f;
2123 view.m[3][0] = 2.0f;
view.m[3][1] = 3.0f;
view.m[3][2] = -4.0f;
2124 view.m[0][0] = 10.0f;
view.m[1][1] = 20.0f;
view.m[2][2] = 30.0f;
2125 view.m[3][3] = -40.0f;
2128 21.0f, 2.0f, 3.0f, 4.0f,
2129 5.0f, 23.0f, 7.0f, 8.0f,
2130 -8.0f, -7.0f, 25.0f, -5.0f,
2131 -4.0f, -3.0f, -2.0f, 27.0f);
2133 coeff1 = 2.0f; coeff2 = 5.0f;
2137 expectedvec.
x = 11.0f; expectedvec.
y = 3.0f; expectedvec.
z = -2.0f;
2138 D3DXVec3Add(&gotvec,&
u,&
v);
2141 funcpointer = D3DXVec3Add(&gotvec,
NULL,&
v);
2142 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2144 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2147 expectedvec.
x = -35.0f; expectedvec.
y = -67.0; expectedvec.
z = 15.0f;
2152 expectedvec.
x = 1458.0f; expectedvec.
y = 22.1875f; expectedvec.
z = 4141.375f;
2157 expectedvec.
x = -18.0f; expectedvec.
y = 40.0f; expectedvec.
z = -39.0f;
2158 D3DXVec3Cross(&gotvec,&
u,&
v);
2160 expectedvec.
x = -277.0f; expectedvec.
y = -150.0f; expectedvec.
z = -26.0f;
2161 D3DXVec3Cross(&gotvec,&gotvec,&
v);
2164 funcpointer = D3DXVec3Cross(&gotvec,
NULL,&
v);
2165 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2167 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2170 got = D3DXVec3Dot(&
u, &
v);
2172 ok(
equal,
"Got unexpected dot %.8e.\n", got);
2174 got = D3DXVec3Dot(
NULL, &
v);
2176 ok(
equal,
"Got unexpected dot %.8e.\n", got);
2179 ok(
equal,
"Got unexpected dot %.8e.\n", got);
2182 expectedvec.
x = -6045.75f; expectedvec.
y = -6650.0f; expectedvec.
z = 1358.875f;
2187 got = D3DXVec3Length(&
u);
2189 ok(
equal,
"Got unexpected length %.8e.\n", got);
2191 got = D3DXVec3Length(
NULL);
2193 ok(
equal,
"Got unexpected length %.8e.\n", got);
2196 got = D3DXVec3LengthSq(&
u);
2198 ok(
equal,
"Got unexpected length %.8e.\n", got);
2200 got = D3DXVec3LengthSq(
NULL);
2202 ok(
equal,
"Got unexpected length %.8e.\n", got);
2205 expectedvec.
x = 54.5f; expectedvec.
y = 64.5f; expectedvec.
z = 41.0f ;
2206 D3DXVec3Lerp(&gotvec,&
u,&
v,
scale);
2209 funcpointer = D3DXVec3Lerp(&gotvec,
NULL,&
v,
scale);
2210 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2212 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2215 expectedvec.
x = 9.0f; expectedvec.
y = 6.0f; expectedvec.
z = 2.0f;
2216 D3DXVec3Maximize(&gotvec,&
u,&
v);
2219 funcpointer = D3DXVec3Maximize(&gotvec,
NULL,&
v);
2220 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2222 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2225 expectedvec.
x = 2.0f; expectedvec.
y = -3.0f; expectedvec.
z = -4.0f;
2226 D3DXVec3Minimize(&gotvec,&
u,&
v);
2229 funcpointer = D3DXVec3Minimize(&gotvec,
NULL,&
v);
2230 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2232 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2235 expectedvec.
x = 9.0f/11.0f; expectedvec.
y = 6.0f/11.0f; expectedvec.
z = 2.0f/11.0f;
2239 expectedvec.
x = 0.0f; expectedvec.
y = 0.0f; expectedvec.
z = 0.0f;
2244 expectedvec.
x = -58.5f; expectedvec.
y = -39.0f; expectedvec.
z = -13.0f;
2245 D3DXVec3Scale(&gotvec,&
u,
scale);
2248 funcpointer = D3DXVec3Scale(&gotvec,
NULL,
scale);
2249 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2251 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2254 expectedvec.
x = 7.0f; expectedvec.
y = 9.0f; expectedvec.
z = 6.0f;
2255 D3DXVec3Subtract(&gotvec,&
u,&
v);
2258 funcpointer = D3DXVec3Subtract(&gotvec,
NULL,&
v);
2259 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2261 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2264 expectedtrans.
x = 70.0f; expectedtrans.
y = 88.0f; expectedtrans.
z = 106.0f; expectedtrans.
w = 124.0f;
2268 gottrans.
x =
u.x; gottrans.
y =
u.y; gottrans.
z =
u.z;
2273 expectedvec.
x = 70.0f/124.0f; expectedvec.
y = 88.0f/124.0f; expectedvec.
z = 106.0f/124.0f;
2278 expectedvec.
x = 57.0f; expectedvec.
y = 74.0f; expectedvec.
z = 91.0f;
2283 expectedvec.
x = 1135.721924f; expectedvec.
y = 147.086914f; expectedvec.
z = 0.153412f;
2300 expectedvec.
x = 4010.000000f; expectedvec.
y = -1695.000000f; expectedvec.
z = 1.600000f;
2304 expectedvec.
x = 1.814305f; expectedvec.
y = 0.582097f; expectedvec.
z = -0.066555f;
2309 expectedvec.
x = -2.913411f; expectedvec.
y = 1.593215f; expectedvec.
z = 0.380724f;
2326 expectedvec.
x = -1.002500f; expectedvec.
y = 0.997059f; expectedvec.
z = 2.571429f;
2330 expectedvec.
x = -11.018396f; expectedvec.
y = 3.218991f; expectedvec.
z = 1.380329f;
2340 float coeff1, coeff2, got,
scale;
2344 u.x = 1.0f;
u.y = 2.0f;
u.z = 4.0f;
u.w = 10.0;
2345 v.x = -3.0f;
v.y = 4.0f;
v.z = -5.0f;
v.w = 7.0;
2346 w.x = 4.0f;
w.y =6.0f;
w.z = -2.0f;
w.w = 1.0f;
2347 x.x = 6.0f;
x.y = -7.0f;
x.z =8.0f;
x.w = -9.0f;
2350 1.0f, 2.0f, 3.0f, 4.0f,
2351 5.0f, 6.0f, 7.0f, 8.0f,
2352 9.0f, 10.0f, 11.0f, 12.0f,
2353 13.0f, 14.0f, 15.0f, 16.0f);
2355 coeff1 = 2.0f; coeff2 = 5.0;
2359 expectedvec.
x = -2.0f; expectedvec.
y = 6.0f; expectedvec.
z = -1.0f; expectedvec.
w = 17.0f;
2360 D3DXVec4Add(&gotvec,&
u,&
v);
2363 funcpointer = D3DXVec4Add(&gotvec,
NULL,&
v);
2364 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2366 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2369 expectedvec.
x = 8.0f; expectedvec.
y = 26.0; expectedvec.
z = -44.0f; expectedvec.
w = -41.0f;
2374 expectedvec.
x = 2754.625f; expectedvec.
y = 2367.5625f; expectedvec.
z = 1060.1875f; expectedvec.
w = 131.3125f;
2379 expectedvec.
x = 390.0f; expectedvec.
y = -393.0f; expectedvec.
z = -316.0f; expectedvec.
w = 166.0f;
2384 got = D3DXVec4Dot(&
u, &
v);
2386 ok(
equal,
"Got unexpected dot %.8e.\n", got);
2388 got = D3DXVec4Dot(
NULL, &
v);
2390 ok(
equal,
"Got unexpected dot %.8e.\n", got);
2393 ok(
equal,
"Got unexpected dot %.8e.\n", got);
2396 expectedvec.
x = 1224.625f; expectedvec.
y = 3461.625f; expectedvec.
z = -4758.875f; expectedvec.
w = -5781.5f;
2401 got = D3DXVec4Length(&
u);
2403 ok(
equal,
"Got unexpected length %.8e.\n", got);
2405 got = D3DXVec4Length(
NULL);
2407 ok(
equal,
"Got unexpected length %.8e.\n", got);
2410 got = D3DXVec4LengthSq(&
u);
2412 ok(
equal,
"Got unexpected length %.8e.\n", got);
2414 got = D3DXVec4LengthSq(
NULL);
2416 ok(
equal,
"Got unexpected length %.8e.\n", got);
2419 expectedvec.
x = 27.0f; expectedvec.
y = -11.0f; expectedvec.
z = 62.5; expectedvec.
w = 29.5;
2420 D3DXVec4Lerp(&gotvec,&
u,&
v,
scale);
2423 funcpointer = D3DXVec4Lerp(&gotvec,
NULL,&
v,
scale);
2424 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2426 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2429 expectedvec.
x = 1.0f; expectedvec.
y = 4.0f; expectedvec.
z = 4.0f; expectedvec.
w = 10.0;
2430 D3DXVec4Maximize(&gotvec,&
u,&
v);
2433 funcpointer = D3DXVec4Maximize(&gotvec,
NULL,&
v);
2434 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2436 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2439 expectedvec.
x = -3.0f; expectedvec.
y = 2.0f; expectedvec.
z = -5.0f; expectedvec.
w = 7.0;
2440 D3DXVec4Minimize(&gotvec,&
u,&
v);
2443 funcpointer = D3DXVec4Minimize(&gotvec,
NULL,&
v);
2444 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2446 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2449 expectedvec.
x = 1.0f/11.0f; expectedvec.
y = 2.0f/11.0f; expectedvec.
z = 4.0f/11.0f; expectedvec.
w = 10.0f/11.0f;
2454 expectedvec.
x = -6.5f; expectedvec.
y = -13.0f; expectedvec.
z = -26.0f; expectedvec.
w = -65.0f;
2455 D3DXVec4Scale(&gotvec,&
u,
scale);
2458 funcpointer = D3DXVec4Scale(&gotvec,
NULL,
scale);
2459 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2461 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2464 expectedvec.
x = 4.0f; expectedvec.
y = -2.0f; expectedvec.
z = 9.0f; expectedvec.
w = 3.0f;
2465 D3DXVec4Subtract(&gotvec,&
u,&
v);
2468 funcpointer = D3DXVec4Subtract(&gotvec,
NULL,&
v);
2469 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2471 ok(funcpointer ==
NULL,
"Expected: %p, Got: %p\n",
NULL, funcpointer);
2474 expectedtrans.
x = 177.0f; expectedtrans.
y = 194.0f; expectedtrans.
z = 211.0f; expectedtrans.
w = 228.0f;
2481 ID3DXMatrixStack *
stack;
2486 1.0f, 2.0f, 3.0f, 4.0f,
2487 5.0f, 6.0f, 7.0f, 8.0f,
2488 9.0f, 10.0f, 11.0f, 12.0f,
2489 13.0f, 14.0f, 15.0f, 16.0f
2493 17.0f, 18.0f, 19.0f, 20.0f,
2494 21.0f, 22.0f, 23.0f, 24.0f,
2495 25.0f, 26.0f, 27.0f, 28.0f,
2496 29.0f, 30.0f, 31.0f, 32.0f
2504 "The top of an empty matrix stack should be an identity matrix\n");
2553 ok(!refcount,
"Matrix stack has %lu references left.\n", refcount);
2572 exp_mat.
m[0][0] = 10.0f;
2573 exp_mat.
m[1][0] = -17.320507f;
2574 exp_mat.
m[2][0] = 0.0f;
2575 exp_mat.
m[3][0] = -1.035898f;
2576 exp_mat.
m[0][1] = 17.320507f;
2577 exp_mat.
m[1][1] = 10.0f;
2578 exp_mat.
m[2][1] = 0.0f;
2579 exp_mat.
m[3][1] = 6.401924f;
2580 exp_mat.
m[0][2] = 0.0f;
2581 exp_mat.
m[1][2] = 0.0f;
2582 exp_mat.
m[2][2] = 1.0f;
2583 exp_mat.
m[3][2] = 0.0f;
2584 exp_mat.
m[0][3] = 0.0f;
2585 exp_mat.
m[1][3] = 0.0f;
2586 exp_mat.
m[2][3] = 0.0f;
2587 exp_mat.
m[3][3] = 1.0f;
2601 exp_mat.
m[0][0] = 10.0f;
2602 exp_mat.
m[1][0] = -17.320507f;
2603 exp_mat.
m[2][0] = 0.0f;
2604 exp_mat.
m[3][0] = 4.964102f;
2605 exp_mat.
m[0][1] = 17.320507f;
2606 exp_mat.
m[1][1] = 10.0f;
2607 exp_mat.
m[2][1] = 0.0f;
2608 exp_mat.
m[3][1] = -0.598076f;
2609 exp_mat.
m[0][2] = 0.0f;
2610 exp_mat.
m[1][2] = 0.0f;
2611 exp_mat.
m[2][2] = 1.0f;
2612 exp_mat.
m[3][2] = 0.0f;
2613 exp_mat.
m[0][3] = 0.0f;
2614 exp_mat.
m[1][3] = 0.0f;
2615 exp_mat.
m[2][3] = 0.0f;
2616 exp_mat.
m[3][3] = 1.0f;
2630 exp_mat.
m[0][0] = 10.0f;
2631 exp_mat.
m[1][0] = -17.320507f;
2632 exp_mat.
m[2][0] = 0.0f;
2633 exp_mat.
m[3][0] = -6.0f;
2634 exp_mat.
m[0][1] = 17.320507f;
2635 exp_mat.
m[1][1] = 10.0f;
2636 exp_mat.
m[2][1] = 0.0f;
2637 exp_mat.
m[3][1] = 7.0f;
2638 exp_mat.
m[0][2] = 0.0f;
2639 exp_mat.
m[1][2] = 0.0f;
2640 exp_mat.
m[2][2] = 1.0f;
2641 exp_mat.
m[3][2] = 0.0f;
2642 exp_mat.
m[0][3] = 0.0f;
2643 exp_mat.
m[1][3] = 0.0f;
2644 exp_mat.
m[2][3] = 0.0f;
2645 exp_mat.
m[3][3] = 1.0f;
2656 exp_mat.
m[0][0] = 14.142133f;
2657 exp_mat.
m[1][0] = -14.142133f;
2658 exp_mat.
m[2][0] = 0.0f;
2659 exp_mat.
m[3][0] = 0.0f;
2660 exp_mat.
m[0][1] = 14.142133;
2661 exp_mat.
m[1][1] = 14.142133f;
2662 exp_mat.
m[2][1] = 0.0f;
2663 exp_mat.
m[3][1] = 0.0f;
2664 exp_mat.
m[0][2] = 0.0f;
2665 exp_mat.
m[1][2] = 0.0f;
2666 exp_mat.
m[2][2] = 1.0f;
2667 exp_mat.
m[3][2] = 0.0f;
2668 exp_mat.
m[0][3] = 0.0f;
2669 exp_mat.
m[1][3] = 0.0f;
2670 exp_mat.
m[2][3] = 0.0f;
2671 exp_mat.
m[3][3] = 1.0f;
2681 D3DXVECTOR3 exp_scale, got_scale, exp_translation, got_translation;
2687 pm.m[0][0] = -9.23879206e-01f;
2688 pm.m[1][0] = -2.70598412e-01f;
2689 pm.m[2][0] = 2.70598441e-01f;
2690 pm.m[3][0] = -5.00000000e+00f;
2691 pm.m[0][1] = 2.70598471e-01f;
2692 pm.m[1][1] = 3.80604863e-02f;
2693 pm.m[2][1] = 9.61939573e-01f;
2694 pm.m[3][1] = 0.00000000e+00f;
2695 pm.m[0][2] = -2.70598441e-01f;
2696 pm.m[1][2] = 9.61939573e-01f;
2697 pm.m[2][2] = 3.80603075e-02f;
2698 pm.m[3][2] = 1.00000000e+01f;
2699 pm.m[0][3] = 0.00000000e+00f;
2700 pm.m[1][3] = 0.00000000e+00f;
2701 pm.m[2][3] = 0.00000000e+00f;
2702 pm.m[3][3] = 1.00000000e+00f;
2704 exp_scale.
x = 9.99999881e-01f;
2705 exp_scale.
y = 9.99999881e-01f;
2706 exp_scale.
z = 9.99999881e-01f;
2708 exp_rotation.
x = 2.14862776e-08f;
2709 exp_rotation.
y = 6.93519890e-01f;
2710 exp_rotation.
z = 6.93519890e-01f;
2711 exp_rotation.
w = 1.95090637e-01f;
2713 exp_translation.
x = -5.0f;
2714 exp_translation.
y = 0.0f;
2715 exp_translation.
z = 10.0f;
2720 expect_vec3(&exp_translation, &got_translation, 0);
2724 pm.m[0][0] = -2.255813f;
2725 pm.m[1][0] = 1.302324f;
2726 pm.m[2][0] = 1.488373f;
2728 pm.m[0][1] = 1.302327f;
2729 pm.m[1][1] = -0.7209296f;
2730 pm.m[2][1] = 2.60465f;
2732 pm.m[0][2] = 1.488371f;
2733 pm.m[1][2] = 2.604651f;
2734 pm.m[2][2] = -0.02325551f;
2741 exp_scale.
x = 2.99999928e+00f;
2742 exp_scale.
y = 2.99999905e+00f;
2743 exp_scale.
z = 2.99999952e+00f;
2745 exp_rotation.
x = 3.52180451e-01f;
2746 exp_rotation.
y = 6.16315663e-01f;
2747 exp_rotation.
z = 7.04360664e-01f;
2748 exp_rotation.
w = 3.38489343e-07f;
2750 exp_translation.
x = 1.0f;
2751 exp_translation.
y = 2.0f;
2752 exp_translation.
z = 3.0f;
2757 expect_vec3(&exp_translation, &got_translation, 0);
2761 pm.m[0][0] = 2.427051f;
2763 pm.m[2][0] = 1.763355f;
2769 pm.m[0][2] = -1.763355f;
2771 pm.m[2][2] = 2.427051f;
2778 exp_scale.
x = 2.99999976e+00f;
2779 exp_scale.
y = 3.00000000e+00f;
2780 exp_scale.
z = 2.99999976e+00f;
2782 exp_rotation.
x = 0.00000000e+00f;
2783 exp_rotation.
y = 3.09016883e-01f;
2784 exp_rotation.
z = 0.00000000e+00f;
2785 exp_rotation.
w = 9.51056540e-01f;
2787 exp_translation.
x = 5.0f;
2788 exp_translation.
y = 5.0f;
2789 exp_translation.
z = 5.0f;
2794 expect_vec3(&exp_translation, &got_translation, 0);
2798 pm.m[0][0] = -9.23879206e-01f;
2799 pm.m[1][0] = -2.70598412e-01f;
2800 pm.m[2][0] = 2.70598441e-01f;
2801 pm.m[3][0] = -5.00000000e+00f;
2802 pm.m[0][1] = 2.70598471e-01f;
2803 pm.m[1][1] = 3.80604863e-02f;
2804 pm.m[2][1] = 9.61939573e-01f;
2805 pm.m[3][1] = 0.00000000e+00f;
2806 pm.m[0][2] = -2.70598441e-01f;
2807 pm.m[1][2] = 9.61939573e-01f;
2808 pm.m[2][2] = 3.80603075e-02f;
2809 pm.m[3][2] = 1.00000000e+01f;
2810 pm.m[0][3] = 0.00000000e+00f;
2811 pm.m[1][3] = 0.00000000e+00f;
2812 pm.m[2][3] = 0.00000000e+00f;
2813 pm.m[3][3] = 1.00000000e+00f;
2815 exp_scale.
x = 9.99999881e-01f;
2816 exp_scale.
y = 9.99999881e-01f;
2817 exp_scale.
z = 9.99999881e-01f;
2819 exp_rotation.
x = 2.14862776e-08f;
2820 exp_rotation.
y = 6.93519890e-01f;
2821 exp_rotation.
z = 6.93519890e-01f;
2822 exp_rotation.
w = 1.95090637e-01f;
2824 exp_translation.
x = -5.0f;
2825 exp_translation.
y = 0.0f;
2826 exp_translation.
z = 10.0f;
2831 expect_vec3(&exp_translation, &got_translation, 0);
2835 pm.m[0][0] = -9.23878908e-01f;
2836 pm.m[1][0] = -5.41196704e-01f;
2837 pm.m[2][0] = 8.11795175e-01f;
2838 pm.m[3][0] = -5.00000000e+00f;
2839 pm.m[0][1] = 2.70598322e-01f;
2840 pm.m[1][1] = 7.61209577e-02f;
2841 pm.m[2][1] = 2.88581824e+00f;
2842 pm.m[3][1] = 0.00000000e+00f;
2843 pm.m[0][2] = -2.70598352e-01f;
2844 pm.m[1][2] = 1.92387879e+00f;
2845 pm.m[2][2] = 1.14180908e-01f;
2846 pm.m[3][2] = 1.00000000e+01f;
2847 pm.m[0][3] = 0.00000000e+00f;
2848 pm.m[1][3] = 0.00000000e+00f;
2849 pm.m[2][3] = 0.00000000e+00f;
2850 pm.m[3][3] = 1.00000000e+00f;
2852 exp_scale.
x = 9.99999583e-01f;
2853 exp_scale.
y = 1.99999940e+00f;
2854 exp_scale.
z = 2.99999928e+00f;
2856 exp_rotation.
x = 1.07431388e-08f;
2857 exp_rotation.
y = 6.93519890e-01f;
2858 exp_rotation.
z = 6.93519831e-01f;
2859 exp_rotation.
w = 1.95090622e-01f;
2861 exp_translation.
x = -5.0f;
2862 exp_translation.
y = 0.0f;
2863 exp_translation.
z = 10.0f;
2868 exp_rotation.
x = 0.0f;
2870 ok(
equal,
"Got unexpected quaternion {%.8e, %.8e, %.8e, %.8e}.\n",
2871 got_rotation.
x, got_rotation.
y, got_rotation.
z, got_rotation.
w);
2872 expect_vec3(&exp_translation, &got_translation, 0);
2876 pm.m[0][0] = 0.7156004f;
2877 pm.m[1][0] = -0.5098283f;
2878 pm.m[2][0] = -0.4774843f;
2880 pm.m[0][1] = -0.6612288f;
2881 pm.m[1][1] = -0.7147621f;
2882 pm.m[2][1] = -0.2277977f;
2884 pm.m[0][2] = -0.2251499f;
2885 pm.m[1][2] = 0.4787385f;
2886 pm.m[2][2] = -0.8485972f;
2893 exp_scale.
x = 9.99999940e-01f;
2894 exp_scale.
y = 1.00000012e+00f;
2895 exp_scale.
z = 1.00000012e+00f;
2897 exp_rotation.
x = 9.05394852e-01f;
2898 exp_rotation.
y = -3.23355347e-01f;
2899 exp_rotation.
z = -1.94013178e-01f;
2900 exp_rotation.
w = 1.95090592e-01f;
2902 exp_translation.
x = -5.0f;
2903 exp_translation.
y = 0.0f;
2904 exp_translation.
z = 10.0f;
2909 expect_vec3(&exp_translation, &got_translation, 0);
2913 pm.m[0][0] = 0.06554436f;
2914 pm.m[1][0] = -0.6873012f;
2915 pm.m[2][0] = 0.7234092f;
2917 pm.m[0][1] = -0.9617381f;
2918 pm.m[1][1] = -0.2367795f;
2919 pm.m[2][1] = -0.1378230f;
2921 pm.m[0][2] = 0.2660144f;
2922 pm.m[1][2] = -0.6866967f;
2923 pm.m[2][2] = -0.6765233f;
2930 exp_scale.
x = 9.99999940e-01f;
2931 exp_scale.
y = 9.99999940e-01f;
2932 exp_scale.
z = 9.99999881e-01f;
2934 exp_rotation.
x = 7.03357518e-01f;
2935 exp_rotation.
y = -5.86131275e-01f;
2936 exp_rotation.
z = 3.51678789e-01f;
2937 exp_rotation.
w = -1.95090577e-01f;
2939 exp_translation.
x = -5.0f;
2940 exp_translation.
y = 0.0f;
2941 exp_translation.
z = 10.0f;
2946 expect_vec3(&exp_translation, &got_translation, 0);
2950 pm.m[0][0] = 7.12104797e+00f;
2951 pm.m[1][0] = -5.88348627e+00f;
2952 pm.m[2][0] = 1.18184204e+01f;
2953 pm.m[3][0] = -5.00000000e+00f;
2954 pm.m[0][1] = 5.88348627e+00f;
2955 pm.m[1][1] = -1.06065865e+01f;
2956 pm.m[2][1] = -8.82523251e+00f;
2957 pm.m[3][1] = 0.00000000e+00f;
2958 pm.m[0][2] = 1.18184204e+01f;
2959 pm.m[1][2] = 8.82523155e+00f;
2960 pm.m[2][2] = -2.72764111e+00f;
2961 pm.m[3][2] = 2.00000000e+00f;
2962 pm.m[0][3] = 0.00000000e+00f;
2963 pm.m[1][3] = 0.00000000e+00f;
2964 pm.m[2][3] = 0.00000000e+00f;
2965 pm.m[3][3] = 1.00000000e+00f;
2967 exp_scale.
x = 1.49999933e+01f;
2968 exp_scale.
y = 1.49999933e+01f;
2969 exp_scale.
z = 1.49999943e+01f;
2971 exp_rotation.
x = 7.68714130e-01f;
2972 exp_rotation.
y = 0.00000000e+00f;
2973 exp_rotation.
z = 5.12475967e-01f;
2974 exp_rotation.
w = 3.82683903e-01f;
2976 exp_translation.
x = -5.0f;
2977 exp_translation.
y = 0.0f;
2978 exp_translation.
z = 2.0f;
2983 expect_vec3(&exp_translation, &got_translation, 0);
2992 pm.m[1][1] = -10.60660f;
2993 pm.m[2][1] = -8.825232f;
2996 pm.m[1][2] = 8.8252320f;
2997 pm.m[2][2] = 2.727645;
3014 rot_center.
x = 3.0f;
3015 rot_center.
y = 4.0f;
3020 sca_center.
x = 9.0f;
3021 sca_center.
y = -5.0f;
3030 exp_mat.
m[0][0] = -4.245192f;
3031 exp_mat.
m[1][0] = -0.147116f;
3032 exp_mat.
m[2][0] = 0.0f;
3033 exp_mat.
m[3][0] = 45.265373f;
3034 exp_mat.
m[0][1] = 7.647113f;
3035 exp_mat.
m[1][1] = 8.745192f;
3036 exp_mat.
m[2][1] = 0.0f;
3037 exp_mat.
m[3][1] = -13.401899f;
3038 exp_mat.
m[0][2] = 0.0f;
3039 exp_mat.
m[1][2] = 0.0f;
3040 exp_mat.
m[2][2] = 1.0f;
3041 exp_mat.
m[3][2] = 0.0f;
3042 exp_mat.
m[0][3] = 0.0f;
3043 exp_mat.
m[1][3] = 0.0f;
3044 exp_mat.
m[2][3] = 0.0f;
3045 exp_mat.
m[3][3] = 1.0f;
3052 sca_center.
x = 9.0f;
3053 sca_center.
y = -5.0f;
3062 exp_mat.
m[0][0] = 0.50f;
3063 exp_mat.
m[1][0] = -0.866025f;
3064 exp_mat.
m[2][0] = 0.0f;
3065 exp_mat.
m[3][0] = -6.0f;
3066 exp_mat.
m[0][1] = 0.866025f;
3067 exp_mat.
m[1][1] = 0.50f;
3068 exp_mat.
m[2][1] = 0.0f;
3069 exp_mat.
m[3][1] = 7.0f;
3070 exp_mat.
m[0][2] = 0.0f;
3071 exp_mat.
m[1][2] = 0.0f;
3072 exp_mat.
m[2][2] = 1.0f;
3073 exp_mat.
m[3][2] = 0.0f;
3074 exp_mat.
m[0][3] = 0.0f;
3075 exp_mat.
m[1][3] = 0.0f;
3076 exp_mat.
m[2][3] = 0.0f;
3077 exp_mat.
m[3][3] = 1.0f;
3084 exp_mat.
m[0][0] = 0.50f;
3085 exp_mat.
m[1][0] = -0.866025f;
3086 exp_mat.
m[2][0] = 0.0f;
3087 exp_mat.
m[3][0] = 0.0f;
3088 exp_mat.
m[0][1] = 0.866025f;
3089 exp_mat.
m[1][1] = 0.50f;
3090 exp_mat.
m[2][1] = 0.0f;
3091 exp_mat.
m[3][1] = 0.0f;
3092 exp_mat.
m[0][2] = 0.0f;
3093 exp_mat.
m[1][2] = 0.0f;
3094 exp_mat.
m[2][2] = 1.0f;
3095 exp_mat.
m[3][2] = 0.0f;
3096 exp_mat.
m[0][3] = 0.0f;
3097 exp_mat.
m[1][3] = 0.0f;
3098 exp_mat.
m[2][3] = 0.0f;
3099 exp_mat.
m[3][3] = 1.0f;
3107 D3DXPLANE inp_plane[5], out_plane[7], exp_plane[7];
3113 viewport.
Width = 800; viewport.
MinZ = 0.2f; viewport.
X = 10;
3114 viewport.
Height = 680; viewport.
MaxZ = 0.9f; viewport.
Y = 5;
3116 memset(out_vec, 0,
sizeof(out_vec));
3117 memset(exp_vec, 0,
sizeof(exp_vec));
3118 memset(out_plane, 0,
sizeof(out_plane));
3119 memset(exp_plane, 0,
sizeof(exp_plane));
3123 inp_plane[
i].
a = inp_plane[
i].
c = inp_vec[
i].
x = inp_vec[
i].
z =
i;
3128 1.0f, 2.0f, 3.0f, 4.0f,
3129 5.0f, 6.0f, 7.0f, 8.0f,
3130 9.0f, 10.0f, 11.0f, 12.0f,
3131 13.0f, 14.0f, 15.0f, 16.0f);
3135 view.m[0][1] = 5.0f;
view.m[0][2] = 7.0f;
view.m[0][3] = 8.0f;
3136 view.m[1][0] = 11.0f;
view.m[1][2] = 16.0f;
view.m[1][3] = 33.0f;
3137 view.m[2][0] = 19.0f;
view.m[2][1] = -21.0f;
view.m[2][3] = 43.0f;
3138 view.m[3][0] = 2.0f;
view.m[3][1] = 3.0f;
view.m[3][2] = -4.0f;
3139 view.m[0][0] = 10.0f;
view.m[1][1] = 20.0f;
view.m[2][2] = 30.0f;
3140 view.m[3][3] = -40.0f;
3143 21.0f, 2.0f, 3.0f, 4.0f,
3144 5.0f, 23.0f, 7.0f, 8.0f,
3145 -8.0f, -7.0f, 25.0f, -5.0f,
3146 -4.0f, -3.0f, -2.0f, 27.0f);
3149 exp_vec[1].
x = 6.78571403e-01f; exp_vec[1].
y = 7.85714269e-01f;
3150 exp_vec[2].
x = 6.53846204e-01f; exp_vec[2].
y = 7.69230783e-01f;
3151 exp_vec[3].
x = 6.25000000e-01f; exp_vec[3].
y = 7.50000000e-01f;
3152 exp_vec[4].
x = 5.90909123e-01f; exp_vec[4].
y = 7.27272749e-01f;
3153 exp_vec[5].
x = 5.49999952e-01f; exp_vec[5].
y = 6.99999928e-01f;
3159 exp_vec[1].
x = 25.0f; exp_vec[1].
y = 30.0f;
3160 exp_vec[2].
x = 21.0f; exp_vec[2].
y = 26.0f;
3161 exp_vec[3].
x = 17.0f; exp_vec[3].
y = 22.0f;
3162 exp_vec[4].
x = 13.0f; exp_vec[4].
y = 18.0f;
3163 exp_vec[5].
x = 9.0f; exp_vec[5].
y = 14.0f;
3169 exp_vec[1].
x = 6.78571403e-01f; exp_vec[1].
y = 7.85714269e-01f; exp_vec[1].
z = 8.92857075e-01f;
3170 exp_vec[2].
x = 6.71874940e-01f; exp_vec[2].
y = 7.81249940e-01f; exp_vec[2].
z = 8.90624940e-01f;
3171 exp_vec[3].
x = 6.66666627e-01f; exp_vec[3].
y = 7.77777731e-01f; exp_vec[3].
z = 8.88888836e-01f;
3172 exp_vec[4].
x = 6.62499964e-01f; exp_vec[4].
y = 7.74999976e-01f; exp_vec[4].
z = 8.87499928e-01f;
3173 exp_vec[5].
x = 6.59090877e-01f; exp_vec[5].
y = 7.72727251e-01f; exp_vec[5].
z = 8.86363566e-01f;
3179 exp_vec[1].
x = 25.0f; exp_vec[1].
y = 30.0f; exp_vec[1].
z = 35.0f;
3180 exp_vec[2].
x = 30.0f; exp_vec[2].
y = 36.0f; exp_vec[2].
z = 42.0f;
3181 exp_vec[3].
x = 35.0f; exp_vec[3].
y = 42.0f; exp_vec[3].
z = 49.0f;
3182 exp_vec[4].
x = 40.0f; exp_vec[4].
y = 48.0f; exp_vec[4].
z = 56.0f;
3183 exp_vec[5].
x = 45.0f; exp_vec[5].
y = 54.0f; exp_vec[5].
z = 63.0f;
3189 exp_vec[1].
x = 1.08955420e+03f; exp_vec[1].
y = -2.26590622e+02f; exp_vec[1].
z = 2.15272754e-01f;
3190 exp_vec[2].
x = 1.06890344e+03f; exp_vec[2].
y = 1.03085144e+02f; exp_vec[2].
z = 1.83049560e-01f;
3191 exp_vec[3].
x = 1.05177905e+03f; exp_vec[3].
y = 3.76462280e+02f; exp_vec[3].
z = 1.56329080e-01f;
3192 exp_vec[4].
x = 1.03734888e+03f; exp_vec[4].
y = 6.06827393e+02f; exp_vec[4].
z = 1.33812696e-01f;
3193 exp_vec[5].
x = 1.02502356e+03f; exp_vec[5].
y = 8.03591248e+02f; exp_vec[5].
z = 1.14580572e-01f;
3195 sizeof(*inp_vec), &viewport, &projection, &
view, &world,
ARRAY_SIZE(inp_vec));
3199 exp_vec[1].
x = -6.12403107e+00f; exp_vec[1].
y = 3.22536016e+00f; exp_vec[1].
z = 6.20571136e-01f;
3200 exp_vec[2].
x = -3.80710936e+00f; exp_vec[2].
y = 2.04657936e+00f; exp_vec[2].
z = 4.46894377e-01f;
3201 exp_vec[3].
x = -2.92283988e+00f; exp_vec[3].
y = 1.59668946e+00f; exp_vec[3].
z = 3.80609393e-01f;
3202 exp_vec[4].
x = -2.45622563e+00f; exp_vec[4].
y = 1.35928988e+00f; exp_vec[4].
z = 3.45631927e-01f;
3203 exp_vec[5].
x = -2.16789746e+00f; exp_vec[5].
y = 1.21259713e+00f; exp_vec[5].
z = 3.24018806e-01f;
3205 sizeof(*inp_vec), &viewport, &projection, &
view, &world,
ARRAY_SIZE(inp_vec));
3209 exp_vec[1].
x = 38.0f; exp_vec[1].
y = 44.0f; exp_vec[1].
z = 50.0f; exp_vec[1].
w = 56.0f;
3210 exp_vec[2].
x = 34.0f; exp_vec[2].
y = 40.0f; exp_vec[2].
z = 46.0f; exp_vec[2].
w = 52.0f;
3211 exp_vec[3].
x = 30.0f; exp_vec[3].
y = 36.0f; exp_vec[3].
z = 42.0f; exp_vec[3].
w = 48.0f;
3212 exp_vec[4].
x = 26.0f; exp_vec[4].
y = 32.0f; exp_vec[4].
z = 38.0f; exp_vec[4].
w = 44.0f;
3213 exp_vec[5].
x = 22.0f; exp_vec[5].
y = 28.0f; exp_vec[5].
z = 34.0f; exp_vec[5].
w = 40.0f;
3219 exp_vec[1].
x = 38.0f; exp_vec[1].
y = 44.0f; exp_vec[1].
z = 50.0f; exp_vec[1].
w = 56.0f;
3220 exp_vec[2].
x = 43.0f; exp_vec[2].
y = 50.0f; exp_vec[2].
z = 57.0f; exp_vec[2].
w = 64.0f;
3221 exp_vec[3].
x = 48.0f; exp_vec[3].
y = 56.0f; exp_vec[3].
z = 64.0f; exp_vec[3].
w = 72.0f;
3222 exp_vec[4].
x = 53.0f; exp_vec[4].
y = 62.0f; exp_vec[4].
z = 71.0f; exp_vec[4].
w = 80.0f;
3223 exp_vec[5].
x = 58.0f; exp_vec[5].
y = 68.0f; exp_vec[5].
z = 78.0f; exp_vec[5].
w = 88.0f;
3229 exp_vec[1].
x = 90.0f; exp_vec[1].
y = 100.0f; exp_vec[1].
z = 110.0f; exp_vec[1].
w = 120.0f;
3230 exp_vec[2].
x = 82.0f; exp_vec[2].
y = 92.0f; exp_vec[2].
z = 102.0f; exp_vec[2].
w = 112.0f;
3231 exp_vec[3].
x = 74.0f; exp_vec[3].
y = 84.0f; exp_vec[3].
z = 94.0f; exp_vec[3].
w = 104.0f;
3232 exp_vec[4].
x = 66.0f; exp_vec[4].
y = 76.0f; exp_vec[4].
z = 86.0f; exp_vec[4].
w = 96.0f;
3233 exp_vec[5].
x = 58.0f; exp_vec[5].
y = 68.0f; exp_vec[5].
z = 78.0f; exp_vec[5].
w = 88.0f;
3238 exp_plane[1].
a = 90.0f; exp_plane[1].
b = 100.0f; exp_plane[1].
c = 110.0f; exp_plane[1].
d = 120.0f;
3239 exp_plane[2].
a = 82.0f; exp_plane[2].
b = 92.0f; exp_plane[2].
c = 102.0f; exp_plane[2].
d = 112.0f;
3240 exp_plane[3].
a = 74.0f; exp_plane[3].
b = 84.0f; exp_plane[3].
c = 94.0f; exp_plane[3].
d = 104.0f;
3241 exp_plane[4].
a = 66.0f; exp_plane[4].
b = 76.0f; exp_plane[4].
c = 86.0f; exp_plane[4].
d = 96.0f;
3242 exp_plane[5].
a = 58.0f; exp_plane[5].
b = 68.0f; exp_plane[5].
c = 78.0f; exp_plane[5].
d = 88.0f;
3248 ok(
equal,
"Got unexpected plane {%.8e, %.8e, %.8e, %.8e} at index %u, expected {%.8e, %.8e, %.8e, %.8e}.\n",
3249 out_plane[
i].
a, out_plane[
i].
b, out_plane[
i].
c, out_plane[
i].
d,
i,
3250 exp_plane[
i].
a, exp_plane[
i].
b, exp_plane[
i].
c, exp_plane[
i].
d);
3275 WORD half_ver1, half_ver2;
3278 union convert single_out_ver1, single_out_ver2;
3282 { { 0x479c4000 }, 0x7c00, 0x7ce2, { 0x47800000 }, { 0x479c4000 } },
3283 { { 0x477fdf00 }, 0x7bff, 0x7bff, { 0x477fe000 }, { 0x477fe000 } },
3284 { { 0x477fe000 }, 0x7bff, 0x7bff, { 0x477fe000 }, { 0x477fe000 } },
3285 { { 0x477ff000 }, 0x7bff, 0x7c00, { 0x477fe000 }, { 0x47800000 } },
3286 { { 0x477ff100 }, 0x7c00, 0x7c00, { 0x47800000 }, { 0x47800000 } },
3288 { { 0x477ffe00 }, 0x7c00, 0x7c00, { 0x47800000 }, { 0x47800000 } },
3289 { { 0x477fff00 }, 0x7c00, 0x7c00, { 0x47800000 }, { 0x47800000 } },
3290 { { 0x47800000 }, 0x7c00, 0x7c00, { 0x47800000 }, { 0x47800000 } },
3291 { { 0xc79c4000 }, 0xfc00, 0xfce2, { 0xc7800000 }, { 0xc79c4000 } },
3292 { { 0xc77fdf00 }, 0xfbff, 0xfbff, { 0xc77fe000 }, { 0xc77fe000 } },
3294 { { 0xc77fe000 }, 0xfbff, 0xfbff, { 0xc77fe000 }, { 0xc77fe000 } },
3295 { { 0xc77ff000 }, 0xfbff, 0xfc00, { 0xc77fe000 }, { 0xc7800000 } },
3296 { { 0xc77ff100 }, 0xfc00, 0xfc00, { 0xc7800000 }, { 0xc7800000 } },
3297 { { 0xc77ffe00 }, 0xfc00, 0xfc00, { 0xc7800000 }, { 0xc7800000 } },
3298 { { 0xc77fff00 }, 0xfc00, 0xfc00, { 0xc7800000 }, { 0xc7800000 } },
3300 { { 0xc7800000 }, 0xfc00, 0xfc00, { 0xc7800000 }, { 0xc7800000 } },
3301 { { 0x7f800000 }, 0x7c00, 0x7fff, { 0x47800000 }, { 0x47ffe000 } },
3302 { { 0xff800000 }, 0xffff, 0xffff, { 0xc7ffe000 }, { 0xc7ffe000 } },
3303 { { 0x7fc00000 }, 0x7fff, 0xffff, { 0x47ffe000 }, { 0xc7ffe000 } },
3304 { { 0xffc00000 }, 0xffff, 0xffff, { 0xc7ffe000 }, { 0xc7ffe000 } },
3306 { { 0x00000000 }, 0x0000, 0x0000, { 0x00000000 }, { 0x00000000 } },
3307 { { 0x80000000 }, 0x8000, 0x8000, { 0x80000000 }, { 0x80000000 } },
3308 { { 0x330007ff }, 0x0000, 0x0000, { 0x00000000 }, { 0x00000000 } },
3309 { { 0xb30007ff }, 0x8000, 0x8000, { 0x80000000 }, { 0x80000000 } },
3310 { { 0x33000800 }, 0x0001, 0x0000, { 0x33800000 }, { 0x00000000 } },
3312 { { 0xb3000800 }, 0x8001, 0x8000, { 0xb3800000 }, { 0x80000000 } },
3313 { { 0x33c00000 }, 0x0002, 0x0001, { 0x34000000 }, { 0x33800000 } },
3319 ok(
out == &half,
"Got %p, expected %p.\n",
out, &half);
3322 ok(
out == &single.f,
"Got %p, expected %p.\n",
out, &single.f);
3327 ok(
out == &half,
"Got %p, expected %p.\n",
out, &half);
3329 "Got %x, expected %x or %x for index %d.\n", half.
value,
testdata[
i].half_ver1,
3333 ok(
out == &single.f,
"Got %p, expected %p.\n",
out, &single.f);
3335 ok(
equal,
"Got %#lx, expected %#lx at index %u.\n", single.d,
testdata[
i].single_out_ver1.d,
i);
3338 ok(
out == &single.f,
"Got %p, expected %p.\n",
out, &single.f);
3340 ok(
equal,
"Got %#lx, expected %#lx at index %u.\n", single.d,
testdata[
i].single_out_ver2.d,
i);
3346 float out[50] = {0.0f};
3351 static const float in1[50] =
3353 1.11f, 1.12f, 1.13f, 1.14f, 1.15f, 1.16f, 1.17f, 1.18f,
3354 1.19f, 1.20f, 1.21f, 1.22f, 1.23f, 1.24f, 1.25f, 1.26f,
3355 1.27f, 1.28f, 1.29f, 1.30f, 1.31f, 1.32f, 1.33f, 1.34f,
3356 1.35f, 1.36f, 1.37f, 1.38f, 1.39f, 1.40f, 1.41f, 1.42f,
3357 1.43f, 1.44f, 1.45f, 1.46f, 1.47f, 1.48f, 1.49f, 1.50f,
3358 1.51f, 1.52f, 1.53f, 1.54f, 1.55f, 1.56f, 1.57f, 1.58f,
3361 static const float in2[50] =
3363 2.11f, 2.12f, 2.13f, 2.14f, 2.15f, 2.16f, 2.17f, 2.18f,
3364 2.19f, 2.20f, 2.21f, 2.22f, 2.23f, 2.24f, 2.25f, 2.26f,
3365 2.27f, 2.28f, 2.29f, 2.30f, 2.31f, 2.32f, 2.33f, 2.34f,
3366 2.35f, 2.36f, 2.37f, 2.38f, 2.39f, 2.40f, 2.41f, 2.42f,
3367 2.43f, 2.44f, 2.45f, 2.46f, 2.47f, 2.48f, 2.49f, 2.50f,
3368 2.51f, 2.52f, 2.53f, 2.54f, 2.55f, 2.56f, 2.57f, 2.58f,
3382 ok(
ret ==
out,
"%u: D3DXSHAdd() failed, got %p, expected %p\n",
k,
out,
ret);
3387 ok(
equal,
"%u-%u: Got %.8e, expected %.8e.\n",
k,
i,
out[
i], in1[
i] + in2[
i]);
3396 float a[49],
b[49], got;
3400 static const float expected[] = {0.5f, 0.5f, 25.0f, 262.5f, 1428.0f, 5362.5f, 15873.0f, 39812.5f};
3419 float bout[49],
expected, gout[49], rout[49];
3425 static const float table[] =
3428 1.604815f, -3.131381f, 7.202175f, -2.870432f, 6.759296f, -16.959688f,
3429 32.303082f, -15.546381f, -0.588878f, -5.902123f, 40.084042f, -77.423569f,
3430 137.556320f, -70.971603f, -3.492171f, 7.683092f, -2.129311f, -35.971344f,
3431 183.086548f, -312.414948f, 535.091064f, -286.380371f, -15.950727f, 46.825714f,
3432 -12.127637f, 11.289261f, -12.417809f, -155.039566f, 681.182556f, -1079.733643f,
3433 1807.650513f, -989.755798f, -59.345467f, 201.822815f, -70.726486f, 7.206529f,
3435 3.101155f, -3.128710f, 7.196033f, -2.867984f, -0.224708f, 0.563814f,
3436 -1.073895f, 0.516829f, 0.019577f, 2.059788f, -13.988971f, 27.020128f,
3437 -48.005917f, 24.768450f, 1.218736f, -2.681329f, -0.088639f, -1.497410f,
3438 7.621501f, -13.005165f, 22.274696f, -11.921401f, -0.663995f, 1.949254f,
3439 -0.504848f, 4.168484f, -4.585193f, -57.247314f, 251.522095f, -398.684387f,
3440 667.462891f, -365.460693f, -21.912912f, 74.521721f, -26.115280f, 2.660963f,
3442 2.454422f, -4.789170f, 11.015091f, -4.390072f, 10.337747f, -25.938347f,
3443 49.404713f, -23.776817f, -0.900637f, -9.026776f, 61.305000f, -118.412514f,
3444 210.380249f, -108.544792f, -5.340967f, 11.750610f, -3.256593f, -55.014996f,
3445 280.014709f, -477.811066f, 818.374512f, -437.993469f, -24.395227f, 71.615799f,
3446 -18.548151f, 17.265928f, -18.991943f, -237.119324f, 1041.808594f, -1651.357300f,
3447 2764.642090f, -1513.744141f, -90.763657f, 308.670197f, -108.169922f, 11.021750f,
3449 4.742942f, -4.785086f, 11.005697f, -4.386329f, -0.343672f, 0.862303f,
3450 -1.642427f, 0.790444f, 0.029941f, 3.150264f, -21.394896f, 41.324898f,
3451 -73.420807f, 37.881153f, 1.863950f, -4.100857f, -0.135565f, -2.290156f,
3452 11.656413f, -19.890251f, 34.067181f, -18.232729f, -1.015521f, 2.981212f,
3453 -0.772120f, 6.375328f, -7.012648f, -87.554710f, 384.680817f, -609.752563f,
3454 1020.825500f, -558.939819f, -33.513863f, 113.974388f, -39.941013f, 4.069707f,
3456 3.304030f, -6.446959f, 14.828006f, -5.909713f, 13.916198f, -34.917004f,
3457 66.506340f, -32.007256f, -1.212396f, -12.151429f, 82.525963f, -159.401459f,
3458 283.204193f, -146.117996f, -7.189764f, 15.818130f, -4.383876f, -74.058655f,
3459 376.942871f, -643.207214f, 1101.658081f, -589.606628f, -32.839729f, 96.405884f,
3460 -24.968664f, 23.242596f, -25.566080f, -319.199097f, 1402.434692f, -2222.980957f,
3461 3721.633545f, -2037.732544f, -122.181847f, 415.517578f, -145.613358f, 14.836972f,
3463 6.384730f, -6.441462f, 14.815362f, -5.904673f, -0.462635f, 1.160793f,
3464 -2.210959f, 1.064060f, 0.040305f, 4.240739f, -28.800821f, 55.629673f,
3465 -98.835709f, 50.993862f, 2.509163f, -5.520384f, -0.182491f, -3.082903f,
3466 15.691326f, -26.775339f, 45.859665f, -24.544060f, -1.367048f, 4.013170f,
3467 -1.039392f, 8.582172f, -9.440103f, -117.862114f, 517.839600f, -820.820740f,
3468 1374.188232f, -752.419067f, -45.114819f, 153.427063f, -53.766754f, 5.478452f, };
3471 float *red_received, *green_received, *blue_received;
3472 const float *red_expected, *green_expected, *blue_expected;
3473 float radius, roffset, goffset, boffset;
3477 { rout, gout, bout,
table, &
table[72], &
table[144], 0.5f, 1.01f, 1.02f, 1.03f, },
3478 { rout, gout, bout, &
table[36], &
table[108], &
table[180], 1.6f, 1.01f, 1.02f, 1.03f, },
3479 { rout, rout, rout, &
table[144], &
table[144], &
table[144], 0.5f, 1.03f, 1.03f, 1.03f, },
3480 { rout, rout, bout, &
table[72], &
table[72], &
table[144], 0.5, 1.02f, 1.02f, 1.03f, },
3481 { rout, gout, gout,
table, &
table[144], &
table[144], 0.5f, 1.01f, 1.03f, 1.03f, },
3482 { rout, gout, rout, &
table[144], &
table[72], &
table[144], 0.5f, 1.03f, 1.02f, 1.03f, },
3484 { rout,
NULL, bout,
table,
NULL, &
table[144], 0.5f, 1.01f, 0.0f, 1.03f, },
3485 { rout, gout,
NULL,
table, &
table[72],
NULL, 0.5f, 1.01f, 1.02f, 0.0f, },
3486 { rout,
NULL,
NULL,
table,
NULL,
NULL, 0.5f, 1.01f, 0.0f, 0.0f, },
3489 dir.x = 1.1f;
dir.y = 1.2f;
dir.z = 2.76f;
3495 for (
j = 0;
j < 49;
j++)
3497 test[
l].red_received[
j] = 1.01f +
j;
3498 if (
test[
l].green_received)
3499 test[
l].green_received[
j] = 1.02f +
j;
3500 if (
test[
l].blue_received)
3501 test[
l].blue_received[
j] = 1.03f +
j;
3507 for (
j = 0;
j < 49;
j++)
3514 ok(
equal,
"Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3517 if (
test[
l].green_received)
3524 ok(
equal,
"Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3528 if (
test[
l].blue_received)
3535 ok(
equal,
"Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3547 for (
j = 0;
j < 49;
j++)
3549 rout[
j] = 1.01f +
j;
3550 gout[
j] = 1.02f +
j;
3551 bout[
j] = 1.03f +
j;
3561 for (
j = 0;
j < 49;
j++)
3564 ok(
equal,
"Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3568 ok(
equal,
"Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3572 ok(
equal,
"Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3593 static const float table[36] =
3595 2.82094806e-01f, -9.77205038e-01f, 1.46580756e+00f, -4.88602519e-01f, 2.18509698e+00f, -6.55529118e+00f,
3596 8.20018101e+00f, -3.27764559e-00f, -1.63882279e+00f, 1.18008721e+00f, 1.73436680e+01f, -4.02200317e+01f,
3597 4.70202179e+01f, -2.01100159e+01f, -1.30077515e+01f, 6.49047947e+00f, -1.50200577e+01f, 1.06207848e+01f,
3598 1.17325661e+02f, -2.40856750e+02f, 2.71657288e+02f, -1.20428375e+02f, -8.79942474e+01f, 5.84143143e+01f,
3599 -4.38084984e+00f, 2.49425201e+01f, -1.49447693e+02f, 7.82781296e+01f, 7.47791748e+02f, -1.42768787e+03f,
3600 1.57461914e+03f, -7.13843933e+02f, -5.60843811e+02f, 4.30529724e+02f, -4.35889091e+01f, -2.69116650e+01f,
3603 d.x = 1.0;
d.y = 2.0f;
d.z = 3.0f;
3611 ok(received_ptr ==
a,
"Expected %p, received %p\n",
a, received_ptr);
3624 ok(
equal,
"order %u, index %u: Got unexpected result %.8e, expected %.8e.\n",
3632 float *blue_out, bout[49],
expected, gout[49], *green_out, *red_out, rout[49];
3633 unsigned int j,
l,
order, startindex;
3638 static const float table[] =
3641 2.008781f, -4.175174f, 9.602900f, -3.827243f, 1.417963f, -2.947181f,
3642 6.778517f, -2.701583f, 7.249108f, -18.188671f, 34.643921f, -16.672949f,
3643 -0.631551f, 1.417963f, -2.947181f, 6.778517f, -2.701583f, 7.249108f,
3644 -18.188671f, 34.643921f, -16.672949f, -0.631551f, -7.794341f, 52.934967f,
3645 -102.245529f, 181.656815f, -93.725060f, -4.611760f, 10.146287f, 1.555186f,
3646 -3.232392f, 7.434503f, -2.963026f, 7.950634f, -19.948866f, 37.996559f,
3647 -18.286459f, -0.692669f, -8.548632f, 58.057705f, -112.140251f, 199.236496f,
3648 -102.795227f, -5.058059f, 11.128186f, -4.189955f, -70.782669f, 360.268829f,
3649 -614.755005f, 1052.926270f, -563.525391f, -31.387066f, 92.141365f, -23.864176f,
3650 1.555186f, -3.232392f, 7.434503f, -2.963026f, 7.950634f, -19.948866f,
3651 37.996559f, -18.286459f, -0.692669f, -8.548632f, 58.057705f, -112.140251f,
3652 199.236496f, -102.795227f, -5.058059f, 11.128186f, -4.189955f, -70.782669f,
3653 360.268829f, -614.755005f, 1052.926270f, -563.525391f, -31.387066f, 92.141365f,
3654 -23.864176f, 34.868664f, -38.354366f, -478.864166f, 2103.939941f, -3334.927734f,
3655 5583.213867f, -3057.017090f, -183.297836f, 623.361633f, -218.449921f, 22.258503f,
3657 3.072254f, -6.385560f, 14.686787f, -5.853429f, 2.168650f, -4.507453f,
3658 10.367143f, -4.131832f, 11.086870f, -27.817965f, 52.984818f, -25.499800f,
3659 -0.965902f, 2.168650f, -4.507453f, 10.367143f, -4.131832f, 11.086870f,
3660 -27.817965f, 52.984818f, -25.499800f, -0.965902f, -11.920755f, 80.959351f,
3661 -156.375488f, 277.828033f, -143.344193f, -7.053278f, 15.517849f, 2.378519f,
3662 -4.943659f, 11.370415f, -4.531687f, 12.159794f, -30.510029f, 58.112385f,
3663 -27.967525f, -1.059376f, -13.074378f, 88.794136f, -171.508621f, 304.714630f,
3664 -157.216217f, -7.735855f, 17.019577f, -6.408166f, -108.255844f, 550.999390f,
3665 -940.213501f, 1610.357788f, -861.862305f, -48.003746f, 140.922089f, -36.498150f,
3666 2.378519f, -4.943659f, 11.370415f, -4.531687f, 12.159794f, -30.510029f,
3667 58.112385f, -27.967525f, -1.059376f, -13.074378f, 88.794136f, -171.508621f,
3668 304.714630f, -157.216217f, -7.735855f, 17.019577f, -6.408166f, -108.255844f,
3669 550.999390f, -940.213501f, 1610.357788f, -861.862305f, -48.003746f, 140.922089f,
3670 -36.498150f, 53.328545f, -58.659618f, -732.380493f, 3217.790283f, -5100.477539f,
3671 8539.033203f, -4675.437500f, -280.337860f, 953.376587f, -334.099884f, 34.042416f,
3673 4.135726f, -8.595945f, 19.770674f, -7.879617f, 2.919336f, -6.067726f,
3674 13.955770f, -5.562082f, 14.924634f, -37.447262f, 71.325722f, -34.326656f,
3675 -1.300252f, 2.919336f, -6.067726f, 13.955770f, -5.562082f, 14.924634f,
3676 -37.447262f, 71.325722f, -34.326656f, -1.300252f, -16.047173f, 108.983749f,
3677 -210.505493f, 373.999298f, -192.963348f, -9.494799f, 20.889414f, 3.201853f,
3678 -6.654925f, 15.306328f, -6.100348f, 16.368954f, -41.071194f, 78.228210f,
3679 -37.648590f, -1.426083f, -17.600124f, 119.530563f, -230.876984f, 410.192780f,
3680 -211.637222f, -10.413651f, 22.910971f, -8.626378f, -145.729019f, 741.729919f,
3681 -1265.671997f, 2167.789307f, -1160.199219f, -64.620430f, 189.702820f, -49.132126f,
3682 3.201853f, -6.654925f, 15.306328f, -6.100348f, 16.368954f, -41.071194f,
3683 78.228210f, -37.648590f, -1.426083f, -17.600124f, 119.530563f, -230.876984f,
3684 410.192780f, -211.637222f, -10.413651f, 22.910971f, -8.626378f, -145.729019f,
3685 741.729919f, -1265.671997f, 2167.789307f, -1160.199219f, -64.620430f, 189.702820f,
3686 -49.132126f, 71.788422f, -78.964867f, -985.896790f, 4331.640625f, -6866.027344f,
3687 11494.852539f, -6293.858398f, -377.377899f, 1283.391479f, -449.749817f, 45.826328f, };
3690 float *red_in, *green_in, *blue_in;
3691 const float *red_out, *green_out, *blue_out;
3692 float roffset, goffset, boffset;
3696 { rout, gout, bout,
table, &
table[90], &
table[180], 1.01f, 1.02f, 1.03f, },
3697 { rout, rout, rout, &
table[180], &
table[180], &
table[180], 1.03f, 1.03f, 1.03f, },
3698 { rout, rout, bout, &
table[90], &
table[90], &
table[180], 1.02f, 1.02f, 1.03f, },
3699 { rout, gout, gout,
table, &
table[180], &
table[180], 1.01f, 1.03f, 1.03f, },
3700 { rout, gout, rout, &
table[180], &
table[90], &
table[180], 1.03f, 1.02f, 1.03f, },
3702 { rout,
NULL, bout,
table,
NULL, &
table[180], 1.01f, 0.0f, 1.03f, },
3703 { rout, gout,
NULL,
table, &
table[90],
NULL, 1.01f, 1.02f, 0.0f, },
3704 { rout,
NULL,
NULL,
table,
NULL,
NULL, 1.01f, 0.0f, 0.0f, },
3707 dir.x = 1.1f;
dir.y= 1.2f;
dir.z = 2.76f;
3715 red_out =
test[
l].red_in;
3716 green_out =
test[
l].green_in;
3717 blue_out =
test[
l].blue_in;
3721 red_out[
j] = 1.01f +
j;
3723 green_out[
j] = 1.02f +
j;
3725 blue_out[
j] = 1.03f +
j;
3738 ok(
equal,
"Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3748 ok(
equal,
"Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3759 ok(
equal,
"Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3779 float bout[49],
expected, gout[49], rout[49];
3786 static const float table[] =
3789 23.422981f, 15.859521f, -36.476898f, 14.537894f,
3791 19.966694f, 6.096982f, -14.023058f, 5.588900f,
3793 24.566214f, 8.546826f, -19.657701f, 7.834591f,
3797 float *red_received, *green_received, *blue_received;
3798 const float *red_expected, *green_expected, *blue_expected;
3799 const float roffset, goffset, boffset;
3803 { rout, gout, bout,
table, &
table[4], &
table[8], 1.01f, 1.02f, 1.03f, },
3804 { rout, rout, rout, &
table[8], &
table[8], &
table[8], 1.03f, 1.03f, 1.03f, },
3805 { rout, rout, bout, &
table[4], &
table[4], &
table[8], 1.02f, 1.02f, 1.03f, },
3806 { rout, gout, gout,
table, &
table[8], &
table[8], 1.01f, 1.03f, 1.03f, },
3807 { rout, gout, rout, &
table[8], &
table[4], &
table[8], 1.03f, 1.02f, 1.03f, },
3809 { rout,
NULL, bout,
table,
NULL, &
table[8], 1.01f, 1.02f, 1.03f, },
3810 { rout, gout,
NULL,
table, &
table[4],
NULL, 1.01f, 1.02f, 1.03f, },
3811 { rout,
NULL,
NULL,
table,
NULL,
NULL, 1.01f, 1.02f, 1.03f, },
3814 dir.x = 1.1f;
dir.y = 1.2f;
dir.z = 2.76f;
3815 top.r = 0.1f;
top.g = 2.1f;
top.b = 2.3f;
top.a = 4.3f;
3821 for (
j = 0;
j < 49;
j++)
3823 test[
l].red_received[
j] = 1.01f +
j;
3824 if (
test[
l].green_received)
3825 test[
l].green_received[
j] = 1.02f +
j;
3826 if (
test[
l].blue_received)
3827 test[
l].blue_received[
j] = 1.03f +
j;
3833 for (
j = 0;
j < 49;
j++)
3842 ok(
equal,
"Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3845 if (
test[
l].green_received)
3854 ok(
equal,
"Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3858 if (
test[
l].blue_received)
3867 ok(
equal,
"Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3876 float bout[49],
expected, gout[49], rout[49];
3882 static const float table[] =
3885 3.01317163e+00f, -9.77240128e-01f, 2.24765220e+00f, -8.95803434e-01f, 3.25255224e-35f, -8.16094904e-35f,
3886 8.95199460e-35f, -7.48086982e-35f, -2.83366352e-36f, 6.29281376e-02f, -4.27374053e-01f, 6.19212543e-01f,
3887 -3.04508915e-01f, 5.67611487e-01f, 3.72333533e-02f, -8.19167317e-02f, 1.25205729e-36f, 2.11515287e-35f,
3888 -8.85884025e-35f, 8.22100105e-35f, -1.41290744e-37f, 7.53591749e-35f, 7.71793061e-36f, -2.75340121e-35f,
3889 7.13117824e-36f, 1.24992691e-02f, -1.37487792e-02f, -1.48109290e-01f, 4.34345843e-01f, -2.45986100e-01f,
3890 -1.51757946e-01f, -2.25487254e-01f, -3.78407442e-02f, 1.92801335e-01f, -7.83071154e-02f, 7.97894137e-03f,
3892 4.02519645e-01f, -2.43653315e-01f, 5.60402600e-01f, -2.23348868e-01f, 1.62046875e-01f, -4.06590330e-01f,
3893 4.46001368e-01f, -3.72707796e-01f, -1.41177231e-02f, -4.31995198e-02f, 2.93387896e-01f, -4.25083048e-01f,
3894 2.09042241e-01f, -3.89659453e-01f, -2.55603144e-02f, 5.62349945e-02f, -4.68822967e-03f, -7.92002290e-02f,
3895 3.31712278e-01f, -3.07828893e-01f, 5.29052032e-04f, -2.82176480e-01f, -2.88991817e-02f, 1.03098934e-01f,
3896 -2.67021338e-02f, 7.24339502e-03f, -7.96749298e-03f, -8.58301461e-02f, 2.51705799e-01f, -1.42550295e-01f,
3897 -8.79445626e-02f, -1.30671101e-01f, -2.19289189e-02f, 1.11729432e-01f, -4.53794030e-02f, 4.62384030e-03f,
3899 1.95445306e+00f, -8.56593659e-01f, 1.97016533e+00f, -7.85210840e-01f, 2.31033385e-01f, -5.79683751e-01f,
3900 6.35872835e-01f, -5.31376762e-01f, -2.01279127e-02f, 2.11104646e-02f, -1.43370917e-01f, 2.07726860e-01f,
3901 -1.02153423e-01f, 1.90416285e-01f, 1.24906507e-02f, -2.74805568e-02f, 6.33162467e-03f, 1.06962790e-01f,
3902 -4.47989495e-01f, 4.15734115e-01f, -7.14504011e-04f, 3.81089599e-01f, 3.90293960e-02f, -1.39238860e-01f,
3903 3.60622028e-02f, -4.47359268e-03f, 4.92080277e-03f, 5.30095505e-02f, -1.55456001e-01f, 8.80404774e-02f,
3904 5.43154350e-02f, 8.07037695e-02f, 1.35435180e-02f, -6.90052063e-02f, 2.80267699e-02f, -2.85572968e-03f,
3906 4.60837984e+00f, -1.49460245e+00f, 3.43758549e+00f, -1.37005222e+00f, 4.97449134e-35f, -1.24814507e-34f,
3907 1.36912850e-34f, -1.14413296e-34f, -4.33383805e-36f, 9.62430278e-02f, -6.53630863e-01f, 9.47030887e-01f,
3908 -4.65719486e-01f, 8.68111630e-01f, 5.69451249e-02f, -1.25284405e-01f, 1.91491103e-36f, 3.23493947e-35f,
3909 -1.35488136e-34f, 1.25732949e-34f, -2.16091711e-37f, 1.15255201e-34f, 1.18038931e-35f, -4.21108392e-35f,
3910 1.09065072e-35f, 1.91165280e-02f, -2.10275433e-02f, -2.26520076e-01f, 6.64293599e-01f, -3.76214011e-01f,
3911 -2.32100374e-01f, -3.44862837e-01f, -5.78740756e-02f, 2.94872611e-01f, -1.19763816e-01f, 1.22030860e-02f,
3913 6.15618240e-01f, -3.72646222e-01f, 8.57086273e-01f, -3.41592364e-01f, 2.47836381e-01f, -6.21843994e-01f,
3914 6.82119695e-01f, -5.70023651e-01f, -2.15918104e-02f, -6.60698496e-02f, 4.48710870e-01f, -6.50126972e-01f,
3915 3.19711642e-01f, -5.95949713e-01f, -3.90922430e-02f, 8.60064566e-02f, -7.17023314e-03f, -1.21129754e-01f,
3916 5.07324627e-01f, -4.70797100e-01f, 8.09138350e-04f, -4.31564000e-01f, -4.41987457e-02f, 1.57680712e-01f,
3917 -4.08385549e-02f, 1.10781328e-02f, -1.21855767e-02f, -1.31269627e-01f, 3.84961785e-01f, -2.18018084e-01f,
3918 -1.34503440e-01f, -1.99849906e-01f, -3.35383443e-02f, 1.70880296e-01f, -6.94037884e-02f, 7.07175529e-03f,
3920 2.98916331e+00f, -1.31008433e+00f, 3.01319384e+00f, -1.20091062e+00f, 3.53345154e-01f, -8.86575090e-01f,
3921 9.72511332e-01f, -8.12693818e-01f, -3.07838645e-02f, 3.22865908e-02f, -2.19273153e-01f, 3.17699883e-01f,
3922 -1.56234637e-01f, 2.91224888e-01f, 1.91033469e-02f, -4.20290842e-02f, 9.68366064e-03f, 1.63590138e-01f,
3923 -6.85160360e-01f, 6.35828606e-01f, -1.09277077e-03f, 5.82842878e-01f, 5.96920135e-02f, -2.12953537e-01f,
3924 5.51539537e-02f, -6.84196484e-03f, 7.52593316e-03f, 8.10734249e-02f, -2.37756221e-01f, 1.34650133e-01f,
3925 8.30706600e-02f, 1.23429287e-01f, 2.07136145e-02f, -1.05537368e-01f, 4.28644688e-02f, -4.36758628e-03f,
3927 6.20358848e+00f, -2.01196491e+00f, 4.62751910e+00f, -1.84430114e+00f, 6.69643089e-35f, -1.68019534e-34f,
3928 1.84305766e-34f, -1.54017904e-34f, -5.83401297e-36f, 1.29557927e-01f, -8.79887732e-01f, 1.27484932e+00f,
3929 -6.26930101e-01f, 1.16861185e+00f, 7.66569017e-02f, -1.68652090e-01f, 2.57776494e-36f, 4.35472637e-35f,
3930 -1.82387882e-34f, 1.69255899e-34f, -2.90892699e-37f, 1.55151238e-34f, 1.58898567e-35f, -5.66876703e-35f,
3931 1.46818371e-35f, 2.57337886e-02f, -2.83063093e-02f, -3.04930882e-01f, 8.94241416e-01f, -5.06441957e-01f,
3932 -3.12442822e-01f, -4.64238452e-01f, -7.79074123e-02f, 3.96943914e-01f, -1.61220527e-01f, 1.64272318e-02f,
3934 8.28716892e-01f, -5.01639163e-01f, 1.15377003e+00f, -4.59835891e-01f, 3.33625909e-01f, -8.37097715e-01f,
3935 9.18238085e-01f, -7.67339558e-01f, -2.90658997e-02f, -8.89401854e-02f, 6.04033886e-01f, -8.75170956e-01f,
3936 4.30381072e-01f, -8.02240028e-01f, -5.26241753e-02f, 1.15777927e-01f, -9.65223728e-03f, -1.63059290e-01f,
3937 6.82937023e-01f, -6.33765350e-01f, 1.08922474e-03f, -5.80951560e-01f, -5.94983136e-02f, 2.12262505e-01f,
3938 -5.49749798e-02f, 1.49128717e-02f, -1.64036616e-02f, -1.76709119e-01f, 5.18217807e-01f, -2.93485893e-01f,
3939 -1.81062330e-01f, -2.69028730e-01f, -4.51477729e-02f, 2.30031176e-01f, -9.34281801e-02f, 9.51967094e-03f,
3941 4.02387383e+00f, -1.76357513e+00f, 4.05622263e+00f, -1.61661051e+00f, 4.75656955e-01f, -1.19346651e+00f,
3942 1.30914992e+00f, -1.09401095e+00f, -4.14398191e-02f, 4.34627200e-02f, -2.95175409e-01f, 4.27672935e-01f,
3943 -2.10315865e-01f, 3.92033517e-01f, 2.57160448e-02f, -5.65776154e-02f, 1.30356975e-02f, 2.20217502e-01f,
3944 -9.22331288e-01f, 8.55923154e-01f, -1.47103763e-03f, 7.84596211e-01f, 8.03546365e-02f, -2.86668233e-01f,
3945 7.42457096e-02f, -9.21033762e-03f, 1.01310642e-02f, 1.09137307e-01f, -3.20056463e-01f, 1.81259801e-01f,
3946 1.11825893e-01f, 1.66154815e-01f, 2.78837128e-02f, -1.42069538e-01f, 5.77021717e-02f, -5.87944329e-03f,
3950 float *red_received, *green_received, *blue_received;
3951 const float *red_expected, *green_expected, *blue_expected;
3952 float radius, roffset, goffset, boffset;
3956 { rout, gout, bout,
table, &
table[108], &
table[216], 17.4f, 1.01f, 1.02f, 1.03f, },
3957 { rout, gout, bout, &
table[36], &
table[144], &
table[252], 1.6f, 1.01f, 1.02f, 1.03f, },
3958 { rout, gout, bout, &
table[72], &
table[180], &
table[288], -3.0f, 1.01f, 1.02f, 1.03f, },
3959 { rout, rout, rout, &
table[216], &
table[216], &
table[216], 17.4f, 1.03f, 1.03f, 1.03f, },
3960 { rout, rout, bout, &
table[108], &
table[108], &
table[216], 17.4, 1.02f, 1.02f, 1.03f, },
3961 { rout, gout, gout,
table, &
table[216], &
table[216], 17.4f, 1.01f, 1.03f, 1.03f, },
3962 { rout, gout, rout, &
table[216], &
table[108], &
table[216], 17.4f, 1.03f, 1.02f, 1.03f, },
3964 { rout,
NULL, bout,
table,
NULL, &
table[216], 17.4f, 1.01f, 0.0f, 1.03f, },
3965 { rout, gout,
NULL,
table, &
table[108],
NULL, 17.4f, 1.01f, 1.02f, 0.0f, },
3966 { rout,
NULL,
NULL,
table,
NULL,
NULL, 17.4f, 1.01f, 0.0f, 0.0f, },
3969 dir.x = 1.1f;
dir.y = 1.2f;
dir.z = 2.76f;
3975 for (
j = 0;
j < 49;
j++)
3977 test[
l].red_received[
j] = 1.01f +
j;
3978 if (
test[
l].green_received)
3979 test[
l].green_received[
j] = 1.02f +
j;
3980 if (
test[
l].blue_received)
3981 test[
l].blue_received[
j] = 1.03f +
j;
3987 for (
j = 0;
j < 49;
j++)
3995 "Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
3998 if (
test[
l].green_received)
4006 "Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
4010 if (
test[
l].blue_received)
4018 "Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
4036 float a[20],
b[20],
c[20];
4043 3.41859412f, 1.69821072f, 1.70385253f, 1.70949447f, 4.0f, 5.0f, 6.0f,
4044 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f,
4045 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f,
4050 a[
i] = 1.0f +
i / 100.0f;
4051 b[
i] = 3.0f -
i / 100.0f;
4065 float a[20],
b[20],
c[20];
4072 7.81391382e+00f, 2.25605774e+00f, 5.94839954e+00f, 4.97089481e+00f, 2.89985824e+00f, 3.59894633e+00f,
4073 1.72657156e+00f, 5.57353783e+00f, 6.22063160e-01f, 9.00000000e+00f, 1.00000000e+01f, 1.10000000e+01f,
4074 1.20000000e+01f, 1.30000000e+01f, 1.40000000e+01f, 1.50000000e+01f, 1.60000000e+01f, 1.70000000e+01f,
4075 1.80000000e+01f, 1.90000000e+01f,
4077 static const float expected_aliased[20] =
4079 4.54092499e+02f, 2.12640405e+00f, 5.57040071e+00f, 1.53303785e+01f, 2.27960873e+01f, 4.36041260e+01f,
4080 4.27384138e+00f, 1.75772034e+02f, 2.37672729e+02f, 1.09000003e+00f, 1.10000002e+00f, 1.11000001e+00f,
4081 1.12000000e+00f, 1.13000000e+00f, 1.13999999e+00f, 1.14999998e+00f, 1.15999997e+00f, 1.16999996e+00f,
4082 1.17999995e+00f, 1.19000006e+00f,
4087 a[
i] = 1.0f +
i / 100.0f;
4088 b[
i] = 3.0f -
i / 100.0f;
4104 ok(
equal,
"Expected[%u] = %.8e, received = %.8e.\n",
i, expected_aliased[
i],
c[
i]);
4110 float a[20],
b[20],
c[20];
4118 1.41825991e+01f, 2.61570334e+00f, 1.28286009e+01f, 9.82059574e+00f, 3.03969646e+00f, 4.53044176e+00f,
4119 5.82058382e+00f, 1.22498465e+01f, 2.19434643e+00f, 3.90015244e+00f, 5.41660881e+00f, 5.60181284e+00f,
4120 9.59981740e-01f, 7.03754997e+00f, 3.62523031e+00f, 4.63601470e-01f, 1.60000000e+01f, 1.70000000e+01f,
4121 1.80000000e+01f, 1.90000000e+01f,
4123 -2.11441266e+05f, -2.52915771e+03f, -1.00233936e+04f, -4.41277191e+02f, -1.63994385e+02f, -5.26305115e+02f,
4124 2.96361875e+04f, -3.93183081e+03f, -1.35771113e+04f, -3.97897388e+03f, -1.03303418e+04f, -1.37797871e+04f,
4125 -1.66851094e+04f, -4.49813750e+04f, -7.32697422e+04f, -9.52373359e+04f, 1.60000000e+01f, 1.70000000e+01f,
4126 1.80000000e+01f, 1.90000000e+01f,
4128 2.36682415e-01f, -7.17648506e-01f, -1.80499524e-01f, -7.71235973e-02f, 1.44830629e-01f, 5.73285699e-01f,
4129 -3.37959230e-01f, 5.56938872e-02f, -4.42100227e-01f, 1.47701755e-01f, -5.51566519e-02f, 8.43374059e-02f,
4130 1.79876596e-01f, 9.09878965e-03f, 2.32199892e-01f, 7.41420984e-02f, 1.60000002e+00f, 1.70000005e+00f,
4131 1.80000007e+00f, 1.89999998e+00f,
4136 a[
i] = 1.0f +
i / 100.0f;
4137 b[
i] = 3.0f -
i / 100.0f;
4150 b[
i] = 3.0f -
i / 100.0f;
4179 static const float table[]=
4182 1.00999999e+00f, -3.00999999e+00f, 2.00999975e+00f, 4.01000023e+00f, -8.01000023e+00f, -6.00999928e+00f,
4183 -1.13078899e+01f, 5.00999975e+00f, -1.56583869e+00f, 1.09359801e+00f, -1.10099983e+01f, 1.98334141e+01f,
4184 -1.52681913e+01f, -1.90041180e+01f, -3.36488891e+00f, -9.56262684e+00f, 1.20996542e+01f, -2.72131383e-01f,
4185 3.02410126e+01f, 2.69199905e+01f, 3.92368774e+01f, -2.26324463e+01f, 6.70738792e+00f, -1.17682819e+01f,
4186 3.44367194e+00f, -6.07445812e+00f, 1.16183939e+01f, 1.52756083e+00f, 3.78963356e+01f, -5.69012184e+01f,
4187 4.74228935e+01f, 5.03915329e+01f, 1.06181908e+01f, 2.55010109e+01f, 4.92456071e-02f, 1.69833069e+01f,
4189 1.00999999e+00f, -3.00999999e+00f, -3.01000023e+00f, 4.01000023e+00f, -8.01000023e+00f, -6.00999928e+00f,
4190 -1.13078890e+01f, -8.01000023e+00f, 1.42979193e+01f,
4192 1.00999999e+00f, 3.00999999e+00f, -2.01000023e+00f, 4.01000023e+00f, 8.01000023e+00f, -6.01000118e+00f,
4193 -1.13078880e+01f, -5.01000071e+00f, -1.56583774e+00f, -1.09359753e+00f, -1.10100021e+01f, -1.98334103e+01f,
4194 1.52681961e+01f, -1.90041142e+01f, 3.36489248e+00f, -9.56262398e+00f, -1.20996523e+01f, -2.72129118e-01f,
4195 -3.02410049e+01f, 2.69200020e+01f, 3.92368736e+01f, 2.26324520e+01f, 6.70738268e+00f, 1.17682877e+01f,
4196 3.44367099e+00f, 6.07445717e+00f, 1.16183996e+01f, -1.52756333e+00f, 3.78963509e+01f, 5.69011993e+01f,
4197 -4.74229126e+01f, 5.03915253e+01f, -1.06182041e+01f, 2.55009995e+01f, -4.92481887e-02f, 1.69833050e+01f,
4199 1.00999999e+00f, 3.00999999e+00f, -3.01000023e+00f, 4.01000023e+00f, 8.01000023e+00f, -6.01000118e+00f,
4200 -1.13078899e+01f, -8.01000023e+00f, 1.42979193e+01f,
4202 1.00999999e+00f, 4.94489908e+00f, 1.44230127e+00f, 1.62728095e+00f, 2.19220325e-01f, 1.05408239e+01f,
4203 -9.13690281e+00f, 2.76374960e+00f, -7.30904531e+00f, -5.87572050e+00f, 5.30312395e+00f, -8.68215370e+00f,
4204 -2.56833839e+01f, 1.68027866e+00f, -1.88083878e+01f, 7.65365601e+00f, 1.69391327e+01f, -1.73280182e+01f,
4205 1.46297951e+01f, -5.44671021e+01f, -1.22310352e+01f, -4.08985710e+00f, -9.44422245e+00f, 3.05603528e+00f,
4206 1.79257303e-01f, -1.00418749e+01f, 2.30900917e+01f, -2.31887093e+01f, 1.17270985e+01f, -6.51830902e+01f,
4207 4.86715775e+01f, -1.50732088e+01f, 3.87931709e+01f, -2.60395355e+01f, 6.19276857e+00f, -1.76722469e+01f,
4209 1.00999999e+00f, 4.94489908e+00f, -8.91142070e-01f, 4.60769463e+00f, 2.19218358e-01f, 1.07733250e+01f,
4210 -8.20476913e+00f, 1.35638294e+01f, -1.20077667e+01f,
4212 1.00999999e+00f, 3.74571109e+00f, 3.00999999e+00f, 2.46776199e+00f, 1.03078890e+01f, 9.20981312e+00f,
4213 7.01000023e+00f, 3.93186355e+00f, 1.66212186e-01f, 1.60099983e+01f, 1.85040417e+01f, 1.74059658e+01f,
4214 1.30100002e+01f, 6.12801647e+00f, -2.02994061e+00f, -1.00100012e+01f, 1.31542921e+01f, 2.40099964e+01f,
4215 2.94322453e+01f, 2.83341675e+01f, 2.10100021e+01f, 9.05622101e+00f, -4.95814323e+00f, -1.80100002e+01f,
4216 -2.72360935e+01f, -4.52033186e+00f, 1.68145428e+01f, 3.40099945e+01f, 4.30924950e+01f, 4.19944229e+01f,
4217 3.10100002e+01f, 1.27164707e+01f, -8.61839962e+00f, -2.80100021e+01f, -4.08963470e+01f, -4.41905708e+01f,
4219 1.00999999e+00f, 3.74571109e+00f, 3.00999999e+00f, 1.59990644e+00f, 1.03078890e+01f, 9.20981312e+00f,
4220 7.01000023e+00f, 2.33195710e+00f, -4.42189360e+00f,
4228 for (
l = 0;
l < 2;
l++)
4241 out[
i] = (
i + 1.0f ) * (
i + 1.0f );
4246 ok(received_ptr == out_temp,
"Order %u, expected %p, received %p.\n",
4258 else if ((
l == 0) || (
order > 3))
4263 ok(
equal,
"Order %u index %u, expected %.8e, received %.8e.\n",
4278 static const float table[] =
4281 1.00999999e+00f, 4.47776222e+00f, 3.00999999e+00f, 2.64288902e-01f, 5.29788828e+00f, 9.94186401e+00f,
4282 7.01000023e+00f, -1.19981313e+00f, -8.84378910e+00f, -1.00100021e+01f, 7.49403954e+00f, 1.81380157e+01f,
4283 1.30100002e+01f, -3.39596605e+00f, -1.70399418e+01f, -1.60099983e+01f, -3.01642971e+01f, -1.80100040e+01f,
4284 1.04222422e+01f, 2.90662193e+01f, 2.10100002e+01f, -6.32417059e+00f, -2.79681454e+01f, -2.40099983e+01f,
4285 2.22609901e+00f, -1.81805649e+01f, -4.38245506e+01f, -2.80100040e+01f, 1.40824928e+01f, 4.27264709e+01f,
4286 3.10100002e+01f, -9.98442554e+00f, -4.16283989e+01f, -3.40099945e+01f, 5.88635778e+00f, 4.05303307e+01f,
4288 1.00999999e+00f, 4.47776222e+00f, 0.00000000e+00f, -5.81678391e+00f, 5.29788828e+00f, 6.93686390e+00f,
4289 0.00000000e+00f, -9.01125050e+00f, -2.29405236e+00f, -1.00100021e+01f, 1.29990416e+01f, 1.21330166e+01f,
4290 0.00000000e+00f, -1.57612505e+01f, -5.62874842e+00f, 0.00000000e+00f, -3.01642971e+01f, -3.29017075e-06f,
4291 1.99272442e+01f, 1.90612202e+01f, 0.00000000e+00f, -2.47612514e+01f, -8.62874794e+00f, 0.00000000e+00f,
4292 -1.30615301e+01f, -1.81805649e+01f, -3.03195534e+01f, -4.66050415e-06f, 2.85874958e+01f, 2.77214737e+01f,
4293 0.00000000e+00f, -3.60112534e+01f, -1.23787460e+01f, 0.00000000e+00f, -1.31287584e+01f, -2.36172504e+01f,
4295 1.00999999e+00f, 3.97776222e+00f, 3.97776222e+00f, 1.11419535e+00f, 7.24579096e+00f, 1.05597591e+01f,
4296 1.05597591e+01f, -9.95159924e-01f, -4.67341393e-01f, 4.67339337e-01f, 1.27653713e+01f, 1.85157013e+01f,
4297 1.85157013e+01f, -1.79728663e+00f, 4.93915796e-01f, -4.93915856e-01f, -2.14123421e+01f, 2.14123383e+01f,
4298 9.22107220e+00f, 2.36717567e+01f, 2.36717567e+01f, 3.85019469e+00f, -2.04687271e+01f, 2.04687233e+01f,
4299 -1.06621027e+01f, -3.65166283e+01f, -1.20612450e+01f, 1.20612402e+01f, 2.25568752e+01f, 3.89999084e+01f,
4300 3.89999084e+01f, -3.48751247e-02f, -1.04279022e+01f, 1.04279003e+01f, -3.68382835e+01f, -2.76528034e+01f,
4302 1.00999999e+00f, -2.46776247e+00f, 3.00999999e+00f, 3.74571109e+00f, -1.03078899e+01f, -3.93186426e+00f,
4303 7.01000023e+00f, 9.20981312e+00f, -1.66213632e-01f, -1.00099983e+01f, -1.85040436e+01f, -6.12801695e+00f,
4304 1.30100002e+01f, 1.74059658e+01f, 2.02993774e+00f, -1.60100021e+01f, 1.31543026e+01f, -1.80099964e+01f,
4305 -2.94322472e+01f, -9.05622101e+00f, 2.10100002e+01f, 2.83341694e+01f, 4.95813942e+00f, -2.40100021e+01f,
4306 -2.72360916e+01f, 4.41905823e+01f, 1.68145580e+01f, -2.80099964e+01f, -4.30924988e+01f, -1.27164736e+01f,
4307 3.10100002e+01f, 4.19944229e+01f, 8.61839294e+00f, -3.40100021e+01f, -4.08963470e+01f, -4.52030993e+00f,
4309 1.00999999e+00f, -2.46776247e+00f, 0.00000000e+00f, -3.20571756e+00f, -1.03078899e+01f, -6.93686390e+00f,
4310 0.00000000e+00f, -9.01125050e+00f, -4.46344614e+00f, -1.00099983e+01f, -1.29990416e+01f, -1.21330166e+01f,
4311 0.00000000e+00f, -1.57612505e+01f, -5.62874842e+00f, 0.00000000e+00f, 1.31543026e+01f, 3.29017075e-06f,
4312 -1.99272442e+01f, -1.90612202e+01f, 0.00000000e+00f, -2.47612514e+01f, -8.62874794e+00f, 0.00000000e+00f,
4313 -5.69598293e+00f, 4.41905823e+01f, 3.03195534e+01f, 4.66050415e-06f, -2.85874958e+01f, -2.77214737e+01f,
4314 0.00000000e+00f, -3.60112534e+01f, -1.23787460e+01f, 0.00000000e+00f, -1.31287584e+01f, -5.74052582e+01f,
4316 1.00999999e+00f, -2.96776223e+00f, -2.96776223e+00f, -6.09195352e-01f, -7.49829102e+00f, -1.06860094e+01f,
4317 -1.06860094e+01f, -1.18367157e+01f, 5.39078045e+00f, -5.39077854e+00f, -1.03036509e+01f, -1.72848415e+01f,
4318 -1.72848415e+01f, -1.75656433e+01f, 4.11427259e+00f, -4.11427307e+00f, 2.37164364e+01f, -2.37164326e+01f,
4319 -8.06902504e+00f, -2.30957317e+01f, -2.30957317e+01f, -1.85358467e+01f, -1.12711067e+01f, 1.12711039e+01f,
4320 -2.07248449e+00f, 3.01493301e+01f, 1.52448931e+01f, -1.52448883e+01f, -2.09650497e+01f, -3.82039986e+01f,
4321 -3.82039986e+01f, -3.72582664e+01f, 5.42667723e+00f, -5.42667913e+00f, -2.33967514e+01f, -9.90355873e+00f,
4323 1.00999999e+00f, -4.47776222e+00f, 3.00999999e+00f, -2.64288664e-01f, 5.29788685e+00f, -9.94186401e+00f,
4324 7.01000023e+00f, 1.19981360e+00f, -8.84378815e+00f, 1.00100040e+01f, 7.49403811e+00f, -1.81380157e+01f,
4325 1.30100002e+01f, 3.39596677e+00f, -1.70399399e+01f, 1.60099964e+01f, -3.01642933e+01f, 1.80100060e+01f,
4326 1.04222393e+01f, -2.90662193e+01f, 2.10100002e+01f, 6.32417202e+00f, -2.79681435e+01f, 2.40099926e+01f,
4327 2.22610497e+00f, 1.81805515e+01f, -4.38245430e+01f, 2.80100079e+01f, 1.40824890e+01f, -4.27264709e+01f,
4328 3.10100002e+01f, 9.98442745e+00f, -4.16283989e+01f, 3.40099869e+01f, 5.88636589e+00f, -4.05303268e+01f,
4330 1.00999999e+00f, -4.47776222e+00f, 0.00000000e+00f, -1.93892837e+00f, 5.29788685e+00f, -6.93686390e+00f,
4331 0.00000000e+00f, -3.00375080e+00f, -2.29405141e+00f, 1.00100040e+01f, 1.29990396e+01f, -1.21330166e+01f,
4332 0.00000000e+00f, -5.25375128e+00f, -5.62874699e+00f, -5.68378528e-06f, -3.01642933e+01f, 7.00829787e-06f,
4333 1.99272423e+01f, -1.90612202e+01f, 0.00000000e+00f, -8.25375271e+00f, -8.62874603e+00f, -4.09131496e-12f,
4334 -1.30615349e+01f, 1.81805515e+01f, -3.03195534e+01f, 9.92720470e-06f, 2.85874920e+01f, -2.77214737e+01f,
4335 0.00000000e+00f, -1.20037527e+01f, -1.23787422e+01f, -5.79531909e-12f, -1.31287651e+01f, -7.87240028e+00f,
4337 1.00999999e+00f, -3.97776222e+00f, -3.97776222e+00f, 2.86356640e+00f, 6.37110424e+00f, -1.01224155e+01f,
4338 -1.01224155e+01f, 1.05787458e+01f, -7.76929522e+00f, -7.76928997e+00f, 1.68836861e+01f, -2.05748577e+01f,
4339 -2.05748577e+01f, 2.49091301e+01f, -5.72616625e+00f, -5.72616386e+00f, -1.87962208e+01f, -1.87962112e+01f,
4340 2.93253498e+01f, -3.37238922e+01f, -3.37238922e+01f, 4.22584419e+01f, -4.85123205e+00f, -4.85122633e+00f,
4341 -2.53339314e+00f, 3.24522591e+01f, -4.65456696e+01f, -4.65456543e+01f, 5.18603249e+01f, -5.36516304e+01f,
4342 -5.36516304e+01f, 7.17381744e+01f, 4.44061565e+00f, 4.44062901e+00f, 2.58841743e+01f, -1.07481155e+01f,
4345 for (
l = 0;
l < 3;
l++)
4350 out_temp = &
in[
l - 1];
4363 out[
i] = (
i + 1.0f ) * (
i + 1.0f );
4368 ok(received_ptr == out_temp,
"angle %f, order %u, expected %p, received %p\n",
angle[
j],
order, out_temp, received_ptr);
4370 for (
i = 0;
i <
end;
i++)
4383 "angle %.8e, order %u index %u, expected %.8e, received %.8e.\n",
4393 float a[49],
b[49],
expected, *received_array;
4406 ok(received_array ==
b,
"Expected %p, received %p\n",
b, received_array);
4425 IDirect3DCubeTexture9 *
texture;
4443 {1.77656245f, -1.11197047e-2f, 2.08763797e-2f, -2.10229922e-2f},
4444 {1.75811982f, -4.82511893e-2f, 1.67397819e-2f, -1.71497762e-2f},
4445 {1.75515056f, -4.07523997e-2f, 1.05397226e-2f, -2.46812664e-2f}},
4447 {1.77656245f, -1.11197047e-2f, 2.08763797e-2f, -2.10229922e-2f},
4448 {1.75811982f, -4.82511893e-2f, 1.67397819e-2f, -1.71497762e-2f},
4449 {1.75515056f, -4.07523997e-2f, 1.05397226e-2f, -2.46812664e-2f}},
4451 {1.75515056f, -4.07523997e-2f, 1.05397226e-2f, -2.46812664e-2f},
4452 {1.75811982f, -4.82511893e-2f, 1.67397819e-2f, -1.71497762e-2f},
4453 {1.77656245f, -1.11197047e-2f, 2.08763797e-2f, -2.10229922e-2f}},
4455 {1.77099848f, -3.88867334e-2f, 6.73775524e-2f, -1.26888147e-2f},
4456 {1.77244151f, -5.64723741e-4f, -2.77878426e-4f, -9.10691451e-3f},
4457 {1.78902030f, 2.79005636e-2f, 1.62461456e-2f, 2.21668324e-3f}},
4459 {1.78022826f, 1.46923587e-2f, 3.58058624e-2f, 2.51076911e-2f},
4460 {1.77233493f, -7.58088892e-4f, -2.03727093e-3f, -1.34809706e-2f},
4461 {1.78902030f, 2.79005636e-2f, 1.62461456e-2f, 2.21668324e-3f}},
4463 {1.78022826f, 1.46923587e-2f, 3.58058624e-2f, 2.51076911e-2f},
4464 {1.77233493f, -7.58088892e-4f, -2.03727093e-3f, -1.34809706e-2f},
4465 {1.78902030f, 2.79005636e-2f, 1.62461456e-2f, 2.21668324e-3f}},
4467 {1.79359019f, -7.74506712e-4f, 8.65613017e-3f, 5.75336441e-3f},
4468 {1.77067971f, 6.42523961e-3f, 1.35379164e-2f, 2.24088971e-3f},
4469 {1.76601243f, -4.94002625e-2f, 1.28124524e-2f, -7.69229094e-3f}},
4471 {1.76601243f, -4.94002625e-2f, 1.28124524e-2f, -7.69229094e-3f},
4472 {1.77067971f, 6.42523961e-3f, 1.35379164e-2f, 2.24088971e-3f},
4473 {1.79359019f, -7.74506712e-4f, 8.65613017e-3f, 5.75336441e-3f}},
4475 {1.75979614f, 1.44450525e-2f, -3.25212209e-3f, 2.98178056e-3f},
4476 {1.78080165f, -2.63770130e-2f, 6.31967233e-3f, 3.66022950e-3f},
4477 {1.77588308f, -1.93727610e-3f, -3.22831096e-3f, -6.18841546e-3f}},
4479 { 5.17193642e+1f, -3.41681671e+2f, -8.82221741e+2f, 7.77049316e+2f},
4480 {-2.08198950e+3f, 5.24323584e+3f, -3.42663379e+3f, 3.80999243e+3f},
4481 {-1.10743945e+3f, -9.43649292e+2f, 5.48424316e+2f, 1.65352710e+3f}},
4487 skip(
"Failed to create a D3D object.\n");
4494 skip(
"Failed to create a D3D device, skipping tests.\n");
4508 skip(
"Failed to create cube texture.\n");
4519 for (
y = 0;
y < 8; ++
y)
4555 for (
j = 0;
j < 4; ++
j)
4558 "Got unexpected value %.8e for red coefficient %u.\n",
red[
j],
j);
4560 "Got unexpected value %.8e for green coefficient %u.\n",
green[
j],
j);
4562 "Got unexpected value %.8e for blue coefficient %u.\n",
blue[
j],
j);
4580 ok(!refcount,
"Device has %lu references left.\n", refcount);
#define D3DERR_INVALIDCALL
enum _D3DFORMAT D3DFORMAT
IDirect3D9 *WINAPI Direct3DCreate9(UINT SDKVersion)
#define IDirect3DCubeTexture9_UnlockRect(p, a, b)
#define IDirect3D9_CreateDevice(p, a, b, c, d, e, f)
#define IDirect3DCubeTexture9_Release(p)
#define IDirect3DCubeTexture9_LockRect(p, a, b, c, d, e)
#define IDirect3DDevice9_CreateCubeTexture(p, a, b, c, d, e, f, g)
#define IDirect3D9_Release(p)
#define IDirect3DDevice9_Release(p)
D3DXCOLOR * D3DXColorSubtract(D3DXCOLOR *out, D3DXCOLOR c1, D3DXCOLOR c2)
D3DXCOLOR * D3DXColorAdd(D3DXCOLOR *out, D3DXCOLOR c1, D3DXCOLOR c2)
D3DXCOLOR * D3DXColorLerp(D3DXCOLOR *out, D3DXCOLOR c1, D3DXCOLOR c2, float s)
D3DXCOLOR * D3DXColorScale(D3DXCOLOR *out, D3DXCOLOR c, float s)
D3DXCOLOR * D3DXColorModulate(D3DXCOLOR *out, D3DXCOLOR c1, D3DXCOLOR c2)
D3DXQUATERNION *WINAPI D3DXQuaternionMultiply(D3DXQUATERNION *pout, const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2)
D3DXQUATERNION *WINAPI D3DXQuaternionBaryCentric(D3DXQUATERNION *pout, const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2, const D3DXQUATERNION *pq3, FLOAT f, FLOAT g)
D3DXMATRIX *WINAPI D3DXMatrixLookAtRH(D3DXMATRIX *out, const D3DXVECTOR3 *eye, const D3DXVECTOR3 *at, const D3DXVECTOR3 *up)
D3DXVECTOR2 *WINAPI D3DXVec2TransformCoordArray(D3DXVECTOR2 *out, UINT outstride, const D3DXVECTOR2 *in, UINT instride, const D3DXMATRIX *matrix, UINT elements)
D3DXVECTOR4 *WINAPI D3DXVec4Normalize(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv)
D3DXQUATERNION *WINAPI D3DXQuaternionSquad(D3DXQUATERNION *pout, const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2, const D3DXQUATERNION *pq3, const D3DXQUATERNION *pq4, FLOAT t)
D3DXVECTOR2 *WINAPI D3DXVec2TransformNormal(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv, const D3DXMATRIX *pm)
HRESULT WINAPI D3DXSHEvalSphericalLight(UINT order, const D3DXVECTOR3 *dir, FLOAT radius, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout)
D3DXMATRIX *WINAPI D3DXMatrixPerspectiveLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf)
D3DXVECTOR2 *WINAPI D3DXVec2BaryCentric(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2, const D3DXVECTOR2 *pv3, FLOAT f, FLOAT g)
HRESULT WINAPI D3DXSHEvalConeLight(UINT order, const D3DXVECTOR3 *dir, FLOAT radius, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout)
HRESULT WINAPI D3DXSHProjectCubeMap(unsigned int order, IDirect3DCubeTexture9 *texture, float *red, float *green, float *blue)
D3DXVECTOR4 *WINAPI D3DXVec4Transform(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv, const D3DXMATRIX *pm)
D3DXVECTOR2 *WINAPI D3DXVec2Hermite(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pt1, const D3DXVECTOR2 *pv2, const D3DXVECTOR2 *pt2, FLOAT s)
D3DXMATRIX *WINAPI D3DXMatrixMultiplyTranspose(D3DXMATRIX *pout, const D3DXMATRIX *pm1, const D3DXMATRIX *pm2)
FLOAT *WINAPI D3DXFloat16To32Array(FLOAT *pout, const D3DXFLOAT16 *pin, UINT n)
D3DXMATRIX *WINAPI D3DXMatrixOrthoOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf)
D3DXCOLOR *WINAPI D3DXColorAdjustContrast(D3DXCOLOR *pout, const D3DXCOLOR *pc, FLOAT s)
D3DXPLANE *WINAPI D3DXPlaneTransform(D3DXPLANE *pout, const D3DXPLANE *pplane, const D3DXMATRIX *pm)
FLOAT *WINAPI D3DXSHMultiply4(FLOAT *out, const FLOAT *a, const FLOAT *b)
D3DXMATRIX *WINAPI D3DXMatrixRotationYawPitchRoll(D3DXMATRIX *out, FLOAT yaw, FLOAT pitch, FLOAT roll)
HRESULT WINAPI D3DXSHEvalDirectionalLight(UINT order, const D3DXVECTOR3 *dir, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *Rout, FLOAT *Gout, FLOAT *Bout)
D3DXVECTOR3 *WINAPI D3DXVec3TransformCoord(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DXMATRIX *pm)
D3DXVECTOR4 *WINAPI D3DXVec4Cross(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2, const D3DXVECTOR4 *pv3)
D3DXVECTOR3 *WINAPI D3DXVec3UnprojectArray(D3DXVECTOR3 *out, UINT outstride, const D3DXVECTOR3 *in, UINT instride, const D3DVIEWPORT9 *viewport, const D3DXMATRIX *projection, const D3DXMATRIX *view, const D3DXMATRIX *world, UINT elements)
D3DXMATRIX *WINAPI D3DXMatrixRotationY(D3DXMATRIX *pout, FLOAT angle)
D3DXMATRIX *WINAPI D3DXMatrixRotationZ(D3DXMATRIX *pout, FLOAT angle)
D3DXMATRIX *WINAPI D3DXMatrixReflect(D3DXMATRIX *pout, const D3DXPLANE *pplane)
D3DXVECTOR4 *WINAPI D3DXVec2Transform(D3DXVECTOR4 *pout, const D3DXVECTOR2 *pv, const D3DXMATRIX *pm)
FLOAT *WINAPI D3DXSHRotateZ(FLOAT *out, UINT order, FLOAT angle, const FLOAT *in)
D3DXQUATERNION *WINAPI D3DXQuaternionExp(D3DXQUATERNION *out, const D3DXQUATERNION *q)
D3DXMATRIX *WINAPI D3DXMatrixAffineTransformation2D(D3DXMATRIX *out, FLOAT scaling, const D3DXVECTOR2 *rotationcenter, FLOAT rotation, const D3DXVECTOR2 *translation)
HRESULT WINAPI D3DXMatrixDecompose(D3DXVECTOR3 *poutscale, D3DXQUATERNION *poutrotation, D3DXVECTOR3 *pouttranslation, const D3DXMATRIX *pm)
D3DXMATRIX *WINAPI D3DXMatrixMultiply(D3DXMATRIX *pout, const D3DXMATRIX *pm1, const D3DXMATRIX *pm2)
D3DXVECTOR4 *WINAPI D3DXVec2TransformArray(D3DXVECTOR4 *out, UINT outstride, const D3DXVECTOR2 *in, UINT instride, const D3DXMATRIX *matrix, UINT elements)
D3DXVECTOR2 *WINAPI D3DXVec2TransformNormalArray(D3DXVECTOR2 *out, UINT outstride, const D3DXVECTOR2 *in, UINT instride, const D3DXMATRIX *matrix, UINT elements)
D3DXPLANE *WINAPI D3DXPlaneFromPoints(D3DXPLANE *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2, const D3DXVECTOR3 *pv3)
FLOAT WINAPI D3DXMatrixDeterminant(const D3DXMATRIX *pm)
D3DXQUATERNION *WINAPI D3DXQuaternionSlerp(D3DXQUATERNION *out, const D3DXQUATERNION *q1, const D3DXQUATERNION *q2, FLOAT t)
D3DXMATRIX *WINAPI D3DXMatrixPerspectiveOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf)
D3DXVECTOR3 *WINAPI D3DXVec3ProjectArray(D3DXVECTOR3 *out, UINT outstride, const D3DXVECTOR3 *in, UINT instride, const D3DVIEWPORT9 *viewport, const D3DXMATRIX *projection, const D3DXMATRIX *view, const D3DXMATRIX *world, UINT elements)
D3DXVECTOR2 *WINAPI D3DXVec2CatmullRom(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv0, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2, const D3DXVECTOR2 *pv3, FLOAT s)
D3DXVECTOR2 *WINAPI D3DXVec2TransformCoord(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv, const D3DXMATRIX *pm)
FLOAT *WINAPI D3DXSHMultiply2(FLOAT *out, const FLOAT *a, const FLOAT *b)
D3DXMATRIX *WINAPI D3DXMatrixInverse(D3DXMATRIX *pout, FLOAT *pdeterminant, const D3DXMATRIX *pm)
D3DXQUATERNION *WINAPI D3DXQuaternionNormalize(D3DXQUATERNION *out, const D3DXQUATERNION *q)
D3DXPLANE *WINAPI D3DXPlaneNormalize(D3DXPLANE *out, const D3DXPLANE *p)
D3DXMATRIX *WINAPI D3DXMatrixTransformation2D(D3DXMATRIX *out, const D3DXVECTOR2 *scaling_center, float scaling_rotation, const D3DXVECTOR2 *scaling, const D3DXVECTOR2 *rotation_center, float rotation, const D3DXVECTOR2 *translation)
D3DXVECTOR3 *WINAPI D3DXVec3Project(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DVIEWPORT9 *pviewport, const D3DXMATRIX *pprojection, const D3DXMATRIX *pview, const D3DXMATRIX *pworld)
D3DXVECTOR3 *WINAPI D3DXVec3TransformCoordArray(D3DXVECTOR3 *out, UINT outstride, const D3DXVECTOR3 *in, UINT instride, const D3DXMATRIX *matrix, UINT elements)
D3DXQUATERNION *WINAPI D3DXQuaternionLn(D3DXQUATERNION *out, const D3DXQUATERNION *q)
D3DXMATRIX *WINAPI D3DXMatrixRotationAxis(D3DXMATRIX *out, const D3DXVECTOR3 *v, FLOAT angle)
D3DXMATRIX *WINAPI D3DXMatrixPerspectiveOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf)
D3DXVECTOR4 *WINAPI D3DXVec3TransformArray(D3DXVECTOR4 *out, UINT outstride, const D3DXVECTOR3 *in, UINT instride, const D3DXMATRIX *matrix, UINT elements)
D3DXMATRIX *WINAPI D3DXMatrixTranspose(D3DXMATRIX *out, const D3DXMATRIX *in)
void WINAPI D3DXQuaternionSquadSetup(D3DXQUATERNION *paout, D3DXQUATERNION *pbout, D3DXQUATERNION *pcout, const D3DXQUATERNION *pq0, const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2, const D3DXQUATERNION *pq3)
D3DXMATRIX *WINAPI D3DXMatrixTransformation(D3DXMATRIX *out, const D3DXVECTOR3 *scaling_center, const D3DXQUATERNION *scaling_rotation, const D3DXVECTOR3 *scaling, const D3DXVECTOR3 *rotation_center, const D3DXQUATERNION *rotation, const D3DXVECTOR3 *translation)
D3DXVECTOR4 *WINAPI D3DXVec4BaryCentric(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2, const D3DXVECTOR4 *pv3, FLOAT f, FLOAT g)
D3DXMATRIX *WINAPI D3DXMatrixLookAtLH(D3DXMATRIX *out, const D3DXVECTOR3 *eye, const D3DXVECTOR3 *at, const D3DXVECTOR3 *up)
HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, ID3DXMatrixStack **stack)
D3DXVECTOR2 *WINAPI D3DXVec2Normalize(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv)
D3DXMATRIX *WINAPI D3DXMatrixOrthoRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf)
D3DXVECTOR3 *WINAPI D3DXVec3TransformNormal(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DXMATRIX *pm)
D3DXVECTOR3 *WINAPI D3DXVec3Normalize(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv)
D3DXMATRIX *WINAPI D3DXMatrixRotationQuaternion(D3DXMATRIX *pout, const D3DXQUATERNION *pq)
D3DXQUATERNION *WINAPI D3DXQuaternionInverse(D3DXQUATERNION *pout, const D3DXQUATERNION *pq)
FLOAT *WINAPI D3DXSHMultiply3(FLOAT *out, const FLOAT *a, const FLOAT *b)
D3DXVECTOR4 *WINAPI D3DXVec4Hermite(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pt1, const D3DXVECTOR4 *pv2, const D3DXVECTOR4 *pt2, FLOAT s)
D3DXMATRIX *WINAPI D3DXMatrixShadow(D3DXMATRIX *pout, const D3DXVECTOR4 *plight, const D3DXPLANE *pplane)
D3DXFLOAT16 *WINAPI D3DXFloat32To16Array(D3DXFLOAT16 *pout, const FLOAT *pin, UINT n)
FLOAT WINAPI D3DXFresnelTerm(FLOAT costheta, FLOAT refractionindex)
D3DXVECTOR4 *WINAPI D3DXVec4CatmullRom(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv0, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2, const D3DXVECTOR4 *pv3, FLOAT s)
FLOAT *WINAPI D3DXSHRotate(FLOAT *out, UINT order, const D3DXMATRIX *matrix, const FLOAT *in)
HRESULT WINAPI D3DXSHEvalHemisphereLight(UINT order, const D3DXVECTOR3 *dir, D3DXCOLOR top, D3DXCOLOR bottom, FLOAT *rout, FLOAT *gout, FLOAT *bout)
D3DXMATRIX *WINAPI D3DXMatrixTranslation(D3DXMATRIX *pout, FLOAT x, FLOAT y, FLOAT z)
FLOAT *WINAPI D3DXSHAdd(FLOAT *out, UINT order, const FLOAT *a, const FLOAT *b)
D3DXVECTOR3 *WINAPI D3DXPlaneIntersectLine(D3DXVECTOR3 *pout, const D3DXPLANE *pp, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
D3DXPLANE *WINAPI D3DXPlaneTransformArray(D3DXPLANE *out, UINT outstride, const D3DXPLANE *in, UINT instride, const D3DXMATRIX *matrix, UINT elements)
D3DXVECTOR4 *WINAPI D3DXVec4TransformArray(D3DXVECTOR4 *out, UINT outstride, const D3DXVECTOR4 *in, UINT instride, const D3DXMATRIX *matrix, UINT elements)
D3DXPLANE *WINAPI D3DXPlaneFromPointNormal(D3DXPLANE *pout, const D3DXVECTOR3 *pvpoint, const D3DXVECTOR3 *pvnormal)
D3DXQUATERNION *WINAPI D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION *out, FLOAT yaw, FLOAT pitch, FLOAT roll)
D3DXVECTOR3 *WINAPI D3DXVec3Unproject(D3DXVECTOR3 *out, const D3DXVECTOR3 *v, const D3DVIEWPORT9 *viewport, const D3DXMATRIX *projection, const D3DXMATRIX *view, const D3DXMATRIX *world)
FLOAT *WINAPI D3DXSHEvalDirection(FLOAT *out, UINT order, const D3DXVECTOR3 *dir)
void WINAPI D3DXQuaternionToAxisAngle(const D3DXQUATERNION *pq, D3DXVECTOR3 *paxis, FLOAT *pangle)
D3DXMATRIX *WINAPI D3DXMatrixPerspectiveFovRH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf)
D3DXMATRIX *WINAPI D3DXMatrixPerspectiveFovLH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf)
D3DXVECTOR3 *WINAPI D3DXVec3TransformNormalArray(D3DXVECTOR3 *out, UINT outstride, const D3DXVECTOR3 *in, UINT instride, const D3DXMATRIX *matrix, UINT elements)
D3DXVECTOR3 *WINAPI D3DXVec3BaryCentric(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2, const D3DXVECTOR3 *pv3, FLOAT f, FLOAT g)
D3DXVECTOR4 *WINAPI D3DXVec3Transform(D3DXVECTOR4 *pout, const D3DXVECTOR3 *pv, const D3DXMATRIX *pm)
D3DXVECTOR3 *WINAPI D3DXVec3Hermite(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pt1, const D3DXVECTOR3 *pv2, const D3DXVECTOR3 *pt2, FLOAT s)
D3DXCOLOR *WINAPI D3DXColorAdjustSaturation(D3DXCOLOR *pout, const D3DXCOLOR *pc, FLOAT s)
FLOAT *WINAPI D3DXSHScale(FLOAT *out, UINT order, const FLOAT *a, const FLOAT scale)
D3DXQUATERNION *WINAPI D3DXQuaternionRotationMatrix(D3DXQUATERNION *out, const D3DXMATRIX *m)
D3DXMATRIX *WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf)
D3DXQUATERNION *WINAPI D3DXQuaternionRotationAxis(D3DXQUATERNION *out, const D3DXVECTOR3 *v, FLOAT angle)
D3DXMATRIX *WINAPI D3DXMatrixRotationX(D3DXMATRIX *pout, FLOAT angle)
FLOAT WINAPI D3DXSHDot(UINT order, const FLOAT *a, const FLOAT *b)
D3DXVECTOR3 *WINAPI D3DXVec3CatmullRom(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv0, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2, const D3DXVECTOR3 *pv3, FLOAT s)
D3DXMATRIX *WINAPI D3DXMatrixOrthoOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf)
D3DXMATRIX *WINAPI D3DXMatrixAffineTransformation(D3DXMATRIX *out, FLOAT scaling, const D3DXVECTOR3 *rotationcenter, const D3DXQUATERNION *rotation, const D3DXVECTOR3 *translation)
D3DXMATRIX *WINAPI D3DXMatrixPerspectiveRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf)
D3DXMATRIX *WINAPI D3DXMatrixScaling(D3DXMATRIX *pout, FLOAT sx, FLOAT sy, FLOAT sz)
_ACRTIMP double __cdecl sqrt(double)
_ACRTIMP double __cdecl fabs(double)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
#define ID3DXMatrixStack_Push(p)
#define ID3DXMatrixStack_LoadMatrix(p, a)
#define ID3DXMatrixStack_GetTop(p)
#define ID3DXMatrixStack_LoadIdentity(p)
#define ID3DXMatrixStack_Release(p)
#define ID3DXMatrixStack_Pop(p)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLint GLint GLint GLint GLint GLint y
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble q
GLenum GLenum GLenum GLenum GLenum scale
GLdouble GLdouble GLdouble GLdouble top
GLenum GLuint GLint GLenum face
GLboolean GLboolean GLboolean b
GLuint GLdouble GLdouble GLint GLint order
GLboolean GLboolean GLboolean GLboolean a
GLfloat GLfloat GLfloat v2
GLubyte GLubyte GLubyte GLubyte w
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum plane
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum light
static ID3D11Device * create_device(void)
void __cdecl void __cdecl void __cdecl void __cdecl void __cdecl void winetest_pop_context(void)
void __cdecl void __cdecl void __cdecl void __cdecl void __cdecl winetest_push_context(const char *fmt,...) __WINE_PRINTF_ATTR(1
#define memcpy(s1, s2, n)
static struct test_info tests[]
static void expect_quaternion_(unsigned int line, const D3DXQUATERNION *expected, const D3DXQUATERNION *quaternion, unsigned int ulps)
static void D3DXQuaternionTest(void)
#define expect_color(expected, color, ulps)
#define expect_matrix(expected, matrix, ulps)
static void expect_plane_(unsigned int line, const D3DXPLANE *expected, const D3DXPLANE *plane, unsigned int ulps)
static void D3DXVector3Test(void)
static void test_matrix_stack(void)
#define expect_vec3(expected, vector, ulps)
static void test_D3DXSHEvalConeLight(void)
static void expect_color_(unsigned int line, const D3DXCOLOR *expected, const D3DXCOLOR *color, unsigned int ulps)
static void set_matrix(D3DXMATRIX *mat, float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33)
static void test_D3DXSHMultiply2(void)
static void test_D3DXSHMultiply3(void)
static void test_D3DXSHMultiply4(void)
static BOOL compare_vec4(const D3DXVECTOR4 *v1, const D3DXVECTOR4 *v2, unsigned int ulps)
static void test_D3DXFloat_Array(void)
#define expect_vec2(expected, vector, ulps)
static void test_D3DXSHAdd(void)
static BOOL compare_uint(unsigned int x, unsigned int y, unsigned int max_diff)
static void test_D3DXSHScale(void)
static BOOL compare_quaternion(const D3DXQUATERNION *q1, const D3DXQUATERNION *q2, unsigned int ulps)
static void test_Matrix_AffineTransformation2D(void)
static void expect_matrix_(unsigned int line, const D3DXMATRIX *expected, const D3DXMATRIX *matrix, unsigned int ulps)
static void D3DXMatrixTest(void)
static void test_D3DXSHDot(void)
static void test_Matrix_Transformation2D(void)
#define expect_plane(expected, plane, ulps)
static void expect_vec2_(unsigned int line, const D3DXVECTOR2 *expected, const D3DXVECTOR2 *vector, unsigned int ulps)
static BOOL compare_vec2(const D3DXVECTOR2 *v1, const D3DXVECTOR2 *v2, unsigned int ulps)
static void expect_vec3_(unsigned int line, const D3DXVECTOR3 *expected, const D3DXVECTOR3 *vector, unsigned int ulps)
static void test_D3DXSHEvalDirection(void)
static void test_D3DXVec_Array(void)
static void expect_vec4_array_(unsigned int line, unsigned int count, const D3DXVECTOR4 *expected, const D3DXVECTOR4 *vector, unsigned int ulps)
static void D3DXColorTest(void)
static void test_D3DXSHEvalDirectionalLight(void)
#define expect_vec4_array(count, expected, vector, ulps)
static BOOL compare_plane(const D3DXPLANE *p1, const D3DXPLANE *p2, unsigned int ulps)
static void test_Matrix_Decompose(void)
static void test_D3DXSHRotate(void)
static void test_D3DXSHEvalSphericalLight(void)
static void test_D3DXSHRotateZ(void)
static void D3DXVector4Test(void)
static void D3DXFresnelTest(void)
static BOOL compare_vec3(const D3DXVECTOR3 *v1, const D3DXVECTOR3 *v2, unsigned int ulps)
#define expect_vec4(expected, vector, ulps)
static void test_D3DXSHProjectCubeMap(void)
static void expect_vec4_(unsigned int line, const D3DXVECTOR4 *expected, const D3DXVECTOR4 *vector, unsigned int ulps)
static void D3DXVector2Test(void)
static BOOL compare_matrix(const D3DXMATRIX *m1, const D3DXMATRIX *m2, unsigned int ulps)
static void D3DXPlaneTest(void)
static void test_D3DXSHEvalHemisphereLight(void)
static HWND create_window(void)
static BOOL compare_color(const D3DXCOLOR *c1, const D3DXCOLOR *c2, unsigned int ulps)
#define expect_quaternion(expected, quaternion, ulps)
#define compare_float(got, exp)
static const LARGE_INTEGER *static const HANDLE const LARGE_INTEGER *static PSLIST_ENTRY PSLIST_ENTRY last
static IHTMLWindow2 * window
#define WS_OVERLAPPEDWINDOW
BOOL WINAPI AdjustWindowRect(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI DestroyWindow(_In_ HWND)
for(i=0;i< sizeof(testsuite)/sizeof(testsuite[0]);++i) ok(call_test(testsuite[i].func)
#define D3DADAPTER_DEFAULT
#define D3DCREATE_HARDWARE_VERTEXPROCESSING
#define D3DCREATE_SOFTWARE_VERTEXPROCESSING
#define D3DCREATE_MIXED_VERTEXPROCESSING
BOOL EnableAutoDepthStencil
D3DFORMAT BackBufferFormat
D3DFORMAT AutoDepthStencilFormat
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out