Commit graph

241 commits

Author SHA1 Message Date
Timo Kreuzer
77e891b8ab [WIN32K] Check if a graphics device already exists before trying to add it
This avoids DPRINTs alleging a failure to open a device.
Also improve another DPRINT.
2021-07-15 08:32:46 +02:00
Timo Kreuzer
39d8a822d2 [WIN32K] Fix detection of multiple display devices on VBox 2021-07-15 08:32:46 +02:00
Hervé Poussineau
0f6b9664cd [WIN32K] HACK: create a DC on all display devices and display wallpaper 2021-07-10 16:27:44 +02:00
Hervé Poussineau
6739fb1bc3 [WIN32K] Move detection of available display devices a new fonction EngpUpdateGraphicsDeviceList
- rewrite InitVideo() to call this new function
- also call it at the start of UserEnumDisplayDevices, to detect new potential devices
2021-07-10 16:27:44 +02:00
Doug Lyons
847b037fe9
[WIN32K] Revert NtGdiStretchDIBitsInternal to Previous Logic (#3774)
Fixes gdi32:dib / gdi32:bitmap tests and SIMS graphics.
JIRA issue: CORE-16236
2021-07-03 00:34:43 +02:00
Joachim Henze
4130f0b1c5 [WIN32K] CreateDIBPalette addendum to #3758 CORE-17626
Fix compilation on older GCC4.7.2 toolchain
to not warn about universal zero initializer.
See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
https://stackoverflow.com/questions/13746033/how-to-repair-warning-missing-braces-around-initializer
2021-06-23 21:37:53 +02:00
Joachim Henze
c596fd3ef6 [WIN32K] CreateDIBPalette SEH Simplification #3758 CORE-17626
Enter an SEH2_TRY one time and do all testing within it instead of entering the SEH_TRY multiple times.

The commit is an addendum to 0.4.15-dev-2734-g 514147776a

Thanks to patches author Doug-Lyons

This is 1:1 the final approved content of #3758, but I committed
by hand and closed the PR to avoid squash+rebase.
2021-06-23 19:59:42 +02:00
Doug Lyons
c7954134d0
[WIN32K] Revert incorrect part of R50928 for RealizePalette. (#3678)
Revert incorrect code for Realize Palette
Revert part of SVN R50928 that causes Durak card suites to have wrong colors.
SVN r50928 == git 5de8339cd1

JIRA issue: CORE-13748 <= Durak Example
JIRA issue: CORE-16510 <= GDIProg Example

The patch also fixes 2 crashes on each bot, although
it was not targeted for that explicitly:
KVM: https://reactos.org/testman/compare.php?ids=77304,77308 LGTM
VBox: https://reactos.org/testman/compare.php?ids=77305,77309 LGTM
2021-06-19 18:25:03 +02:00
Joachim Henze
514147776a [NTGDI] Fix potential BSOD 0x1E CORE-17626
in CreateDIBPalette() when passing invalid arguments to CreateDIBSection.
This could be triggered by using the broken test-application "GDIProg".

After this patch not only the BSOD is fixed but also the app does
properly start up, like it is the case on 2k3sp2.

Thanks to the patches author Doug Lyons.
2021-06-19 17:41:49 +02:00
Jérôme Gardou
e70df4c633 [WIN32K:ENG] In EngLockDriverObj, properly return NULL when locking failed
CORE-15958
2021-06-09 18:27:12 +02:00
Timo Kreuzer
50c9dab6c9 [WIN32K] Fix wrong calculation in DIB_32BPP_BitBltSrcCopy
Using an unsigned integer will cause the calculations to be unsigned, which on x64 leads to wrong results, when adding it to a pointer.
2021-05-27 15:53:24 +02:00
Mark Jansen
1c97b84600
[WIN32SS] Skip . and .. when enumerating fonts 2021-05-22 16:31:31 +02:00
Jérôme Gardou
3adf450867 [REACTOS] Addendum to 5c7ce4475e - Fix MSVC 2015 build
Put data into PAGEDATA or INITDATA sections
Keep section declaration for prototypes

CORE-17540
2021-05-12 11:04:29 +02:00
Oleg Dubinskiy
58daf942fe
[GDI32] Fix wrong ordering of parameters in NtGdiDdGetDC call (#3637)
It allows to properly pass the surface handle (and palette entry pointer) from MS ddraw into win32k.
Otherwise, they are passing into the wrong parameters of actual NtGdi* function, and due to this,
since they're detected as invalid, they become NULL, and that function does not work correctly.

See https://docs.microsoft.com/en-us/windows/win32/devnotes/-dxgkernel-ntgdiddgetdc for the reference
(and confirmed by our headers).

Required by MS DirectDraw stack (ddraw.dll & dxg.sys).
CORE-17561
2021-05-03 18:11:18 +02:00
Jérôme Gardou
e470b58376 [REACTOS] Explicitly link against pseh & include pseh headers in a few places 2021-04-28 13:10:23 +02:00
Jérôme Gardou
12dfa8ce39 [WIN32K] Fix getting long value from float object
Most importantly, do not shift 32-bit integers by 32 or more.
2021-03-31 18:35:31 +02:00
Jérôme Gardou
405ce53211 [WIN32K] More cleanup & improvements
Use FLOATOBJs to perform device<->world transformations, avoiding use of XFORMOBJ all the time
Remove unused macros & functions
2021-03-31 18:35:31 +02:00
Jérôme Gardou
3bad3c49e1 [WIN32K] Use INTERNAL_LPTODP in IntLPtoDP
Instead of initializing a XFORMOBJ and whatnot
2021-03-31 18:35:31 +02:00
Jérôme Gardou
26b5596a11 [WIN32K] Rewrite PATH_Ellipse & PATH_RoundRect using integer arithmetics 2021-03-31 18:35:31 +02:00
Jérôme Gardou
f9c068685f [WIN32K] Reduce use of FPU in path implementation with use of FLOATOBJs 2021-03-31 18:35:31 +02:00
Jérôme Gardou
40f7e86347 [WIN32K] Fix brain-fail of mine
Copying e.g. (2;2);(6;6) to (0;0);(4;4) also needs to have an intermediate buffer.
2021-03-31 16:55:30 +02:00
Jérôme Gardou
30886e74f2 [WIN32K] Fix case when buffers overlap in 1BPP -> 1BPP DIB copy
Logic by Doug Lyons
CORE-17520
2021-03-31 16:39:57 +02:00
Jérôme Gardou
068687e0fd [WIN32K] Fix off-by-one errors
Spotted by Doug Lyons
CORE-17520
2021-03-31 16:39:57 +02:00
Jérôme Gardou
0c13ff2a4b [WIN32K] Rewrite DIB1BPP -> DIB1BPP copy
Simpler is sometimes better.
Fixes some crashes & memory corruptions happening because of all those broken loops.
2021-03-22 22:40:33 +01:00
Doug Lyons
ce7836c6d3
[WIN32K] Add StretchBlt function ability to flip images (#3458)
Modify dib\dibxxbpp.c programs to understand flipped images. See Videos at CORE-16642

1. Mirroring Horizontally works.
2. Mirroring Vertically works.
3. Rotation 180° works.

CORE-16642, CORE-14408, CORE-16634
2021-02-21 08:28:36 +09:00
Joachim Henze
232c45fcd7 [WIN32SS][COMCTL32] Commit Flip_Fix_9.patch
flip_fix_9.patch fixes:
CORE-16984 " 'SPINA Thrulg' / 'SPINA Thyr' / 'Sim Thyr' have images flipped"
CORE-17194 "StretchDIBits test" isn't work correctly"
           "Output of 'Project 3 Test'"
CORE-14701 "DVDStyler 3.0.4 transparent toolbars"
CORE-14701 "DVDStyler 3.0.4 erroneously black around icons of welcome-dlg"
CORE-14671 "'Peazip' shows icons in buttons and menubar vertically flipped"
           "Double Commander shoes icons flipped in buttons, menubar, listview and the treeview"
CORE-13273 "Welcome to Lazarus" icon shows flipped
CORE-13026 "'CudaText app' icon shows flipped"

Not all of those are duplicates, although they appear to be at first glance.
It affects different controls and some of those tickets do have different 'guilty revs' than others.

The patch does consist of 3 parts:

1.) win32ss/gdi/ntgdi/dibobj.c
This one is the most clean part of it, that addresses most of the flipping issues now.

2.) The hack in comctl32.h redefining the version:
We used that in the past to appease some, but not all of the issues listed above.
But it does hide additional issues, e.g. in DvDStyler, therefore we seem to still need that appeasement even today.
Most likely it would make sense to aim to avoid this part in the future.
part 2.) was committed as first appeasement on its own already into
0.4.14-RC-24-g 198b61e
0.4.13-RC-7-g 67211fa
0.4.12-RC-5-g 8449527
0.4.11-RC-16-g b906163
0.4.10-RC-7-g f1e80fe
0.4.9-RC-34-g 9d758ae

3.) toolbar.c change
That part fixes at least the toolbar case for DvDStyler
without relying on the comctl32.h hack any longer,
but it was still not enough to completely get rid of part 2.) yet.

