void Compositor::startupWithWorkspace() { if (!m_starting) { return; } Q_ASSERT(m_scene); connect(workspace(), &Workspace::destroyed, this, [this] { compositeTimer.stop(); }); claimCompositorSelection(); m_xrrRefreshRate = KWin::currentRefreshRate(); fpsInterval = options->maxFpsInterval(); if (m_scene->syncsToVBlank()) { // if we do vsync, set the fps to the next multiple of the vblank rate vBlankInterval = milliToNano(1000) / m_xrrRefreshRate; fpsInterval = qMax((fpsInterval / vBlankInterval) * vBlankInterval, vBlankInterval); } else vBlankInterval = milliToNano(1); // no sync - DO NOT set "0", would cause div-by-zero segfaults. m_timeSinceLastVBlank = fpsInterval - (options->vBlankTime() + 1); // means "start now" - we don't have even a slight idea when the first vsync will occur scheduleRepaint(); xcb_composite_redirect_subwindows(connection(), rootWindow(), XCB_COMPOSITE_REDIRECT_MANUAL); new EffectsHandlerImpl(this, m_scene); // sets also the 'effects' pointer connect(Workspace::self(), &Workspace::deletedRemoved, m_scene, &Scene::windowDeleted); connect(effects, SIGNAL(screenGeometryChanged(QSize)), SLOT(addRepaintFull())); addRepaintFull(); foreach (Client * c, Workspace::self()->clientList()) { c->setupCompositing(); c->getShadow(); }
void InputSequence::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QInputSequenceData>>(change); const QInputSequenceData &data = typedChange->data; m_sequences = data.sequenceIds; m_timeout = milliToNano(data.timeout); m_buttonInterval = milliToNano(data.buttonInterval); m_inputsToTrigger = m_sequences; }
void reportStatus(IWorkUnit *wu, CGraphBase &graph, unsigned startTime, bool finished, bool success=true) { const char *graphname = graph.queryJob().queryGraphName(); StringBuffer timer, graphScope; formatGraphTimerLabel(timer, graphname, 0, graph.queryGraphId()); formatGraphTimerScope(graphScope, graphname, 0, graph.queryGraphId()); unsigned duration = msTick()-startTime; updateWorkunitTimeStat(wu, SSTsubgraph, graphScope, StTimeElapsed, timer, milliToNano(duration)); if (finished) { if (memcmp(graphname,"graph",5)==0) graphname+=5; LOG(daliAuditLogCat,",Timing,ThorGraph,%s,%s,%s,%u,1,%d,%s,%s,%s", queryServerStatus().queryProperties()->queryProp("@thorname"), wu->queryWuid(), graphname, (unsigned)graph.queryGraphId(), duration, success?"SUCCESS":"FAILED", queryServerStatus().queryProperties()->queryProp("@nodeGroup"), queryServerStatus().queryProperties()->queryProp("@queue")); queryServerStatus().queryProperties()->removeProp("@graph"); queryServerStatus().queryProperties()->removeProp("@subgraph"); queryServerStatus().queryProperties()->removeProp("@sg_duration"); } else { queryServerStatus().queryProperties()->setProp("@graph", graph.queryJob().queryGraphName()); queryServerStatus().queryProperties()->setPropInt("@subgraph", (int)graph.queryGraphId()); queryServerStatus().queryProperties()->setPropInt("@sg_duration", (duration+59999)/60000); // round it up } }
void InputSequence::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) { switch (e->type()) { case Qt3DCore::PropertyUpdated: { const auto change = qSharedPointerCast<Qt3DCore::QPropertyUpdatedChange>(e); if (change->propertyName() == QByteArrayLiteral("timeout")) { m_timeout = milliToNano(change->value().toInt()); } else if (change->propertyName() == QByteArrayLiteral("buttonInterval")) { m_buttonInterval = milliToNano(change->value().toInt()); } break; } case Qt3DCore::PropertyValueAdded: { const auto change = qSharedPointerCast<Qt3DCore::QPropertyNodeAddedChange>(e); if (change->propertyName() == QByteArrayLiteral("sequence")) { m_sequences.push_back(change->addedNodeId()); m_inputsToTrigger.push_back(change->addedNodeId()); } break; } case Qt3DCore::PropertyValueRemoved: { const auto change = qSharedPointerCast<Qt3DCore::QPropertyNodeRemovedChange>(e); if (change->propertyName() == QByteArrayLiteral("sequence")) { m_sequences.removeOne(change->removedNodeId()); m_inputsToTrigger.removeOne(change->removedNodeId()); } break; } default: break; } AbstractActionInput::sceneChangeEvent(e); }