[WIN32K:ENG] Implement EXLATEOBJ_vInitXlateFromDCsEx

This version allows to pass a background color.
This commit is contained in:
Timo Kreuzer
2025-12-18 19:36:09 +02:00
parent 2a258c3bff
commit bb7a218367
2 changed files with 38 additions and 0 deletions

View File

@@ -844,6 +844,36 @@ EXLATEOBJ_vInitXlateFromDCs(
pexlo->ppalDstDc = pdcDst->dclevel.ppal;
}
VOID
NTAPI
EXLATEOBJ_vInitXlateFromDCsEx(
_Out_ EXLATEOBJ* pexlo,
_In_ PDC pdcSrc,
_In_ PDC pdcDst,
_In_ COLORREF crBackColor)
{
PSURFACE psurfDst, psurfSrc;
psurfDst = pdcDst->dclevel.pSurface;
psurfSrc = pdcSrc->dclevel.pSurface;
if (crBackColor == CLR_INVALID)
{
crBackColor = pdcSrc->pdcattr->crBackgroundClr;
}
/* Normal initialisation. No surface means DEFAULT_BITMAP */
EXLATEOBJ_vInitialize(pexlo,
psurfSrc ? psurfSrc->ppal : gppalMono,
psurfDst ? psurfDst->ppal : gppalMono,
crBackColor,
pdcDst->pdcattr->crBackgroundClr,
pdcDst->pdcattr->crForegroundClr);
pexlo->ppalDstDc = pdcDst->dclevel.ppal;
}
VOID NTAPI EXLATEOBJ_vInitSrcMonoXlate(
PEXLATEOBJ pexlo,
PPALETTE ppalDst,

View File

@@ -78,6 +78,14 @@ EXLATEOBJ_vInitXlateFromDCs(
_In_ PDC pdcSrc,
_In_ PDC pdcDst);
VOID
NTAPI
EXLATEOBJ_vInitXlateFromDCsEx(
_Out_ EXLATEOBJ* pexlo,
_In_ PDC pdcSrc,
_In_ PDC pdcDst,
_In_ COLORREF crBackColor);
VOID
NTAPI
EXLATEOBJ_vInitSrcMonoXlate(