Replace color format conversion macros with proper routines to prevent side effects with using the macro.
Also fix a number of compiler warnings.ugfx_release_2.6
parent
643670ecd1
commit
7f1b78a067
|
@ -493,6 +493,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
uint8_t bitpos;
|
uint8_t bitpos;
|
||||||
|
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
bx = g->p.x / EINK_BLOCKWIDTH;
|
bx = g->p.x / EINK_BLOCKWIDTH;
|
||||||
dx = g->p.x % EINK_BLOCKWIDTH;
|
dx = g->p.x % EINK_BLOCKWIDTH;
|
||||||
|
@ -524,7 +525,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
bitpos = (6 - 2 * (dx % EINK_PPB));
|
bitpos = (6 - 2 * (dx % EINK_PPB));
|
||||||
byte = block->data[dy][dx / EINK_PPB];
|
byte = block->data[dy][dx / EINK_PPB];
|
||||||
byte &= ~(PIXELMASK << bitpos);
|
byte &= ~(PIXELMASK << bitpos);
|
||||||
if (COLOR2NATIVE(g->p.color) != Black)
|
if (gdispColor2Native(g->p.color) != Black)
|
||||||
byte |= PIXEL_WHITE << bitpos;
|
byte |= PIXEL_WHITE << bitpos;
|
||||||
else
|
else
|
||||||
byte |= PIXEL_BLACK << bitpos;
|
byte |= PIXEL_BLACK << bitpos;
|
||||||
|
|
|
@ -167,7 +167,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
busmode16(g);
|
busmode16(g);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_ram16(g, COLOR2NATIVE(g->p.color));
|
write_ram16(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
busmode8(g);
|
busmode8(g);
|
||||||
|
|
|
@ -60,6 +60,7 @@
|
||||||
|
|
||||||
static void set_cursor(GDisplay *g) {
|
static void set_cursor(GDisplay *g) {
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
case GDISP_ROTATE_180:
|
case GDISP_ROTATE_180:
|
||||||
write_reg(g, 0x20, g->p.x);
|
write_reg(g, 0x20, g->p.x);
|
||||||
|
@ -77,6 +78,7 @@ static void set_cursor(GDisplay *g) {
|
||||||
|
|
||||||
static void set_viewport(GDisplay *g) {
|
static void set_viewport(GDisplay *g) {
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
case GDISP_ROTATE_180:
|
case GDISP_ROTATE_180:
|
||||||
write_reg(g, 0x50, g->p.x);
|
write_reg(g, 0x50, g->p.x);
|
||||||
|
@ -204,7 +206,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_data(g, COLOR2NATIVE(g->p.color));
|
write_data(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
@ -228,7 +230,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
|
|
||||||
data = read_data(g);
|
data = read_data(g);
|
||||||
return NATIVE2COLOR(data);
|
return gdispNative2Color(data);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
||||||
setwritemode(g);
|
setwritemode(g);
|
||||||
|
|
|
@ -61,6 +61,7 @@
|
||||||
|
|
||||||
static void set_cursor(GDisplay *g) {
|
static void set_cursor(GDisplay *g) {
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
case GDISP_ROTATE_180:
|
case GDISP_ROTATE_180:
|
||||||
write_reg(g, 0x20, g->p.x);
|
write_reg(g, 0x20, g->p.x);
|
||||||
|
@ -78,6 +79,7 @@ static void set_cursor(GDisplay *g) {
|
||||||
|
|
||||||
static void set_viewport(GDisplay* g) {
|
static void set_viewport(GDisplay* g) {
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
case GDISP_ROTATE_180:
|
case GDISP_ROTATE_180:
|
||||||
write_reg(g, 0x50, g->p.x);
|
write_reg(g, 0x50, g->p.x);
|
||||||
|
@ -200,7 +202,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_data(g, COLOR2NATIVE(g->p.color));
|
write_data(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
@ -222,7 +224,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
|
|
||||||
data = read_data(g);
|
data = read_data(g);
|
||||||
return NATIVE2COLOR(data);
|
return gdispNative2Color(data);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
||||||
setwritemode(g);
|
setwritemode(g);
|
||||||
|
|
|
@ -246,7 +246,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
write_index(g, 0x2C);
|
write_index(g, 0x2C);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_data16(g, COLOR2NATIVE(g->p.color));
|
write_data16(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
@ -265,7 +265,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
|
|
||||||
data = read_data(g);
|
data = read_data(g);
|
||||||
return NATIVE2COLOR(data);
|
return gdispNative2Color(data);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
||||||
setwritemode(g);
|
setwritemode(g);
|
||||||
|
|
|
@ -211,7 +211,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_data(g, COLOR2NATIVE(g->p.color));
|
write_data(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
@ -229,7 +229,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
|
|
||||||
data = read_data(g);
|
data = read_data(g);
|
||||||
return NATIVE2COLOR(data);
|
return gdispNative2Color(data);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
||||||
setwritemode(g);
|
setwritemode(g);
|
||||||
|
|
|
@ -145,7 +145,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
uint16_t c;
|
uint16_t c;
|
||||||
|
|
||||||
c = COLOR2NATIVE(g->p.color);
|
c = gdispColor2Native(g->p.color);
|
||||||
if ((g->flags & GDISP_FLG_ODDBYTE)) {
|
if ((g->flags & GDISP_FLG_ODDBYTE)) {
|
||||||
// Write the pair of pixels to the display
|
// Write the pair of pixels to the display
|
||||||
write_data3(g, ((savecolor(g) >> 4) & 0xFF),
|
write_data3(g, ((savecolor(g) >> 4) & 0xFF),
|
||||||
|
|
|
@ -139,22 +139,23 @@
|
||||||
static inline void set_viewport(GDisplay* g) {
|
static inline void set_viewport(GDisplay* g) {
|
||||||
#if GDISP_NOKIA_ORIENTATION && GDISP_NEED_CONTROL
|
#if GDISP_NOKIA_ORIENTATION && GDISP_NEED_CONTROL
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
case GDISP_ROTATE_0:
|
default:
|
||||||
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET+g->p.x, GDISP_RAM_X_OFFSET+g->p.x); // Column address set
|
case GDISP_ROTATE_0:
|
||||||
write_cmd2(g, PASET, GDISP_RAM_Y_OFFSET+g->p.y, GDISP_RAM_Y_OFFSET+g->p.y); // Page address set
|
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET+g->p.x, GDISP_RAM_X_OFFSET+g->p.x); // Column address set
|
||||||
break;
|
write_cmd2(g, PASET, GDISP_RAM_Y_OFFSET+g->p.y, GDISP_RAM_Y_OFFSET+g->p.y); // Page address set
|
||||||
case GDISP_ROTATE_90:
|
break;
|
||||||
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET+g->p.y, GDISP_RAM_X_OFFSET+g->p.y);
|
case GDISP_ROTATE_90:
|
||||||
write_cmd2(g, PASET, GDISP_RAM_Y_OFFSET-1+g->g.Width-g->p.x, GDISP_RAM_Y_OFFSET-1+g->g.Width-g->p.x);
|
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET+g->p.y, GDISP_RAM_X_OFFSET+g->p.y);
|
||||||
break;
|
write_cmd2(g, PASET, GDISP_RAM_Y_OFFSET-1+g->g.Width-g->p.x, GDISP_RAM_Y_OFFSET-1+g->g.Width-g->p.x);
|
||||||
case GDISP_ROTATE_180:
|
break;
|
||||||
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET-1+g->g.Width-g->p.x, GDISP_RAM_X_OFFSET-1+g->g.Width-g->p.x);
|
case GDISP_ROTATE_180:
|
||||||
write_cmd2(g, PASET, GDISP_RAM_Y_OFFSET-1+g->g.Height-g->p.y, GDISP_RAM_Y_OFFSET-1+g->g.Height-g->p.y);
|
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET-1+g->g.Width-g->p.x, GDISP_RAM_X_OFFSET-1+g->g.Width-g->p.x);
|
||||||
break;
|
write_cmd2(g, PASET, GDISP_RAM_Y_OFFSET-1+g->g.Height-g->p.y, GDISP_RAM_Y_OFFSET-1+g->g.Height-g->p.y);
|
||||||
case GDISP_ROTATE_270:
|
break;
|
||||||
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET-1+g->g.Height-g->p.y, GDISP_RAM_X_OFFSET-1+g->g.Height-g->p.y);
|
case GDISP_ROTATE_270:
|
||||||
write_cmd2(g, PASET, GDISP_RAM_Y_OFFSET+g->p.x, GDISP_RAM_Y_OFFSET+g->p.x);
|
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET-1+g->g.Height-g->p.y, GDISP_RAM_X_OFFSET-1+g->g.Height-g->p.y);
|
||||||
break;
|
write_cmd2(g, PASET, GDISP_RAM_Y_OFFSET+g->p.x, GDISP_RAM_Y_OFFSET+g->p.x);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET+g->p.x, GDISP_RAM_X_OFFSET+g->p.x+g->p.cx-1); // Column address set
|
write_cmd2(g, CASET, GDISP_RAM_X_OFFSET+g->p.x, GDISP_RAM_X_OFFSET+g->p.x+g->p.cx-1); // Column address set
|
||||||
|
@ -233,7 +234,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
uint16_t c;
|
uint16_t c;
|
||||||
|
|
||||||
c = COLOR2NATIVE(g->p.color);
|
c = gdispColor2Native(g->p.color);
|
||||||
#if GDISP_GE8_BROKEN_CONTROLLER
|
#if GDISP_GE8_BROKEN_CONTROLLER
|
||||||
if (!(g->flags & GDISP_FLG_RUNBYTE)) {
|
if (!(g->flags & GDISP_FLG_RUNBYTE)) {
|
||||||
PRIV->firstcolor = c;
|
PRIV->firstcolor = c;
|
||||||
|
@ -289,7 +290,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) {
|
LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) {
|
||||||
uint16_t c;
|
uint16_t c;
|
||||||
|
|
||||||
c = COLOR2NATIVE(g->p.color);
|
c = gdispColor2Native(g->p.color);
|
||||||
acquire_bus(g);
|
acquire_bus(g);
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
write_data3(g, 0, (c>>8) & 0x0F, c & 0xFF);
|
write_data3(g, 0, (c>>8) & 0x0F, c & 0xFF);
|
||||||
|
@ -307,7 +308,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
tuples = (g->p.cx*g->p.cy+1)>>1; // With an odd sized area we over-print by one pixel.
|
tuples = (g->p.cx*g->p.cy+1)>>1; // With an odd sized area we over-print by one pixel.
|
||||||
// This extra pixel overwrites the first pixel (harmless as it is the same colour)
|
// This extra pixel overwrites the first pixel (harmless as it is the same colour)
|
||||||
|
|
||||||
c = COLOR2NATIVE(g->p.color);
|
c = gdispColor2Native(g->p.color);
|
||||||
acquire_bus(g);
|
acquire_bus(g);
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
while(tuples--)
|
while(tuples--)
|
||||||
|
@ -348,6 +349,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
* to column cx-1, cx-2 etc. We therefore have to write-out the last bitmap line first.
|
* to column cx-1, cx-2 etc. We therefore have to write-out the last bitmap line first.
|
||||||
*/
|
*/
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0: x = 0; y = 0; break;
|
case GDISP_ROTATE_0: x = 0; y = 0; break;
|
||||||
case GDISP_ROTATE_90: x = g->p.cx-1; y = 0; break;
|
case GDISP_ROTATE_90: x = g->p.cx-1; y = 0; break;
|
||||||
case GDISP_ROTATE_180: x = g->p.cx-1; y = g->p.cy-1; break;
|
case GDISP_ROTATE_180: x = g->p.cx-1; y = g->p.cy-1; break;
|
||||||
|
@ -364,7 +366,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
|
|
||||||
while(tuples--) {
|
while(tuples--) {
|
||||||
/* Get a pixel */
|
/* Get a pixel */
|
||||||
c1 = COLOR2NATIVE(*p++);
|
c1 = gdispColor2Native(*p++);
|
||||||
|
|
||||||
/* Check for line or buffer wrapping */
|
/* Check for line or buffer wrapping */
|
||||||
if (++x >= g->p.cx) {
|
if (++x >= g->p.cx) {
|
||||||
|
@ -377,7 +379,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the next pixel */
|
/* Get the next pixel */
|
||||||
c2 = COLOR2NATIVE(*p++);
|
c2 = gdispColor2Native(*p++);
|
||||||
|
|
||||||
/* Check for line or buffer wrapping */
|
/* Check for line or buffer wrapping */
|
||||||
if (++x >= g->p.cx) {
|
if (++x >= g->p.cx) {
|
||||||
|
|
|
@ -184,7 +184,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_data(g, COLOR2NATIVE(g->p.color));
|
write_data(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
|
|
@ -64,6 +64,7 @@ static inline void set_cursor(GDisplay *g) {
|
||||||
* R21h - 9 bit
|
* R21h - 9 bit
|
||||||
*/
|
*/
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
write_reg(g, 0x20, g->p.x & 0x00FF);
|
write_reg(g, 0x20, g->p.x & 0x00FF);
|
||||||
write_reg(g, 0x21, g->p.y & 0x01FF);
|
write_reg(g, 0x21, g->p.y & 0x01FF);
|
||||||
|
@ -91,6 +92,7 @@ static inline void set_viewport(GDisplay *g) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
write_reg(g, 0x46, (((g->p.x + g->p.cx - 1) << 8) & 0xFF00 ) | (g->p.x & 0x00FF));
|
write_reg(g, 0x46, (((g->p.x + g->p.cx - 1) << 8) & 0xFF00 ) | (g->p.x & 0x00FF));
|
||||||
write_reg(g, 0x48, g->p.y & 0x01FF);
|
write_reg(g, 0x48, g->p.y & 0x01FF);
|
||||||
|
@ -221,7 +223,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_data(g, COLOR2NATIVE(g->p.color));
|
write_data(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
@ -243,7 +245,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
|
|
||||||
data = read_data(g);
|
data = read_data(g);
|
||||||
return NATIVE2COLOR(data);
|
return gdispNative2Color(data);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
||||||
setwritemode(g);
|
setwritemode(g);
|
||||||
|
|
|
@ -52,6 +52,7 @@ static void set_cursor(GDisplay *g) {
|
||||||
* Use a bit mask to make sure they are not set too high
|
* Use a bit mask to make sure they are not set too high
|
||||||
*/
|
*/
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
write_reg(g, 0x4e, g->p.x & 0x00FF);
|
write_reg(g, 0x4e, g->p.x & 0x00FF);
|
||||||
write_reg(g, 0x4f, g->p.y & 0x01FF);
|
write_reg(g, 0x4f, g->p.y & 0x01FF);
|
||||||
|
@ -83,6 +84,7 @@ static void set_viewport(GDisplay* g) {
|
||||||
* Use a bit mask to make sure they are not set too high
|
* Use a bit mask to make sure they are not set too high
|
||||||
*/
|
*/
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
write_reg(g, 0x44, (((g->p.x+g->p.cx-1) << 8) & 0xFF00 ) | (g->p.x & 0x00FF));
|
write_reg(g, 0x44, (((g->p.x+g->p.cx-1) << 8) & 0xFF00 ) | (g->p.x & 0x00FF));
|
||||||
write_reg(g, 0x45, g->p.y & 0x01FF);
|
write_reg(g, 0x45, g->p.y & 0x01FF);
|
||||||
|
@ -200,7 +202,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_data(g, COLOR2NATIVE(g->p.color));
|
write_data(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
@ -224,7 +226,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
|
|
||||||
data = read_data(g);
|
data = read_data(g);
|
||||||
return NATIVE2COLOR(data);
|
return gdispNative2Color(data);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
||||||
setwritemode(g);
|
setwritemode(g);
|
||||||
|
@ -236,7 +238,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
LLDSPEC void gdisp_lld_fill_area(GDisplay *g) {
|
LLDSPEC void gdisp_lld_fill_area(GDisplay *g) {
|
||||||
uint16_t c;
|
uint16_t c;
|
||||||
|
|
||||||
c = COLOR2NATIVE(g->p.color);
|
c = gdispColor2Native(g->p.color);
|
||||||
acquire_bus(g);
|
acquire_bus(g);
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
set_cursor(g);
|
set_cursor(g);
|
||||||
|
|
|
@ -159,6 +159,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
coord_t x, y;
|
coord_t x, y;
|
||||||
|
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
x = g->p.x;
|
x = g->p.x;
|
||||||
y = g->p.y;
|
y = g->p.y;
|
||||||
|
@ -176,7 +177,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
x = g->p.x;
|
x = g->p.x;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (COLOR2NATIVE(g->p.color) != Black)
|
if (gdispColor2Native(g->p.color) != Black)
|
||||||
RAM(g)[xyaddr(x, y)] |= xybit(y);
|
RAM(g)[xyaddr(x, y)] |= xybit(y);
|
||||||
else
|
else
|
||||||
RAM(g)[xyaddr(x, y)] &= ~xybit(y);
|
RAM(g)[xyaddr(x, y)] &= ~xybit(y);
|
||||||
|
@ -189,6 +190,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
coord_t x, y;
|
coord_t x, y;
|
||||||
|
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
x = g->p.x;
|
x = g->p.x;
|
||||||
y = g->p.y;
|
y = g->p.y;
|
||||||
|
|
|
@ -188,7 +188,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay *g) {
|
||||||
write_data(g, COLOR2NATIVE(g->p.color));
|
write_data(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay *g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
|
|
@ -53,6 +53,7 @@ static void set_cursor(GDisplay* g) {
|
||||||
* Use a bit mask to make sure they are not set too high
|
* Use a bit mask to make sure they are not set too high
|
||||||
*/
|
*/
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
write_reg(g, SSD2119_REG_X_RAM_ADDR, g->p.x & 0x01FF);
|
write_reg(g, SSD2119_REG_X_RAM_ADDR, g->p.x & 0x01FF);
|
||||||
write_reg(g, SSD2119_REG_Y_RAM_ADDR, g->p.y & 0x00FF);
|
write_reg(g, SSD2119_REG_Y_RAM_ADDR, g->p.y & 0x00FF);
|
||||||
|
@ -83,6 +84,7 @@ static void set_viewport(GDisplay* g) {
|
||||||
* 0 <= HSA <= HEA <= 0x13F
|
* 0 <= HSA <= HEA <= 0x13F
|
||||||
*/
|
*/
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
write_reg(g, SSD2119_REG_V_RAM_POS, (((g->p.y + g->p.cy - 1) << 8) & 0xFF00 ) | (g->p.y & 0x00FF));
|
write_reg(g, SSD2119_REG_V_RAM_POS, (((g->p.y + g->p.cy - 1) << 8) & 0xFF00 ) | (g->p.y & 0x00FF));
|
||||||
write_reg(g, SSD2119_REG_H_RAM_START, (g->p.x & 0x01FF));
|
write_reg(g, SSD2119_REG_H_RAM_START, (g->p.x & 0x01FF));
|
||||||
|
@ -238,7 +240,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay* g) {
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_color(GDisplay* g) {
|
LLDSPEC void gdisp_lld_write_color(GDisplay* g) {
|
||||||
write_data(g, COLOR2NATIVE(g->p.color));
|
write_data(g, gdispColor2Native(g->p.color));
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_write_stop(GDisplay* g) {
|
LLDSPEC void gdisp_lld_write_stop(GDisplay* g) {
|
||||||
release_bus(g);
|
release_bus(g);
|
||||||
|
@ -260,7 +262,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay* g) {
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
|
|
||||||
data = read_data(g);
|
data = read_data(g);
|
||||||
return NATIVE2COLOR(data);
|
return gdispNative2Color(data);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_read_stop(GDisplay* g) {
|
LLDSPEC void gdisp_lld_read_stop(GDisplay* g) {
|
||||||
setwritemode(g);
|
setwritemode(g);
|
||||||
|
@ -272,7 +274,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay* g) {
|
||||||
LLDSPEC void gdisp_lld_fill_area(GDisplay* g) {
|
LLDSPEC void gdisp_lld_fill_area(GDisplay* g) {
|
||||||
uint16_t c;
|
uint16_t c;
|
||||||
|
|
||||||
c = COLOR2NATIVE(g->p.color);
|
c = gdispColor2Native(g->p.color);
|
||||||
acquire_bus(g);
|
acquire_bus(g);
|
||||||
set_viewport(g);
|
set_viewport(g);
|
||||||
set_cursor(g);
|
set_cursor(g);
|
||||||
|
|
|
@ -150,6 +150,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
coord_t x, y;
|
coord_t x, y;
|
||||||
|
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
x = g->p.x;
|
x = g->p.x;
|
||||||
y = g->p.y;
|
y = g->p.y;
|
||||||
|
@ -167,7 +168,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
y = g->p.x;
|
y = g->p.x;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (COLOR2NATIVE(g->p.color) != Black)
|
if (gdispColor2Native(g->p.color) != Black)
|
||||||
RAM(g)[xyaddr(x, y)] |= xybit(y);
|
RAM(g)[xyaddr(x, y)] |= xybit(y);
|
||||||
else
|
else
|
||||||
RAM(g)[xyaddr(x, y)] &= ~xybit(y);
|
RAM(g)[xyaddr(x, y)] &= ~xybit(y);
|
||||||
|
@ -180,6 +181,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
coord_t x, y;
|
coord_t x, y;
|
||||||
|
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
default:
|
||||||
case GDISP_ROTATE_0:
|
case GDISP_ROTATE_0:
|
||||||
x = g->p.x;
|
x = g->p.x;
|
||||||
y = g->p.y;
|
y = g->p.y;
|
||||||
|
|
|
@ -286,9 +286,9 @@ static LRESULT myWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
// Paint the toggle area
|
// Paint the toggle area
|
||||||
#if GINPUT_NEED_TOGGLE
|
#if GINPUT_NEED_TOGGLE
|
||||||
if (ps.rcPaint.bottom >= GDISP_SCREEN_HEIGHT && (g->flags & GDISP_FLG_HASTOGGLE)) {
|
if (ps.rcPaint.bottom >= GDISP_SCREEN_HEIGHT && (g->flags & GDISP_FLG_HASTOGGLE)) {
|
||||||
pen = CreatePen(PS_SOLID, 1, COLOR2NATIVE(Black));
|
pen = CreatePen(PS_SOLID, 1, gdispColor2Native(Black));
|
||||||
hbrOn = CreateSolidBrush(COLOR2NATIVE(Blue));
|
hbrOn = CreateSolidBrush(gdispColor2Native(Blue));
|
||||||
hbrOff = CreateSolidBrush(COLOR2NATIVE(Gray));
|
hbrOff = CreateSolidBrush(gdispColor2Native(Gray));
|
||||||
old = SelectObject(dc, pen);
|
old = SelectObject(dc, pen);
|
||||||
MoveToEx(dc, 0, GDISP_SCREEN_HEIGHT, &p);
|
MoveToEx(dc, 0, GDISP_SCREEN_HEIGHT, &p);
|
||||||
LineTo(dc, GDISP_SCREEN_WIDTH, GDISP_SCREEN_HEIGHT);
|
LineTo(dc, GDISP_SCREEN_WIDTH, GDISP_SCREEN_HEIGHT);
|
||||||
|
@ -514,7 +514,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
COLORREF color;
|
COLORREF color;
|
||||||
|
|
||||||
priv = g->priv;
|
priv = g->priv;
|
||||||
color = COLOR2NATIVE(g->p.color);
|
color = gdispColor2Native(g->p.color);
|
||||||
|
|
||||||
if (!(g->flags & GDISP_FLG_WSTREAM))
|
if (!(g->flags & GDISP_FLG_WSTREAM))
|
||||||
BAD_PARAMETER("write_color: not in streaming mode");
|
BAD_PARAMETER("write_color: not in streaming mode");
|
||||||
|
@ -664,7 +664,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return NATIVE2COLOR(color);
|
return gdispNative2Color(color);
|
||||||
}
|
}
|
||||||
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
LLDSPEC void gdisp_lld_read_stop(GDisplay *g) {
|
||||||
if (!(g->flags & GDISP_FLG_WSTREAM))
|
if (!(g->flags & GDISP_FLG_WSTREAM))
|
||||||
|
@ -680,7 +680,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
COLORREF color;
|
COLORREF color;
|
||||||
|
|
||||||
priv = g->priv;
|
priv = g->priv;
|
||||||
color = COLOR2NATIVE(g->p.color);
|
color = gdispColor2Native(g->p.color);
|
||||||
|
|
||||||
#if GDISP_NEED_CONTROL
|
#if GDISP_NEED_CONTROL
|
||||||
switch(g->g.Orientation) {
|
switch(g->g.Orientation) {
|
||||||
|
@ -740,7 +740,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
COLORREF color;
|
COLORREF color;
|
||||||
|
|
||||||
priv = g->priv;
|
priv = g->priv;
|
||||||
color = COLOR2NATIVE(g->p.color);
|
color = gdispColor2Native(g->p.color);
|
||||||
hbr = CreateSolidBrush(color);
|
hbr = CreateSolidBrush(color);
|
||||||
|
|
||||||
#if GDISP_NEED_CONTROL
|
#if GDISP_NEED_CONTROL
|
||||||
|
@ -975,7 +975,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
#endif
|
#endif
|
||||||
ReleaseMutex(drawMutex);
|
ReleaseMutex(drawMutex);
|
||||||
|
|
||||||
return NATIVE2COLOR(color);
|
return gdispNative2Color(color);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -425,7 +425,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
buf[0] = GNETCODE_PIXEL;
|
buf[0] = GNETCODE_PIXEL;
|
||||||
buf[1] = g->p.x;
|
buf[1] = g->p.x;
|
||||||
buf[2] = g->p.y;
|
buf[2] = g->p.y;
|
||||||
buf[3] = COLOR2NATIVE(g->p.color);
|
buf[3] = gdispColor2Native(g->p.color);
|
||||||
MUTEX_ENTER;
|
MUTEX_ENTER;
|
||||||
sendpkt(priv->netfd, buf, 4);
|
sendpkt(priv->netfd, buf, 4);
|
||||||
MUTEX_EXIT;
|
MUTEX_EXIT;
|
||||||
|
@ -453,7 +453,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
buf[2] = g->p.y;
|
buf[2] = g->p.y;
|
||||||
buf[3] = g->p.cx;
|
buf[3] = g->p.cx;
|
||||||
buf[4] = g->p.cy;
|
buf[4] = g->p.cy;
|
||||||
buf[5] = COLOR2NATIVE(g->p.color);
|
buf[5] = gdispColor2Native(g->p.color);
|
||||||
MUTEX_ENTER;
|
MUTEX_ENTER;
|
||||||
sendpkt(priv->netfd, buf, 6);
|
sendpkt(priv->netfd, buf, 6);
|
||||||
MUTEX_EXIT;
|
MUTEX_EXIT;
|
||||||
|
@ -490,7 +490,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
|
|
||||||
for(y = 0; y < g->p.cy; y++, buffer += g->p.x2 - g->p.cx) {
|
for(y = 0; y < g->p.cy; y++, buffer += g->p.x2 - g->p.cx) {
|
||||||
for(x = 0; x < g->p.cx; x++, buffer++) {
|
for(x = 0; x < g->p.cx; x++, buffer++) {
|
||||||
buf[0] = COLOR2NATIVE(buffer[0]);
|
buf[0] = gdispColor2Native(buffer[0]);
|
||||||
sendpkt(priv->netfd, buf, 1);
|
sendpkt(priv->netfd, buf, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -524,7 +524,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
|
||||||
while(!(g->flags & GDISP_FLG_HAVEDATA) || priv->data[0] != GNETCODE_READ)
|
while(!(g->flags & GDISP_FLG_HAVEDATA) || priv->data[0] != GNETCODE_READ)
|
||||||
gfxSleepMilliseconds(1);
|
gfxSleepMilliseconds(1);
|
||||||
|
|
||||||
data = NATIVE2COLOR(priv->data[1]);
|
data = gdispNative2Color(priv->data[1]);
|
||||||
g->flags &= ~GDISP_FLG_HAVEDATA;
|
g->flags &= ~GDISP_FLG_HAVEDATA;
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
|
|
@ -856,52 +856,18 @@ struct GDisplay {
|
||||||
* @brief Convert from a standard color format to the low level driver pixel format
|
* @brief Convert from a standard color format to the low level driver pixel format
|
||||||
* @note For use only by low level drivers
|
* @note For use only by low level drivers
|
||||||
*/
|
*/
|
||||||
#define COLOR2NATIVE(c) (c)
|
#define gdispColor2Native(c) (c)
|
||||||
/**
|
/**
|
||||||
* @brief Convert from a low level driver pixel format to the standard color format
|
* @brief Convert from a low level driver pixel format to the standard color format
|
||||||
* @note For use only by low level drivers
|
* @note For use only by low level drivers
|
||||||
*/
|
*/
|
||||||
#define NATIVE2COLOR(c) (c)
|
#define gdispNative2Color(c) (c)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#if COLOR_SYSTEM == GDISP_COLORSYSTEM_GRAYSCALE || LLDCOLOR_SYSTEM == GDISP_COLORSYSTEM_GRAYSCALE
|
LLDCOLOR_TYPE gdispColor2Native(color_t c);
|
||||||
#if GDISP_HARDWARE_USE_EXACT_COLOR
|
color_t gdispNative2Color(LLDCOLOR_TYPE c);
|
||||||
#define COLOR2NATIVE(c) LLDLUMA2COLOR(EXACT_LUMA_OF(c))
|
|
||||||
#define NATIVE2COLOR(c) LUMA2COLOR(LLDEXACT_LUMA_OF(c))
|
|
||||||
#else
|
|
||||||
#define COLOR2NATIVE(c) LLDLUMA2COLOR(LUMA_OF(c))
|
|
||||||
#define NATIVE2COLOR(c) LUMA2COLOR(LLDLUMA_OF(c))
|
|
||||||
#endif
|
|
||||||
#elif COLOR_SYSTEM == GDISP_COLORSYSTEM_TRUECOLOR && LLDCOLOR_SYSTEM == GDISP_COLORSYSTEM_TRUECOLOR
|
|
||||||
#if GDISP_HARDWARE_USE_EXACT_COLOR
|
|
||||||
#define COLOR2NATIVE(c) LLDRGB2COLOR(EXACT_RED_OF(c), EXACT_GREEN_OF(c), EXACT_BLUE_OF(c))
|
|
||||||
#define NATIVE2COLOR(c) RGB2COLOR(LLDEXACT_RED_OF(c), LLDEXACT_GREEN_OF(c), LLDEXACT_BLUE_OF(c))
|
|
||||||
#else
|
|
||||||
#define COLOR2NATIVE(c) LLDRGB2COLOR(RED_OF(c), GREEN_OF(c), BLUE_OF(c))
|
|
||||||
#define NATIVE2COLOR(c) RGB2COLOR(LLDRED_OF(c), LLDGREEN_OF(c), LLDBLUE_OF(c))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
#elif GDISP_PIXELFORMAT == GDISP_PIXELFORMAT_RGB888 && GDISP_LLD_PIXELFORMAT == GDISP_PIXELFORMAT_BGR888
|
|
||||||
#define COLOR2NATIVE(c) ((LLDCOLOR_TYPE)(((c)&0xFF0000)>>16)|((c)&0x00FF00)|(((c)&0x0000FF)<<16))
|
|
||||||
#define NATIVE2COLOR(c) ((COLOR_TYPE)(((c)&0xFF0000)>>16)|((c)&0x00FF00)|(((c)&0x0000FF)<<16))
|
|
||||||
#elif GDISP_PIXELFORMAT == GDISP_PIXELFORMAT_RGB565 && GDISP_LLD_PIXELFORMAT == GDISP_PIXELFORMAT_BGR888
|
|
||||||
#define COLOR2NATIVE(c) ((LLDCOLOR_TYPE)( \
|
|
||||||
((LARGER_COLOR_TYPE)((c)&(((1<<COLOR_BITS_R)-1)<<COLOR_SHIFT_R))>>(COLOR_BITS_R+COLOR_SHIFT_R-8))| \
|
|
||||||
((LARGER_COLOR_TYPE)((c)&(((1<<COLOR_BITS_G)-1)<<COLOR_SHIFT_G))<<(16-(COLOR_BITS_G+COLOR_SHIFT_G)))| \
|
|
||||||
((LARGER_COLOR_TYPE)((c)&(((1<<COLOR_BITS_B)-1)<<COLOR_SHIFT_B))<<(24-(COLOR_BITS_B+COLOR_SHIFT_B)))))
|
|
||||||
#define NATIVE2COLOR(c) ((COLOR_TYPE)( \
|
|
||||||
((LARGER_COLOR_TYPE)((c)&0x0000F8)<<COLOR_SHIFT_R)| \
|
|
||||||
((LARGER_COLOR_TYPE)((c)&0x00FC00)>>(16-(COLOR_BITS_G+COLOR_SHIFT_G)))| \
|
|
||||||
((LARGER_COLOR_TYPE)((c)&0xF80000)>>(24-(COLOR_BITS_B+COLOR_SHIFT_B)))))
|
|
||||||
*/
|
|
||||||
#else
|
|
||||||
#error "GDISP: This pixel format conversion is not supported yet"
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* GFX_USE_GDISP */
|
#endif /* GFX_USE_GDISP */
|
||||||
|
|
||||||
#endif /* _GDISP_LLD_H */
|
#endif /* _GDISP_LLD_H */
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
|
@ -2825,6 +2825,45 @@ color_t gdispBlendColor(color_t fg, color_t bg, uint8_t alpha)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if GDISP_PIXELFORMAT != GDISP_LLD_PIXELFORMAT
|
||||||
|
LLDCOLOR_TYPE gdispColor2Native(color_t c) {
|
||||||
|
#if COLOR_SYSTEM == GDISP_COLORSYSTEM_GRAYSCALE || LLDCOLOR_SYSTEM == GDISP_COLORSYSTEM_GRAYSCALE
|
||||||
|
#if GDISP_HARDWARE_USE_EXACT_COLOR
|
||||||
|
return LLDLUMA2COLOR(EXACT_LUMA_OF(c));
|
||||||
|
#else
|
||||||
|
return LLDLUMA2COLOR(LUMA_OF(c));
|
||||||
|
#endif
|
||||||
|
#elif COLOR_SYSTEM == GDISP_COLORSYSTEM_TRUECOLOR && LLDCOLOR_SYSTEM == GDISP_COLORSYSTEM_TRUECOLOR
|
||||||
|
#if GDISP_HARDWARE_USE_EXACT_COLOR
|
||||||
|
return LLDRGB2COLOR(EXACT_RED_OF(c), EXACT_GREEN_OF(c), EXACT_BLUE_OF(c));
|
||||||
|
#else
|
||||||
|
return LLDRGB2COLOR(RED_OF(c), GREEN_OF(c), BLUE_OF(c));
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#error "GDISP: This pixel format conversion is not supported yet"
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GDISP_PIXELFORMAT != GDISP_LLD_PIXELFORMAT
|
||||||
|
color_t gdispNative2Color(LLDCOLOR_TYPE c) {
|
||||||
|
#if COLOR_SYSTEM == GDISP_COLORSYSTEM_GRAYSCALE || LLDCOLOR_SYSTEM == GDISP_COLORSYSTEM_GRAYSCALE
|
||||||
|
#if GDISP_HARDWARE_USE_EXACT_COLOR
|
||||||
|
return LUMA2COLOR(LLDEXACT_LUMA_OF(c));
|
||||||
|
#else
|
||||||
|
return LUMA2COLOR(LLDLUMA_OF(c));
|
||||||
|
#endif
|
||||||
|
#elif COLOR_SYSTEM == GDISP_COLORSYSTEM_TRUECOLOR && LLDCOLOR_SYSTEM == GDISP_COLORSYSTEM_TRUECOLOR
|
||||||
|
#if GDISP_HARDWARE_USE_EXACT_COLOR
|
||||||
|
return RGB2COLOR(LLDEXACT_RED_OF(c), LLDEXACT_GREEN_OF(c), LLDEXACT_BLUE_OF(c));
|
||||||
|
#else
|
||||||
|
return RGB2COLOR(LLDRED_OF(c), LLDGREEN_OF(c), LLDBLUE_OF(c));
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#error "GDISP: This pixel format conversion is not supported yet"
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* GFX_USE_GDISP */
|
#endif /* GFX_USE_GDISP */
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
Loading…
Reference in New Issue