bool DisplayRefreshMonitorManager::scheduleAnimation(DisplayRefreshMonitorClient* client) { if (!client->hasDisplayID()) return false; DisplayRefreshMonitor* monitor = ensureMonitorForClient(client); client->setIsScheduled(true); return monitor->requestRefreshCallback(); }
bool DisplayRefreshMonitorManager::scheduleAnimation(DisplayRefreshMonitorClient& client) { if (!client.hasDisplayID()) return false; DisplayRefreshMonitor* monitor = createMonitorForClient(client); if (!monitor) return false; client.setIsScheduled(true); return monitor->requestRefreshCallback(); }
void DisplayRefreshMonitorManager::displayDidRefresh(DisplayRefreshMonitor& monitor) { if (!monitor.shouldBeTerminated()) return; size_t monitorIndex = m_monitors.find(&monitor); if (monitorIndex != notFound) m_monitors.remove(monitorIndex); }
void DisplayRefreshMonitor::handleDisplayRefreshedNotificationOnMainThread(void* data) { DisplayRefreshMonitor* monitor = static_cast<DisplayRefreshMonitor*>(data); monitor->displayDidRefresh(); }
void DisplayRefreshMonitor::refreshDisplayOnMainThread(void* data) { DisplayRefreshMonitor* monitor = static_cast<DisplayRefreshMonitor*>(data); monitor->notifyClients(); }