mmmh interesting question.
I never used LCDPattern but like LCDBitmap, the data format is not really explained in the doc.
1 bit is basically 1 pixel so one byte is a row of 8 pixels.
For LCDPattern there is two parts: the first one is the black and white bitmap and the second one is the mask (1 is opaque, 0 is transparent)
LCDPattern grey50 = {
	0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, // Bitmap, each byte is a row of pixel
	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Mask, here fully opaque
};
pd->graphics->fillRect(0, 0, LCD_COLUMNS, LCD_ROWS, grey50);
But if you use binary representation this is a bit easier to edit
LCDPattern grey50 = {
	// Bitmap
	0b10101010,
	0b01010101,
	0b10101010,
	0b01010101,
	0b10101010,
	0b01010101,
	0b10101010,
	0b01010101,
	// Mask
	0b11111111,
	0b11111111,
	0b11111111,
	0b11111111,
	0b11111111,
	0b11111111,
	0b11111111,
	0b11111111,
};