d2d1: Implement D2D1Tan().
Signed-off-by: Giovanni Mascellani <wine@mascellani.eu> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4f6bd00a84
commit
9cf8fab952
|
@ -7,5 +7,5 @@
|
||||||
@ stdcall D2D1CreateDevice(ptr ptr ptr)
|
@ stdcall D2D1CreateDevice(ptr ptr ptr)
|
||||||
@ stub D2D1CreateDeviceContext
|
@ stub D2D1CreateDeviceContext
|
||||||
@ stdcall D2D1SinCos(float ptr ptr)
|
@ stdcall D2D1SinCos(float ptr ptr)
|
||||||
@ stub D2D1Tan
|
@ stdcall D2D1Tan(float)
|
||||||
@ stub D2D1Vec3Length
|
@ stub D2D1Vec3Length
|
||||||
|
|
|
@ -721,6 +721,13 @@ void WINAPI D2D1SinCos(float angle, float *s, float *c)
|
||||||
*c = cosf(angle);
|
*c = cosf(angle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float WINAPI D2D1Tan(float angle)
|
||||||
|
{
|
||||||
|
TRACE("angle %.8e.\n", angle);
|
||||||
|
|
||||||
|
return tanf(angle);
|
||||||
|
}
|
||||||
|
|
||||||
static BOOL get_config_key_dword(HKEY default_key, HKEY application_key, const char *name, DWORD *value)
|
static BOOL get_config_key_dword(HKEY default_key, HKEY application_key, const char *name, DWORD *value)
|
||||||
{
|
{
|
||||||
DWORD type, data, size;
|
DWORD type, data, size;
|
||||||
|
|
|
@ -9428,7 +9428,7 @@ static void test_wic_bitmap_format(void)
|
||||||
static void test_math(void)
|
static void test_math(void)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
float s, c;
|
float s, c, t;
|
||||||
|
|
||||||
static const struct
|
static const struct
|
||||||
{
|
{
|
||||||
|
@ -9445,6 +9445,20 @@ static void test_math(void)
|
||||||
{M_PI, -8.74227766e-008f, -1.0f},
|
{M_PI, -8.74227766e-008f, -1.0f},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct
|
||||||
|
{
|
||||||
|
float x;
|
||||||
|
float t;
|
||||||
|
}
|
||||||
|
t_data[] =
|
||||||
|
{
|
||||||
|
{0.0f, 0.0f},
|
||||||
|
{1.0f, 1.55740774f},
|
||||||
|
{2.0f, -2.18503976f},
|
||||||
|
{M_PI / 2.0f, -2.28773320e+007f},
|
||||||
|
{M_PI, 8.74227766e-008f},
|
||||||
|
};
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(sc_data); ++i)
|
for (i = 0; i < ARRAY_SIZE(sc_data); ++i)
|
||||||
{
|
{
|
||||||
D2D1SinCos(sc_data[i].x, &s, &c);
|
D2D1SinCos(sc_data[i].x, &s, &c);
|
||||||
|
@ -9453,6 +9467,13 @@ static void test_math(void)
|
||||||
ok(compare_float(c, sc_data[i].c, 0),
|
ok(compare_float(c, sc_data[i].c, 0),
|
||||||
"Test %u: Got unexpected cos %.8e, expected %.8e.\n", i, c, sc_data[i].c);
|
"Test %u: Got unexpected cos %.8e, expected %.8e.\n", i, c, sc_data[i].c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(t_data); ++i)
|
||||||
|
{
|
||||||
|
t = D2D1Tan(t_data[i].x);
|
||||||
|
ok(compare_float(t, t_data[i].t, 1),
|
||||||
|
"Test %u: Got unexpected tan %.8e, expected %.8e.\n", i, t, t_data[i].t);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
START_TEST(d2d1)
|
START_TEST(d2d1)
|
||||||
|
|
|
@ -795,3 +795,4 @@ interface ID2D1Factory1 : ID2D1Factory
|
||||||
[local] HRESULT __stdcall D2D1CreateDevice(IDXGIDevice *dxgi_device,
|
[local] HRESULT __stdcall D2D1CreateDevice(IDXGIDevice *dxgi_device,
|
||||||
const D2D1_CREATION_PROPERTIES *creation_properties, ID2D1Device **device);
|
const D2D1_CREATION_PROPERTIES *creation_properties, ID2D1Device **device);
|
||||||
[local] void __stdcall D2D1SinCos(float angle, float *s, float *c);
|
[local] void __stdcall D2D1SinCos(float angle, float *s, float *c);
|
||||||
|
[local] float __stdcall D2D1Tan(float angle);
|
||||||
|
|
Loading…
Reference in New Issue