2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * PURPOSE: RLE compression
5 * FILE: subsystems/win32k/eng/rlecomp.c
6 * PROGRAMER: Jason Filby
16 RLE_EOL
= 0, /* End of line */
17 RLE_END
= 1, /* End of bitmap */
18 RLE_DELTA
= 2 /* Delta */
21 VOID
DecompressBitmap(SIZEL Size
, BYTE
*CompressedBits
, BYTE
*UncompressedBits
, LONG Delta
, ULONG Format
)
28 INT height
= Size
.cy
- 1;
29 BYTE
*begin
= CompressedBits
;
30 BYTE
*bits
= CompressedBits
;
34 if (Format
== BMF_4RLE
)
36 else if(Format
!= BMF_8RLE
)
39 width
= ((Size
.cx
+ shift
) >> shift
);
45 length
= (*bits
++) >> shift
;
51 if (x
>= width
) break;
52 temp
= UncompressedBits
+ (((height
- y
) * Delta
) + x
);
69 x
+= (*bits
++) >> shift
;
70 y
-= (*bits
++) >> shift
;
73 length
= length
>> shift
;
79 temp
= UncompressedBits
+ (((height
- y
) * Delta
) + x
);
84 if ((bits
- begin
) & 1)
92 _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER
)
94 DPRINT1("Decoding error\n");