Simplify EXLATEOBJ_vInitXlateFromDCs and remove EXLATEOBJ_vInitBrushXlate. Less code, more fun.

svn path=/branches/reactos-yarotows/; revision=47278
This commit is contained in:
Timo Kreuzer 2010-05-19 16:23:33 +00:00
parent 3078dd3c10
commit 1549a8532e
3 changed files with 12 additions and 75 deletions

View file

@ -217,16 +217,18 @@ EBRUSHOBJ_bRealizeBrush(EBRUSHOBJ *pebo, BOOL bCallDriver)
psurfPattern = SURFACE_ShareLockSurface(pebo->pbrush->hbmPattern);
ASSERT(psurfPattern);
ASSERT(psurfPattern->ppal);
/* FIXME: implement mask */
psurfMask = NULL;
/* Initialize XLATEOBJ for the brush */
EXLATEOBJ_vInitBrushXlate(&exlo,
pebo->pbrush,
pebo->psurfTrg,
pebo->crCurrentText,
pebo->crCurrentBack);
EXLATEOBJ_vInitialize(&exlo,
psurfPattern->ppal,
pebo->psurfTrg->ppal,
0,
pebo->crCurrentBack,
pebo->crCurrentText);
/* Create the realization */
bResult = pfnRealzizeBrush(&pebo->BrushObject,

View file

@ -603,90 +603,26 @@ EXLATEOBJ_vInitXlateFromDCs(
PDC pdcDst)
{
PSURFACE psurfDst, psurfSrc;
PPALETTE ppalSrc, ppalDst, ppalDstDc;
DPRINT("Enter EXLATEOBJ_vInitXlateFromDCs\n");
/* Do basic init */
EXLATEOBJ_vInitTrivial(pexlo);
psurfDst = pdcDst->dclevel.pSurface;
psurfSrc = pdcSrc->dclevel.pSurface;
/* Check for trivial color translation */
if (psurfDst == psurfSrc)
{
EXLATEOBJ_vInitTrivial(pexlo);
return;
}
ppalSrc = psurfSrc->ppal;
if(!ppalSrc)
{
DPRINT1("No palette for src surface %p.\n", psurfSrc);
return;
}
ppalDst = psurfDst->ppal;
if (!ppalDst)
{
DPRINT1("No palette for dst surface %p.\n", psurfDst);
return;
}
ppalDstDc = pdcDst->dclevel.ppal;
ASSERT(ppalDstDc);
/* Normal initialisation. No surface means DEFAULT_BITMAP */
EXLATEOBJ_vInitialize(pexlo,
ppalSrc,
ppalDst,
psurfSrc ? psurfSrc->ppal : &gpalMono,
psurfDst ? psurfDst->ppal : &gpalMono,
pdcSrc->pdcattr->crBackgroundClr,
pdcDst->pdcattr->crBackgroundClr,
pdcDst->pdcattr->crForegroundClr);
}
VOID
NTAPI
EXLATEOBJ_vInitBrushXlate(
PEXLATEOBJ pexlo,
BRUSH *pbrush,
SURFACE *psurfDst,
COLORREF crForegroundClr,
COLORREF crBackgroundClr)
{
PPALETTE ppalDst;
SURFACE *psurfPattern;
ASSERT(pexlo);
ASSERT(pbrush);
ASSERT(psurfDst);
ASSERT(!(pbrush->flAttrs & (GDIBRUSH_IS_SOLID | GDIBRUSH_IS_NULL)));
EXLATEOBJ_vInitTrivial(pexlo);
ppalDst = psurfDst->ppal;
if (!ppalDst)
{
DPRINT1("No palette for dst surface %p.\n", psurfDst);
return;
}
psurfPattern = SURFACE_ShareLockSurface(pbrush->hbmPattern);
if (!psurfPattern)
{
return;
}
if (psurfPattern->ppal)
{
EXLATEOBJ_vInitialize(pexlo, psurfPattern->ppal, ppalDst, 0, crBackgroundClr, crForegroundClr);
}
SURFACE_ShareUnlockSurface(psurfPattern);
}
VOID
NTAPI
EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo)

View file

@ -45,7 +45,6 @@ DbgCmpXlate(XLATEOBJ *pxlo1, XLATEOBJ *pxlo2);
VOID NTAPI EXLATEOBJ_vInitialize(PEXLATEOBJ pexlo, PALETTE *ppalSrc, PALETTE *ppalDst, ULONG, ULONG, ULONG);
VOID NTAPI EXLATEOBJ_vInitXlateFromDCs(PEXLATEOBJ pexlo, PDC pdcSrc, PDC pdcDst);
VOID NTAPI EXLATEOBJ_vInitBrushXlate(PEXLATEOBJ pexlo, BRUSH *pbrush, SURFACE *psurf, COLORREF crForegroundClr, COLORREF crBackgroundClr);
VOID NTAPI EXLATEOBJ_vInitSrcMonoXlate(PEXLATEOBJ pexlo, PPALETTE ppalDst, ULONG Color0, ULONG Color1);
VOID NTAPI EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo);