Piotr Caban
2546468b4c
gdi32: Implicitly call StartPage in ExtEscape on printer DC.
2024-03-28 19:47:27 +01:00
Nikolay Sivov
8dec8cc96c
gdi32/emf: Zero-initialize handles array (Valgrind).
...
It's checked in emr_reset(), and reallocation already zero-initializes new slots.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-25 18:04:09 +01:00
Krzysztof Bogacki
223292da02
win32u: Implement NtGdiDdDDIEnumAdapters2.
...
Signed-off-by: Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
2024-02-15 20:39:48 +01:00
Krzysztof Bogacki
10db5b67b8
gdi32: Add D3DKMTEnumAdapters2() stub.
...
Signed-off-by: Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
2024-02-15 20:39:46 +01:00
Krzysztof Bogacki
842461979c
gdi32/tests: Add D3DKMTEnumAdapters2 tests.
...
Signed-off-by: Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
2024-02-15 20:39:46 +01:00
Alexandre Julliard
525835897b
gdi32/tests: Fix the expected GetTextMetrics() results on recent Windows.
2024-02-09 12:34:04 +01:00
Brendan McGrath
9b02ac6d42
gdi32: Ignore Datatype when StartDoc is called.
2024-01-23 15:31:51 +01:00
Zhiyi Zhang
36366f129b
win32u: Find the correct DIB driver in windrv_CreateDC().
...
push_dc_driver() places drivers based on their priorities, so the newly created driver is not
necessarily on top. Thus in windrv_CreateDC(), find_dc_driver() should be used to find the DIB
driver instead of assuming the DIB driver is the top driver, which could be the path driver because
it has a higher priority.
The exact wrong code path was:
1. A path driver with priority 400 is created for a DC.
2. windrv_CreateDC() is called to create a window driver for the DC.
3. Then in dibdrv_CreateDC(), push_dc_driver() is called with 'dev' pointing to the top driver, which is the path driver.
4. push_dc_driver() updates 'dev' to point to the address of the next driver because DIB driver has a lower 300 priority.
5. The DIB driver is assigned to 'dev', which is not the original parameter passed into push_dc_driver().
6. In windrv_CreateDC(), get_dibdrv_pdev(*dev) is called, assuming the top driver is the DIB driver. But actually the top
driver that '*dev' points to is still the path driver.
The added tests can demonstrate the memory corruption before this fix is applied.
2023-12-04 22:10:20 +01:00
Piotr Caban
4446db72eb
gdi32: Add ETO_PDY flag support in EMFDC_ExtTextOut.
2023-11-30 23:12:54 +01:00
Nikolay Sivov
95c87562f8
gdi32/emf: Pad EMREXTESCAPE record data.
2023-11-30 10:23:26 +01:00
Nikolay Sivov
ba454b239f
gdi32/emf: Use public definition for EMREXTESCAPE record.
2023-11-30 10:23:24 +01:00
Nikolay Sivov
7c479e797f
gdi32/emf: Align and pad bitmap data in EMRSETDIBITSTODEVICE records.
2023-11-30 10:23:23 +01:00
Nikolay Sivov
e63b00b1ad
gdi32/emf: Align and pad bitmap data in EMRSTRETCHDIBITS records.
2023-11-30 10:23:22 +01:00
Nikolay Sivov
169a23a140
gdi32/emf: Add description field padding.
2023-11-30 10:23:20 +01:00
Nikolay Sivov
4fac4588bb
gdi32/emf: Check for allocation failure in GdiComment().
2023-11-30 10:23:19 +01:00
Nikolay Sivov
47a939e2ad
gdi32/emf: Use padding helper in GdiComment().
2023-11-30 10:23:18 +01:00
Nikolay Sivov
30be905972
gdi32/emf: Add a helper to pad variable length record data.
2023-11-30 10:23:16 +01:00
Alex Henrie
2fcbfc4ca6
gdi32/tests: Free what GdiConvertToDevmodeW returns with HeapFree.
...
This partially reverts commit 0b7eed0310
.
2023-11-14 11:29:29 +01:00
Alex Henrie
0b7eed0310
gdi32/tests: Use CRT allocation functions.
2023-11-06 11:51:40 +01:00
Alexandre Julliard
7ccb5df0fc
makefiles: Always use the global SOURCES variable for .rc files.
2023-11-01 22:43:56 +01:00
Hans Leidekker
863d29ca72
win32u: Get rid of a special case for non-scalable fonts in NtGdiGetCharABCWidthsW().
2023-10-30 13:35:06 +01:00
Hans Leidekker
31fd070165
gdi32/tests: Skip broken Noto Color Emoji font in character width test.
2023-10-30 13:35:06 +01:00
Piotr Caban
846784f03f
gdi32: Fix leak in GdiDeleteSpoolFileHandle.
2023-10-17 18:18:10 +02:00
Alexandre Julliard
c047bb6ea3
makefiles: Always use the global SOURCES variable for .sfd files.
2023-10-12 10:59:29 +02:00
Piotr Caban
12c3579bcb
gdi32: Add GdiGetDevmodeForPage implementation.
2023-10-11 17:28:15 +02:00
Piotr Caban
78acbb6fec
gdi32: Add GdiGetDevmodeForPage stub.
2023-10-11 17:28:14 +02:00
Piotr Caban
c2489c501d
gdi32: Add GdiDeleteSpoolFileHandle stub.
2023-10-11 17:28:14 +02:00
Piotr Caban
8dfa1d66b1
gdi32: Add GdiGetSpoolFileHandle stub.
2023-10-11 17:28:13 +02:00
Piotr Caban
25e15e9e2c
gdi32: Test PlayMetaFile on METADC.
2023-10-11 17:27:40 +02:00
Piotr Caban
5e507b3e3d
gdi32: Fix METADC handling in PlayMetaFile.
2023-10-11 17:27:40 +02:00
Nikolay Sivov
e04e10b37b
gdi32/tests: Add some tests for FixBrushOrgEx().
...
It appears to be a stub on modern systems. Does not generate EMF output either.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-10 23:15:05 +02:00
Nikolay Sivov
86708b36f8
gdi32/emf: Add SetBrushOrgEx() recording.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-10 23:15:05 +02:00
Piotr Caban
01fab4c409
gdi32: Update printer DEVMODE in ResetDCW.
2023-10-09 11:38:28 +02:00
Nikolay Sivov
fea9bb7523
gdi32/emf: Add SetMetaRgn() recording.
2023-10-09 11:38:11 +02:00
Nikolay Sivov
200d795ff3
gdi32: Reject invalid values in SetMiterLimit().
2023-10-09 11:38:11 +02:00
Nikolay Sivov
3f30401495
gdi32/tests: Add some tests for SetMiterLimit() argument validation.
2023-10-09 11:38:11 +02:00
Nikolay Sivov
5b471a2963
gdi32/emf: Fix miter limit serialization.
2023-10-09 11:38:09 +02:00
Etaash Mathamsetty
627181d99c
gdi32: Add stub for D3DKMTQueryAdapterInfo.
2023-10-09 11:37:49 +02:00
Piotr Caban
59f72abfcf
gdi32: Add partial support for creating EMREXTCREATEPEN records.
2023-10-05 18:49:44 +02:00
Piotr Caban
b4b39bfbd1
gdi32: Pass default DEVMODE to winspool in CreateDC.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55670
2023-10-02 12:10:41 +02:00
Alexandre Julliard
c547659586
nls: Update character tables to Unicode 15.1.0.
2023-09-30 13:23:19 +02:00
Yuxuan Shui
74027f3731
gdi32: Make GetStockObject hotpatchable.
...
Needed for ntlea.
2023-09-19 16:59:45 +02:00
Alexandre Julliard
f078d5b4f9
gdi32: Fix buffer size parameter in GetFontFileData for 64-bit.
2023-09-01 18:06:02 +02:00
Alexandre Julliard
207bdd01ca
gdi32/tests: Use nameless unions/structs.
2023-07-20 21:48:39 +02:00
Piotr Caban
ef7b183984
gdi32: Fix DIB_PAL_INDICES usage handling in EMR_CREATEMONOBRUSH playback.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55177
2023-07-07 19:55:28 +02:00
Jacek Caban
a312a8e29a
gdi32/uniscribe: Don't use DECLSPEC_HIDDEN.
2023-06-26 20:19:13 +02:00
Jacek Caban
a5f62b3ef7
make_unicode: Don't use DECLSPEC_HIDDEN.
2023-06-26 20:19:13 +02:00
Jacek Caban
cd56a1c164
gdi32: Don't use DECLSPEC_HIDDEN.
2023-06-26 20:19:13 +02:00
Jacek Caban
da4663d640
win32u: Don't return full OUTLINETEXTMETRICW from __wine_get_file_outline_text_metric.
2023-05-29 11:37:08 +02:00
Jacek Caban
3dbe180ea5
win32u: Extend NtGdiSetDIBitsToDeviceInternal for SetDIBits implementation.
2023-05-29 11:37:08 +02:00