New bitmap graphics example

Added Bitmap graphics example
This commit is contained in:
mrfaptastic 2019-11-04 22:42:27 +00:00
parent 32d8c2e26d
commit d8ace56d6b
2 changed files with 472 additions and 0 deletions

View file

@ -0,0 +1,164 @@
#include <Arduino.h>
#include <ESP32-RGB64x32MatrixPanel-I2S-DMA.h>
#include "Dhole_weather_icons32px.h"
/*--------------------- DEBUG -------------------------*/
#define Sprintln(a) (Serial.println(a))
#define SprintlnDEC(a, x) (Serial.println(a, x))
#define Sprint(a) (Serial.print(a))
#define SprintDEC(a, x) (Serial.print(a, x))
/*--------------------- RGB DISPLAY PINS -------------------------*/
#define R1_PIN 25
#define G1_PIN 26
#define B1_PIN 27
#define R2_PIN 14
#define G2_PIN 12
#define B2_PIN 13
#define A_PIN 23
#define B_PIN 19 // Changed from library default
#define C_PIN 5
#define D_PIN 17
#define E_PIN -1
#define LAT_PIN 4
#define OE_PIN 15
#define CLK_PIN 16
// Display
RGB64x32MatrixPanel_I2S_DMA display; // RGB Panel
// Wifi Logo, generated using LCD Image Converter: http://www.riuson.com/lcd-image-converter
const char wifi_image1bit[] PROGMEM = {
0x00,0x00,0x00,0xf8,0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0x01,0x00,
0x00,0x00,0x00,0xf0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0x1f,
0x00,0x00,0x00,0x00,0xfe,0x07,0xe0,0x7f,0x00,0x00,0x00,0x80,0xff,0x00,0x00,
0xff,0x01,0x00,0x00,0xc0,0x1f,0x00,0x00,0xf8,0x03,0x00,0x00,0xe0,0x0f,0x00,
0x00,0xf0,0x07,0x00,0x00,0xf0,0x03,0xf0,0x0f,0xc0,0x0f,0x00,0x00,0xe0,0x01,
0xff,0xff,0x80,0x07,0x00,0x00,0xc0,0xc0,0xff,0xff,0x03,0x03,0x00,0x00,0x00,
0xe0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0xf8,0x0f,0xf0,0x1f,0x00,0x00,0x00,
0x00,0xfc,0x01,0x80,0x3f,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x3e,0x00,0x00,
0x00,0x00,0x38,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x10,0xe0,0x07,0x08,0x00,
0x00,0x00,0x00,0x00,0xfc,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x7f,0x00,
0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xf8,
0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0xc0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x07,0x00,0x00,0x00,0x00,
0x00,0x00,0xe0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00 };
/* Draw a bitmap, default bitmap pixels to white if no color provided.
* Use LCD Image Converter to generate the char array: http://www.riuson.com/lcd-image-converter
* In Options>Conversion, use: Monochrome Preset
*/
void drawXbm565(int x, int y, int width, int height, const char *xbm, uint16_t color = 0xffff)
{
if (width % 8 != 0) {
width = ((width / 8) + 1) * 8;
}
for (int i = 0; i < width * height / 8; i++ ) {
unsigned char charColumn = pgm_read_byte(xbm + i);
for (int j = 0; j < 8; j++) {
int targetX = (i * 8 + j) % width + x;
int targetY = (8 * i / (width)) + y;
if (bitRead(charColumn, j)) {
display.drawPixel(targetX, targetY, color);
}
}
}
}
/* Bitmaps */
int current_icon = 0;
static int num_icons = 22;
static char icon_name[22][30] = {
"cloud_moon_bits",
"cloud_sun_bits",
"clouds_bits",
"cloud_wind_moon_bits",
"cloud_wind_sun_bits",
"cloud_wind_bits",
"cloud_bits",
"lightning_bits",
"moon_bits",
"rain0_sun_bits",
"rain0_bits",
"rain1_moon_bits",
"rain1_sun_bits",
"rain1_bits",
"rain2_bits",
"rain_lightning_bits",
"rain_snow_bits",
"snow_moon_bits",
"snow_sun_bits",
"snow_bits",
"sun_bits",
"wind_bits" };
static char *icon_bits[22] = { cloud_moon_bits,
cloud_sun_bits,
clouds_bits,
cloud_wind_moon_bits,
cloud_wind_sun_bits,
cloud_wind_bits,
cloud_bits,
lightning_bits,
moon_bits,
rain0_sun_bits,
rain0_bits,
rain1_moon_bits,
rain1_sun_bits,
rain1_bits,
rain2_bits,
rain_lightning_bits,
rain_snow_bits,
snow_moon_bits,
snow_sun_bits,
snow_bits,
sun_bits,
wind_bits};
void setup() {
// put your setup code here, to run once:
delay(1000); Serial.begin(115200); delay(200);
/************** DISPLAY **************/
Sprintln("...Starting Display");
display.setPanelBrightness(48);
display.begin(R1_PIN, G1_PIN, B1_PIN, R2_PIN, G2_PIN, B2_PIN, A_PIN, B_PIN, C_PIN, D_PIN, E_PIN, LAT_PIN, OE_PIN, CLK_PIN ); // setup the LED matrix
display.fillScreen(display.color444(0, 1, 0));
// Fade a Red Wifi Logo In
for (int r=0; r < 255; r++ )
{
drawXbm565(0,0,64,32, wifi_image1bit, display.color565(r,0,0));
delay(10);
}
delay(2000);
display.clearScreen();
}
void loop() {
// Loop through Weather Icons
Serial.print("Showing icon ");
Serial.println(icon_name[current_icon]);
drawXbm565(0,0, 32, 32, icon_bits[current_icon]);
current_icon = (current_icon +1 ) % num_icons;
delay(2000);
display.clearScreen();
}

View file

@ -0,0 +1,308 @@
#define cloud_moon_width 32
#define cloud_moon_height 32
static char cloud_moon_bits[] = {
0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7C, 0x00,
0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, 0x00,
0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0xC3, 0x01, 0x00, 0xF0, 0x87, 0xC3,
0x00, 0xFC, 0x1F, 0xFF, 0x00, 0x1E, 0x3C, 0xFE, 0x00, 0x06, 0x30, 0x60,
0x00, 0x07, 0xF0, 0x79, 0x00, 0x03, 0xE0, 0x3F, 0xE0, 0x03, 0x00, 0x0F,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x00, 0x07, 0x38, 0x00, 0x80, 0x03,
0xF0, 0xFF, 0xFF, 0x01, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define cloud_sun_width 32
#define cloud_sun_height 32
static char cloud_sun_bits[] = {
0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0xC1, 0x60,
0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0xF3, 0x33, 0x00, 0x00, 0xF8, 0x07,
0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0xF0, 0x07, 0x18,
0x00, 0xFC, 0x1F, 0xD8, 0x00, 0x1E, 0x3C, 0xD8, 0x00, 0x06, 0x30, 0x18,
0x00, 0x07, 0xF0, 0x1D, 0x00, 0x03, 0xE0, 0x0F, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x00, 0x07, 0x38, 0x00, 0x80, 0x03,
0xF0, 0xFF, 0xFF, 0x01, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define clouds_width 32
#define clouds_height 32
static char clouds_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xC0, 0xFF, 0x01,
0x00, 0xE0, 0xC1, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xF0, 0x07, 0x1F,
0x00, 0xFC, 0x1F, 0x3E, 0x00, 0x1E, 0x3C, 0x70, 0x00, 0x06, 0x30, 0xE0,
0x00, 0x07, 0xF0, 0xC1, 0x00, 0x03, 0xE0, 0xC3, 0xE0, 0x03, 0x00, 0xC7,
0xF0, 0x01, 0x00, 0xCE, 0x38, 0x00, 0x00, 0xCC, 0x1C, 0x00, 0x00, 0xEC,
0x0C, 0x00, 0x00, 0x6C, 0x0C, 0x00, 0x00, 0x2C, 0x0C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x00, 0x07, 0x38, 0x00, 0x80, 0x03,
0xF0, 0xFF, 0xFF, 0x01, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define cloud_wind_moon_width 32
#define cloud_wind_moon_height 32
static char cloud_wind_moon_bits[] = {
0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7C, 0x00,
0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, 0x00,
0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0xC3, 0x01, 0x00, 0xF0, 0x87, 0xC3,
0x00, 0xFC, 0x1F, 0xFF, 0x00, 0x1E, 0x3C, 0xFE, 0x00, 0x06, 0x30, 0x60,
0x00, 0x07, 0xF0, 0x79, 0x00, 0x03, 0xE0, 0x3F, 0xE0, 0x03, 0x00, 0x0F,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C,
0xFC, 0xFF, 0x3F, 0x0E, 0xFC, 0xFF, 0x3F, 0x07, 0x00, 0x00, 0x80, 0x03,
0xFF, 0xFF, 0xEF, 0x01, 0xFF, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0xFF, 0x3F, 0x00, 0xFC, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define cloud_wind_sun_width 32
#define cloud_wind_sun_height 32
static char cloud_wind_sun_bits[] = {
0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0xC1, 0x60,
0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0xF3, 0x33, 0x00, 0x00, 0xF8, 0x07,
0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0xF0, 0x07, 0x18,
0x00, 0xFC, 0x1F, 0xD8, 0x00, 0x1E, 0x3C, 0xD8, 0x00, 0x06, 0x30, 0x18,
0x00, 0x07, 0xF0, 0x1D, 0x00, 0x03, 0xE0, 0x0F, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C,
0xFC, 0xFF, 0x3F, 0x0E, 0xFC, 0xFF, 0x3F, 0x07, 0x00, 0x00, 0x80, 0x03,
0xFF, 0xFF, 0xEF, 0x01, 0xFF, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0xFF, 0x3F, 0x00, 0xFC, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define cloud_wind_width 32
#define cloud_wind_height 32
static char cloud_wind_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C,
0xFC, 0xFF, 0x3F, 0x0E, 0xFC, 0xFF, 0x3F, 0x07, 0x00, 0x00, 0x80, 0x03,
0xFF, 0xFF, 0xEF, 0x01, 0xFF, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0xFF, 0x3F, 0x00, 0xFC, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define cloud_width 32
#define cloud_height 32
static char cloud_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x00, 0x07, 0x38, 0x00, 0x80, 0x03,
0xF0, 0xFF, 0xFF, 0x01, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define lightning_width 32
#define lightning_height 32
static char lightning_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0xC0, 0x01, 0x0C,
0x0C, 0xC0, 0x01, 0x0E, 0x1C, 0xC0, 0x00, 0x07, 0x38, 0xE0, 0x80, 0x03,
0xF0, 0x6F, 0xFC, 0x01, 0xE0, 0xEF, 0xFD, 0x00, 0x00, 0x80, 0x01, 0x00,
0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define moon_width 32
#define moon_height 32
static char moon_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00, 0x78, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00,
0x80, 0x1B, 0x00, 0x00, 0xC0, 0x19, 0x00, 0x00, 0xE0, 0x1C, 0x00, 0x00,
0x60, 0x0C, 0x00, 0x00, 0x70, 0x0C, 0x00, 0x00, 0x30, 0x0C, 0x00, 0x00,
0x30, 0x0C, 0x00, 0x00, 0x38, 0x1C, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
0x18, 0x38, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x18, 0x70, 0x00, 0x00,
0x38, 0xE0, 0x01, 0x18, 0x30, 0xC0, 0x87, 0x1F, 0x70, 0x00, 0xFF, 0x1F,
0x60, 0x00, 0xFC, 0x0C, 0xE0, 0x00, 0x00, 0x0E, 0xC0, 0x01, 0x00, 0x07,
0x80, 0x03, 0x80, 0x03, 0x00, 0x0F, 0xE0, 0x01, 0x00, 0x3E, 0xFC, 0x00,
0x00, 0xF8, 0x3F, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define rain0_sun_width 32
#define rain0_sun_height 32
static char rain0_sun_bits[] = {
0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0xC1, 0x60,
0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0xF3, 0x33, 0x00, 0x00, 0xF8, 0x07,
0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0xF0, 0x07, 0x18,
0x00, 0xFC, 0x1F, 0xD8, 0x00, 0x1E, 0x3C, 0xD8, 0x00, 0x06, 0x30, 0x18,
0x00, 0x07, 0xF0, 0x1D, 0x00, 0x03, 0xE0, 0x0F, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x60, 0x06, 0x0C,
0x0C, 0x60, 0x06, 0x0E, 0x1C, 0x70, 0x07, 0x07, 0x38, 0x30, 0x83, 0x03,
0xF0, 0x33, 0xFB, 0x01, 0xE0, 0x01, 0xF8, 0x00, 0x00, 0xCC, 0x00, 0x00,
0x00, 0xCC, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define rain0_width 32
#define rain0_height 32
static char rain0_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x60, 0x06, 0x0C,
0x0C, 0x60, 0x06, 0x0E, 0x1C, 0x70, 0x07, 0x07, 0x38, 0x30, 0x83, 0x03,
0xF0, 0x33, 0xFB, 0x01, 0xE0, 0x01, 0xF8, 0x00, 0x00, 0xCC, 0x00, 0x00,
0x00, 0xCC, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define rain1_moon_width 32
#define rain1_moon_height 32
static char rain1_moon_bits[] = {
0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7C, 0x00,
0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, 0x00,
0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0xC3, 0x01, 0x00, 0xF0, 0x87, 0xC3,
0x00, 0xFC, 0x1F, 0xFF, 0x00, 0x1E, 0x3C, 0xFE, 0x00, 0x06, 0x30, 0x60,
0x00, 0x07, 0xF0, 0x79, 0x00, 0x03, 0xE0, 0x3F, 0xE0, 0x03, 0x00, 0x0F,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x60, 0x06, 0x0C,
0x0C, 0x60, 0x06, 0x0E, 0x1C, 0x70, 0x07, 0x07, 0x38, 0x30, 0x83, 0x03,
0xF0, 0xBB, 0xFB, 0x01, 0xE0, 0x99, 0xF9, 0x00, 0x00, 0xDC, 0x01, 0x00,
0x00, 0xCC, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define rain1_sun_width 32
#define rain1_sun_height 32
static char rain1_sun_bits[] = {
0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0xC1, 0x60,
0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0xF3, 0x33, 0x00, 0x00, 0xF8, 0x07,
0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0xF0, 0x07, 0x18,
0x00, 0xFC, 0x1F, 0xD8, 0x00, 0x1E, 0x3C, 0xD8, 0x00, 0x06, 0x30, 0x18,
0x00, 0x07, 0xF0, 0x1D, 0x00, 0x03, 0xE0, 0x0F, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x60, 0x06, 0x0C,
0x0C, 0x60, 0x06, 0x0E, 0x1C, 0x70, 0x07, 0x07, 0x38, 0x30, 0x83, 0x03,
0xF0, 0xBB, 0xFB, 0x01, 0xE0, 0x99, 0xF9, 0x00, 0x00, 0xDC, 0x01, 0x00,
0x00, 0xCC, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define rain1_width 32
#define rain1_height 32
static char rain1_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x60, 0x06, 0x0C,
0x0C, 0x60, 0x06, 0x0E, 0x1C, 0x70, 0x07, 0x07, 0x38, 0x30, 0x83, 0x03,
0xF0, 0xBB, 0xFB, 0x01, 0xE0, 0x99, 0xF9, 0x00, 0x00, 0xDC, 0x01, 0x00,
0x00, 0xCC, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define rain2_width 32
#define rain2_height 32
static char rain2_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x66, 0x66, 0x0C,
0x0C, 0x66, 0x66, 0x0E, 0x1C, 0x77, 0x77, 0x07, 0x38, 0x33, 0x33, 0x03,
0xB0, 0xBB, 0xBB, 0x01, 0x80, 0x99, 0x99, 0x00, 0xC0, 0xDD, 0x1D, 0x00,
0xC0, 0xCC, 0x0C, 0x00, 0xC0, 0xEE, 0x0C, 0x00, 0x00, 0x66, 0x00, 0x00,
0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define rain_lightning_width 32
#define rain_lightning_height 32
static char rain_lightning_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0xCC, 0x1C, 0x0C,
0x0C, 0xCC, 0x1C, 0x0E, 0x1C, 0xEE, 0x0C, 0x07, 0x38, 0x66, 0x8E, 0x03,
0x70, 0x77, 0xC6, 0x01, 0x20, 0x33, 0xDE, 0x00, 0x80, 0x3B, 0x18, 0x00,
0x80, 0x19, 0x0C, 0x00, 0x80, 0x1D, 0x0C, 0x00, 0x00, 0x0C, 0x04, 0x00,
0x00, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define rain_snow_width 32
#define rain_snow_height 32
static char rain_snow_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0xCC, 0x08, 0x0C,
0x0C, 0xCC, 0x1C, 0x0E, 0x1C, 0xEE, 0x36, 0x07, 0x38, 0x66, 0x9C, 0x03,
0x70, 0x77, 0xC8, 0x01, 0x20, 0x33, 0xE2, 0x00, 0x80, 0x3B, 0x07, 0x00,
0x80, 0x99, 0x0D, 0x00, 0x80, 0x1D, 0x07, 0x00, 0x00, 0x0C, 0x02, 0x00,
0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define snow_moon_width 32
#define snow_moon_height 32
static char snow_moon_bits[] = {
0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7C, 0x00,
0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, 0x00,
0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0xC3, 0x01, 0x00, 0xF0, 0x87, 0xC3,
0x00, 0xFC, 0x1F, 0xFF, 0x00, 0x1E, 0x3C, 0xFE, 0x00, 0x06, 0x30, 0x60,
0x00, 0x07, 0xF0, 0x79, 0x00, 0x03, 0xE0, 0x3F, 0xE0, 0x03, 0x00, 0x0F,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0E, 0x1C, 0x40, 0x00, 0x07, 0x38, 0xE0, 0x80, 0x03,
0xF0, 0xB1, 0xF1, 0x01, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x44, 0x04, 0x00,
0x00, 0x0E, 0x0E, 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x00, 0x0E, 0x0E, 0x00,
0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define snow_sun_width 32
#define snow_sun_height 32
static char snow_sun_bits[] = {
0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x80, 0xC1, 0x60,
0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0xF3, 0x33, 0x00, 0x00, 0xF8, 0x07,
0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x0E, 0x1C, 0x00, 0xF0, 0x07, 0x18,
0x00, 0xFC, 0x1F, 0xD8, 0x00, 0x1E, 0x3C, 0xD8, 0x00, 0x06, 0x30, 0x18,
0x00, 0x07, 0xF0, 0x1D, 0x00, 0x03, 0xE0, 0x0F, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0E, 0x1C, 0x40, 0x00, 0x07, 0x38, 0xE0, 0x80, 0x03,
0xF0, 0xB1, 0xF1, 0x01, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x44, 0x04, 0x00,
0x00, 0x0E, 0x0E, 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x00, 0x0E, 0x0E, 0x00,
0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define snow_width 32
#define snow_height 32
static char snow_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00,
0x00, 0xFC, 0x1F, 0x00, 0x00, 0x1E, 0x3C, 0x00, 0x00, 0x06, 0x30, 0x00,
0x00, 0x07, 0xF0, 0x01, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x07,
0xF0, 0x01, 0x00, 0x0E, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C,
0x0C, 0x00, 0x00, 0x0E, 0x1C, 0x40, 0x00, 0x07, 0x38, 0xE0, 0x80, 0x03,
0xF0, 0xB1, 0xF1, 0x01, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x44, 0x04, 0x00,
0x00, 0x0E, 0x0E, 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x00, 0x0E, 0x0E, 0x00,
0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define sun_width 32
#define sun_height 32
static char sun_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00,
0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x83, 0xC1, 0x00,
0x00, 0x07, 0xE0, 0x00, 0x00, 0xE6, 0x67, 0x00, 0x00, 0xF0, 0x0F, 0x00,
0x00, 0x38, 0x1C, 0x00, 0x00, 0x1C, 0x38, 0x00, 0x00, 0x0C, 0x30, 0x00,
0xF0, 0x0D, 0xB0, 0x0F, 0xF0, 0x0D, 0xB0, 0x0F, 0x00, 0x0C, 0x30, 0x00,
0x00, 0x1C, 0x38, 0x00, 0x00, 0x38, 0x1C, 0x00, 0x00, 0xF0, 0x0F, 0x00,
0x00, 0xE6, 0x67, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x83, 0xC1, 0x00,
0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00,
0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
#define wind_width 32
#define wind_height 32
static char wind_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x80, 0x01,
0xF0, 0xFF, 0xFF, 0x19, 0xF0, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x30,
0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00,
0xF0, 0xFF, 0xFF, 0x01, 0xF0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x03,
0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };