PVideoFrame __stdcall TComb::GetFrame(int n, IScriptEnvironment *env) { tdc->resetCacheStart(n - 10, n + 10); int lc = mode == 2 ? 0x111 : (mode == 1 ? 0x110 : 0x1); for (int i = -10; i <= 10; ++i) { if (tdc->frames[tdc->getCachePos(10 + i)]->fnum != n + i) insertFrame(child->GetFrame(mapn(n + i), env), 10 + i, n + i, lc, env); } if (mode == 0 || mode == 2) buildDiffMasks(0x1, env); getAverages(lc, env); buildOscillationMasks(lc, env); getFinalMasks(lc, env); buildFinalFrame( tdc->frames[tdc->getCachePos(6)]->orig, tdc->frames[tdc->getCachePos(8)]->orig, tdc->frames[tdc->getCachePos(10)]->orig, tdc->frames[tdc->getCachePos(12)]->orig, tdc->frames[tdc->getCachePos(14)]->orig, tdc->frames[tdc->getCachePos(10)]->msk2, tdc->frames[tdc->getCachePos(12)]->msk2, tdc->frames[tdc->getCachePos(14)]->msk2, dstPF, lc, env); PVideoFrame dst = env->NewVideoFrame(vi); dstPF->copyTo(dst, vi); return dst; }
void FrameView::addFrame( const Frame& FrameRef, const QString& Description ) { Images.append(FrameRef); QPointF offset(LastOffset); if (LastSize.isValid()) { const qreal xShift(LastOffset.x() + LastSize.width()); if (xShift + FrameRef.width() < Scene->width()) { offset.setX(xShift + SPACING); } else { offset.setX(0); offset.setY(LastOffset.y() + LastSize.height() + SPACING); } } insertFrame(FrameRef, Description, offset); }
void MainForm::insertFrame(engine::IFrame* frame, HTREEITEM parentItem, AtomicL& atomics, LightL& lights) { const char* frameName = frame->getName(); if( frameName == NULL || strcmp( frameName, "" ) == 0 ) { frameName = "Root"; } HTREEITEM frameItem = assetGraph.InsertItem( frameName, 2, 2, parentItem, TVI_LAST ); assert( frameItem != NULL ); assetGraph.SetItemData( frameItem, (DWORD)( frame ) ); // attach children frames FrameL childrenFrames; frame->forAllChildren( collectChildrenFramesCB, &childrenFrames ); for( FrameI frameI = childrenFrames.begin(); frameI != childrenFrames.end(); frameI++ ) { insertFrame( *frameI, frameItem, atomics, lights ); } // find atomics, attached to this frame for( AtomicI atomicI = atomics.begin(); atomicI != atomics.end(); atomicI++ ) { if( (*atomicI)->getFrame() == frame ) { insertAtomic( *atomicI, frameItem ); } } // find lights, attached to this frame for( LightI lightI = lights.begin(); lightI != lights.end(); lightI++ ) { if( (*lightI)->getFrame() == frame ) { insertLight( *lightI, frameItem ); } } }
void MainForm::insertClump(engine::IClump* clump, HTREEITEM parentItem) { HTREEITEM clumpItem = assetGraph.InsertItem( clump->getName(), 1, 1, parentItem, TVI_LAST ); assert( clumpItem != NULL ); assetGraph.SetItemData( clumpItem, (DWORD)( clump ) ); // collect atomics AtomicL atomics; clump->forAllAtomics( collectAtomicCB, &atomics ); // collect lights LightL lights; clump->forAllLights( collectLightCB, &lights ); // insert frames insertFrame( clump->getFrame(), clumpItem, atomics, lights ); }