Commit Graph

377 Commits

Author SHA1 Message Date
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