#include <win32k/bitmaps.h>
//#include <win32k/debug.h>
#include "../eng/handle.h"
+#include <include/inteng.h>
#define NDEBUG
#include <win32k/debug1.h>
POINTL SourcePoint;
PBITMAPOBJ DestBitmapObj;
PBITMAPOBJ SrcBitmapObj;
- BOOL Status, SurfDestAlloc, SurfSrcAlloc;
+ BOOL Status, SurfDestAlloc, SurfSrcAlloc, XlateAlloc;
PPALOBJ DCLogPal;
PPALGDI PalDestGDI, PalSourceGDI;
PXLATEOBJ XlateObj = NULL;
SurfDestAlloc = FALSE;
SurfSrcAlloc = FALSE;
+ XlateAlloc = FALSE;
// Determine surfaces to be used in the bitblt
SurfDest = (PSURFOBJ)AccessUserObject(DCDest->Surface);
PalDestGDI = (PPALGDI)AccessInternalObject(DestPalette);
PalSourceGDI = (PPALGDI)AccessInternalObject(SourcePalette);
- XlateObj = (PXLATEOBJ)EngCreateXlate(PalDestGDI->Mode, PalSourceGDI->Mode, DestPalette, SourcePalette);
+ XlateObj = (PXLATEOBJ)IntEngCreateXlate(PalDestGDI->Mode, PalSourceGDI->Mode, DestPalette, SourcePalette);
+ XlateAlloc = TRUE;
}
// Perform the bitblt operation
- Status = EngBitBlt(SurfDest, SurfSrc, NULL, NULL, XlateObj, &DestRect, &SourcePoint, NULL, NULL, NULL, ROP);
+ Status = IntEngBitBlt(SurfDest, SurfSrc, NULL, NULL, XlateObj, &DestRect, &SourcePoint, NULL, NULL, NULL, ROP);
- if(SurfDestAlloc == TRUE) ExFreePool(SurfDest);
- if(SurfSrcAlloc == TRUE) ExFreePool(SurfSrc);
+ if (XlateAlloc) EngDeleteXlate(XlateObj);
+ if (SurfDestAlloc) ExFreePool(SurfDest);
+ if (SurfSrcAlloc) ExFreePool(SurfSrc);
DC_ReleasePtr(hDCDest);
DC_ReleasePtr(hDCSrc);