void RenderPort::sizeOriginChanged(void* so) { if (isOutport()) { static_cast<RenderProcessor*>(getProcessor())->sizeOriginChanged(this); validResult_ = false; } else { if (sizeOrigin_ == so) return; sizeOrigin_ = so; for (size_t i = 0; i < connectedPorts_.size(); ++i) { RenderPort* rp = static_cast<RenderPort*>(connectedPorts_[i]); rp->sizeOriginChanged(so); if (so) rp->resize(size_); } } }
void RenderProcessor::sizeOriginChanged(RenderPort* p) { if (!p->getSizeOrigin()) { const std::vector<Port*> outports = getOutports(); for (size_t i=0; i<outports.size(); ++i) { RenderPort* rp = dynamic_cast<RenderPort*>(outports[i]); if (rp) { if (rp->getSizeOrigin()) return; } } } const std::vector<Port*> inports = getInports(); for (size_t i=0; i<inports.size(); ++i) { RenderPort* rp = dynamic_cast<RenderPort*>(inports[i]); if (rp) rp->sizeOriginChanged(p->getSizeOrigin()); } }