Merge 14551:14980 from trunk
[reactos.git] / reactos / drivers / video / displays / vga / objects / copybits.c
1 #include "../vgaddi.h"
2 #include "../vgavideo/vgavideo.h"
3 #include <debug.h>
4
5 BOOL STDCALL
6 DrvCopyBits(OUT SURFOBJ* DestObj,
7 IN SURFOBJ* SourceObj,
8 IN CLIPOBJ* ClipObj,
9 IN XLATEOBJ* XLateObj,
10 IN RECTL* DestRectL,
11 IN POINTL* SrcPointL)
12 {
13 BOOL Done = FALSE;
14
15 if (STYPE_BITMAP == DestObj->iType && BMF_4BPP == DestObj->iBitmapFormat &&
16 STYPE_DEVICE == SourceObj->iType)
17 {
18 /* Screen to 4 BPP DIB */
19 DIB_BltFromVGA(SrcPointL->x, SrcPointL->y,
20 DestRectL->right - DestRectL->left,
21 DestRectL->bottom - DestRectL->top,
22 DestObj->pvScan0, DestObj->lDelta);
23 Done = TRUE;
24 }
25 else if (STYPE_DEVICE == DestObj->iType &&
26 STYPE_BITMAP == SourceObj->iType && BMF_4BPP == SourceObj->iBitmapFormat)
27 {
28 /* 4 BPP DIB to Screen */
29 DIB_BltToVGA(DestRectL->left, DestRectL->top,
30 DestRectL->right - DestRectL->left,
31 DestRectL->bottom - DestRectL->top,
32 SourceObj->pvScan0, SourceObj->lDelta,
33 0);
34 Done = TRUE;
35 }
36
37 return Done;
38 }