Open sbrin opened 4 months ago
We have u8g2 setDrawColor (XOR Draw) option.
We can use similar logic for other platforms and extend this option to support Black, White and XOR color modes.
For u8g2 and FlipperZero it works like a flag. So we have to switch it back to default after every layer with new color.
No changes for AdafruitGFX (colorful)
Available values:
U8g2
On canvas Black means background color (replace, not transparent) White means filled pixel (looks white)
Code example:
u8g2.setDrawColor(0); u8g2.drawFrame(16, 20, 10, 12); // black u8g2.drawFrame(16, 20, 10, 12); // black u8g2.setDrawColor(1); // reset
u8g2.drawFrame(16, 20, 10, 12); // white by default u8g2.setDrawColor(0); u8g2.drawFrame(16, 20, 10, 12); // black u8g2.setDrawColor(1); // reset u8g2.drawFrame(16, 20, 10, 12); // white u8g2.drawFrame(16, 20, 10, 12); // white
AdafruitGFX monochrome
display.drawRect(61, 29, 25, 16, 0); // black display.drawRect(61, 29, 25, 16, 1); // white
FlipperZero
On canvas it is inverted (compared to u8g2): Black draws black, White is background (replace, not transparent).
canvas_set_color(canvas, ColorWhite); canvas_draw_frame(canvas, 83, 29, 21, 20); // white canvas_draw_frame(canvas, 83, 29, 21, 20); // white canvas_set_color(canvas, ColorBlack); // reset
canvas_draw_frame(canvas, 83, 29, 21, 20); // black by default canvas_set_color(canvas, ColorWhite); canvas_draw_frame(canvas, 83, 29, 21, 20); // white canvas_set_color(canvas, ColorBlack); // reset canvas_draw_frame(canvas, 83, 29, 21, 20); // black canvas_draw_frame(canvas, 83, 29, 21, 20); // black
We have u8g2 setDrawColor (XOR Draw) option.
We can use similar logic for other platforms and extend this option to support Black, White and XOR color modes.
For u8g2 and FlipperZero it works like a flag. So we have to switch it back to default after every layer with new color.
Introduce Color setting property for all platforms and any layer
No changes for AdafruitGFX (colorful)
Available values:
U8g2
On canvas Black means background color (replace, not transparent) White means filled pixel (looks white)
Code example:
AdafruitGFX monochrome
On canvas Black means background color (replace, not transparent) White means filled pixel (looks white)
Code example:
FlipperZero
On canvas it is inverted (compared to u8g2): Black draws black, White is background (replace, not transparent).
Code example: