std::string Iwa_TiledParticlesFx::getAlias(double frame, const TRenderSettings &info) const { std::string alias = getFxType(); alias += "["; // alias degli effetti connessi alle porte di input separati da virgole // una porta non connessa da luogo a un alias vuoto (stringa vuota) for (int i = 0; i < getInputPortCount(); ++i) { TFxPort *port = getInputPort(i); if (port->isConnected()) { TRasterFxP ifx = port->getFx(); assert(ifx); alias += ifx->getAlias(frame, info); } alias += ","; } std::string paramalias(""); for (int i = 0; i < getParams()->getParamCount(); ++i) { TParam *param = getParams()->getParam(i); paramalias += param->getName() + "=" + param->getValueAlias(frame, 3); } return alias + toString(frame) + "," + toString(getIdentifier()) + paramalias + "]"; }
string TMacroFx::getAlias(double frame, const TRenderSettings &info) const { string alias = getFxType(); alias += "["; // alias degli effetti connessi alle porte di input separati da virgole // una porta non connessa da luogo a un alias vuoto (stringa vuota) int i; for (i = 0; i < getInputPortCount(); i++) { TFxPort *port = getInputPort(i); if (port->isConnected()) { TRasterFxP ifx = port->getFx(); assert(ifx); alias += ifx->getAlias(frame, info); } alias += ","; } // alias dei valori dei parametri dell'effetto al frame dato for (int j = 0; j < (int)m_fxs.size(); j++) { alias += (j == 0) ? "(" : ",("; for (i = 0; i < m_fxs[j]->getParams()->getParamCount(); i++) { if (i > 0) alias += ","; TParam *param = m_fxs[j]->getParams()->getParam(i); alias += param->getName() + "=" + param->getValueAlias(frame, 2); } alias += ")"; } alias += "]"; return alias; }
std::string TGeometryFx::getAlias(double frame, const TRenderSettings &info) const { TGeometryFx *tthis = const_cast<TGeometryFx *>(this); TAffine affine = tthis->getPlacement(frame); std::string alias = getFxType(); alias += "["; // alias degli effetti connessi alle porte di input separati da virgole // una porta non connessa da luogo a un alias vuoto (stringa vuota) for (int i = 0; i < getInputPortCount(); ++i) { TFxPort *port = getInputPort(i); if (port->isConnected()) { TRasterFxP ifx = port->getFx(); assert(ifx); alias += ifx->getAlias(frame, info); } alias += ","; } return alias + (areAlmostEqual(affine.a11, 0) ? "0" : ::to_string(affine.a11, 5)) + "," + (areAlmostEqual(affine.a12, 0) ? "0" : ::to_string(affine.a12, 5)) + "," + (areAlmostEqual(affine.a13, 0) ? "0" : ::to_string(affine.a13, 5)) + "," + (areAlmostEqual(affine.a21, 0) ? "0" : ::to_string(affine.a21, 5)) + "," + (areAlmostEqual(affine.a22, 0) ? "0" : ::to_string(affine.a22, 5)) + "," + (areAlmostEqual(affine.a23, 0) ? "0" : ::to_string(affine.a23, 5)) + "]"; }
std::string ColumnColorFilterFx::getAlias(double frame, const TRenderSettings &info) const { std::string alias = getFxType(); alias += "["; if (m_port.isConnected()) { TRasterFxP ifx = m_port.getFx(); assert(ifx); alias += ifx->getAlias(frame, info); } alias += ","; return alias + std::to_string(m_colorFilter.r) + "," + std::to_string(m_colorFilter.g) + "," + std::to_string(m_colorFilter.b) + "," + std::to_string(m_colorFilter.m) + "]"; }
// Build the frame's description alias const TRenderer::RenderData &renderData = *it; /*--- カメラサイズ (LevelAutoやノイズで使用する) ---*/ TRenderSettings rs = renderData.m_info; rs.m_cameraBox = camBox; /*--- 途中でPreview計算がキャンセルされたときのフラグ ---*/ rs.m_isCanceled = &renderInfos->m_canceled; TRasterFxP fx = renderData.m_fxRoot.m_frameA; assert(fx); double frame = renderData.m_frame; std::string alias = fx->getAlias(frame, renderData.m_info); if (renderData.m_fxRoot.m_frameB) alias = alias + renderData.m_fxRoot.m_frameB->getAlias(frame, renderData.m_info); // Search the alias among stored clusters - and store the frame jt = clusters.find(alias); if (jt == clusters.end()) { RenderTask *newTask = new RenderTask(renderId, tasksIdCounter++, renderData.m_frame, rs, renderData.m_fxRoot, pos, frameSize, this); tasksVector.push_back(newTask); clusters.insert(std::make_pair(alias, newTask)); } else