68 #ifndef POKITTODISPLAY_H 69 #define POKITTODISPLAY_H 72 #include "Pokitto_settings.h" 75 #include "PokittoPalettes.h" 78 #define COLOR_BLACK (uint16_t)(0x0000) 79 #define COLOR_BLUE (uint16_t)(0x001F) 80 #define COLOR_RED (uint16_t)(0xF800) 81 #define COLOR_GREEN (uint16_t)(0x07E0) 82 #define COLOR_CYAN (uint16_t)(0x07FF) 83 #define COLOR_MAGENTA (uint16_t)(0xF81F) 84 #define COLOR_YELLOW (uint16_t)(0xFFE0) 85 #define COLOR_WHITE (uint16_t)(0xFFFF) 88 #define COLOR_GRAY_15 (uint16_t)(0x0861) // 15 15 15 89 #define COLOR_GRAY_30 (uint16_t)(0x18E3) // 30 30 30 90 #define COLOR_GRAY_50 (uint16_t)(0x3186) // 50 50 50 91 #define COLOR_GRAY_80 (uint16_t)(0x528A) // 80 80 80 92 #define COLOR_GRAY_128 (uint16_t)(0x8410) // 128 128 128 93 #define COLOR_GRAY_200 (uint16_t)(0xCE59) // 200 200 200 94 #define COLOR_GRAY_225 (uint16_t)(0xE71C) // 225 225 225 120 const uint16_t def565palette[16] = {
122 0,0x194a,0x792a,0x42a,
123 0xaa86,0x5aa9,0xc618,0xff9d,
124 0xf809,0xfd00,0xff84,0x72a,
125 0x2d7f,0x83b3,0xfbb5,0xfe75
128 #define PALETTE_SIZE 16 142 static uint8_t* canvas;
144 static uint8_t m_colordepth;
146 static uint8_t width;
147 static uint8_t height;
148 static uint8_t screenbuffer[];
151 static void setColorDepth(uint8_t);
152 static uint8_t getColorDepth();
153 static uint8_t getBitsPerPixel();
154 static uint16_t getWidth();
155 static uint16_t getHeight();
156 static uint8_t getNumberOfColors();
160 static const unsigned char *
font;
176 static void setColor(uint8_t,uint8_t);
192 static void scroll(int16_t);
217 static uint16_t
RGBto565(uint8_t,uint8_t,uint8_t);
227 static void tweenPalette(uint16_t*,
const uint16_t*,
const uint16_t*, uint8_t);
233 static void directRectangle(int16_t, int16_t,int16_t, int16_t, uint16_t);
237 static void directBitmap(int16_t,int16_t,
const uint8_t*, uint8_t,uint8_t);
244 static void drawPixel(int16_t x,int16_t y, uint8_t col);
246 static uint8_t
getPixel(int16_t,int16_t);
248 static void drawLine(int16_t,int16_t,int16_t,int16_t);
250 static uint8_t
clipLine(int16_t*, int16_t*, int16_t*, int16_t*);
252 static void drawColumn(int16_t, int16_t, int16_t);
254 static void map1BitColumn(int16_t, int16_t, int16_t,
const uint8_t*, uint16_t);
256 static void drawRow(int16_t, int16_t, int16_t);
266 static void fillRect(int16_t x, int16_t y, int16_t w, int16_t h);
268 static void drawRect(int16_t x, int16_t y, int16_t w, int16_t h);
272 static void drawCircle(int16_t x0, int16_t y0, int16_t r);
274 static void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint16_t cornername);
276 static void fillCircle(int16_t x0, int16_t y0, int16_t r);
278 static void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint16_t cornername, int16_t delta);
280 static void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2);
282 static void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2);
284 static void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius);
286 static void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius);
290 static void drawMonoBitmap(int16_t x, int16_t y,
const uint8_t* bitmap, uint8_t index);
292 static void drawBitmapData(int16_t x, int16_t y, int16_t w, int16_t h,
const uint8_t* bitmap);
294 static void drawBitmap(int16_t x, int16_t y,
const uint8_t* bitmap);
296 static void drawRleBitmap(int16_t x, int16_t y,
const uint8_t* bitmap);
298 static void drawBitmap(int16_t x, int16_t y,
const uint8_t* bitmap, uint8_t frame);
302 static void drawBitmap(int16_t x, int16_t y,
const uint8_t *bitmap, uint8_t rotation, uint8_t flip);
306 static uint8_t
getBitmapPixel(
const uint8_t*, uint16_t, uint16_t);
308 static void draw4BitColumn(int16_t x, int16_t y, uint8_t h, uint8_t* bitmap);
312 static int directChar(int16_t, int16_t, uint16_t);
314 static int bufferChar(int16_t, int16_t, uint16_t);
316 static void setFont(
const unsigned char * f);
322 static void drawChar(int8_t x, int8_t y,
unsigned char c, uint8_t size);
324 static void enableDirectPrinting(uint8_t m);
325 static bool isDirectPrintingEnabled();
326 static int print_char(uint8_t x, uint8_t y,
unsigned char c);
327 static void set_cursor(uint8_t, uint8_t);
328 static void write(uint8_t);
329 static void write(
const char *str);
330 static void write(
const uint8_t *buffer, uint8_t size);
331 static void print(
const char[]);
332 static void print(
char,
int base = 0);
333 static void print(
unsigned char,
int base = 0);
334 static void print(
int,
int base = 10);
335 static void print(
unsigned int,
int base = 10);
336 static void print(
long,
int base = 10);
337 static void print(
unsigned long,
int base = 10);
338 static void print(
double,
int base = 2);
339 static void print(uint8_t, uint8_t,
const char[]);
340 static void print(uint8_t, uint8_t,
char,
int = 0);
341 static void print(uint8_t, uint8_t,
unsigned char,
int = 0);
342 static void print(uint8_t, uint8_t,
int,
int = 10);
343 static void print(uint8_t, uint8_t,
unsigned int,
int = 10);
344 static void print(uint8_t, uint8_t,
long,
int = 10);
345 static void print(uint8_t, uint8_t,
unsigned long,
int = 10);
346 static void print(uint8_t, uint8_t,
double,
int = 2);
347 static void println(uint8_t, uint8_t,
const char[]);
348 static void println(uint8_t, uint8_t,
char,
int = 0);
349 static void println(uint8_t, uint8_t,
unsigned char,
int = 0);
350 static void println(uint8_t, uint8_t,
int,
int = 10);
351 static void println(uint8_t, uint8_t,
unsigned int,
int = 10);
352 static void println(uint8_t, uint8_t,
long,
int = 10);
353 static void println(uint8_t, uint8_t,
unsigned long,
int = 10);
354 static void println(uint8_t, uint8_t,
double,
int = 2);
355 static void println(uint8_t, uint8_t);
356 static void println(
const char[]);
357 static void println(
char,
int = 0);
358 static void println(
unsigned char,
int = 0);
359 static void println(
int,
int = 10);
360 static void println(
unsigned int,
int = 10);
361 static void println(
long,
int = 10 );
362 static void println(
unsigned long,
int = 10);
363 static void println(
double,
int = 2);
364 static void println(
void);
366 static int16_t cursorX,cursorY;
367 static uint8_t fontSize;
368 static int8_t adjustCharStep, adjustLineStep;
369 static bool fixedWidthFont;
371 static void inc_txtline();
372 static void printNumber(
unsigned long, uint8_t);
373 static void printFloat(
double, uint8_t);
379 static void setTileBufferTo(uint8_t*);
380 static void clearTileBuffer();
381 static void shiftTileBuffer(int8_t,int8_t);
383 static void setTile(uint16_t,uint8_t);
384 static uint8_t getTile(uint16_t);
385 static uint8_t getTile(uint8_t,uint8_t);
390 static uint8_t m_mode;
391 static uint16_t m_w,m_h;
393 static uint8_t* m_scrbuf;
395 static uint8_t* m_tileset;
397 static uint8_t* m_tilebuf;
399 static uint8_t* m_tilecolorbuf;
405 #endif // POKITTODISPLAY_H defcolors
Definition: PokittoDisplay.h:98
static int bufferChar(int16_t, int16_t, uint16_t)
Definition: PokittoDisplay.cpp:357
static bool textWrap
Definition: PokittoDisplay.h:320
static uint16_t directbgcolor
Definition: PokittoDisplay.h:172
static uint8_t getPixel(int16_t, int16_t)
Definition: PokittoDisplay.cpp:597
static void drawFastHLine(int16_t, int16_t, int16_t)
Definition: PokittoDisplay.cpp:821
static const unsigned char * font
Definition: PokittoDisplay.h:160
static void drawBitmapXFlipped(int16_t x, int16_t y, const uint8_t *bitmap)
Definition: PokittoDisplay.cpp:1520
static void drawRleBitmap(int16_t x, int16_t y, const uint8_t *bitmap)
Definition: PokittoDisplay.cpp:1364
static uint16_t invisiblecolor
Definition: PokittoDisplay.h:168
static uint8_t clipLine(int16_t *, int16_t *, int16_t *, int16_t *)
Definition: PokittoDisplay.cpp:699
static void directBitmap(int16_t, int16_t, const uint8_t *, uint8_t, uint8_t)
Definition: PokittoDisplay.cpp:270
static void drawPixel(int16_t, int16_t)
Definition: PokittoDisplay.cpp:530
static uint8_t * getBuffer()
Definition: PokittoDisplay.cpp:1705
static uint16_t RGBto565(uint8_t, uint8_t, uint8_t)
Definition: PokittoPalette.cpp:82
static void fillLCD(uint16_t)
Definition: PokittoDisplay.cpp:207
static void rotatePalette(int8_t)
Definition: PokittoPalette.cpp:62
static void drawRect(int16_t x, int16_t y, int16_t w, int16_t h)
Definition: PokittoDisplay.cpp:851
static void setDefaultPalette()
Definition: PokittoDisplay.cpp:449
static void loadRGBPalette(const unsigned char *)
Definition: PokittoPalette.cpp:52
static uint16_t bgcolor
Definition: PokittoDisplay.h:166
static uint16_t interpolateColor(uint16_t, uint16_t, uint8_t)
Definition: PokittoPalette.cpp:90
static void setFont(const unsigned char *f)
Definition: PokittoDisplay.cpp:1066
static void drawRectangle(int16_t, int16_t, int16_t, int16_t)
Definition: PokittoDisplay.cpp:826
static void map1BitColumn(int16_t, int16_t, int16_t, const uint8_t *, uint16_t)
Definition: PokittoDisplay.cpp:761
static void loadTileset(const uint8_t *)
Definition: PokittoDisplay.cpp:2138
static void fillRectangle(int16_t, int16_t, int16_t, int16_t)
Definition: PokittoDisplay.cpp:833
static void drawChar(int8_t x, int8_t y, unsigned char c, uint8_t size)
Definition: PokittoDisplay.cpp:1721
static void fillRect(int16_t x, int16_t y, int16_t w, int16_t h)
Definition: PokittoDisplay.cpp:847
static void draw4BitColumn(int16_t x, int16_t y, uint8_t h, uint8_t *bitmap)
Definition: PokittoDisplay.cpp:2077
static uint16_t palette[PALETTE_SIZE]
Definition: PokittoDisplay.h:213
static uint8_t getBitmapPixel(const uint8_t *, uint16_t, uint16_t)
Definition: PokittoDisplay.cpp:1709
static void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint16_t cornername)
Definition: PokittoDisplay.cpp:890
static void drawFastVLine(int16_t, int16_t, int16_t)
Definition: PokittoDisplay.cpp:816
static void lcdRefresh(unsigned char *)
Definition: PokittoDisplay.cpp:2106
Definition: PokittoDisplay.h:136
static void drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap)
Definition: PokittoDisplay.cpp:1248
static uint8_t getColor()
Definition: PokittoDisplay.cpp:470
static void setInvisibleColor(uint16_t)
Definition: PokittoDisplay.cpp:466
static void scroll(int16_t)
Definition: PokittoDisplay.cpp:413
static void tweenPalette(uint16_t *, const uint16_t *, const uint16_t *, uint8_t)
Definition: PokittoPalette.cpp:119
static void load565Palette(const uint16_t *)
Definition: PokittoPalette.cpp:57
Definition: PokittoBacklight.h:42
static void drawMonoBitmap(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t index)
Definition: PokittoDisplay.cpp:1072
static void begin()
Definition: PokittoDisplay.cpp:219
static void fillCircle(int16_t x0, int16_t y0, int16_t r)
Definition: PokittoDisplay.cpp:926
static uint16_t * paletteptr
Definition: PokittoDisplay.h:215
static void clear()
Definition: PokittoDisplay.cpp:394
static void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius)
Definition: PokittoDisplay.cpp:960
static void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint16_t cornername, int16_t delta)
Definition: PokittoDisplay.cpp:931
static uint8_t persistence
Definition: PokittoDisplay.h:162
static void update()
Definition: PokittoDisplay.cpp:228
static void clearLCD()
Definition: PokittoDisplay.cpp:202
static void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius)
Definition: PokittoDisplay.cpp:974
static void setFrameBufferTo(uint8_t *)
Definition: PokittoDisplay.cpp:2130
static void drawLine(int16_t, int16_t, int16_t, int16_t)
Definition: PokittoDisplay.cpp:627
static void drawBitmapData(int16_t x, int16_t y, int16_t w, int16_t h, const uint8_t *bitmap)
Definition: PokittoDisplay.cpp:1256
static uint16_t directcolor
Definition: PokittoDisplay.h:170
static uint16_t getInvisibleColor()
Definition: PokittoDisplay.cpp:478
static uint8_t getBgColor()
Definition: PokittoDisplay.cpp:474
static void drawColumn(int16_t, int16_t, int16_t)
Definition: PokittoDisplay.cpp:789
static uint8_t fontWidth
Definition: PokittoDisplay.h:318
static void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2)
Definition: PokittoDisplay.cpp:990
static void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2)
Definition: PokittoDisplay.cpp:982
static uint16_t color
Definition: PokittoDisplay.h:164
static void fillScreen(uint16_t)
Definition: PokittoDisplay.cpp:436
static void drawRow(int16_t, int16_t, int16_t)
Definition: PokittoDisplay.cpp:802
static void drawCircle(int16_t x0, int16_t y0, int16_t r)
Definition: PokittoDisplay.cpp:855
static void directPixel(int16_t, int16_t, uint16_t)
Definition: PokittoDisplay.cpp:211
static int directChar(int16_t, int16_t, uint16_t)
Definition: PokittoDisplay.cpp:317
static void setColor(uint8_t)
Definition: PokittoDisplay.cpp:457
static void setCursor(int16_t, int16_t)
Definition: PokittoDisplay.cpp:223
static void directRectangle(int16_t, int16_t, int16_t, int16_t, uint16_t)
Definition: PokittoDisplay.cpp:215