decreased the change of a overflow happening in draw_pixel, some more calculations and improvements are needed
parent
2272ef80ee
commit
03f2cbc942
|
|
@ -13,6 +13,8 @@ use lin_hal::sysfs_gpio::Direction;
|
||||||
use lin_hal::Delay;
|
use lin_hal::Delay;
|
||||||
|
|
||||||
// activate spi, gpio in raspi-config
|
// activate spi, gpio in raspi-config
|
||||||
|
// needs to be run with sudo because of some sysfs_gpio permission problems and follow-up timing problems
|
||||||
|
// see https://github.com/rust-embedded/rust-sysfs-gpio/issues/5 and follow-up issues
|
||||||
|
|
||||||
|
|
||||||
// DigitalIn Hack as long as it's not in the linux_embedded_hal
|
// DigitalIn Hack as long as it's not in the linux_embedded_hal
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ impl Graphics {
|
||||||
pub fn draw_pixel(&self, buffer: &mut[u8], x: u16, y: u16, color: &Color) {
|
pub fn draw_pixel(&self, buffer: &mut[u8], x: u16, y: u16, color: &Color) {
|
||||||
let (idx, bit) = match self.rotation {
|
let (idx, bit) = match self.rotation {
|
||||||
Displayorientation::Rotate0 | Displayorientation::Rotate180
|
Displayorientation::Rotate0 | Displayorientation::Rotate180
|
||||||
=> ((x + self.width * y) / 8,
|
=> ((x / 8 + (self.width / 8) * y) ,
|
||||||
0x80 >> (x % 8)),
|
0x80 >> (x % 8)),
|
||||||
Displayorientation::Rotate90 | Displayorientation::Rotate270
|
Displayorientation::Rotate90 | Displayorientation::Rotate270
|
||||||
=> (y / 8 * self.width + x,
|
=> (y / 8 * self.width + x,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue