Hello,<br><br><pre>+<br>+ /* D3DXVec3ProjectArray */<br>+ exp_vec[1].x = 1089.554199f; exp_vec[1].y = -226.590622f; exp_vec[1].z = 0.215273f;<br>+ exp_vec[2].x = 1068.903320f; exp_vec[2].y = 103.085129f; exp_vec[2].z = 0.183050f;<br>
+ exp_vec[3].x = 1051.778931f; exp_vec[3].y = 376.462250f; exp_vec[3].z = 0.156329f;<br>+ exp_vec[4].x = 1037.348877f; exp_vec[4].y = 606.827393f; exp_vec[4].z = 0.133813f;<br>+ exp_vec[5].x = 1025.023560f; exp_vec[5].y = 803.591248f; exp_vec[5].z = 0.114581f;<br>
+ D3DXVec3ProjectArray((D3DXVECTOR3*)(out_vec + 1), sizeof(D3DXVECTOR4), (CONST D3DXVECTOR3*)inp_vec, sizeof(D3DXVECTOR4), &viewport, &projection, &view, &world, ARRAY_SIZE);<br>+ compare_index(exp_vec, out_vec, 0);<br>
+ todo_wine {<br>+ /* D3DXVec3Project returns slightly ``wrong'' values here. */<br>+ compare_index(exp_vec, out_vec, 1);<br>+ compare_index(exp_vec, out_vec, 2);<br>+ compare_index(exp_vec, out_vec, 3);</pre>
<br><br>Are all the relative errors <1%?<br>You are looking for an absolute error < 0.0001 for numbers >1000. It is too much precision. One should check the relative error, that is <br>Re=(expected-got)/got<br>And we say that the test is ok if Re<0.01<br>
<br>David<br>