Open peckpeck opened 2 years ago
Sounds like a good idea :+1:
I se no other reason than rendering speed to provide a specific trait fir 3 color versions, so I wrote this. Are you ok with this definition ?
DisplayColor should be the exact color type supported by the device.
If you want to be able to let the user update only chromatic or bw buffer separately
in color mode sometimes, maybe to gain some refresh time, please implement
`WaveshareTheeColorDisplay`.
If you want to support a black and white only mode on a color EPD, because it may make the refresh
faster, please implement `WaveshareDisplay` with the bicolor `Color` type on a bicolor
version of your structure.
If it not any faster, the user can always use a TriColor `WaveshareDisplay` as a Bicolor
one.
It implies that most (b) versions, ie tricolor, of existing display will work differently than they do currently, but they will be closer to what bw versions and octocolor versions provide. And it also means the definition will match their Display
structure counterpart.
Any news on this ?
DisplayColor should be the exact color type supported by the device.
Please implement
WaveshareThreeColorDisplay
, if you want to allow that in color mode the user can sometimes only update chromatic or B/W buffers separately to maybe gain some refresh time.Please implement
WaveshareDisplay
with the bicolor typeColor
on a bicolor version of your structure, if you want to support a pure black and white mode on a color EPD, as this can speed up the refresh.If there is no faster way, the user can still use a TriColor
WaveshareDisplay
as Bicolor one.
Some small changes but the meaning hopefully should have stayed the same.
This also sounds like a good change to make the usage and development of this crate more intuitive.
Since it is an associated type, most driver implement it as the color type the epd supports.
However since there is a separate WaveshareThreeColorDisplay trait, some driver implement it only as a black and white color and let the 3 colors handling to WaveshareThreeColorDisplay (eg epd1in54c).
We should document and enforce the right behaviour to make sure this is coherent between various implementations.