[ros-diffs] [tkreuzer] 38262: If ETO_PDY is specified, Dx is a pair of INTs, make sure we access the correct index. based on aspotashev's patch. Should fix bug #3958 See issue #3958 for more details.
tkreuzer at svn.reactos.org
tkreuzer at svn.reactos.org
Mon Dec 22 05:26:52 CET 2008
- Previous message: [ros-diffs] [tkreuzer] 38261: Some people were thinking they could use NtGdiExtTextOut from within Win32k and get away with it. Since MmCopyFromCaller is broken, it was actually working. Implement NtGdiExtTextOutW as a wrapper around the real function, that is now called GreExtTextOutW, using the naming style that ms also uses to get some more stucture in here. Also get rid of 2 pool allocations and use only one if a local buffer is not sufficient. Should get us more TextOut performance.
- Next message: [ros-diffs] [sserapion] 38263: Fix definitions of WAVEOPENDESC, WAVEHDR structures. Fix prototypes for DefDriverProc, waveOutMessage, waveOutGetDevCapsA/W, waveInGetDevCapsA/W, waveInMessage, midiStreamOpen, midiOutGetDevCapsA/W, midiOutOpen, midiOutMessage, midiInGetDevCapsA/W, midiInOpen, midiInMessage, auxGetDevCapsA/W, auxOutMessage, mixerGetDevCapsA/W, mixerOpen, timeSetEvent, joyGetDevCapsA/W, mciSendCommandA/W, and mciGetCreatorTask.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: tkreuzer
Date: Sun Dec 21 22:26:51 2008
New Revision: 38262
URL: http://svn.reactos.org/svn/reactos?rev=38262&view=rev
Log:
If ETO_PDY is specified, Dx is a pair of INTs, make sure we access the correct index.
based on aspotashev's patch. Should fix bug #3958
See issue #3958 for more details.
Modified:
trunk/reactos/subsystems/win32/win32k/objects/freetype.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/freetype.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/freetype.c?rev=38262&r1=38261&r2=38262&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/freetype.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/freetype.c [iso-8859-1] Sun Dec 21 22:26:51 2008
@@ -3132,6 +3132,7 @@
POINT Start;
BOOL DoBreak = FALSE;
HPALETTE hDestPalette;
+ USHORT DxShift;
// TODO: Write test-cases to exactly match real Windows in different
// bad parameters (e.g. does Windows check the DC or the RECT first?).
@@ -3157,6 +3158,8 @@
SetLastWin32Error(ERROR_INVALID_PARAMETER);
goto fail;
}
+
+ DxShift = fuOptions & ETO_PDY ? 1 : 0;
if (PATH_IsPathOpen(dc->DcLevel))
{
@@ -3364,7 +3367,7 @@
if (NULL != Dx)
{
Start = Count < 2 ? 0 : Count - 2;
- TextWidth = Count < 2 ? 0 : (Dx[Count - 2] << 6);
+ TextWidth = Count < 2 ? 0 : (Dx[(Count-2)<<DxShift] << 6);
}
else
{
@@ -3597,7 +3600,7 @@
}
else
{
- TextLeft += Dx[i] << 6;
+ TextLeft += Dx[i<<DxShift] << 6;
// DbgPrint("new TextLeft2: %d\n", TextLeft);
}
previous = glyph_index;
- Previous message: [ros-diffs] [tkreuzer] 38261: Some people were thinking they could use NtGdiExtTextOut from within Win32k and get away with it. Since MmCopyFromCaller is broken, it was actually working. Implement NtGdiExtTextOutW as a wrapper around the real function, that is now called GreExtTextOutW, using the naming style that ms also uses to get some more stucture in here. Also get rid of 2 pool allocations and use only one if a local buffer is not sufficient. Should get us more TextOut performance.
- Next message: [ros-diffs] [sserapion] 38263: Fix definitions of WAVEOPENDESC, WAVEHDR structures. Fix prototypes for DefDriverProc, waveOutMessage, waveOutGetDevCapsA/W, waveInGetDevCapsA/W, waveInMessage, midiStreamOpen, midiOutGetDevCapsA/W, midiOutOpen, midiOutMessage, midiInGetDevCapsA/W, midiInOpen, midiInMessage, auxGetDevCapsA/W, auxOutMessage, mixerGetDevCapsA/W, mixerOpen, timeSetEvent, joyGetDevCapsA/W, mciSendCommandA/W, and mciGetCreatorTask.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Ros-diffs
mailing list