Files
edgetx-gx12/radio/src/gui/212x64/splash.cpp
T
Malte LangermannandGitHub ec01fa8df9 RLE for greyscale lcd (gives more firmware space!) (#1142)
* use RLE encodes bitmaps on 212x64 pixel radios

* fix model image display
fix icon display

* implement RLE bitmaps in companion for splash image on 212x64 radios
reserve 3kB for RLE bitmaps in firmware

* fix size check

* use defines instead of magic numbers

* fix display of splash screens on 212x64 radios

* add warning message if compressed image is larger than the reserved space
2021-12-04 15:06:23 +11:00

53 lines
1.6 KiB
C++

/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "opentx.h"
#if defined(SPLASH)
#define MAXIMUM_SPLASH_IMAGE_SIZE 3072
struct {
const uint8_t __magic_prefix[4] = { 'S','P','S',0 };
const uint8_t splashdata[MAXIMUM_SPLASH_IMAGE_SIZE] = {
#include "bitmaps/212x64/splash.lbm"
};
const uint8_t __magic_suffix[4] = { 'S','P','E',0 };
} splash_struct;
static_assert(sizeof(splash_struct.splashdata) <= MAXIMUM_SPLASH_IMAGE_SIZE, "");
const unsigned char * const splash_lbm = splash_struct.splashdata;
void drawSplash()
{
lcdClear();
lcdDrawRleBitmap(0, 0, splash_lbm);
#if MENUS_LOCK == 1
if (readonly == false) {
lcdDrawFilledRect((LCD_W - (sizeof(TR_UNLOCKED) - 1) * FW) / 2 - 9, 50,
(sizeof(TR_UNLOCKED) - 1) * FW + 16, 11, SOLID,
ERASE | ROUND);
lcdDrawText((LCD_W - (sizeof(TR_UNLOCKED) - 1) * FW) / 2, 53, STR_UNLOCKED);
}
#endif
lcdRefresh();
}
#endif