fix bitmap drawing, align number picker screen to center
This commit is contained in:
@@ -3,6 +3,60 @@
|
||||
#include <string.h>
|
||||
|
||||
|
||||
/* 24x24: no_flame */
|
||||
// ··········██····█·······
|
||||
// ···········██···██······
|
||||
// ············██··········
|
||||
// ············███·····█···
|
||||
// ·······█····███····█····
|
||||
// ·····██····█████··█···█·
|
||||
// ····██···██████··█···█··
|
||||
// ····█···██████··█···█···
|
||||
// ···██··██████··█···█····
|
||||
// ···█··██████··█···█·····
|
||||
// ···█··█████··█···█······
|
||||
// ······████··█···█·······
|
||||
// ·······██··█···█··█··█··
|
||||
// ··········█···█··██··██·
|
||||
// ···█·····█···█··████··█·
|
||||
// ··█·····█···█··█████····
|
||||
// ··██···█···█··██████····
|
||||
// ··██··█···█····█████····
|
||||
// ·····█···█·····█████····
|
||||
// ····█···█······█·███····
|
||||
// ···█···█·········██·····
|
||||
// ··█···█·········██······
|
||||
// ·····█··██······█·······
|
||||
// ····█··········█········
|
||||
static const uint8_t G_NO_FLAME_BYTES[] = { 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x20, 0x10, 0x80, 0xc0, 0xc1, 0xe3, 0xfe, 0xfc, 0x78, 0x20, 0x83, 0x42, 0x20, 0x10, 0x88, 0x40, 0x20, 0x00, 0x00, 0x00, 0x80, 0x47, 0x01, 0x00, 0x0e, 0x1f, 0x9f, 0x4f, 0x27, 0x13, 0x89, 0x44, 0x22, 0x91, 0xc8, 0xe4, 0xf2, 0xc1, 0x00, 0x30, 0x60, 0x00, 0x00, 0x00, 0x23, 0x13, 0x88, 0x44, 0x22, 0x11, 0x48, 0x44, 0x02, 0x01, 0x00, 0x00, 0x01, 0x8f, 0x67, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
/* 24x24: flame */
|
||||
// ··········██····█·······
|
||||
// ···········██···██······
|
||||
// ············██··········
|
||||
// ············███·········
|
||||
// ·······█····███·········
|
||||
// ·····██····█████···█····
|
||||
// ····██···███████··█·····
|
||||
// ····█···███████··██·····
|
||||
// ···██··████████·██······
|
||||
// ···█··████████··██······
|
||||
// ···█··████████·███······
|
||||
// ······████████·████·····
|
||||
// ·······████·███·███··█··
|
||||
// ········███·███████··██·
|
||||
// ···█·····██··███████··█·
|
||||
// ··█·······██·███████····
|
||||
// ··██·····███··██████····
|
||||
// ··█████·████···█████····
|
||||
// ···█████████···█████····
|
||||
// ····██████·····█·███····
|
||||
// ·····███·········██·····
|
||||
// ······███·······██······
|
||||
// ········██······█·······
|
||||
// ···············█········
|
||||
static const uint8_t G_FLAME_BYTES[] = { 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x20, 0x10, 0x80, 0xc0, 0xc1, 0xe3, 0xfe, 0xfc, 0xf8, 0x60, 0x03, 0x82, 0xc0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x47, 0x01, 0x00, 0x0e, 0x1f, 0x3f, 0x7f, 0xff, 0x8f, 0x3f, 0xff, 0xf1, 0xec, 0xff, 0xff, 0xf8, 0xc0, 0x00, 0x30, 0x60, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0e, 0x1e, 0x3e, 0x3c, 0x6e, 0x4f, 0x07, 0x07, 0x00, 0x00, 0x01, 0x8f, 0x67, 0x3f, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
/* 84x48: boot_logo */
|
||||
// ····················································································
|
||||
// ·····································································████████·······
|
||||
@@ -55,6 +109,8 @@
|
||||
static const uint8_t G_BOOT_LOGO_BYTES[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0x40, 0xc0, 0xc0, 0x40, 0xc0, 0xa0, 0xa0, 0x20, 0xa0, 0xa0, 0xe0, 0x60, 0xd0, 0x90, 0xd0, 0xd0, 0xf0, 0xf0, 0xc8, 0xe8, 0xe8, 0xb8, 0xb8, 0x64, 0xd4, 0xb4, 0x94, 0x9c, 0x14, 0x0c, 0x0c, 0x1c, 0x14, 0x34, 0x34, 0x34, 0x12, 0x1a, 0x0a, 0x0a, 0x06, 0x82, 0x82, 0x82, 0x44, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xc0, 0x60, 0x60, 0x60, 0x50, 0x30, 0x30, 0x38, 0x3c, 0x3c, 0x2c, 0x2c, 0x3c, 0x2e, 0x2e, 0x3e, 0x3e, 0x37, 0x3d, 0x2b, 0x3f, 0x3d, 0x2f, 0x3f, 0x3f, 0x5f, 0x4d, 0xad, 0x25, 0x16, 0x1d, 0x1f, 0x1e, 0x0a, 0x1b, 0x09, 0x0d, 0x04, 0x02, 0x03, 0x03, 0xc3, 0x43, 0x43, 0x43, 0xa5, 0x63, 0x23, 0x22, 0x21, 0x91, 0xd1, 0x31, 0x11, 0x08, 0x08, 0x28, 0x58, 0x2c, 0x04, 0x34, 0x1c, 0x16, 0x0a, 0x0a, 0x16, 0x0a, 0x05, 0x01, 0x04, 0x0b, 0x0f, 0x3c, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x09, 0x10, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x38, 0xe8, 0x08, 0xf4, 0x4c, 0x32, 0x29, 0x10, 0x08, 0x00, 0x10, 0x48, 0x84, 0x02, 0x05, 0x02, 0x05, 0x02, 0x01, 0x00, 0x00, 0x02, 0x05, 0x82, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x80, 0x87, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x08, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x8c, 0xb0, 0xc0, 0x80, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x11, 0x16, 0x18, 0x30, 0x28, 0x08, 0x08, 0x08, 0x08, 0x04, 0x05, 0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0xa1, 0x41, 0xa1, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x05, 0x06, 0x02, 0x02, 0x02, 0x01, 0x01, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x02, 0x07, 0x02, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f, 0x44, 0x44, 0x44, 0x2b, 0x10, 0x00, 0x02, 0xff, 0x19, 0x29, 0x29, 0x49, 0x49, 0xc6, 0x04, 0x0a, 0x09, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x41, 0x21, 0x21, 0x00, 0x50, 0x38, 0x16, 0x11, 0x16, 0x18, 0x70, 0x40, 0x00, 0x21, 0x21, 0x3f, 0x21, 0x21, 0x11, 0x09, 0x06, 0x00, 0x0a, 0x09, 0x7f, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x1e, 0x21, 0x20, 0x20, 0x20, 0x20, 0x0e, 0x11, 0x20, 0x10, 0x09, 0x06, 0x00, 0x00, 0x00, 0x07, 0x18, 0x21, 0x1f, 0x08, 0x10, 0x20, 0x10, 0x0f, 0x00, 0x00, 0x00 };
|
||||
|
||||
static const struct BitmapImage bitmaps[] = {
|
||||
{ .name="no_flame", .width=24, .height=24, .bytes=G_NO_FLAME_BYTES },
|
||||
{ .name="flame", .width=24, .height=24, .bytes=G_FLAME_BYTES },
|
||||
{ .name="boot_logo", .width=84, .height=48, .bytes=G_BOOT_LOGO_BYTES },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -324,13 +324,13 @@ void LCD_setBitmapFullScreen(const uint8_t *bitArray)
|
||||
|
||||
void LCD_setBitmap(const struct BitmapImage *image, int x, int y, bool bg, enum Color color)
|
||||
{
|
||||
int byte_count = image->width * (image->height + 7) / 8;
|
||||
// int byte_count = image->width * ((image->height + 7) / 8);
|
||||
|
||||
for (int xi = 0; xi < image->width; xi++) {
|
||||
for (int yi = 0; yi < image->height; yi++) {
|
||||
int idx = xi + ((yi + 7) / 8) * image->width;
|
||||
if (idx > byte_count) continue;
|
||||
bool bit = image->bytes[idx] & (1 << yi);
|
||||
int idx = xi + (yi / 8) * image->width;
|
||||
// if (idx > byte_count) continue;
|
||||
bool bit = image->bytes[idx] & (1 << (yi % 8));
|
||||
if (bit) {
|
||||
LCD_setPixel(x + xi, y + yi, color);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
#include <malloc.h>
|
||||
#include <stdio.h>
|
||||
#include "scenes.h"
|
||||
|
||||
#include "liquid.h"
|
||||
#include "graphics/drawing.h"
|
||||
#include "scene_number.h"
|
||||
#include "graphics/display_spec.h"
|
||||
|
||||
struct NumberScene {
|
||||
struct Scene base;
|
||||
@@ -40,11 +41,11 @@ static void paint(struct NumberScene *self)
|
||||
struct NumberSceneOpts *opts = self->opts;
|
||||
|
||||
LCD_clearDisplay(0);
|
||||
LCD_setStrEx(opts->label, 1, 1, BLACK, (struct TextStyle) {.size = FONT_BOLD});
|
||||
LCD_setStrEx(opts->label, LCD_WIDTH/2, 1, BLACK, (struct TextStyle) {.size = FONT_BOLD, .align=ALIGN_CENTER});
|
||||
|
||||
char buf[10];
|
||||
snprintf(buf, 10, "%d%s", opts->value, opts->unit);
|
||||
LCD_setStrEx(buf, 1, 9, BLACK, (struct TextStyle) {.size = FONT_DOUBLE});
|
||||
LCD_setStrEx(buf, LCD_WIDTH/2, 14, BLACK, (struct TextStyle) {.size = FONT_DOUBLE, .align=ALIGN_CENTER});
|
||||
}
|
||||
|
||||
static void deinit(struct NumberScene *self)
|
||||
|
||||
Reference in New Issue
Block a user