Andras Timar
14be550da2
emfio: implement BS_HATCHED brushes and pens
...
Handle BS_HATCHED brush style in EMR_CREATEBRUSHINDIRECT,
W_META_CREATEBRUSHINDIRECT, and EMR_EXTCREATEPEN.
For brushes (hatch indices 0-5), map Windows hatch styles
(HS_HORIZONTAL..HS_DIAGCROSS) to VCL Hatch objects and emit
MetaHatchAction in all polygon/polypolygon fill paths.
For EMF-specific hatch indices 6-11, use the appropriate color
source per [MS-EMF] 2.1.17: brush color (6-7), text color (8-9),
or background color (10-11) as solid fills.
For wide geometric pens with BS_HATCHED (EMR_EXTCREATEPEN),
create stroke area geometry via createAreaGeometry and render
the hatch pattern inside the pen stroke area, replacing the
normal MetaPolyLineAction/MetaLineAction. This covers all
drawing paths including LineTo, DrawPolyLine, DrawPolygon,
DrawPolyPolygon, DrawRect, DrawRoundRect, DrawEllipse, DrawArc,
DrawPie, DrawChord, DrawPolyBezier, and StrokeAndFillPath.
Change-Id: Ie8482ac53b6d4d263793488ce10a97fa1716c68d
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/325
Tested-by: Jenkins CPCI <releng@collaboraoffice.com >
Reviewed-by: Miklos Vajna <vmiklos@collabora.com >
(cherry picked from commit 8808d550d12afb3e7abc4fe6a3145d80fc5bdde4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204389
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org >
Tested-by: Jenkins
2026-04-27 08:58:20 +02:00
..
2026-03-06 07:18:39 +01:00
2026-01-22 09:42:36 +01:00
2026-01-12 15:56:36 +01:00
2026-03-30 10:05:05 +02:00
2026-04-07 05:20:00 +02:00
2026-01-11 21:38:37 +01:00
2026-04-26 18:09:35 +02:00
2026-01-27 09:18:49 +01:00
2026-03-24 21:39:56 +01:00
2026-01-23 21:27:08 +01:00
2026-01-14 10:19:31 +01:00
2026-03-27 04:35:24 +01:00
2026-04-27 08:53:02 +02:00
2026-01-18 00:33:10 +01:00
2026-04-26 18:09:18 +02:00
2026-01-18 00:33:10 +01:00
2026-04-26 18:09:35 +02:00
2026-01-03 17:32:04 +01:00
2026-01-03 17:32:04 +01:00
2026-01-06 10:02:26 +01:00
2026-01-22 09:42:36 +01:00
2026-01-05 11:10:28 +01:00
2026-01-05 11:10:28 +01:00
2026-01-22 09:42:36 +01:00
2026-01-12 15:56:36 +01:00
2026-01-12 15:56:36 +01:00
2026-01-12 15:56:36 +01:00
2025-07-21 10:49:25 +02:00
2026-01-05 11:10:28 +01:00
2026-01-05 11:10:28 +01:00
2026-03-13 07:37:57 +01:00
2026-01-12 15:56:36 +01:00
2026-01-05 11:10:28 +01:00
2026-04-04 23:44:59 +02:00
2026-04-04 23:45:22 +02:00
2026-03-10 19:09:00 +01:00
2026-03-16 09:33:11 +01:00
2025-07-21 10:49:25 +02:00
2026-01-06 10:02:26 +01:00
2026-01-05 11:10:28 +01:00
2025-02-05 18:29:16 +01:00
2026-01-06 10:02:26 +01:00
2026-01-06 10:02:26 +01:00
2026-01-06 10:02:26 +01:00
2026-02-16 00:24:18 +01:00
2026-01-06 10:02:26 +01:00
2024-10-01 11:17:11 +02:00
2026-03-17 10:08:05 +01:00
2026-01-11 21:38:37 +01:00
2024-03-14 14:31:37 +01:00
2025-10-12 18:17:31 +02:00
2026-01-13 21:38:04 +01:00
2025-02-18 09:44:52 +01:00
2025-08-10 11:50:02 +02:00
2025-10-20 15:05:34 +02:00
2025-05-08 08:31:36 +02:00
2025-01-03 09:32:27 +01:00
2026-01-23 21:27:08 +01:00
2026-01-11 21:38:37 +01:00
2025-06-09 15:02:09 +02:00
2026-04-07 05:20:00 +02:00
2026-02-24 18:01:04 +01:00
2026-04-22 18:05:01 +02:00
2025-10-23 06:53:27 +02:00
2026-03-23 07:06:06 +01:00
2025-10-26 12:08:55 +01:00
2026-01-22 09:42:36 +01:00
2026-01-11 21:38:37 +01:00
2026-01-11 21:38:37 +01:00
2025-06-09 15:02:09 +02:00
2026-01-22 09:42:36 +01:00
2026-01-05 11:10:28 +01:00
2026-01-05 11:10:28 +01:00
2026-01-22 09:42:36 +01:00
2024-02-12 20:25:54 +01:00
2026-01-14 10:19:31 +01:00
2026-04-21 13:40:14 +02:00
2024-08-14 11:04:51 +02:00
2026-01-14 10:19:31 +01:00
2024-03-14 19:17:08 +01:00
2025-03-22 17:26:53 +01:00
2026-01-05 11:10:28 +01:00
2026-02-26 07:05:37 +01:00
2025-11-19 20:18:33 +01:00
2026-01-14 10:19:31 +01:00
2025-08-06 20:29:26 +02:00
2026-03-23 09:39:43 +01:00
2026-03-23 09:39:43 +01:00
2024-01-29 10:30:01 +01:00
2026-03-23 09:39:43 +01:00
2026-03-23 09:39:43 +01:00
2026-01-14 10:19:31 +01:00
2024-01-29 10:30:01 +01:00
2026-01-05 11:10:28 +01:00
2025-11-21 15:53:39 +01:00
2026-02-27 10:01:11 +01:00
2024-01-29 10:30:01 +01:00
2024-10-31 12:10:52 +01:00
2024-01-29 10:30:01 +01:00
2024-01-29 10:30:01 +01:00
2026-01-03 17:32:04 +01:00
2026-01-14 10:19:31 +01:00
2026-01-14 10:19:31 +01:00
2026-03-26 13:23:37 +01:00
2026-04-02 08:09:35 +02:00
2026-02-06 14:46:46 +01:00
2026-04-27 08:58:20 +02:00
2024-11-13 09:35:20 +01:00
2025-12-11 15:56:00 +01:00
2026-04-27 08:53:02 +02:00
2026-02-09 12:06:38 +01:00
2026-01-24 13:23:19 +01:00
2026-02-12 23:29:57 +01:00
2026-03-13 07:42:33 +01:00
2026-03-28 08:36:33 +01:00
2026-01-05 11:10:28 +01:00
2026-01-05 11:10:28 +01:00
2024-03-14 19:17:08 +01:00
2025-05-18 20:38:44 +02:00
2025-05-08 07:40:34 +02:00
2025-11-30 23:08:20 +01:00
2025-02-19 14:22:39 +01:00
2026-01-18 00:33:10 +01:00
2026-01-18 00:33:10 +01:00
2026-01-18 00:33:10 +01:00
2026-01-18 00:33:10 +01:00
2025-01-06 09:28:27 +01:00
2026-03-12 07:33:16 +01:00
2026-03-31 08:02:49 +02:00
2026-04-08 15:25:34 +02:00
2025-01-06 09:28:27 +01:00
2026-03-13 07:43:19 +01:00
2026-01-18 00:33:10 +01:00
2024-11-22 00:15:46 +01:00
2024-02-12 20:25:54 +01:00
2026-03-11 04:32:41 +01:00
2025-10-20 15:05:25 +02:00
2026-01-18 00:33:10 +01:00
2026-01-18 00:33:10 +01:00
2024-05-10 18:44:00 +02:00
2026-01-18 00:33:10 +01:00
2025-05-30 11:56:35 +02:00
2026-04-08 06:11:03 +02:00
2026-03-13 07:40:38 +01:00
2026-03-20 11:59:17 +01:00
2025-05-26 10:27:23 +02:00
2026-01-05 11:10:28 +01:00
2026-01-18 00:33:10 +01:00
2026-01-18 00:33:10 +01:00
2026-01-05 11:10:28 +01:00
2025-03-11 06:40:33 +01:00
2025-01-03 09:32:27 +01:00
2026-01-18 00:33:10 +01:00
2026-02-23 17:30:22 +01:00
2026-01-22 09:42:36 +01:00
2026-01-05 11:10:28 +01:00
2026-03-23 07:05:42 +01:00
2026-01-22 09:42:36 +01:00
2026-01-10 23:19:56 +01:00
2026-04-04 23:45:07 +02:00
2026-03-22 20:20:15 +01:00
2024-05-03 07:13:22 +02:00
2026-01-31 11:06:42 +01:00
2026-01-18 00:33:10 +01:00
2025-02-18 09:44:52 +01:00