mirror of
https://github.com/reactos/reactos.git
synced 2025-07-24 17:43:57 +00:00
[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
This commit is contained in:
parent
6676b7c48b
commit
d57f7becc3
6 changed files with 255 additions and 24 deletions
|
@ -495,12 +495,17 @@ typedef struct _GDIBSPPATBLT
|
|||
PATRECT pRect[1]; // POLYPATBLT
|
||||
} GDIBSPPATBLT, *PGDIBSPPATBLT;
|
||||
|
||||
//
|
||||
// Both ExtSelectClipRgn and TextOut pass a nill RECT.
|
||||
//
|
||||
#define GDIBS_NORECT 0x80000000
|
||||
|
||||
typedef struct _GDIBSTEXTOUT
|
||||
{
|
||||
GDIBATCHHDR gbHdr;
|
||||
COLORREF crForegroundClr;
|
||||
COLORREF crBackgroundClr;
|
||||
LONG lmBkMode;
|
||||
LONG lBkMode;
|
||||
ULONG ulForegroundClr;
|
||||
ULONG ulBackgroundClr;
|
||||
int x;
|
||||
|
@ -513,7 +518,10 @@ typedef struct _GDIBSTEXTOUT
|
|||
HANDLE hlfntNew;
|
||||
FLONG flTextAlign;
|
||||
POINTL ptlViewportOrg;
|
||||
union {
|
||||
WCHAR String[2];
|
||||
ULONG Buffer[1];
|
||||
};
|
||||
} GDIBSTEXTOUT, *PGDIBSTEXTOUT;
|
||||
|
||||
typedef struct _GDIBSEXTTEXTOUT
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue