Blame libfreerdp/gdi/test/TestGdiBitBlt.c

Packit Service fa4841
Packit Service fa4841
#include <freerdp/gdi/gdi.h>
Packit Service fa4841
Packit Service fa4841
#include <freerdp/gdi/dc.h>
Packit Service fa4841
#include <freerdp/gdi/pen.h>
Packit Service fa4841
#include <freerdp/gdi/region.h>
Packit Service fa4841
#include <freerdp/gdi/bitmap.h>
Packit Service fa4841
Packit Service fa4841
#include <winpr/crt.h>
Packit Service fa4841
Packit Service fa4841
#include "line.h"
Packit Service fa4841
#include "brush.h"
Packit Service fa4841
#include "helpers.h"
Packit Service fa4841
Packit Service fa4841
/* BitBlt() Test Data */
Packit Service fa4841
Packit Service fa4841
/* source bitmap (16x16) */
Packit Service fa4841
static const BYTE bmp_SRC[256] = {
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* destination bitmap (16x16) */
Packit Service fa4841
static const BYTE bmp_DST[256] = {
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* SRCCOPY (0x00CC0020) */
Packit Service fa4841
static const BYTE bmp_SRCCOPY[256] = {
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* BLACKNESS (0x00000042) */
Packit Service fa4841
static const BYTE bmp_BLACKNESS[256] = {
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* WHITENESS (0x00FF0062) */
Packit Service fa4841
static const BYTE bmp_WHITENESS[256] = {
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* SRCAND (0x008800C6) */
Packit Service fa4841
static const BYTE bmp_SRCAND[256] = {
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* SRCPAINT (0x00EE0086) */
Packit Service fa4841
static const BYTE bmp_SRCPAINT[256] = {
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* SRCINVERT (0x00660046) */
Packit Service fa4841
static const BYTE bmp_SRCINVERT[256] = {
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* SRCERASE (0x00440328) */
Packit Service fa4841
static const BYTE bmp_SRCERASE[256] = {
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* NOTSRCCOPY (0x00330008) */
Packit Service fa4841
static const BYTE bmp_NOTSRCCOPY[256] = {
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* NOTSRCERASE (0x001100A6) */
Packit Service fa4841
static const BYTE bmp_NOTSRCERASE[256] = {
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* DSTINVERT (0x00550009) */
Packit Service fa4841
static const BYTE bmp_DSTINVERT[256] = {
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* SPna (0x000C0324) */
Packit Service fa4841
static const BYTE bmp_SPna[256] = {
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* MERGEPAINT (0x00BB0226) */
Packit Service fa4841
static const BYTE bmp_MERGEPAINT[256] = {
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* MERGECOPY (0x00C000CA) */
Packit Service fa4841
static const BYTE bmp_MERGECOPY[256] = {
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* PATPAINT (0x00FB0A09) */
Packit Service fa4841
static const BYTE bmp_PATPAINT[256] = {
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* PATCOPY (0x00F00021) */
Packit Service fa4841
static const BYTE bmp_PATCOPY[256] = {
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
/* PATINVERT (0x005A0049) */
Packit Service fa4841
static const BYTE bmp_PATINVERT[256] = {
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
	"\xFF\xFF\x00\x00\xFF\xFF\x00\x00\x00\x00\xFF\xFF\x00\x00\xFF\xFF"
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
struct test_bitblt
Packit Service fa4841
{
Packit Service fa4841
	UINT32 rop;
Packit Service fa4841
	const BYTE* src;
Packit Service fa4841
	HGDI_BITMAP bmp;
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
static BOOL test_rop(HGDI_DC hdcDst, HGDI_DC hdcSrc, HGDI_BITMAP hBmpSrc, HGDI_BITMAP hBmpDst,
Packit Service fa4841
                     HGDI_BITMAP hBmpDstOriginal, UINT32 rop, HGDI_BITMAP expected,
Packit Service fa4841
                     const gdiPalette* hPalette)
Packit Service fa4841
{
Packit Service fa4841
	/* restore original destination bitmap */
Packit Service fa4841
	gdi_SelectObject(hdcSrc, (HGDIOBJECT)hBmpDstOriginal);
Packit Service fa4841
	gdi_SelectObject(hdcDst, (HGDIOBJECT)hBmpDst);
Packit Service fa4841
Packit Service fa4841
	if (!gdi_BitBlt(hdcDst, 0, 0, 16, 16, hdcSrc, 0, 0, GDI_SRCCOPY, hPalette))
Packit Service fa4841
		return FALSE;
Packit Service fa4841
Packit Service fa4841
	if (!test_assert_bitmaps_equal(hBmpDst, hBmpDstOriginal, gdi_rop_to_string(GDI_SRCCOPY),
Packit Service fa4841
	                               hPalette))
Packit Service fa4841
		gdi_SelectObject(hdcSrc, (HGDIOBJECT)hBmpSrc);
Packit Service fa4841
Packit Service fa4841
	if (!gdi_BitBlt(hdcDst, 0, 0, 16, 16, hdcSrc, 0, 0, rop, hPalette))
Packit Service fa4841
		return FALSE;
Packit Service fa4841
Packit Service fa4841
	if (!test_assert_bitmaps_equal(hBmpDst, expected, gdi_rop_to_string(rop), hPalette))
Packit Service fa4841
		return FALSE;
Packit Service fa4841
Packit Service fa4841
	return TRUE;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
static BOOL test_gdi_BitBlt(UINT32 SrcFormat, UINT32 DstFormat)
Packit Service fa4841
{
Packit Service fa4841
	BOOL rc = FALSE;
Packit Service fa4841
	BOOL failed = FALSE;
Packit Service fa4841
	UINT32 x;
Packit Service fa4841
	HGDI_DC hdcSrc = NULL;
Packit Service fa4841
	HGDI_DC hdcDst = NULL;
Packit Service fa4841
	const UINT32 RawFormat = PIXEL_FORMAT_RGB8;
Packit Service fa4841
	struct test_bitblt tests[] = { { GDI_SRCCOPY, bmp_SRCCOPY, NULL },
Packit Service fa4841
		                           { GDI_SPna, bmp_SPna, NULL },
Packit Service fa4841
		                           { GDI_BLACKNESS, bmp_BLACKNESS, NULL },
Packit Service fa4841
		                           { GDI_WHITENESS, bmp_WHITENESS, NULL },
Packit Service fa4841
		                           { GDI_SRCAND, bmp_SRCAND, NULL },
Packit Service fa4841
		                           { GDI_SRCPAINT, bmp_SRCPAINT, NULL },
Packit Service fa4841
		                           { GDI_SRCINVERT, bmp_SRCINVERT, NULL },
Packit Service fa4841
		                           { GDI_SRCERASE, bmp_SRCERASE, NULL },
Packit Service fa4841
		                           { GDI_NOTSRCCOPY, bmp_NOTSRCCOPY, NULL },
Packit Service fa4841
		                           { GDI_NOTSRCERASE, bmp_NOTSRCERASE, NULL },
Packit Service fa4841
		                           { GDI_DSTINVERT, bmp_DSTINVERT, NULL },
Packit Service fa4841
		                           { GDI_MERGECOPY, bmp_MERGECOPY, NULL },
Packit Service fa4841
		                           { GDI_MERGEPAINT, bmp_MERGEPAINT, NULL },
Packit Service fa4841
		                           { GDI_PATCOPY, bmp_PATCOPY, NULL },
Packit Service fa4841
		                           { GDI_PATPAINT, bmp_PATPAINT, NULL },
Packit Service fa4841
		                           { GDI_PATINVERT, bmp_PATINVERT, NULL },
Packit Service fa4841
		                           { GDI_DSTINVERT, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DSPDxax, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_PSDPxax, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DSna, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DPa, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_PDxn, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DSxn, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_PSDnox, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_PDSona, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DSPDxox, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DPSDonox, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_SPDSxax, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DPon, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DPna, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_Pn, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_PDna, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DPan, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DSan, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DSxn, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DPa, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DSTCOPY, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DPno, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_SDno, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_PDno, bmp_SRC, NULL },
Packit Service fa4841
		                           { GDI_DPo, bmp_SRC, NULL } };
Packit Service fa4841
	const UINT32 number_tests = sizeof(tests) / sizeof(tests[0]);
Packit Service fa4841
	HGDI_BITMAP hBmpSrc = NULL;
Packit Service fa4841
	HGDI_BITMAP hBmpDst = NULL;
Packit Service fa4841
	HGDI_BITMAP hBmpDstOriginal = NULL;
Packit Service fa4841
	HGDI_BRUSH brush;
Packit Service fa4841
	gdiPalette g;
Packit Service fa4841
	gdiPalette* hPalette = &g;
Packit Service fa4841
	g.format = DstFormat;
Packit Service fa4841
Packit Service fa4841
	for (x = 0; x < 256; x++)
Packit Service fa4841
		g.palette[x] = FreeRDPGetColor(DstFormat, x, x, x, 0xFF);
Packit Service fa4841
Packit Service fa4841
	if (!(hdcSrc = gdi_GetDC()))
Packit Service fa4841
	{
Packit Service fa4841
		printf("failed to get gdi device context\n");
Packit Service fa4841
		goto fail;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	hdcSrc->format = SrcFormat;
Packit Service fa4841
Packit Service fa4841
	if (!(hdcDst = gdi_GetDC()))
Packit Service fa4841
	{
Packit Service fa4841
		printf("failed to get gdi device context\n");
Packit Service fa4841
		goto fail;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	hdcDst->format = DstFormat;
Packit Service fa4841
	hBmpSrc =
Packit Service fa4841
	    test_convert_to_bitmap(bmp_SRC, RawFormat, 0, 0, 0, SrcFormat, 0, 0, 0, 16, 16, hPalette);
Packit Service fa4841
Packit Service fa4841
	if (!hBmpSrc)
Packit Service fa4841
		goto fail;
Packit Service fa4841
Packit Service fa4841
	hBmpDst =
Packit Service fa4841
	    test_convert_to_bitmap(bmp_DST, RawFormat, 0, 0, 0, DstFormat, 0, 0, 0, 16, 16, hPalette);
Packit Service fa4841
Packit Service fa4841
	if (!hBmpDst)
Packit Service fa4841
		goto fail;
Packit Service fa4841
Packit Service fa4841
	hBmpDstOriginal =
Packit Service fa4841
	    test_convert_to_bitmap(bmp_DST, RawFormat, 0, 0, 0, SrcFormat, 0, 0, 0, 16, 16, hPalette);
Packit Service fa4841
Packit Service fa4841
	if (!hBmpDstOriginal)
Packit Service fa4841
		goto fail;
Packit Service fa4841
Packit Service fa4841
	for (x = 0; x < number_tests; x++)
Packit Service fa4841
	{
Packit Service fa4841
		tests[x].bmp = test_convert_to_bitmap(tests[x].src, RawFormat, 0, 0, 0, SrcFormat, 0, 0, 0,
Packit Service fa4841
		                                      16, 16, hPalette);
Packit Service fa4841
Packit Service fa4841
		if (!tests[x].bmp)
Packit Service fa4841
			goto fail;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	brush = gdi_CreateSolidBrush(0x123456);
Packit Service fa4841
	gdi_SelectObject(hdcDst, (HGDIOBJECT)brush);
Packit Service fa4841
Packit Service fa4841
	for (x = 0; x < number_tests; x++)
Packit Service fa4841
	{
Packit Service fa4841
		if (!test_rop(hdcDst, hdcSrc, hBmpSrc, hBmpDst, hBmpDstOriginal, tests[x].rop, tests[x].bmp,
Packit Service fa4841
		              hPalette))
Packit Service fa4841
			failed = TRUE;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	gdi_SelectObject(hdcDst, NULL);
Packit Service fa4841
	gdi_DeleteObject((HGDIOBJECT)brush);
Packit Service fa4841
	rc = !failed;
Packit Service fa4841
fail:
Packit Service fa4841
Packit Service fa4841
	for (x = 0; x < number_tests; x++)
Packit Service fa4841
		gdi_DeleteObject((HGDIOBJECT)tests[x].bmp);
Packit Service fa4841
Packit Service fa4841
	gdi_DeleteObject((HGDIOBJECT)hBmpSrc);
Packit Service fa4841
	gdi_DeleteObject((HGDIOBJECT)hBmpDst);
Packit Service fa4841
	gdi_DeleteObject((HGDIOBJECT)hBmpDstOriginal);
Packit Service fa4841
	gdi_DeleteDC(hdcSrc);
Packit Service fa4841
	gdi_DeleteDC(hdcDst);
Packit Service fa4841
	fprintf(stderr, "%s: TODO Test not implemented!!!\n", __FUNCTION__);
Packit Service fa4841
	return TRUE; // rc;
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
int TestGdiBitBlt(int argc, char* argv[])
Packit Service fa4841
{
Packit Service fa4841
	int rc = 0;
Packit Service fa4841
	UINT32 x, y;
Packit Service fa4841
	const UINT32 formatList[] = { PIXEL_FORMAT_RGB8,   PIXEL_FORMAT_RGB15,  PIXEL_FORMAT_ARGB15,
Packit Service fa4841
		                          PIXEL_FORMAT_RGB16,  PIXEL_FORMAT_RGB24,  PIXEL_FORMAT_RGBA32,
Packit Service fa4841
		                          PIXEL_FORMAT_RGBX32, PIXEL_FORMAT_ARGB32, PIXEL_FORMAT_XRGB32,
Packit Service fa4841
		                          PIXEL_FORMAT_BGR15,  PIXEL_FORMAT_ABGR15, PIXEL_FORMAT_BGR16,
Packit Service fa4841
		                          PIXEL_FORMAT_BGR24,  PIXEL_FORMAT_BGRA32, PIXEL_FORMAT_BGRX32,
Packit Service fa4841
		                          PIXEL_FORMAT_ABGR32, PIXEL_FORMAT_XBGR32 };
Packit Service fa4841
	const UINT32 listSize = sizeof(formatList) / sizeof(formatList[0]);
Packit Service fa4841
	WINPR_UNUSED(argc);
Packit Service fa4841
	WINPR_UNUSED(argv);
Packit Service fa4841
Packit Service fa4841
	for (x = 0; x < listSize; x++)
Packit Service fa4841
	{
Packit Service fa4841
		/* Skip 8bpp, only supported on remote end. */
Packit Service fa4841
		for (y = 1; y < listSize; y++)
Packit Service fa4841
		{
Packit Service fa4841
			if (!test_gdi_BitBlt(formatList[x], formatList[y]))
Packit Service fa4841
			{
Packit Service fa4841
				fprintf(stderr, "test_gdi_BitBlt(SrcFormat=%s, DstFormat=%s) failed!\n",
Packit Service fa4841
				        FreeRDPGetColorFormatName(formatList[x]),
Packit Service fa4841
				        FreeRDPGetColorFormatName(formatList[y]));
Packit Service fa4841
				rc = -y;
Packit Service fa4841
			}
Packit Service fa4841
		}
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	return rc;
Packit Service fa4841
}