/*
+ * ReactOS W32 Subsystem
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id$
+ *
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: GDI EngCopyBits Function
*/
#include <ddk/winddi.h>
+#include <ddk/ntddmou.h>
#include "objects.h"
#include "clip.h"
#include "../dib/dib.h"
#include <include/object.h>
#include <include/eng.h>
+/*
+ * @implemented
+ */
BOOL STDCALL
EngCopyBits(SURFOBJ *Dest,
SURFOBJ *Source,
clippingType = Clip->iDComplexity;
}
- // We only handle XO_TABLE translations at the momement
- if ((ColorTranslation == NULL) || (ColorTranslation->flXlate & XO_TRIVIAL) ||
- (ColorTranslation->flXlate & XO_TABLE))
- {
- SourceGDI = (PSURFGDI)AccessInternalObjectFromUserObject(Source);
- DestGDI = (PSURFGDI)AccessInternalObjectFromUserObject(Dest);
+ SourceGDI = (PSURFGDI)AccessInternalObjectFromUserObject(Source);
+ DestGDI = (PSURFGDI)AccessInternalObjectFromUserObject(Dest);
- switch(clippingType)
+ switch(clippingType)
{
case DC_TRIVIAL:
- DestGDI->DIB_BitBlt(Dest, Source, DestGDI, SourceGDI, DestRect, SourcePoint, ColorTranslation);
+ DestGDI->DIB_BitBlt(Dest, Source, DestGDI, SourceGDI, DestRect, SourcePoint, NULL, NULL, ColorTranslation, SRCCOPY);
MouseSafetyOnDrawEnd(Source, SourceGDI);
MouseSafetyOnDrawEnd(Dest, DestGDI);
ptlTmp.x = SourcePoint->x + rclTmp.left - DestRect->left;
ptlTmp.y = SourcePoint->y + rclTmp.top - DestRect->top;
- DestGDI->DIB_BitBlt(Dest, Source, DestGDI, SourceGDI, &rclTmp, &ptlTmp, ColorTranslation);
+ DestGDI->DIB_BitBlt(Dest, Source, DestGDI, SourceGDI, &rclTmp, &ptlTmp, NULL, NULL, ColorTranslation, SRCCOPY);
MouseSafetyOnDrawEnd(Source, SourceGDI);
MouseSafetyOnDrawEnd(Dest, DestGDI);
ptlTmp.y = SourcePoint->y + prcl->top - DestRect->top;
if(!DestGDI->DIB_BitBlt(Dest, Source, DestGDI, SourceGDI,
- prcl, &ptlTmp, ColorTranslation)) return FALSE;
+ prcl, &ptlTmp, NULL, NULL, ColorTranslation, SRCCOPY)) return FALSE;
prcl++;
} while(EnumMore);
- MouseSafetyOnDrawEnd(Source, SourceGDI);\r
+ MouseSafetyOnDrawEnd(Source, SourceGDI);
+
MouseSafetyOnDrawEnd(Dest, DestGDI);
return(TRUE);
}
- }
MouseSafetyOnDrawEnd(Source, SourceGDI);
MouseSafetyOnDrawEnd(Dest, DestGDI);
return FALSE;
}
+
+/* EOF */