Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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 );
        }
    }
}
Exemplo n.º 4
0
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 );
}