d3dx9: Implement D3DXSHEvalHemisphereLight.
This commit is contained in:
parent
6247dae2ac
commit
6d6603b495
|
@ -269,7 +269,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap
|
||||
@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC
|
||||
|
|
|
@ -269,7 +269,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap
|
||||
@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC
|
||||
|
|
|
@ -273,7 +273,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap
|
||||
@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC
|
||||
|
|
|
@ -273,7 +273,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap
|
||||
@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC
|
||||
|
|
|
@ -278,7 +278,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap
|
||||
@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC
|
||||
|
|
|
@ -278,7 +278,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap
|
||||
@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC
|
||||
|
|
|
@ -278,7 +278,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap
|
||||
@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC
|
||||
|
|
|
@ -275,7 +275,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap
|
||||
@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC
|
||||
|
|
|
@ -275,7 +275,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -275,7 +275,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -275,7 +275,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -275,7 +275,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -277,7 +277,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr)
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr)
|
||||
@ stub D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr)
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr)
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr)
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr)
|
||||
|
|
|
@ -2475,6 +2475,52 @@ HRESULT WINAPI D3DXSHEvalDirectionalLight(UINT order, const D3DXVECTOR3 *dir, FL
|
|||
return D3D_OK;
|
||||
}
|
||||
|
||||
HRESULT WINAPI D3DXSHEvalHemisphereLight(UINT order, const D3DXVECTOR3 *dir, D3DXCOLOR top, D3DXCOLOR bottom,
|
||||
FLOAT *rout, FLOAT *gout, FLOAT *bout)
|
||||
{
|
||||
FLOAT a[2], temp[4];
|
||||
UINT i, j;
|
||||
|
||||
TRACE("order %u, dir %p, rout %p, gout %p, bout %p\n", order, dir, rout, gout, bout);
|
||||
|
||||
D3DXSHEvalDirection(temp, 2, dir);
|
||||
|
||||
a[0] = (top.r + bottom.r) * 3.0f * D3DX_PI;
|
||||
a[1] = (top.r - bottom.r) * D3DX_PI;
|
||||
for (i = 0; i < order; i++)
|
||||
for (j = 0; j < 2 * i + 1; j++)
|
||||
if (i < 2)
|
||||
rout[i * i + j] = temp[i * i + j] * a[i];
|
||||
else
|
||||
rout[i * i + j] = 0.0f;
|
||||
|
||||
if (gout)
|
||||
{
|
||||
a[0] = (top.g + bottom.g) * 3.0f * D3DX_PI;
|
||||
a[1] = (top.g - bottom.g) * D3DX_PI;
|
||||
for (i = 0; i < order; i++)
|
||||
for (j = 0; j < 2 * i + 1; j++)
|
||||
if (i < 2)
|
||||
gout[i * i + j] = temp[i * i + j] * a[i];
|
||||
else
|
||||
gout[i * i + j] = 0.0f;
|
||||
}
|
||||
|
||||
if (bout)
|
||||
{
|
||||
a[0] = (top.b + bottom.b) * 3.0f * D3DX_PI;
|
||||
a[1] = (top.b - bottom.b) * D3DX_PI;
|
||||
for (i = 0; i < order; i++)
|
||||
for (j = 0; j < 2 * i + 1; j++)
|
||||
if (i < 2)
|
||||
bout[i * i + j] = temp[i * i + j] * a[i];
|
||||
else
|
||||
bout[i * i + j] = 0.0f;
|
||||
}
|
||||
|
||||
return D3D_OK;
|
||||
}
|
||||
|
||||
HRESULT WINAPI D3DXSHEvalSphericalLight(UINT order, const D3DXVECTOR3 *dir, FLOAT radius,
|
||||
FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout)
|
||||
{
|
||||
|
|
|
@ -2815,6 +2815,93 @@ static void test_D3DXSHEvalDirectionalLight(void)
|
|||
ok(hr == D3D_OK, "Expected %#x, got %#x\n", D3D_OK, hr);
|
||||
}
|
||||
|
||||
static void test_D3DXSHEvalHemisphereLight(void)
|
||||
{
|
||||
D3DXCOLOR bottom, top;
|
||||
D3DXVECTOR3 dir;
|
||||
FLOAT bout[49], expected, gout[49], rout[49];
|
||||
const FLOAT table[] = {
|
||||
/* Red colour */
|
||||
23.422981f, 15.859521f, -36.476898f, 14.537894f,
|
||||
/* Green colour */
|
||||
19.966694f, 6.096982f, -14.023058f, 5.588900f,
|
||||
/* Blue colour */
|
||||
24.566214f, 8.546826f, -19.657701f, 7.834591f, };
|
||||
struct
|
||||
{
|
||||
FLOAT *red_received, *green_received, *blue_received;
|
||||
const FLOAT *red_expected, *green_expected, *blue_expected;
|
||||
const FLOAT roffset, goffset, boffset;
|
||||
} test[] = {
|
||||
{ rout, gout, bout, table, &table[4], &table[8], 1.01f, 1.02f, 1.03f, },
|
||||
{ rout, rout, rout, &table[8], &table[8], &table[8], 1.03f, 1.03f, 1.03f, },
|
||||
{ rout, rout, bout, &table[4], &table[4], &table[8], 1.02f, 1.02f, 1.03f, },
|
||||
{ rout, gout, gout, table, &table[8], &table[8], 1.01f, 1.03f, 1.03f, },
|
||||
{ rout, gout, rout, &table[8], &table[4], &table[8], 1.03f, 1.02f, 1.03f, },
|
||||
/* D3DXSHEvalHemisphereLight accepts NULL green or blue colour. */
|
||||
{ rout, NULL, bout, table, NULL, &table[8], 1.01f, 1.02f, 1.03f, },
|
||||
{ rout, gout, NULL, table, &table[4], NULL, 1.01f, 1.02f, 1.03f, },
|
||||
{ rout, NULL, NULL, table, NULL, NULL, 1.01f, 1.02f, 1.03f, }, };
|
||||
HRESULT hr;
|
||||
unsigned int j, l, order;
|
||||
|
||||
dir.x = 1.1f; dir.y = 1.2f; dir.z = 2.76f;
|
||||
top.r = 0.1f; top.g = 2.1f; top.b = 2.3f; top.a = 4.3f;
|
||||
bottom.r = 8.71f; bottom.g = 5.41f; bottom.b = 6.94f; bottom.a = 8.43f;
|
||||
|
||||
for (l = 0; l < sizeof(test) / sizeof(test[0]); l++)
|
||||
for (order = D3DXSH_MINORDER; order <= D3DXSH_MAXORDER + 1; order++)
|
||||
{
|
||||
for (j = 0; j < 49; j++)
|
||||
{
|
||||
test[l].red_received[j] = 1.01f + j;
|
||||
if (test[l].green_received)
|
||||
test[l].green_received[j] = 1.02f + j;
|
||||
if (test[l].blue_received)
|
||||
test[l].blue_received[j] = 1.03f + j;
|
||||
}
|
||||
|
||||
hr = D3DXSHEvalHemisphereLight(order, &dir, top, bottom, test[l].red_received, test[l].green_received, test[l].blue_received);
|
||||
ok(hr == D3D_OK, "Expected %#x, got %#x\n", D3D_OK, hr);
|
||||
|
||||
for (j = 0; j < 49; j++)
|
||||
{
|
||||
if (j < 4)
|
||||
expected = test[l].red_expected[j];
|
||||
else if (j < order * order)
|
||||
expected = 0.0f;
|
||||
else
|
||||
expected = test[l].roffset + j;
|
||||
ok(relative_error(test[l].red_received[j], expected) < admitted_error,
|
||||
"Red: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].red_received[j]);
|
||||
|
||||
if (test[l].green_received)
|
||||
{
|
||||
if (j < 4)
|
||||
expected = test[l].green_expected[j];
|
||||
else if (j < order * order)
|
||||
expected = 0.0f;
|
||||
else
|
||||
expected = test[l].goffset + j;
|
||||
ok(relative_error(expected, test[l].green_received[j]) < admitted_error,
|
||||
"Green: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].green_received[j]);
|
||||
}
|
||||
|
||||
if (test[l].blue_received)
|
||||
{
|
||||
if (j < 4)
|
||||
expected = test[l].blue_expected[j];
|
||||
else if (j < order * order)
|
||||
expected = 0.0f;
|
||||
else
|
||||
expected = test[l].boffset + j;
|
||||
ok(relative_error(expected, test[l].blue_received[j]) < admitted_error,
|
||||
"Blue: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].blue_received[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void test_D3DXSHEvalSphericalLight(void)
|
||||
{
|
||||
D3DXVECTOR3 dir;
|
||||
|
@ -3307,6 +3394,7 @@ START_TEST(math)
|
|||
test_D3DXSHEvalConeLight();
|
||||
test_D3DXSHEvalDirection();
|
||||
test_D3DXSHEvalDirectionalLight();
|
||||
test_D3DXSHEvalHemisphereLight();
|
||||
test_D3DXSHEvalSphericalLight();
|
||||
test_D3DXSHMultiply2();
|
||||
test_D3DXSHMultiply3();
|
||||
|
|
|
@ -277,7 +277,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -277,7 +277,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -277,7 +277,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -277,7 +277,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -277,7 +277,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -277,7 +277,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -270,7 +270,7 @@
|
|||
@ stdcall D3DXSHEvalConeLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight
|
||||
@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection
|
||||
@ stdcall D3DXSHEvalDirectionalLight(long ptr float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalHemisphereLight(long ptr int128 int128 ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight
|
||||
@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2
|
||||
@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3
|
||||
|
|
|
@ -391,6 +391,7 @@ FLOAT WINAPI D3DXSHDot(UINT order, const FLOAT *a, const FLOAT *b);
|
|||
HRESULT WINAPI D3DXSHEvalConeLight(UINT order, const D3DXVECTOR3 *dir, FLOAT radius, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout);
|
||||
FLOAT* WINAPI D3DXSHEvalDirection(FLOAT *out, UINT order, const D3DXVECTOR3 *dir);
|
||||
HRESULT WINAPI D3DXSHEvalDirectionalLight(UINT order, const D3DXVECTOR3 *dir, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout);
|
||||
HRESULT WINAPI D3DXSHEvalHemisphereLight(UINT order, const D3DXVECTOR3 *dir, D3DXCOLOR top, D3DXCOLOR bottom, FLOAT *rout, FLOAT *gout, FLOAT *bout);
|
||||
HRESULT WINAPI D3DXSHEvalSphericalLight(UINT order, const D3DXVECTOR3 *dir, FLOAT radius, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout);
|
||||
FLOAT* WINAPI D3DXSHMultiply2(FLOAT *out, const FLOAT *a, const FLOAT *b);
|
||||
FLOAT* WINAPI D3DXSHMultiply3(FLOAT *out, const FLOAT *a, const FLOAT *b);
|
||||
|
|
Loading…
Reference in New Issue