X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=subsys%2Fwin32k%2Feng%2Fcopybits.c;fp=subsys%2Fwin32k%2Feng%2Fcopybits.c;h=5b113d552fc83510b80ca8663e40b0a70a3c08a6;hp=740faedac5cb2da231e14f52b1175e96b7095076;hb=a3df8bf1429570e0bd6c6428f6ed80073578cf4b;hpb=7c0db166f81fbe8c8b913d7f26048e337d383605 diff --git a/subsys/win32k/eng/copybits.c b/subsys/win32k/eng/copybits.c index 740faed..5b113d5 100644 --- a/subsys/win32k/eng/copybits.c +++ b/subsys/win32k/eng/copybits.c @@ -1,4 +1,23 @@ /* + * 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 @@ -9,6 +28,7 @@ */ #include +#include #include "objects.h" #include "clip.h" #include "../dib/dib.h" @@ -16,6 +36,9 @@ #include #include +/* + * @implemented + */ BOOL STDCALL EngCopyBits(SURFOBJ *Dest, SURFOBJ *Source, @@ -96,17 +119,13 @@ EngCopyBits(SURFOBJ *Dest, 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); @@ -120,7 +139,7 @@ EngCopyBits(SURFOBJ *Dest, 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); @@ -146,7 +165,7 @@ EngCopyBits(SURFOBJ *Dest, 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++; @@ -155,15 +174,17 @@ EngCopyBits(SURFOBJ *Dest, } while(EnumMore); - MouseSafetyOnDrawEnd(Source, SourceGDI); + MouseSafetyOnDrawEnd(Source, SourceGDI); + MouseSafetyOnDrawEnd(Dest, DestGDI); return(TRUE); } - } MouseSafetyOnDrawEnd(Source, SourceGDI); MouseSafetyOnDrawEnd(Dest, DestGDI); return FALSE; } + +/* EOF */