MCPcopy Create free account
hub / github.com/MrKepzie/Natron / onRefreshIdentityStateRequestReceived

Method onRefreshIdentityStateRequestReceived

Engine/Node.cpp:8983–9034  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8981}
8982
8983void
8984Node::onRefreshIdentityStateRequestReceived()
8985{
8986 assert( QThread::currentThread() == qApp->thread() );
8987 if ( (_imp->refreshIdentityStateRequestsCount == 0) || !_imp->effect ) {
8988 //was already processed
8989 return;
8990 }
8991 _imp->refreshIdentityStateRequestsCount = 0;
8992
8993 boost::shared_ptr<Project> project = getApp()->getProject();
8994 double time = project->currentFrame();
8995 RenderScale scale(1.);
8996 double inputTime = 0;
8997 U64 hash = getHashValue();
8998 bool viewAware = _imp->effect->isViewAware();
8999 int nViews = !viewAware ? 1 : project->getProjectViewsCount();
9000 Format frmt;
9001 project->getProjectDefaultFormat(&frmt);
9002
9003 //The one view node might report it is identity, but we do not want it to display it
9004
9005
9006 bool isIdentity = false;
9007 int inputNb = -1;
9008 OneViewNode* isOneView = dynamic_cast<OneViewNode*>( _imp->effect.get() );
9009 if (!isOneView) {
9010 for (int i = 0; i < nViews; ++i) {
9011 int identityInputNb = -1;
9012 ViewIdx identityView;
9013 bool isViewIdentity = _imp->effect->isIdentity_public(true, hash, time, scale, frmt, ViewIdx(i), &inputTime, &identityView, &identityInputNb);
9014 if ( (i > 0) && ( (isViewIdentity != isIdentity) || (identityInputNb != inputNb) || (identityView.value() != i) ) ) {
9015 isIdentity = false;
9016 inputNb = -1;
9017 break;
9018 }
9019 isIdentity |= isViewIdentity;
9020 inputNb = identityInputNb;
9021 if (!isIdentity) {
9022 break;
9023 }
9024 }
9025 }
9026
9027 //Check for consistency across views or then say the effect is not identity since the UI cannot display 2 different states
9028 //depending on the view
9029
9030
9031 boost::shared_ptr<NodeGuiI> nodeUi = _imp->guiPointer.lock();
9032 assert(nodeUi);
9033 nodeUi->onIdentityStateChanged(isIdentity ? inputNb : -1);
9034} // Node::onRefreshIdentityStateRequestReceived
9035
9036void
9037Node::refreshIdentityState()

Callers

nothing calls this directly

Calls 12

getAppFunction · 0.85
getProjectMethod · 0.80
getProjectViewsCountMethod · 0.80
isIdentity_publicMethod · 0.80
ViewIdxClass · 0.70
currentFrameMethod · 0.45
isViewAwareMethod · 0.45
getMethod · 0.45
valueMethod · 0.45
lockMethod · 0.45

Tested by

no test coverage detected