Commit graph

639 commits

Author SHA1 Message Date
Rémi Bernon 580ef84cae d2d1: Use D3D11 interfaces to create sampler states.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-28 19:43:28 +02:00
Rémi Bernon 50e04d9f9d d2d1: Use D3D11 interfaces to create blend state.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-28 19:43:28 +02:00
Rémi Bernon 942ee9318e d2d1: Use D3D11 interfaces to create rasterizer state.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-28 19:43:28 +02:00
Rémi Bernon 5f54ff0b38 d2d1: Use D3D11 interfaces to create pixel shader.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-25 22:48:47 +02:00
Rémi Bernon 629fa331bb d2d1: Use D3D11 interfaces to create vertex shader.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-25 22:48:47 +02:00
Rémi Bernon 072d90b19f d2d1: Use D3D11 interfaces to create input layout.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-25 22:48:47 +02:00
Rémi Bernon 63b7afb154 d2d1: Use D3D11 interfaces to create buffers.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-25 22:48:47 +02:00
Rémi Bernon a5e6ac7414 d2d1: Use D3D11 interfaces in d2d_gradient_create.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-24 21:48:02 +02:00
Rémi Bernon 692f205a3e d2d1: Remove pointer indirections in d2d_gradient_create.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-24 21:47:59 +02:00
Rémi Bernon 00fea26962 d2d1: Accept ID3D11Resource in d2d_bitmap_init.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-24 21:47:57 +02:00
Rémi Bernon af64b4c119 d2d1: Use D3D11 interfaces in d2d_bitmap_create_shared.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-24 21:47:55 +02:00
Rémi Bernon 8cdfa5bbab d2d1: Use D3D11 interfaces in d2d_bitmap_create.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Rémi Bernon 6ffa597dfb d2d1: Use D3D11 interfaces in d2d_device_context_get_surface.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Rémi Bernon e3951fea18 d2d1: Use D3D11 interfaces in d2d_bitmap_init.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Rémi Bernon 6211eda12c d2d1: Use D3D11 interfaces in CopyFromMemory.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Rémi Bernon d00aece114 d2d1: Query ID3D11Resource interface in d2d_bitmap_init.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Rémi Bernon 80ae670691 d2d1: Query ID3D11Device1 interface in d2d_device_context_init.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 15:14:43 +02:00
Nikolay Sivov 9fd51e4d74 d2d1: Reuse VS constant buffer object.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-11 20:27:35 +02:00
Nikolay Sivov f74163ad58 d2d1: Reuse PS constant buffer object.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-10 20:47:14 +02:00
Nikolay Sivov 140c4a094a d2d1: Remove unused argument from constant buffer initialization helper.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-10 20:47:10 +02:00
Nikolay Sivov 0a30088c39 d2d1: Cache sampler state objects at device context.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-10 20:47:07 +02:00
Nikolay Sivov 0aa6a78f7d d2d1: Remove unnecessary return statements.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-13 17:33:17 +02:00
Nikolay Sivov 27fed4a520 d2d1: Implement ID2D1Multithread.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 15:07:18 +02:00
Nikolay Sivov 1cd678d6a0 d2d1: Implement d2d_geometry_group_GetBounds().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50411
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-15 20:35:26 +01:00
Giovanni Mascellani 2cb681e740 d2d1: Implement D2D1ConvertColorSpace().
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-05 17:58:57 +01:00
Nikolay Sivov 33e0d15d17 d2d1/tests: Add return value test (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-02 20:39:39 +01:00
Michael Stefaniuc 3e1bb7f727 d2d1/tests: Remove superfluous cast to self.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-29 20:53:49 +01:00
Nikolay Sivov 9521c6a1eb d2d1: Pass zeros as text layout size for inverted rectangles in DrawText().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 21:44:17 +01:00
Haoyang Chen f37c83452e d2d1: Fix text position in DrawText().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 21:44:17 +01:00
Rémi Bernon 00401d2278 d2d1/tests: Run most tests on d3d11 as well.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:47 +01:00
Rémi Bernon 691744cac6 d2d1/tests: Store an IDXGIDevice interface instead of an ID3D10Device1 interface in struct d2d1_test_context.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:43 +01:00
Rémi Bernon aff25e42b1 d2d1/tests: Pass a d2d1_test_context structure get_surface_readback().
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:39 +01:00
Rémi Bernon 1b2e27fe49 d2d1/tests: Pass a d2d1_test_context structure to compare_figure().
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:36 +01:00
Rémi Bernon f5bb97d28f d2d1/tests: Pass a d2d1_test_context structure to compare_surface().
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:31 +01:00
Rémi Bernon aab3f4b7fe d2d1/tests: Store the resource data pointer and row-pitch directly in struct resource_readback.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:27 +01:00
Rémi Bernon 85f3ba90e5 d2d1/tests: Create a Direct2D render target in init_test_context_().
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:22 +01:00
Rémi Bernon 1a12eb08be d2d1/tests: Retrieve the swapchain back-buffer in init_test_context_().
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:16 +01:00
Rémi Bernon 7b312cd1be d2d1/tests: Create a swapchain in init_test_context_().
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:11 +01:00
Rémi Bernon acd9b6a45a d2d1/tests: Create a window in init_test_context_().
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:03:05 +01:00
Rémi Bernon 02634c3d75 d2d1/tests: Introduce init_test_context().
Analogous to the d3d11 tests.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:02:59 +01:00
Rémi Bernon babd036a79 d2d1/tests: Check for d2d1 math functions presence.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:02:52 +01:00
Jactry Zeng c19fc01d36 d2d1: Partially implement d2d_device_context_DrawImage().
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:02:45 +01:00
Jactry Zeng e2a7ee33d0 d2d1: Skip empty source rectangle for ID2D1RenderTarget_DrawBitmap().
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:02:42 +01:00
Jactry Zeng 757ce04917 d2d1: Limit source rectangle to the actual size for ID2D1RenderTarget_DrawBitmap().
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 21:02:39 +01:00
Giovanni Mascellani 4905921fa5 d2d1: Implement D2D1Vec3Length().
Signed-off-by: Giovanni Mascellani <wine@mascellani.eu>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:30 +01:00
Giovanni Mascellani 9cf8fab952 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>
2020-10-26 20:25:26 +01:00
Giovanni Mascellani 4f6bd00a84 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>
2020-10-26 20:25:23 +01:00
Michael Stefaniuc 141ff5f4f5 d2d1/tests:Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-30 15:53:00 +02:00
Nikolay Sivov f7f8006064 d2d1: Implement D2D1CreateDevice().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 18:35:01 +02:00
Biswapriyo Nath 48020f4846 include: Add missing structures in dcommon.idl.
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-02 22:17:37 +02:00
Connor McAdams fe4e6934a9 d2d1: Allow appending multiple Bézier control points to a figure at once.
Signed-off-by: Connor McAdams <conmanx360@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 21:32:15 +02:00
Connor McAdams e3bbeb5a93 d2d1: Allow inserting multiple Bézier control points into a figure at once.
Signed-off-by: Connor McAdams <conmanx360@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 21:32:13 +02:00
Connor McAdams a512a03100 d2d1: Introduce a helper to check for split Bézier segments.
Signed-off-by: Connor McAdams <conmanx360@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 21:32:11 +02:00
Connor McAdams 0ff58fe1ac d2d1: Introduce a helper to check for Bézier segments.
Signed-off-by: Connor McAdams <conmanx360@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 21:32:09 +02:00
Chip Davis e771fc8dde d2d1: Introduce a function to convert D2D1.0 interpolation modes to D2D1.1.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 20:55:48 +02:00
Chip Davis 69487dad1c d2d1: Return enum constants directly in d2d_bitmap_brush_GetInterpolationMode() (Clang).
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 20:55:48 +02:00
Henri Verbeet 1cb9a31bdf d2d1/tests: Introduce compare_uint().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:07 +02:00
Zebediah Figura 7ce3b65f1e d2d1/tests: Adjust a color to prevent test failures.
Different drivers may produce either #ff7f00 or #ff8000 here, both on Windows
and Linux.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 21:30:34 +01:00
Connor McAdams b2d1d1694d d2d1: Make sure arc fill vertex buffer has correct BindFlag.
Signed-off-by: Connor McAdams <conmanx360@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 16:04:50 +01:00
Zebediah Figura ef0f2c7f00 d2d1: Support GUID_WICPixelFormat32bppPRGBA.
Needed by Visio 2016.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 21:18:18 +01:00
Giovanni Mascellani 873e3d0691 d2d1: Implement ellipse and rounded rectangle stroking with arcs.
Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-04 18:53:40 +01:00
Giovanni Mascellani a6bf2c429e d2d1: Implement ellipse and rounded rectangle filling with arcs.
Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-04 18:53:37 +01:00
Giovanni Mascellani b33177355e d2d1: Trim rasterization area when drawing Bézier curves.
A Bézier stroke can lie outside its "defining triangle" for at most
half of the stroke width, not an entire stroke width.

Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-13 16:44:24 +01:00
Giovanni Mascellani 722469254d d2d1: Ensure that hollow figures do not impact geometry bounds.
Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 15:58:30 +01:00
Giovanni Mascellani fdd7604d72 d2d1/tests: Test that hollow figures do not impact geometry bounds.
Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 15:58:28 +01:00
Giovanni Mascellani b728b2ff5f d2d1: Do not fill hollow figures.
Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 15:58:26 +01:00
Giovanni Mascellani 7065819956 d2d1/tests: Check that hollow figures are not filled.
Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 15:58:24 +01:00
Giovanni Mascellani cf94f77404 d2d1/tests: Add geometry filling tests.
Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 15:58:22 +01:00
Giovanni Mascellani 66290bdc30 d2d1/tests: Add tests for rounded rectangle drawing.
Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 15:58:19 +01:00
Henri Verbeet 763da3f7cc d2d1: Rename d2d_ellipse_geometry_GetRoundedRect() to d2d_ellipse_geometry_GetEllipse().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-29 22:44:54 +01:00
Henri Verbeet 1fe3f60f68 d2d1: Pass previous and next vectors to d2d_geometry_outline_add_join().
Instead of the points.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 19:34:03 +01:00
Giovanni Mascellani aec8701399 d2d1: Implement ellipse drawing.
Currently the ellipse is approximated with quadratic Bézier curves.

Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 14:24:12 +01:00
Giovanni Mascellani f04bcb2d1b d2d1: Implement rounded rectangle drawing.
Currently rounded parts are approximated with quadratic Bézier curves.

Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 14:24:09 +01:00
Giovanni Mascellani 502c9c7603 d2d1: Fix miter drawing for degenerated rectangles.
When a rectangle side has zero length, the miter join generator is
confused because it cannot recover the join angle. This patch avoids
that by using artificially non-degenerate previous and next vertices.

Signed-off-by: Giovanni Mascellani <gio@debian.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-21 21:54:59 +01:00
Akihiro Sagawa 9023c5a676 d2d1: Improve bitmap creation DPI handling.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:15:19 +01:00
Akihiro Sagawa 9a808acbd5 d2d1: Don't update device context DPI values when changing targets.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:15:17 +01:00
Akihiro Sagawa 44a3be9177 d2d1/tests: Add some DPI tests.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:15:13 +01:00
Brendan Shanks 940c3b4896 d2d1: Only create shader resource views for drawable bitmaps.
The underlying resource for bitmaps created with
D2D1_BITMAP_OPTIONS_CANNOT_DRAW doesn't necessarily have
D3D10_BIND_SHADER_RESOURCE in its bind flags.

Original patch by Robin Kertels <robin.kertels@gmail.com>

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-25 21:11:22 +02:00
Alexandre Julliard 3feed5a23f d2d1: Make qsort() callback functions cdecl.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-22 09:56:00 +02:00
Nikolay Sivov 436fb03a87 d2d1: Remove unused function.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-02 20:43:37 +02:00
Alexandre Julliard 239499a56d d2d1: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-30 15:04:06 +02:00
Francois Gouget 1684b01118 Disable multithreaded DirectX tests if WINETEST_NO_MT_D3D is set.
The nouveau graphics driver's support for multithreaded OpenGL is
buggy at least up to (18.2.8) so that any Wine test that performs
multithreaded OpenGL accesses freezes, crashes the Mesa stack and
eventually freezes the whole computer. Typically the first such test
is d2d1:d2d1.
The relevant tests have a --single option but WineTest neither knows
which tests accept this option, nor whether it is needed for the
current host.
The WINETEST_NO_MT_D3D environnement variable can be set on hosts
that need it (such as the cw2-gtx560 box) and is automatically
inherited by the relevant tests thus working around this issue.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-03 20:35:44 +02:00
Nikolay Sivov 414c6b48ed d2d1/tests: Add some missing EndDraw() checks (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:30:48 +01:00
Nikolay Sivov a777fd85cb d2d1: Add ID2D1GeometryGroup stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-12 23:02:28 +01:00
Nikolay Sivov b5e9896370 d2d1: Implement GetMaximumBitmapSize().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 16:44:15 +01:00
Nikolay Sivov 8effa4da69 d2d1/tests: Test command list resource reference.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-29 17:00:47 +01:00
Nikolay Sivov 926d98ef85 d2d1: Add ID2D1Factory2 stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-26 10:12:44 +02:00
Nikolay Sivov 7ef66068f2 d2d1: Implement d2d_device_context_ID2D1DeviceContext_DrawGlyphRun().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-23 13:55:39 +02:00
Nikolay Sivov 0ab7118503 d2d1: Return S_OK from d2d_effect_SetValue().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-18 19:48:46 +02:00
Nikolay Sivov 48bcae100e d2d1: Return S_OK from RegisterEffectFromString().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-18 19:48:44 +02:00
Daniel Ansorregui e55aca8f49 d2d1: Use default NULL argument in SetBlendState call.
Signed-off-by: Daniel Ansorregui <mailszeros@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-16 22:26:07 +02:00
Nikolay Sivov cc4b28a99d d2d1: Check the context error state on entering d2d_device_context_DrawGlyphRun().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 20:27:10 +02:00
Henri Verbeet 502bcfe2c6 d2d1: Do not release the "dxgi_target" interface on d2d_bitmap_render_target_init() error paths.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 20:26:50 +02:00
Nikolay Sivov c4c5353820 d2d1: Add a helper to set error state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-05 11:25:46 -05:00
Nikolay Sivov 5cc501b0a9 d2d1: Partially implement d2d_device_context_ID2D1DeviceContext_DrawBitmap().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-04 09:22:43 -05:00
Nikolay Sivov 56703ff9a6 d2d1: Handle invalid interpolation mode in DrawBitmap().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-04 09:22:40 -05:00
Nikolay Sivov 00b40eac91 d2d1: Use correct interpolation mode enum type member.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-04 09:22:36 -05:00
Nikolay Sivov 275a44a419 d2d1: Implement D2D1MakeSkewMatrix().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-03 16:22:18 -05:00
Nikolay Sivov 827f19a690 d2d1: Implement d2d_device_context_ID2D1DeviceContext_CreateBitmapFromWicBitmap().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-03 16:22:13 -05:00
Nikolay Sivov feea46a187 d2d1/tests: Add a test for BeginDraw() with locked WIC bitmap.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-03 16:22:10 -05:00
Nikolay Sivov c96eba60e3 d2d1: Simplify target bitmap creation for DC target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-02 19:38:07 -07:00
Nikolay Sivov 8b3081e305 d2d1: Set GDI compatible resource flag from bitmap options.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-02 19:38:04 -07:00
Nikolay Sivov f2429e3109 d2d1: Fix bind flags used for bitmap resources.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-02 19:38:02 -07:00
Nikolay Sivov d227553f57 d2d1: Implement CreateDeviceContext().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-02 19:37:59 -07:00
Nikolay Sivov 86f1ab36a9 d2d1: Implement d2d_device_context_SetTarget() for bitmap targets.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-30 10:59:35 +02:00
Nikolay Sivov f60455be90 d2d1: Default to pre-multiplied alpha mode in CreateBitmapFromDxgiSurface().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-30 10:59:31 +02:00
Nikolay Sivov cc8d53affe d2d1: Allow creating zero-sized bitmaps.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-30 10:59:29 +02:00
Nikolay Sivov 9775ed22aa d2d1: Implement d2d_device_context_ID2D1DeviceContext_CreateBitmap().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-30 10:59:23 +02:00
Nikolay Sivov 1987c1fba4 d2d1/tests: Add some tests for compatible target size handling.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-30 10:59:17 +02:00
Nikolay Sivov bf5066a3ff d2d1: Use surface format for shared bitmap if it wasn't specified.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 20:25:52 +02:00
Nikolay Sivov 62259297c4 d2d1: Add ID2D1Effect stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-26 20:25:43 +02:00
Henri Verbeet ced1590255 d2d1: Introduce a debug helper for D2D1_POINT_2F.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-25 12:29:00 +02:00
Nikolay Sivov 31808b08db d2d1: Implement GetDevice() for device context.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-24 22:41:30 +02:00
Nikolay Sivov 7c4f85ed06 d2d1/tests: Test that device is reused for compatible targets.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-24 22:41:30 +02:00
Nikolay Sivov dc67508338 d2d1: Fix compatible target initialization.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-24 22:41:30 +02:00
Nikolay Sivov bdd3f7b1ee d2d1: Implement CreateBitmapFromDxgiSurface().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:22:09 +02:00
Nikolay Sivov 0b6c1bf5b1 d2d1: Implement newer CreateBitmapBrush() variant.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-18 20:59:38 +02:00
Nikolay Sivov c9b76c3a7f d2d1: Update to ID2D1BitmapBrush1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-18 20:59:38 +02:00
Nikolay Sivov ef6a8dc16d d2d1: Implement GetSurface() for bitmaps.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-17 15:38:28 +02:00
Nikolay Sivov 8b3a7c2581 d2d1: Update to ID2D1DrawingStateBlock1.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-14 19:09:42 +02:00
Nikolay Sivov bccd14f2f6 d2d1: Return bitmap options.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-13 19:17:14 +02:00
Henri Verbeet 364e11b0ec d2d1: Simplify the WIC render target implementation.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:15:26 +02:00
Nikolay Sivov a7d8471638 d2d1: Properly aggregate render target implementations.
In order to expose the ID2D1DeviceContext interface for them.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-12 23:15:24 +02:00
Nikolay Sivov dcd530b422 d2d1: Implement matrix inversion functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-27 17:34:37 +02:00
Nikolay Sivov 68075cf7fb d2d1/tests: Check implicit target bitmap options.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 20:12:40 +02:00
Nikolay Sivov 17df6aa5a3 d2d1/tests: Add some tests for context target handling.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-22 17:02:29 +02:00
Nikolay Sivov 7c4dc6699d d2d1/tests: Add some tests for ID2D1Bitmap1::GetSurface().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-21 23:21:52 +02:00
Nikolay Sivov 31cbe190f7 d2d1: Add ID2D1DeviceContext stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 18:47:00 +02:00
Henri Verbeet e7949902c5 d2d1/tests: Run the tests in parallel.
Like d3d11.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 18:47:00 +02:00
Nikolay Sivov 32b35f8000 d2d1: Fix scaling when rendering text in bitmap mode.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 15:24:36 +02:00
Michael Stefaniuc 962b31c80b include: Add a generic available ARRAY_SIZE().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-04 10:39:15 +02:00
Michael Stefaniuc 7b5668a6e7 include: Make ARRAY_SIZE() available in wine/test.h.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:17 +02:00
Nikolay Sivov b756609894 d2d1: Add ID2D1Bitmap1 stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-23 17:33:33 +02:00
Nikolay Sivov e202a9ea25 d2d1/tests: Add a simple test for creating d2d devices.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-21 10:51:29 +02:00
Lucian Poston 02603467e9 d2d1: Add ID2D1Device stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-21 10:51:17 +02:00
Józef Kucia 372451253c d2d1/tests: Adjust expected value for linear brush test.
Fixes the test on Linux with Nvidia.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-15 17:29:26 +02:00
Giovanni Mascellani abbffd2ee2 d2d1: Fix outline join drawing.
Calling d2d_outline_vertex_set(x, y, 0, 0, 0, 0) causes a normalize() to
be invoked with a zero vector in the vertex shader
vs_code_bezier_outline. This gives rise to an undefinite result, that in
some cases causes the join triangles to be dropped.

Tested on Debian unstable.

Signed-off-by: Giovanni Mascellani <g.mascellani@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-09 09:52:36 +02:00
Henri Verbeet fa4d5b6151 d2d1: Replace d2d_calloc() with a global heap_calloc() helper.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-01 22:24:49 +01:00
Henri Verbeet d9f4390488 d2d1: Use d2d_array_reserve() in d2d_clip_stack_push().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-31 17:54:55 +01:00
Henri Verbeet fdaa6d8e2a d2d1: Introduce a helper function to allocate arrays.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-31 17:54:55 +01:00
Henri Verbeet 6d8ebf1d1a d2d1: Use the global memory allocation helpers.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-30 20:42:06 +01:00
Henri Verbeet 8247c13aae d2d1: Introduce a registry key to limit the maximum supported factory version.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-22 22:26:46 +01:00
Lucian Poston 9d9fbc0e4a d2d1: Implement ID2D1Factory1.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-22 22:26:46 +01:00
Nikolay Sivov 0fa7071608 d2d1/tests: A test to show that DC is validated on BindDC().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-15 18:55:41 +01:00
Henri Verbeet 1ddbab3f27 d2d1/tests: Introduce an ARRAY_SIZE macro.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-13 20:15:38 +01:00
Nikolay Sivov 4e610f059d d2d1: Respond to ID2D1Image query.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-01 15:56:54 +01:00
Henri Verbeet 24dc5c7409 d2d1: Implement radial gradient brushes.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-28 17:53:51 +02:00
Henri Verbeet 370cbf488a d2d1: Implement d2d_radial_gradient_brush_SetRadiusY().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-28 17:53:37 +02:00
Henri Verbeet ac4db5ebda d2d1: Implement d2d_radial_gradient_brush_SetRadiusX().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-28 17:53:34 +02:00
Henri Verbeet f92b291f24 d2d1: Implement d2d_radial_gradient_brush_GetRadiusY().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-28 17:53:28 +02:00
Henri Verbeet 8dd021fd72 d2d1: Implement d2d_radial_gradient_brush_GetRadiusX().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-28 17:53:21 +02:00
Henri Verbeet 48dfe437f9 d2d1: Implement d2d_radial_gradient_brush_GetGradientStopCollection().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-27 09:55:53 +02:00
Henri Verbeet 5aef3d6352 d2d1: Implement d2d_radial_gradient_brush_SetGradientOriginOffset().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-27 09:55:51 +02:00
Henri Verbeet 2148545e25 d2d1: Implement d2d_radial_gradient_brush_GetGradientOriginOffset().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-27 09:55:49 +02:00
Henri Verbeet 85c4419859 d2d1: Implement d2d_radial_gradient_brush_SetCenter().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-27 09:55:47 +02:00
Henri Verbeet 4482324455 d2d1: Implement d2d_radial_gradient_brush_GetCenter().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-27 09:55:46 +02:00
Henri Verbeet 7c430c5ce0 d2d1: Implement d2d_d3d_render_target_CreateRadialGradientBrush().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-26 21:24:08 +02:00
Henri Verbeet e29e627064 d2d1: Implement linear gradient brushes.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-26 21:24:08 +02:00
Henri Verbeet 24814f8f4a d2d1: Create shader resource views for gradient stop collections.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-26 21:24:08 +02:00
Henri Verbeet c1cba92cc0 d2d1: Implement d2d_linear_gradient_brush_GetOpacity().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-26 21:24:08 +02:00
Henri Verbeet aa7d5a8414 d2d1: Implement d2d_linear_gradient_brush_SetOpacity().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-26 21:24:08 +02:00
Henri Verbeet 119f84099b d2d1: Use the "world" position instead of the render target position in the pixel shader.
This slightly simplifies the implementation of bitmap brushes, since the
render target transformation no longer needs to be undone. More importantly,
it does the same for gradient brushes.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-25 11:04:39 +02:00
Henri Verbeet f55960576d d2d1: Unify the outline and fill pixel shaders.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-25 11:04:37 +02:00
Henri Verbeet 2fafd92d88 d2d1: Unify the various brush pixel shaders.
Branches inside shaders aren't free, but in the long term avoiding switching
between shaders is probably worth it for D2D. As an added benefit, this makes
bitmap brushes and opacity brushes work with bezier geometry.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-25 11:03:09 +02:00
Henri Verbeet 49019368c2 d2d1/tests: Add some bitmap brush tests for skew transformations and transformed geometry.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-25 11:02:37 +02:00
Henri Verbeet 2a770ae741 d2d1/tests: Introduce get_surface_readback().
As in the Direct3D tests.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-25 11:02:34 +02:00
Nikolay Sivov e6c18792f1 d2d1: Improve figure bounds updating for quadratic beziers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-18 14:15:58 +02:00
Nikolay Sivov 00fea0298b d2d1: Implement GetBounds() for path geometries.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-15 17:00:53 +02:00
Nikolay Sivov dcccaaf7f3 d2d1: Use better bezier segment bounds approximation when updating figure bounds.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-15 17:00:53 +02:00
Nikolay Sivov 38d314ba92 d2d1: Use 8bpp text bitmaps for grayscale mode.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 17:52:16 +02:00
Nikolay Sivov 0a315ba065 d2d1: Fix rounding when setting scissor rectangle.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-30 16:28:56 +02:00
Nikolay Sivov 7316c96239 d2d1: Pass inline object effect through rendering context.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 17:46:20 +02:00
Henri Verbeet 2187a1edb3 d2d1: Split overlapping bezier control triangles.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-18 08:07:04 +09:00
Henri Verbeet 3895f07c4b d2d1: Use segment indices in d2d_geometry_resolve_beziers().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-18 08:07:02 +09:00
Henri Verbeet 00fafb27e3 d2d1: Implement bezier/bezier intersections.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-18 08:06:59 +09:00
Henri Verbeet a4f23ea148 d2d1: Implement bezier/line intersections.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-18 08:06:57 +09:00
Henri Verbeet a5f02132d3 d2d1: Introduce a separate function for calculating line/line intersections.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-18 08:06:55 +09:00
Henri Verbeet 01d4767aed d2d1/tests: Add a test for bezier intersections.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-18 08:06:53 +09:00
Henri Verbeet 0ede13e1df d2d1: Return S_OK on success in d2d_geometry_resolve_beziers().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-18 08:06:50 +09:00
Nikolay Sivov b9a03b70af d2d1: Fix trace message typo.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-08 20:13:56 +09:00
Nikolay Sivov 977f8cc64d d2d1: Force appropriate antialiasing mode when drawing text elements using 2D primitives.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:33 +02:00
Nikolay Sivov c2257c072b d2d1: Enforce text antialias mode vs text rendering mode consistency.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:33 +02:00
Nikolay Sivov 1ec12ec7c5 d2d1: Pass current text antialias mode down to IDWriteGlyphRunAnalysis.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:33 +02:00
Nikolay Sivov d6e2a6f370 d2d1/tests: Fix stroke style object leak (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-11 18:23:42 +02:00
Nikolay Sivov 9fe40c24f8 d2d1: Added a helper to trace D2D1_RECT_F arguments.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-11 18:23:39 +02:00
Michael Stefaniuc 6f22d67077 d2d1: Make use of the available ARRAY_SIZE macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-10 20:51:10 +02:00
Alistair Leslie-Hughes 4fc2dbb14a d2d1/tests: Use standard wine_dbgstr_longlong.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-05 13:57:15 +02:00
Henri Verbeet 4dcdc80ad5 d2d1: Fix the segment count for open figures.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-07 22:55:05 +02:00
Henri Verbeet 09ff685aa0 d2d1: Implement d2d_path_geometry_Simplify().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-07 22:55:02 +02:00
Henri Verbeet 208eb09e3c d2d1: Implement d2d_transformed_geometry_Simplify().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-07 22:54:59 +02:00
Henri Verbeet e5733e7cd4 d2d1: Implement d2d_rectangle_geometry_Simplify().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-02 18:41:20 +02:00
Henri Verbeet 828e62c8e2 d2d1: Implement d2d_transformed_geometry_GetBounds().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-02 18:41:19 +02:00
Henri Verbeet 2485305b55 d2d1: Implement d2d_rectangle_geometry_GetBounds().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-02 18:41:17 +02:00
Henri Verbeet bc47dc3f41 d2d1: Implement d2d_layer_GetSize().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-02 18:41:15 +02:00
Henri Verbeet 6d638b9e28 d2d1: Implement d2d_d3d_render_target_CreateLayer().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-02 18:41:13 +02:00
Henri Verbeet ee4280ef6c d2d1: Take the render target transform into account when evaluating flatness in vs_code_bezier_outline[].
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 20:51:45 +02:00
Henri Verbeet bd2141e521 d2d1: Implement initial support for quadratic bezier outlines.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:45:08 +02:00
Nikolay Sivov b7125b6790 d2d1: Use render target transform in bitmap text rendering mode.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-04 14:54:50 +02:00
Nikolay Sivov bfb953894e d2d1: Support strikethrough in DrawText()/DrawTextLayout().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 09:56:41 +01:00
Nikolay Sivov d51c60e11d d2d1: Use DrawLine() to draw underlines.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-24 13:54:17 +01:00
Henri Verbeet 0be8d44665 d2d1: Create open, hollow geometry in d2d_d3d_render_target_DrawLine().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-23 08:55:55 +01:00
Henri Verbeet d7fb78184f d2d1/tests: Add tests for drawing simple shapes.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-23 08:55:52 +01:00
Nikolay Sivov 93959d21e9 d2d1/tests: Test to show that WIC bitmap is locked within BeginDraw()/EndDraw().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-17 20:54:05 +01:00
Nikolay Sivov 74ed5c7067 d2d1: Added support for ID2D1GdiInteropRenderTarget interface.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-14 22:47:00 +01:00
Nikolay Sivov 1226765403 d2d1: Create gdi-compatible texture for WIC target when asked for it.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-13 18:50:11 +01:00
Henri Verbeet a525b69781 d2d1: Properly invert join directions when needed.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-13 18:50:10 +01:00
Nikolay Sivov 71cb1be214 d2d1: Always create HWND target as gdi-compatible.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-10 21:29:27 +01:00
Henri Verbeet d10dfd4102 d2d1: Take the source transformation into account when creating a transformed geometry.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-03 19:05:11 +01:00
Henri Verbeet 7ed032a014 d2d1: Implement rectangle geometry outlines.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-03 19:05:11 +01:00
Henri Verbeet 39406039c0 d2d1: Implement initial support for line joins.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-03 19:05:11 +01:00
Henri Verbeet f3563f4e62 d2d1: Add an initial d2d_d3d_render_target_DrawGeometry() implementation.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-03 19:05:11 +01:00
Henri Verbeet ac3824fe63 d2d1: Avoid degenerate line segments.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-03 19:05:11 +01:00
Nikolay Sivov 621675e8f8 d2d1: Check for NULL pointer when releasing previous render target view.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 15:54:13 +01:00
Nikolay Sivov 6ab887c057 d2d1: Fix ID2D1HwndRenderTarget::Resize() prototype.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 15:54:11 +01:00
Henri Verbeet df63a7f890 d2d1: Update "p0" after inserting a vertex in d2d_geometry_resolve_beziers().
This fixes a failure in the d2d1 tests when run with warn+heap.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-04 11:11:27 +01:00
Józef Kucia 89ffad1f20 d2d1/tests: Change scale factors in test_bitmap_brush().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-19 11:06:08 +01:00
Henri Verbeet 74735f327c d2d1: Use d2d_point_set() in d2d_rectangle_geometry_init().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-08 16:07:05 +01:00
Henri Verbeet 91baf67e4a d2d1: Store separate bezier vertices.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-08 16:07:03 +01:00
Henri Verbeet ad40557103 d2d1: Introduce a separate structure for fill specific geometry fields.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-08 16:07:01 +01:00
Henri Verbeet e9fc8c7c52 d2d1: Properly test which side of a bezier curve is the inside.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:04 +01:00
Henri Verbeet 3d51a7164b d2d1/tests: Introduce a helper function to add quadratic bezier curves to a geometry sink.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:04 +01:00
Henri Verbeet a8dc7cc1d6 d2d1/tests: Introduce a helper function to add lines to a geometry sink.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:04 +01:00
Henri Verbeet 70e68e1234 d2d1/tests: Make the window client rect match the DXGI swapchain dimensions.
Similar to e.g. commit 65f20ffc50. There's
no compelling reason for the tests themselves, but it does simplify
debugging them a little.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:04 +01:00
Henri Verbeet e37ba63d2f d2d1: Properly set an error state when adding the vertex fails in d2d_geometry_sink_BeginFigure().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:04 +01:00
Nikolay Sivov 463d1877ae d2d1: Fix GetGradientStops() when asked for more stops than collection has.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-25 19:48:52 +01:00
Nikolay Sivov caac983742 d2d1: Implement retrieving dash pattern data for stroke styles.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-24 14:31:15 +01:00
Nikolay Sivov 786633e311 d2d1: Store stroke style properties, implement methods returning them.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-22 16:30:59 +01:00
Nikolay Sivov 7159479e11 d2d1: Implement DrawLine() over DrawGeometry() for a linear path.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-22 16:30:52 +01:00
Nikolay Sivov adfdfe79b2 d2d1/tests: Some tests for GetRect() and GetRoundedRect().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-09 16:32:48 +01:00
Nikolay Sivov cec2be48c6 d2d1: Added support for D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-08 16:58:14 +01:00
Nikolay Sivov 78b6402a08 d2d1: Fix CreateGeometryGroup() prototype.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-07 16:59:46 +01:00
Nikolay Sivov 97e52ab673 d2d1: Implement FillContainsPoint() for rectangle geometry.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-03 17:13:40 +01:00
Nikolay Sivov aa55206626 d2d1: Fix a typo in traced error message parameter.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-01 14:38:26 +01:00
Nikolay Sivov 306d062f46 d2d1: For transformed geometry forward StrokeContainsPoint() to its source geometry.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-01 14:38:24 +01:00
Nikolay Sivov c8eb7453a8 d2d1/tests: Test creating bitmap target from uninitialized dc target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-31 15:40:51 +01:00
Nikolay Sivov 7bce356ef4 d2d1/tests: DrawTextLayout() ignores effects that are not brushes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-31 15:40:49 +01:00
Nikolay Sivov 5f4bba4303 d2d1: Store gradient stop collection pointer for linear gradient brush.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-28 17:10:05 +02:00
Nikolay Sivov 0f44063006 d2d1: Support setting and getting back start and end point for linear gradient brush.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-28 17:10:02 +02:00
Andrew Eikum aea8f9d610 d2d1/tests: Add FillContainsPoint() tests.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-26 15:36:00 +02:00
Andrew Eikum 2e08bc0ffc d2d1: Implement d2d_path_geometry_FillContainsPoint().
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-26 15:35:58 +02:00
Andrew Eikum 930dd951b3 d2d1: Implement d2d_transformed_geometry_FillContainsPoint().
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-26 15:35:55 +02:00
Nikolay Sivov e9da184bbd d2d1: Initial implementation of bitmap render target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-20 06:17:39 -07:00
Nikolay Sivov 4121b223c8 d2d1: Implement GetDesktopDpi().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-12 16:57:47 +02:00
Nikolay Sivov 1f50b75b78 d2d1: Make some of drawing calls a wrappers over DrawGeometry().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-11 16:51:35 +02:00
Nikolay Sivov 31b162b37d d2d1: Support shared bitmaps created from dxgi surface.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-11 16:51:35 +02:00
Nikolay Sivov 7d5bd929e2 d2d1/tests: Initial tests for bitmap render target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-07 13:11:34 +02:00
Nikolay Sivov f4cacf774b d2d1: Initial implementation of HWND render target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-04 13:55:27 +02:00
Nikolay Sivov 03d301cc74 d2d1: Initial implementation of DC render target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 22:24:31 +09:00
Nikolay Sivov ccc6a576d6 d2d1/tests: Test that target properties are kept during BindDC().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-08 19:51:28 +09:00
Nikolay Sivov 35bab5ce64 d2d1/tests: A DC target test for switching from one HDC to another.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-06 11:28:39 +09:00