void TopCanvas::Flip() { #ifdef USE_FB #ifdef GREYSCALE CopyFromGreyscale( #ifdef DITHER dither, #endif #ifdef KOBO enable_dither, #endif map, map_pitch, map_bpp, buffer); #else CopyFromBGRA(map, map_pitch, map_bpp, buffer); #endif #ifdef KOBO if (frame_sync) Wait(); epd_update_marker++; struct mxcfb_update_data epd_update_data = { { 0, 0, buffer.width, buffer.height }, uint32_t(enable_dither && (/* use A2 mode only on some Kobo models */ DetectKoboModel() == KoboModel::TOUCH2 || DetectKoboModel() == KoboModel::GLO_HD) ? WAVEFORM_MODE_A2 : WAVEFORM_MODE_AUTO), UPDATE_MODE_FULL, // PARTIAL epd_update_marker, TEMP_USE_AMBIENT, enable_dither ? EPDC_FLAG_FORCE_MONOCHROME : 0, }; ioctl(fd, MXCFB_SEND_UPDATE, &epd_update_data); #endif #endif /* USE_FB */ }
void TopCanvas::Flip() { #ifdef USE_FB #ifdef GREYSCALE CopyFromGreyscale( #ifdef DITHER dither, #endif #ifdef KOBO enable_dither, #endif map, map_pitch, map_bpp, buffer); #else CopyFromBGRA(map, map_pitch, map_bpp, buffer); #endif #ifdef KOBO epd_update_marker++; struct mxcfb_update_data epd_update_data = { { 0, 0, buffer.width, buffer.height }, WAVEFORM_MODE_AUTO, UPDATE_MODE_FULL, // PARTIAL epd_update_marker, TEMP_USE_AMBIENT, enable_dither ? EPDC_FLAG_FORCE_MONOCHROME : 0, }; ioctl(fd, MXCFB_SEND_UPDATE, &epd_update_data); #endif #endif /* USE_FB */ }