mirror of
https://github.com/reactos/reactos.git
synced 2024-06-25 23:41:35 +00:00
CORE-11848
This commit is contained in:
parent
911153da10
commit
476f94c0fe
|
@ -5992,7 +5992,7 @@ IntExtTextOutW(
|
||||||
FT_Vector delta;
|
FT_Vector delta;
|
||||||
|
|
||||||
/* Check if String is valid */
|
/* Check if String is valid */
|
||||||
if ((Count > 0xFFFF) || (Count > 0 && String == NULL))
|
if (Count > 0xFFFF || (Count > 0 && String == NULL))
|
||||||
{
|
{
|
||||||
EngSetLastError(ERROR_INVALID_PARAMETER);
|
EngSetLastError(ERROR_INVALID_PARAMETER);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -6000,15 +6000,12 @@ IntExtTextOutW(
|
||||||
|
|
||||||
if (PATH_IsPathOpen(dc->dclevel))
|
if (PATH_IsPathOpen(dc->dclevel))
|
||||||
{
|
{
|
||||||
bResult = PATH_ExtTextOut(dc,
|
return PATH_ExtTextOut(dc,
|
||||||
XStart,
|
XStart, YStart,
|
||||||
YStart,
|
fuOptions,
|
||||||
fuOptions,
|
lprc,
|
||||||
(const RECTL *)lprc,
|
String, Count,
|
||||||
String,
|
Dx);
|
||||||
Count,
|
|
||||||
(const INT *)Dx);
|
|
||||||
return bResult;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DC_vPrepareDCsForBlit(dc, NULL, NULL, NULL);
|
DC_vPrepareDCsForBlit(dc, NULL, NULL, NULL);
|
||||||
|
@ -6030,7 +6027,9 @@ IntExtTextOutW(
|
||||||
{
|
{
|
||||||
Start.x = pdcattr->ptlCurrent.x;
|
Start.x = pdcattr->ptlCurrent.x;
|
||||||
Start.y = pdcattr->ptlCurrent.y;
|
Start.y = pdcattr->ptlCurrent.y;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Start.x = XStart;
|
Start.x = XStart;
|
||||||
Start.y = YStart;
|
Start.y = YStart;
|
||||||
}
|
}
|
||||||
|
@ -6060,7 +6059,7 @@ IntExtTextOutW(
|
||||||
|
|
||||||
if (dc->fs & (DC_ACCUM_APP|DC_ACCUM_WMGR))
|
if (dc->fs & (DC_ACCUM_APP|DC_ACCUM_WMGR))
|
||||||
{
|
{
|
||||||
IntUpdateBoundsRect(dc, &DestRect);
|
IntUpdateBoundsRect(dc, &DestRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pdcattr->ulDirty_ & DIRTY_BACKGROUND)
|
if (pdcattr->ulDirty_ & DIRTY_BACKGROUND)
|
||||||
|
@ -6069,18 +6068,17 @@ IntExtTextOutW(
|
||||||
if (dc->dctype == DCTYPE_DIRECT)
|
if (dc->dctype == DCTYPE_DIRECT)
|
||||||
MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom);
|
MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom);
|
||||||
|
|
||||||
IntEngBitBlt(
|
IntEngBitBlt(SurfObj,
|
||||||
SurfObj,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
(CLIPOBJ *)&dc->co,
|
||||||
(CLIPOBJ *)&dc->co,
|
NULL,
|
||||||
NULL,
|
&DestRect,
|
||||||
&DestRect,
|
&SourcePoint,
|
||||||
&SourcePoint,
|
&SourcePoint,
|
||||||
&SourcePoint,
|
&dc->eboBackground.BrushObject,
|
||||||
&dc->eboBackground.BrushObject,
|
&BrushOrigin,
|
||||||
&BrushOrigin,
|
ROP4_FROM_INDEX(R3_OPINDEX_PATCOPY));
|
||||||
ROP4_FROM_INDEX(R3_OPINDEX_PATCOPY));
|
|
||||||
|
|
||||||
if (dc->dctype == DCTYPE_DIRECT)
|
if (dc->dctype == DCTYPE_DIRECT)
|
||||||
MouseSafetyOnDrawEnd(dc->ppdev);
|
MouseSafetyOnDrawEnd(dc->ppdev);
|
||||||
|
@ -6281,7 +6279,7 @@ IntExtTextOutW(
|
||||||
HSourceGlyph = EngCreateBitmap(bitSize, realglyph->bitmap.pitch,
|
HSourceGlyph = EngCreateBitmap(bitSize, realglyph->bitmap.pitch,
|
||||||
BMF_8BPP, BMF_TOPDOWN,
|
BMF_8BPP, BMF_TOPDOWN,
|
||||||
realglyph->bitmap.buffer);
|
realglyph->bitmap.buffer);
|
||||||
if ( !HSourceGlyph )
|
if (!HSourceGlyph)
|
||||||
{
|
{
|
||||||
DPRINT1("WARNING: EngCreateBitmap() failed!\n");
|
DPRINT1("WARNING: EngCreateBitmap() failed!\n");
|
||||||
bResult = FALSE;
|
bResult = FALSE;
|
||||||
|
@ -6289,8 +6287,9 @@ IntExtTextOutW(
|
||||||
FT_Done_Glyph((FT_Glyph)realglyph);
|
FT_Done_Glyph((FT_Glyph)realglyph);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
SourceGlyphSurf = EngLockSurface((HSURF)HSourceGlyph);
|
SourceGlyphSurf = EngLockSurface((HSURF)HSourceGlyph);
|
||||||
if ( !SourceGlyphSurf )
|
if (!SourceGlyphSurf)
|
||||||
{
|
{
|
||||||
EngDeleteSurface((HSURF)HSourceGlyph);
|
EngDeleteSurface((HSURF)HSourceGlyph);
|
||||||
DPRINT1("WARNING: EngLockSurface() failed!\n");
|
DPRINT1("WARNING: EngLockSurface() failed!\n");
|
||||||
|
@ -6324,16 +6323,15 @@ IntExtTextOutW(
|
||||||
if (dc->dctype == DCTYPE_DIRECT)
|
if (dc->dctype == DCTYPE_DIRECT)
|
||||||
MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom);
|
MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom);
|
||||||
|
|
||||||
if (!IntEngMaskBlt(
|
if (!IntEngMaskBlt(SurfObj,
|
||||||
SurfObj,
|
SourceGlyphSurf,
|
||||||
SourceGlyphSurf,
|
(CLIPOBJ *)&dc->co,
|
||||||
(CLIPOBJ *)&dc->co,
|
&exloRGB2Dst.xlo,
|
||||||
&exloRGB2Dst.xlo,
|
&exloDst2RGB.xlo,
|
||||||
&exloDst2RGB.xlo,
|
&DestRect,
|
||||||
&DestRect,
|
(PPOINTL)&MaskRect,
|
||||||
(PPOINTL)&MaskRect,
|
&dc->eboText.BrushObject,
|
||||||
&dc->eboText.BrushObject,
|
&BrushOrigin))
|
||||||
&BrushOrigin))
|
|
||||||
{
|
{
|
||||||
DPRINT1("Failed to MaskBlt a glyph!\n");
|
DPRINT1("Failed to MaskBlt a glyph!\n");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue