Commit graph

195 commits

Author SHA1 Message Date
Katayama Hirofumi MZ
39312ba688 [WIN32SS][NTGDI] Use UNICODE_NULL for consistency 2019-04-27 16:17:37 +09:00
Katayama Hirofumi MZ
19fc9415bf
[WIN32SS][NTGDI] FireFox checkmark fix CORE-15303 (#1535)
The font size was a bit larger than expected. FireFox will show checkmarks correctly in View menu. CORE-15303
2019-04-27 09:38:01 +09:00
Katayama Hirofumi MZ
ae8417fd90
[WIN32SS][NTGDI] Keep FontSubstitutes enumeration CORE-15785 (#1532)
Fix CORE-15785. When LOGFONT.lfFaceName[0] == 0, then enumeration of font substitutes had failed. CORE-15785
2019-04-26 21:56:36 +09:00
jimtabor
feb9c045cf [NtGDI] Update Region code
Wine Sync/Port and update for Regions. See CORE-15906.
2019-04-17 14:43:24 -05:00
Hermès Bélusca-Maïto
61475b9fed
[WIN32SS:NTGDI] IntEscapeMatrix(): Use FreeType trigonometric functions instead of CRT ones. 2019-04-14 01:19:03 +02:00
Katayama Hirofumi MZ
983cd57c1e [WIN32SS][NTGDI] Delete unnecessary (ULONG) cast CORE-15755 2019-04-11 18:23:32 +09:00
Katayama Hirofumi MZ
bc9f3ed887
[GDI32][NTGDI] Avoid integer overflow (follow-up of #1492) (#1495)
Follow up of #1492. CORE-15755
- Use RtlULongMult function to check integer overflows.
2019-04-11 17:57:57 +09:00
Katayama Hirofumi MZ
811faed421
[GDI32][NTGDI][SETUP] Fix font enumeration part 2 (#1492)
Eliminate some bugs about font enumeration. CORE-15755

- Add "Microsoft Sans Serif" font substitution.
- Fix and improve the treatment of the nominal font names.
- Split IntGetFontFamilyInfo function from NtGdiGetFontFamilyInfo.
- Add DoFontSystemUnittest function for font system unittest to GDI32.
- Call DoFontSystemUnittest function at CreateFontIndirectW first call.
2019-04-11 11:46:52 +09:00
Maxim Smirnov
ffb4b674c7 [FONT] Fix FontSmoothing 2019-04-07 01:42:29 +02:00
Katayama Hirofumi MZ
635534005b
[WIN32SS][FONT] Fix font coordinate conversion CORE-15907 (#1452)
[WIN32SS][FONT] Fix font bounding box mapping for viewport CORE-15907
2019-04-02 22:39:26 +09:00
jimtabor
2f5c0ee0a9 [NtGdi] Fix assert with Winamp
Fixes CORE-10774.

Reference:
Alexandre Julliard : Ignore empty rectangles in ExtCreateRegion.
8ac61c5a1e
2019-03-31 13:31:59 -05:00
Hermès Bélusca-Maïto
0e56ec8892
[WIN32SS:NTGDI] Fix missing text in labels and buttons for .NET apps. CORE-15000
There was a missing break statement in ftGdiGetGlyphOutline().
Found by JIRA contributor 'I_Kill_Bugs' :-)

Add also brackets around 'case's to make code navigation easier.
2019-03-14 01:36:45 +01:00
Joachim Henze
76118320ea Revert "[FREETYPE] Fix 3 regressions in one patch"
This reverts commit 0.4.12-dev-856-g
98b7ecd280
CORE-15785, CORE-15558, CORE-15755.

As requested by Pierre, we have very strong indication, that it broke
https://build.reactos.org/builders/Test%20KVM and
https://build.reactos.org/builders/Test%20VBox
2019-03-12 18:57:21 +01:00
Joachim Henze
98b7ecd280 [FREETYPE] Fix 3 regressions in one patch
Fixes regression CORE-15785 (Zim Desktop Wiki 0.67 crashed) and
Fixes regression CORE-15755 (NLite 1.4.9.3 used wrong font)

without reintroducing regression CORE-15558 (AbiWord 2.6.8 font enumeration)

This is achieved by partial revert of
0.4.12-dev-320-g
6e4e5a004c
and got ack of Katayama Hirofumi MZ.

Thanks to patches author Doug Lyons.
Test-results: https://reactos.org/testman/compare.php?ids=66264,66267
2019-03-11 20:10:14 +01:00
James Tabor
d57f7becc3 [Win32SS] Add TextOut to GDI Batch
Add fix ups to PolyPatBlt and freetype.
TextOut supports 580 characters w/o Dx and Dx at a max of 193 characters
with Dx*1, both if offset is 0.

Noticed a lot of over drawing with start menu from ComCtl32 SB_SETTEXT
going through User32 DrawText/Worker ExtTextOutW. Explain why it might
be slowing down.

If issues arise, commenting out lines in win32ss/include/gdi32p.h can
help.

Example:
else if (Cmd == GdiBCTextOut) cjSize = 0;//sizeof(GDIBSTEXTOUT); <----
this one most of all.
 else if (Cmd == GdiBCExtTextOut) cjSize = 0;//sizeof(GDIBSEXTTEXTOUT);

Test results:
https://reactos.org/testman/compare.php?ids=66260,66262
2019-03-08 22:21:41 -06:00
James Tabor
f35bb6e4c8 [NtGDI] Fix crash and simplify code.
Revert previous changes. simplify rendering check.
Fix missed unlocking which caused a crash.
2019-03-05 17:05:23 -06:00
James Tabor
3377fe184e [NtGDI] Change TextOut
Separate TextOut for internal use.
Use flTextAlign internally.
Not sure why GetDeviceCap was used for determining rendering. SVN commit
logs are unavailable. Include code from wine that might make more sense.
2019-03-05 16:03:15 -06:00
James Tabor
cf7bea11b2 [NtGDI] Use flag for text align mode.
Use the lTextAlign instead of the user one for internal use.
2019-03-04 12:17:00 -06:00
jimtabor
b6262a25fd Use GDI Batch for PatBlt
This should increase speed a bit. Makes a good argument to use
PolyPatBlt for more than one call.
PolyPatBlt is not fully tested yet.
2019-03-02 11:30:21 -06:00
Katayama Hirofumi MZ
64987cf273
[FONT][WIN32SS] Improve font coordinate transformation (#1238)
Improve TextOut/ExtTextOut font rendering with SetWorldTransform. CORE-15554, CORE-15623
2019-01-31 11:57:28 +09:00
Katayama Hirofumi MZ
bb33692400
[WIN32SS][NTGDI] Use ProbeForWrite in NtGdiSetBitmapBits (#1325)
Use ProbeForWrite instead of ProbeForRead. CORE-15657 and CORE-15695
2019-01-30 16:54:45 +09:00
Katayama Hirofumi MZ
1cd2f5438c [WIN32SS][NTGDI] Optimize UnsafeGetBitmapBits/UnsafeSetBitmapBits 2019-01-29 12:04:46 +09:00
Katayama Hirofumi MZ
e7b222f4c5 [WIN32SS][NTGDI] Delete magic number 565 2019-01-27 20:54:19 +09:00
Katayama Hirofumi MZ
1cac3fbe63
[WIN32SS][NTGDI] Fix NtGdiSetBitmapBits in buffer size (#1313)
Let NtGdiSetBitmapBits function fail if buffer size was greater than 564. CORE-15657
2019-01-27 17:44:34 +09:00
Katayama Hirofumi MZ
6b8f9c0c2b
[WIN32SS][NTGDI] Alignment probe change in NtGdiSetBitmapBits (#1309)
Don't check WORD alignment in NtGdiSetBitmapBits to match Win2k3 behaviour. CORE-15657
2019-01-27 16:11:23 +09:00
Katayama Hirofumi MZ
29795a2d72
[WIN32SS][NTGDI] Improve UnsafeGetBitmapBits and NtGdiGetBitmapBits (#1308)
CORE-15657
2019-01-27 15:51:33 +09:00
Katayama Hirofumi MZ
0aa21c3366
[WIN32SS][NTGDI] Fix UnsafeSetBitmapBits (#1310)
CORE-15657
2019-01-27 15:32:52 +09:00
Katayama Hirofumi MZ
6e4e5a004c
[FONT][GDI32] Fix font enumeration functions (#1221)
Fix EnumFonts, EnumFontFamilies and EnumFontFamiliesEx functions.
The charsets of the font substitutes are also enumerated.
Delete meaningless codes. CORE-15558
2019-01-06 10:43:34 +09:00
Timo Kreuzer
cfd1647914
[REACTOS] Fix misc 64 bit issues (#783)
* [WIN32K] Fix handle calculation in DbgGdiHTIntegrityCheck
* [NOTEPAD] Fix MSVC warnings
* [PSDK] Simplify *PROC definitions in windef.h
* [VIDEOPRT] Don't try to use NtVdmControl on x64
* [FREELDR] Fix some macros
* [CRT] Make qsort 64 bit compatible
* [NTOS] Use #ifndef _WIN64 instead of #ifdef _M_IX86 around C_ASSERTs
* [FAST486] Fix 64 bit warnings and change DWORD to ULONG, so it can be used in kernel mode
* [APPHELP_APITEST] Fix 64 bit issue
2019-01-05 10:50:11 +01:00
Katayama Hirofumi MZ
f757a13519
[FONT][WIN32SS] Partially implement font/text rotation (#1207)
Partially implement font/text rotation by LOGFONT.lfEscapement and improve the rendering image. If the angle was not a multiple of 90 degrees, then the background won't be filled. CORE-11848, CORE-15319
2018-12-31 18:56:43 +09:00
Mark Jansen
86ea03bf51
[FONT][WIN32SS] Re-add casts for gcc 2018-12-29 20:06:04 +01:00
Mark Jansen
85db46d75c
[FONT][WIN32SS] Remove casts 2018-12-29 19:47:00 +01:00
Mark Jansen
971c657b80
[FONT][WIN32SS] Hold the freetype lock while accessing freetype data 2018-12-29 19:47:00 +01:00
Mark Jansen
2e44e5ce54
[FONT][WIN32SS] Fix a memory leak 2018-12-29 19:47:00 +01:00
Mark Jansen
1f13b95e5b
[FONT][WIN32SS] Fix a memory leak 2018-12-29 19:47:00 +01:00
Mark Jansen
1d1b7f46fc
[FONT][WIN32SS] Hold the freetype lock while accessing freetype data 2018-12-29 19:47:00 +01:00
Mark Jansen
436d8d962a
[FONT][WIN32SS] Hold the freetype lock while accessing freetype data 2018-12-29 19:46:59 +01:00
Mark Jansen
2fa400b521
[FONT][WIN32SS] Do not return an uninitialized variable 2018-12-29 19:46:59 +01:00
Katayama Hirofumi MZ
6ee576f91d [FONT][WIN32SS] Optimize a bit 2018-12-27 09:23:49 +09:00
Katayama Hirofumi MZ
be84465883 [FONT][WIN32SS] Follow-up of #1184 2018-12-25 21:54:33 +09:00
Katayama Hirofumi MZ
d6cfeaef51
[FONT][WIN32SS] Refactor rendering text background (#1184)
Simplify the background filling codes. CORE-14856
2018-12-25 20:41:25 +09:00
Katayama Hirofumi MZ
43e2089476
[WIN32SS][FONT] Check NULL of Face->style_name (#1113)
CORE-15433
2018-12-11 18:32:39 +09:00
Katayama Hirofumi MZ
e90954304d
[WIN32SS][FONT] Add some assertions (#1098) 2018-12-06 12:47:02 +09:00
Katayama Hirofumi MZ
93757884c1
[WIN32SS][FONT] Improve FamilyUnknown Penalty (#1097)
CORE-15419
2018-12-06 09:32:02 +09:00
Katayama Hirofumi MZ
88ddb37acb
[WIN32SS][FONT] Use HHEA table metrics if (fsSelection & 0x80) (#1093)
This PR will fix too tiny glyph rendering. CORE-15166
2018-12-05 21:05:42 +09:00
Pierre Schweitzer
6416ee982f
[WIN32SS] Don't leak memory on failure in IntGdiWidenPath().
CID 1441350
2018-11-16 22:07:08 +01:00
Pierre Schweitzer
2255d5f5b6
[WIN32SS] Avoid an user-after-free in FontFamilyFillInfo().
CID 1441367
2018-11-16 22:07:08 +01:00
Katayama Hirofumi MZ
64e217e97c
[WIN32SS][FONT] Fix regression of #1004 (#1012)
Signed-off-by: Doug Lyons <douglyons@douglyons.com>
CORE-15333
2018-11-05 16:24:23 +09:00
Katayama Hirofumi MZ
7f679a116b
[WIN32SS][FONT] Fix ntmCellHeight value to usWinAscent + usWinDescent (#1010)
CORE-15331
2018-11-05 06:03:53 +09:00
Katayama Hirofumi MZ
2737d9144d
[WIN32SS][FONT] Define IntUnicodeStringToBuffer function and use it (#1004)
- Define IntUnicodeStringToBuffer function to copy the contents of a UNICODE_STRING to a string buffer with a UNICODE_NULL correctly.
- Use it.
JIRA issue: N/A
2018-11-03 05:42:58 +09:00
Katayama Hirofumi MZ
4abba2b7ac
[WIN32SS][FONT] Improve Precision Penalty (#1006) 2018-11-03 05:37:05 +09:00
Katayama Hirofumi MZ
08cfe38ec6
[WIN32SS][FONT] Add ASSERT_FREETYPE_LOCK_HELD(); in FillTMEx (#1005)
Add a assertion for locking, in FillTMEx function of freetype.c. CORE-15166
2018-11-02 18:53:50 +09:00
Katayama Hirofumi MZ
5d26cf5e2a
[WIN32SS][FONT] Move IntUnLockFreeType(); in ftGdiGetTextMetricsW (#1002)
Adjust timing of FreeType unlocking in ftGdiGetTextMetricsW function of "freetype.c". JIRA issue: N/A
2018-11-02 16:29:18 +09:00
Katayama Hirofumi MZ
ce077bb5d3
[WIN32SS][FONT] Add DPRINT1 and ASSERT for font resize failure (#1003)
Add DPRINT1 and ASSERT calls for font resize failure in IntRequestFontSize function. JIRA issue: N/A
2018-11-02 16:28:00 +09:00
Katayama Hirofumi MZ
43c78d4b75
[WIN32SS][NTGDI] Refactoring PATH_WidenPath (#888)
Preparation to support pen width.
Split IntGdiWidenPath function from PATH_WidenPath function.
IntGdiWidenPath is independent from DC.
CORE-2527, CORE-13534
2018-10-28 05:13:08 +09:00
Katayama Hirofumi MZ
70e27198ae
[FONT][WIN32SS] Fix the storage processing of IntGetOutlineTextMetrics (#942)
* Add IntStoreFontNames and IntStoreName functions and use them.
* SCALE_X and SCALE_Y macros
* Fix too long line
* Reduce type casts
2018-10-24 20:23:24 +09:00
Katayama Hirofumi MZ
2410bcb133
[FONT][WIN32SS] Improve readability of IntGdiGetFontResourceInfo (#945)
Make it human friendly code.
2018-10-24 19:58:03 +09:00
Katayama Hirofumi MZ
801b71b9bf [FONT][WIN32SS] Use ExFreePoolWithTag instead of ExFreePool (#941) 2018-10-14 09:47:52 +02:00
Katayama Hirofumi MZ
951335cd15 [FONT][WIN32SS] Use GOT_PENALTY macro to specify the penalty (#910)
Define and use GOT_PENALTY macro to specify the font penalty info.
CORE-5519
2018-10-08 14:38:38 +02:00
Mark Jansen
3d44f79e3e
[FONT][WIN32SS] Include the style name in the registry key.
Thanks to Doug Lyons for pinpointing the issue.

CORE-14044
2018-10-02 22:40:50 +02:00
Stanislav Motylkov
bac15d86bb [FONT][WIN32SS] Check whether Win32Process is NULL
CORE-15031
2018-09-13 18:19:19 +02:00
Katayama Hirofumi MZ
2ccfe267a0
[FONT][WIN32SS] Add dumping functions for debugging 2018-09-12 21:58:09 +02:00
Mark Jansen
6b67ef6e10
[WIN32K] Realize PTEXTOBJ in FontGetObject if it was not initialized 2018-09-12 21:33:45 +02:00
Mark Jansen
0364c58b0d
[FREETYPE] Mark an unhandled case as UNIMPLEMENTED
CORE-14948
2018-09-12 21:31:56 +02:00
Joachim Henze
31c981c02a [FREETYPE] Fix Regression "Monospaced font in LibreOffice" CORE-15018
LibreOffice started to show GUI in a mono-spaced font after 0.4.10-dev-466-g
35f62fc5ba

We can fix this by partial revert
as proposed by Katayama Hirofumi MZ, who was author of those changes as well.
We revert the changes in penalty system here.
2018-09-10 17:51:59 +02:00
Katayama Hirofumi MZ
c8749d379b [WIN32SS][FONT] Fix GetTextFace function and related (#829)
Google Chrome with -no-sandbox parameter in ReactOS wouldn't display the web page because first-chance exception raised.
CORE-14926

- Remove FullName, Style, and FaceName members from TEXTOBJ structure.
- Add TextFace member into TEXTOBJ structure.
- Add MatchFontName() and MatchFontNames() helper functions.
- Fix GetTextFace() and related.
2018-08-30 14:34:03 +02:00
Katayama Hirofumi MZ
bd9a4499a8 [WIN32SS][NTGDI] Extend PATH_FillPath as PATH_FillPathEx (#798)
The new PATH_FillPathEx function takes an additional PBRUSH parameter.
CORE-2527
2018-08-24 13:37:59 +02:00
Katayama Hirofumi MZ
5daa7b07c8 [FONT][WIN32SS] Refactor the loop (1 of 5) 2018-08-19 23:08:38 +02:00
Katayama Hirofumi MZ
c4e0107765 [FONT][WIN32SS] Refactor the loop (2 of 5) 2018-08-19 23:07:37 +02:00
Katayama Hirofumi MZ
b9b4c90303 [FONT][WIN32SS] Refactor the loop (4 of 5) 2018-08-19 23:05:35 +02:00
Katayama Hirofumi MZ
7b04962aed [FONT][WIN32SS] Refactor the loop (5 of 5) 2018-08-19 23:05:04 +02:00
Katayama Hirofumi MZ
d641072cb2 [FONT][WIN32SS] Refactor the loop (3 of 5) 2018-08-19 23:03:13 +02:00
Katayama Hirofumi MZ
bd2ab1e9bc [FONT][WIN32SS] Ignore identical mapping in IntLoadFontSubstList 2018-08-17 16:05:04 +02:00
Katayama Hirofumi MZ
5b89e663af [FONT][WIN32SS] Support MS symbol encoding (#759)
This commit adds support for the MS symbol encoding (FT_ENCODING_MS_SYMBOL) in our font engine.
It also fixes the display of the Anastasia font. And replacing our Marlett font with Windows' Marlett font is also fixed.

CORE-13269, CORE-14907
2018-08-16 14:38:46 +02:00
Katayama Hirofumi MZ
35f62fc5ba [WIN32SS][FONT] Fix font metrics (#713)
Fix vertical alignment and Aspect penalty; improve font penalty system; fixes for Wine tests.
This is an update of #706. See CORE-11536 for more details.

The display of the following programs is fixed:
- Total Commander 8.52 setup: font displayed too large - CORE-11620.
- Effective File Search 6.8.1 german localization text rendering issues - CORE-14378.
- Font garbage in register splash screen in Foxit Reader 7.1.5 - CORE-9767.
- Calipers-1 is not displayed correctly - CORE-14302.
- Some MSI-installers draw their dialogs too large (example: Click-N-Type Virtual Keyboard 3.03.0412) - CORE-13161.
- Irfanview 4.50: font in zoom combobox displayed too large - CORE-14396.
- Rufus: The window and controls are displayed larger than necessary - CORE-14461.
2018-08-12 15:12:13 +02:00
Katayama Hirofumi MZ
cbfe4d023b [WIN32SS][FONT] Fix the system logical stock font data (#709)
This fixes the stock font data to improve font selection.
CORE-14885
2018-08-10 15:37:37 +02:00
Katayama Hirofumi MZ
994a5f457f [WIN32SS][FREETYPE] Update copyright text 2018-07-29 15:23:58 +02:00
Katayama Hirofumi MZ
5e1a099cd1 [WIN32SS][FONT] Change the type of 2nd argument of IntRequestFontSize 2018-07-29 13:11:18 +02:00
Timo Kreuzer
2170901e6a [WIN32K] Implement RECTL_bClipRectBySize() and use it in IntEngBitBlt() to clip the target rect against the bounds of the target surface. Also clip the source rect against the source surface. Fixes remaining part of CORE-14463 2018-06-30 16:40:04 +02:00
Mark Jansen
ae8762e15e
[FREETYPE] Allow a NULL style_name.
CORE-14775
2018-06-29 21:55:54 +02:00
Katayama Hirofumi MZ
1345cb77b3 [FONT][FREETYPE] Refactor global variable names and locking (#591)
Refactor the font engine code in "win32ss/gdi/ntgdi/freetype.c".
- Add "g_" prefix to global variables.
- Make the locking macros function-like.
CORE-13065
2018-06-28 22:00:55 +02:00
Timo Kreuzer
2d9c88e0c5
[WIN32K] Fix 64 bit issues (#420)
- Fix ULONG/SIZE_T issues
- Use LOWORD/HIWORD
- Change a struct member to HANDLE
- Implement lstrlenW helper function
2018-03-18 15:53:52 +01:00
Mark Jansen
428e4617e9
[WIN32K] Do not try to compare a long name against a truncated name.
This fixes gdiplus_winetest:font crashing.
ROSTESTS-154
2018-03-15 20:16:04 +01:00
Mark Jansen
37a34a21a9
[WIN32K] Do not truncate localized font names.
ROSTESTS-154
2018-03-15 20:16:04 +01:00
Thomas Faber
862b82f3fa
[WIN32K:NTGDI] Fix more uses of RtlCreateUnicodeString. CORE-14271
Addendum to 7f687154a0. Spotted by Hermès.
2018-01-31 12:35:30 +01:00
Thomas Faber
7f687154a0
[WIN32K:NTGDI] Correctly interpret RtlCreateUnicodeString return value. CORE-14271 2018-01-31 10:38:06 +01:00
Joachim Henze
79d392c53c [WIN32K] revert PR173 to fix regressions in Chrome/Chromium CORE-14170
This reverts ea4daf8b68 committed 2017-12-09 to master, the commit was named
"[WIN32K] Fix NtGdiGetTextFaceW to report face name correctly (#173)",
reverting got ack of khmz,
reopening less severe CORE-14071 accordingly
2018-01-07 17:58:47 +01:00
Timo Kreuzer
456e2192b7 [WIN32K] Check for empty output rect in GreGradientFill
Fixes a failed ASSERT.
CORE-14148 #resolve
2017-12-28 10:46:01 +01:00
Katayama Hirofumi MZ
ea4daf8b68 [WIN32K] Fix NtGdiGetTextFaceW to report face name correctly (#173)
Initialize TEXTOBJ.FaceName member in TextIntRealizeFont and use it in NtGdiGetTextFaceW 
CORE-14071
2017-12-09 12:06:51 +02:00
jimtabor
d85023c9c9 [GDI] - Add type for setting world transform modification modes.
References:
https://msdn.microsoft.com/en-us/library/cc230538.aspx
https://github.com/KDE/krita/blob/master/libs/vectorimage/libemf/EmfEnums.h
2017-11-24 17:22:43 -06:00
Jérôme Gardou
3e1a54151f [WIN32SS]
- Do not call the driver Escape routine while holding locks on GDI objects
CORE-7727
2017-11-18 12:15:45 +01:00
Amine Khaldi
5cb0615147 [BROWSEUI][DEVMGR][EXPLORER][NTGDI][NTOBJSHEX][NTVDM][SETUPAPI] Remove/comment out some unused variables. CORE-11799 (#94) 2017-10-28 15:04:18 +01:00
Katayama Hirofumi MZ
85ae842105 [WIN32SS] fix font extent.
CORE-13840
2017-10-25 21:10:35 +02:00
jimtabor
31aab36e88 [Win32SS]
- Merge path objects with gdi path structure. See CORE-13536.
2017-10-06 11:54:27 -05:00
Colin Finck
c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00