This fixes fonts not being displayed properly within an edit in
Precise Calculator application.
Jim Tabor intended to structurally use flTextAlign over
lTextAlign internally within IntExtTextOutW().
He initially committed these changes in 0.4.12-dev-805-g
3377fe184e
But we unintentionally lost these changes via 0.4.12-RC-26-g
486fd83a95
Many thanks to Doug Lyons who helped a lot with fixing CORE-16133.
We also corrected this issue in master via 0.4.13-dev-707-g
0e4db883e5 and 0.4.13-dev-712-g
64e182e429
The goal of this is to revive the VBox-testbot that failed miserably
like the VBox-one in
https://build.reactos.org/#/builders/9/builds/24947
all the way through the 0.4.12RCs, because 0.4.12-dev was in a poor state
upon branching.
cherry picked from commit 0.4.13-dev-23-g
7334567211
TT_OS2.usWinAscent and TT_OS2.usWinDescent must be treated as FT_Short.
These values affect font metrics.
This PR will fix CORE-14994 that regressed by 0.4.10-dev-466-g
35f62fc5ba
cherry picked from commit 0.4.13-dev-483-g
641a0ea99b
In PDEVOBJ_vRefreshModeList, find a proper match for the current
display mode instead of assuming a constant index.
Both tickets regressed by SVN r74404
384affe098
Many thanks to the patches author Thomas Faber.
cherry picked from commit 0.4.13-dev-456-g
00e882c2b1
by reverting essential parts of "Font rotation at arbitrary angles"
which was once committed in several steps:
Initial commit (PR#1207)
0.4.12-dev-243-g
f757a13519
broke font rendering for GTK apps CORE-15623
Second commit (PR#1238)
0.4.12-dev-558-g
64987cf273
restored font rendering in GTK apps but introduced slowdown CORE-16020
Katayama agreed to the temporal revert and will try to come up later
with a performance optimized version.
We revert in 0.4.12-RC and 0.4.13-dev.
The revert will cause failure-increases in gdi32:TextTransform.
This is a squashed backmerge of
PR1572 FLOAT in IntEscapeMatrix
0.4.13-dev-255-g
0137096449
PR1574 FLOAT for orientation
0.4.13-dev-257-g
fabbd7c1c1
PR1576 FLOAT in ftGdiGetGlyphOutline
0.4.13-dev-270-g
86046a9bf4
Those 3 commits were part of CORE-15838.
All those regressions have been introduced during 0.4.12-dev'ing.
The font size was a bit larger than expected.
FireFox will show checkmarks correctly in View menu.
This is a partial revert of 0.4.10-dev-466-g
35f62fc5ba
cherry picked from commit 0.4.13-dev-110-g
19fc9415bf
Fix font enumeration part 2 (#1492)
Eliminate some bugs about font enumeration.
- 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.
cherry picked from commit 0.4.13-dev-9-g
811faed421
Fixes regression CORE-15785.
When LOGFONT.lfFaceName[0] == 0, then enumeration of font substitutes had failed.
CORE-15785 commit 2 of 2
cherry picked from commit 0.4.13-dev-107-g
ae8417fd90
Make gdi32!IntFontFamilyListUnique function std::unique compatible.
Previous code didn't set the first entry correctly.
CORE-15785 commit 1 of 2
cherry picked from commit 0.4.13-dev-5-g
ae80eb824e
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.
On my system, this reduces the configure-time by a factor of two.
- Assume that GetTextExtentExPointWPri() uses the same kind of
arguments as GetTextExtentExPointW().
- Add GetTextExtentExPointWPri() declaration to undocgdi.h.
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.
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
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
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.
Fix EnumFonts, EnumFontFamilies and EnumFontFamiliesEx functions.
The charsets of the font substitutes are also enumerated.
Delete meaningless codes. CORE-15558
* [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
This helps when e.g. changing the resolution on the Dell Latitude D531,
which reports that it supports large resolutions (e.g. 1920x1440x32 and
others larger than 1024x768x32) but fails to apply these.
This usually happens because PDEVOBJ_pSurface(), and more precisely
ppdev->pldev->pfn.EnableSurface(), fails for these resolutions.
- PDEVOBJ_bSwitchMode(): Set the new video mode, or restore the original
one in case of failure + release the allocated ppdevTmp if previous
calls fail. Also unlock in reverse order of locking order.
- UserChangeDisplaySettings(): In case PDEVOBJ_pSurface() fails (but has
reverted the original video mode), we still need to refresh the
display since the display may have been messed up.
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
* Add an NDK header to define INIT_FUNCTION/INIT_SECTION globally
* Use _declspec(allocate(x)) and _declspec(code_seg(x)) on MSVC versions that support it
* Use INIT_FUNCTION on functions only and INIT_SECTION on data only (required by MSVC)
* Place INIT_FUNCTION before the return type (required by MSVC)
* Make sure declarations and implementations share the same modifiers (required by MSVC)
* Add a global linker option to suppress warnings about defined but unused INIT section
* Merge INIT section into .text in freeldr