d2d1: Implement D2D1SinCos().
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
a6d1ee860c
commit
4f6bd00a84
|
@ -6,6 +6,6 @@
|
|||
@ stub D2D1ConvertColorSpace
|
||||
@ stdcall D2D1CreateDevice(ptr ptr ptr)
|
||||
@ stub D2D1CreateDeviceContext
|
||||
@ stub D2D1SinCos
|
||||
@ stdcall D2D1SinCos(float ptr ptr)
|
||||
@ stub D2D1Tan
|
||||
@ stub D2D1Vec3Length
|
||||
|
|
|
@ -713,6 +713,14 @@ HRESULT WINAPI D2D1CreateDevice(IDXGIDevice *dxgi_device,
|
|||
return hr;
|
||||
}
|
||||
|
||||
void WINAPI D2D1SinCos(float angle, float *s, float *c)
|
||||
{
|
||||
TRACE("angle %.8e, s %p, c %p.\n", angle, s, c);
|
||||
|
||||
*s = sinf(angle);
|
||||
*c = cosf(angle);
|
||||
}
|
||||
|
||||
static BOOL get_config_key_dword(HKEY default_key, HKEY application_key, const char *name, DWORD *value)
|
||||
{
|
||||
DWORD type, data, size;
|
||||
|
|
|
@ -9425,6 +9425,36 @@ static void test_wic_bitmap_format(void)
|
|||
DestroyWindow(window);
|
||||
}
|
||||
|
||||
static void test_math(void)
|
||||
{
|
||||
unsigned int i;
|
||||
float s, c;
|
||||
|
||||
static const struct
|
||||
{
|
||||
float x;
|
||||
float s;
|
||||
float c;
|
||||
}
|
||||
sc_data[] =
|
||||
{
|
||||
{0.0f, 0.0f, 1.0f},
|
||||
{1.0f, 8.41470957e-001f, 5.40302277e-001f},
|
||||
{2.0f, 9.09297407e-001f, -4.16146845e-001f},
|
||||
{M_PI / 2.0f, 1.0f, -4.37113883e-008f},
|
||||
{M_PI, -8.74227766e-008f, -1.0f},
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(sc_data); ++i)
|
||||
{
|
||||
D2D1SinCos(sc_data[i].x, &s, &c);
|
||||
ok(compare_float(s, sc_data[i].s, 0),
|
||||
"Test %u: Got unexpected sin %.8e, expected %.8e.\n", i, s, sc_data[i].s);
|
||||
ok(compare_float(c, sc_data[i].c, 0),
|
||||
"Test %u: Got unexpected cos %.8e, expected %.8e.\n", i, c, sc_data[i].c);
|
||||
}
|
||||
}
|
||||
|
||||
START_TEST(d2d1)
|
||||
{
|
||||
unsigned int argc, i;
|
||||
|
@ -9477,6 +9507,7 @@ START_TEST(d2d1)
|
|||
queue_test(test_max_bitmap_size);
|
||||
queue_test(test_dpi);
|
||||
queue_test(test_wic_bitmap_format);
|
||||
queue_test(test_math);
|
||||
|
||||
run_queued_tests();
|
||||
}
|
||||
|
|
|
@ -794,3 +794,4 @@ interface ID2D1Factory1 : ID2D1Factory
|
|||
|
||||
[local] HRESULT __stdcall D2D1CreateDevice(IDXGIDevice *dxgi_device,
|
||||
const D2D1_CREATION_PROPERTIES *creation_properties, ID2D1Device **device);
|
||||
[local] void __stdcall D2D1SinCos(float angle, float *s, float *c);
|
||||
|
|
Loading…
Reference in New Issue