void ThreadedCompositor::setDrawsBackground(bool drawsBackground) { m_compositingRunLoop->performTask([this, protectedThis = Ref<ThreadedCompositor>(*this), drawsBackground] { m_drawsBackground = drawsBackground; scheduleDisplayImmediately(); }); }
void ThreadedCompositor::setDeviceScaleFactor(float scale) { m_compositingRunLoop->performTask([this, protectedThis = makeRef(*this), scale] { m_deviceScaleFactor = scale; scheduleDisplayImmediately(); }); }
void ThreadedCompositor::didChangeVisibleRect() { RunLoop::main().dispatch([this, protectedThis = makeRef(*this), visibleRect = m_viewportController->visibleContentsRect(), scale = m_viewportController->pageScaleFactor()] { if (m_client) m_client->setVisibleContentsRect(visibleRect, FloatPoint::zero(), scale); }); scheduleDisplayImmediately(); }
void ThreadedCompositor::didChangeVisibleRect() { FloatRect visibleRect = viewportController()->visibleContentsRect(); float scale = viewportController()->pageScaleFactor(); callOnMainThread([=] { m_client->setVisibleContentsRect(visibleRect, FloatPoint::zero(), scale); }); scheduleDisplayImmediately(); }
void ThreadedCompositor::didChangeVisibleRect() { FloatRect visibleRect = viewportController()->visibleContentsRect(); float scale = viewportController()->pageScaleFactor(); RefPtr<ThreadedCompositor> protector(this); RunLoop::main().dispatch([protector, visibleRect, scale] { protector->m_client->setVisibleContentsRect(visibleRect, FloatPoint::zero(), scale); }); scheduleDisplayImmediately(); }
void ThreadedCompositor::updateSceneState(const CoordinatedGraphicsState& state) { ASSERT(isMainThread()); RefPtr<ThreadedCompositor> protector(this); RefPtr<CoordinatedGraphicsScene> scene = m_scene; m_scene->appendUpdate([protector, scene, state] { scene->commitSceneState(state); protector->m_clientRendersNextFrame.store(true); bool coordinateUpdate = std::any_of(state.layersToUpdate.begin(), state.layersToUpdate.end(), [](const std::pair<CoordinatedLayerID, CoordinatedGraphicsLayerState>& it) { return it.second.platformLayerChanged || it.second.platformLayerUpdated; }); protector->m_coordinateUpdateCompletionWithClient.store(coordinateUpdate); }); scheduleDisplayImmediately(); }