| 173 | } |
| 174 | |
| 175 | void Manager::flipDisplay() |
| 176 | { |
| 177 | if (!m_display) |
| 178 | return; |
| 179 | |
| 180 | OverlayManager* overlays = OverlayManager::instance(); |
| 181 | |
| 182 | update_cursor_overlay(); |
| 183 | |
| 184 | // Draw overlays. |
| 185 | overlays->captureOverlappedAreas(); |
| 186 | overlays->drawOverlays(); |
| 187 | |
| 188 | // Flip dirty region. |
| 189 | { |
| 190 | m_dirtyRegion.createIntersection( |
| 191 | m_dirtyRegion, |
| 192 | gfx::Region(gfx::Rect(0, 0, ui::display_w(), ui::display_h()))); |
| 193 | |
| 194 | for (auto& rc : m_dirtyRegion) |
| 195 | m_display->flip(rc); |
| 196 | m_display->present(); |
| 197 | |
| 198 | m_dirtyRegion.clear(); |
| 199 | } |
| 200 | |
| 201 | overlays->restoreOverlappedAreas(); |
| 202 | } |
| 203 | |
| 204 | bool Manager::generateMessages() |
| 205 | { |
no test coverage detected