Many thanks to all contributors: 'I_kill_Bugs', Doug Lyons and also 'Julenuri' for testing.

The patch gave nice testbot results:
KVM:  https://reactos.org/testman/compare.php?ids=75704,75714
VBox: https://reactos.org/testman/compare.php?ids=75705,75715

and we also created a summary of manual test-results:
https://jira.reactos.org/browse/CORE-17415?focusedCommentId=126668&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-126668

If you read this comment via git blame and your goal is to get rid of the hack in comctl32.h, I would highly recommend
to redo the tests of that testing table, and if that is asked too much, then please test at least the following cases:
CORE-14701 "DVDStyler 3.0.4 transparent toolbars"
CORE-14701 "DVDStyler 3.0.4 erroneously black around icons of welcome-dlg"
           "DVDStyler 3.0.4 erroneously black/transparent within comboboxes of properties of VMGM menu"
and try to add what might be needed to fix them, and double-check again:
           "DoubleCommander optionsDlg the most complex testcase, contains flip-prone icons in treeview, listview, menubar, buttons, statics". Only some of its flipped icons were impacted by the comctl32.h change before.
2021-01-05 20:30:40 +01:00
Jérôme Gardou
b96e88894a [CMAKE] Turn import libs into regular C static libs
Embed msvcrtex into libmsvcrt

Idea taken from Thomas Faber
2020-12-28 12:13:30 +01:00
Timo Kreuzer
00cfa8aac2 [WIN32K] Fix an ASSERT to ignore the upper 32 bits of a passed in GDI handle 2020-11-07 18:34:10 +01:00
Victor Perevertkin
5c7ce4475e
[REACTOS] Cleanup INIT and some PAGE section allocations
- Change INIT_FUNCTION and INIT_SECTION to CODE_SEG("INIT") and DATA_SEG("INIT") respectively
- Remove INIT_FUNCTION from function prototypes
- Remove alloc_text pragma calls as they are not needed anymore
2020-11-02 21:45:31 +03:00
Timo Kreuzer
cef57d3c44 [GDI32] Fix up GdiFixUpHandle 2020-10-31 14:24:09 +01:00
Mark Jansen
7ed0f25b64 [GDI32] Prevent double initialization in GdiProcessSetup
Found with Application Verifier :)
2020-10-11 16:30:39 +02:00
James Tabor
8313483202 [GDI32] Force Return if other Type of Device Requested
Fix CORE-17241 assert.
2020-09-08 12:52:28 -05:00
Doug Lyons
7624a98706
[GDI32] Fix double cx's in call to HANDLE_METADC in win32ss painting.c (#3137)
Fix copy-paste error.
2020-09-06 18:08:03 +02:00
Joachim Henze
9835710f7e [GDI] Demote the insane amount of logging CORE-1091
that was introduced by
0.4.15-dev-684-g
448bcede24
2020-09-01 19:11:22 +02:00
Doug Lyons
448bcede24
[GDI32] Preserve PitchAndFamily across GetTextMetricsW call (#2689)
ReactOS has no Raster fonts today, so compensate for this affecting the editbox margins.
CORE-1091
This patch fixes the inability to see all of the characters in the CD-KEY box of Starcraft and Visual Basic 5 and Visual Basic 6 Installs. It supersedes #2656
2020-09-01 20:08:26 +09:00
Nguyen Trung Khanh
247c189263
[NTGDI] Fix stack memory disclosure in ftGdiGetTextMetricsW (#2991) 2020-08-25 19:28:39 +03:00
Nguyen Trung Khanh
a081e12fbd
[NTGDI] Fix pool memory disclosure in NtGdiGetGlyphOutline (#3021) 2020-08-25 19:14:23 +03:00
Nguyen Trung Khanh
50510538db
[WIN32SS][GDI] Fix pool memory disclosure in NtGdiGetOutlineTextMetricsInternalW (#2964) 2020-07-04 15:39:16 +02:00
Serge Gautherie
5f076e5558
[GDI32] MirrorRgnByWidth(): Fix 'phrgn' parameter handling
Detected by Cppcheck: uselessAssignmentPtrArg.
Addendum to 794e7aa (r31523) and e647530 (r65893).
2020-06-18 10:33:35 +02:00
James Tabor
cba5acbc48 [NtGDI] Add missing type for EPS Print Escape
Part of GDI escape printing.
2020-05-12 20:34:22 -05:00
Mark Jansen
a98bebb0b0
[WIN32K] Mute a DPRINT 2020-04-27 12:54:11 +02:00
Katayama Hirofumi MZ
52fb8c1a8d
[NTGDI][FREETYPE] Return non-zero gm.gmBlackBoxX/Y (#2643)
In return of GetGlyphOutline function call, gm.gmBlackBoxX and gm.gmBlackBoxY must be non-zero to avoid Division by Zero. At epilogue of ftGdiGetGlyphOutline, we adjust the values. CORE-15949
2020-04-23 22:02:41 +09:00
Tibor Lajos Füzi
6020af2014
[GDI32] Allow BI_BITFIELDS compression in CreateDIBitmap (#2448)
CORE-16750, CORE-15960
2020-03-30 12:11:38 +02:00
Hervé Poussineau
ae5d2dbb9e [WIN32K] Add some static specifiers, to prevent exporting FORCEINLINE function outside compilation unit 2020-03-26 16:39:16 +01:00
Jérôme Gardou
2928084e2f [WIN32K] Fix bounds calculation when drawing with a pen 2020-03-24 14:39:27 +01:00
Thomas Faber
72c51aabba
[NTOS:IO][GDI32][CMD] Fix some under-sized variables. CORE-14922
Fixes x64 boot with RTC.
2020-03-13 20:45:06 +01:00
Colin Finck
5d8c39753e
[GDI32] GdiConvertToDevmodeW: Import WINE commit 32393796bb534e9cf11dd988dce88722c67f7906 ("gdi32: GdiConvertToDevmodeW should not refer to unintialized name bytes.")
This makes our GdiConvertToDevmodeW equivalent to the WINE counterpart again.
2020-02-24 19:17:56 +01:00
Joachim Henze
99ba7ea95f [FREETYPE] Fix regression fonts in Adobe Photoshop CS2 menu CORE-16694
By Reverting beginnings of raster-fonts-works (*.fnt and *.fon)
Thanks Katayama Hirofumi MZ for helping with this revert.

The regression was introduced by 0.4.13-dev-681-g
ae99df1675

I will also port this revert back into 0.4.13-RC
2020-02-23 12:23:05 +01:00
jimtabor
c89e111c6a [GDI32] Use Gdi Flush for SetViewportOrgEx.
Fixes offset in combo texts and menu highlights. See CORE-16644 & CORE-16656.
2020-02-13 17:05:38 -06:00
jimtabor
2903022199 [NtGDI] Use Vis Region for New Clip Region
Interesting results while using VBOX-GA.
Rolling back to Vis, wine throwback. See CORE-16680.
2020-02-09 11:28:19 -06:00