コード例 #1
0
ファイル: media_player_float.cpp プロジェクト: Peque/tdesktop
void Float::paintEvent(QPaintEvent *e) {
	Painter p(this);

	p.setOpacity(_opacity);
	p.drawPixmap(0, 0, _shadow);

	if (!fillFrame() && _toggleCallback) {
		_toggleCallback(false);
	}

	auto inner = getInnerRect();
	p.drawImage(inner.topLeft(), _frame);

	auto progress = _roundPlayback ? _roundPlayback->value(getms()) : 1.;
	if (progress > 0.) {
		auto pen = st::historyVideoMessageProgressFg->p;
		auto was = p.pen();
		pen.setWidth(st::radialLine);
		pen.setCapStyle(Qt::RoundCap);
		p.setPen(pen);
		p.setOpacity(_opacity * st::historyVideoMessageProgressOpacity);

		auto from = QuarterArcLength;
		auto len = -qRound(FullArcLength * progress);
		auto stepInside = st::radialLine / 2;
		{
			PainterHighQualityEnabler hq(p);
			p.drawArc(inner.marginsRemoved(QMargins(stepInside, stepInside, stepInside, stepInside)), from, len);
		}

		//p.setPen(was);
		//p.setOpacity(_opacity);
	}
}
コード例 #2
0
void SE_BipedController::initSkeletonAnimation()
{
    if(mHasInit)
    {
        return;
    }
    mSkeletonNum = oneBipAnimation.size();

    int framecount = findMaxFrameIndex() + 1;

    fillFrame();

    fillBoneToWorldPerFrame();

    cacheBipindex();

    createBoneBaseMatrixInverse();

    AllFrameFinalTransformMatrix.clear();

    AllFrameFinalTransformMatrix.resize(framecount);
    AllFrameFinalTransformToShader.resize(framecount);
    for(int i = 0; i < framecount; ++i)
    {
        createBoneToWorldMatrix(i);
        finalTransformMatrix(i);
    }    

    mHasInit = true;
}
コード例 #3
0
// Create an array of 'NUM_FRAMES' IDeckLinkMutableVideoFrames
// and fill in each frame with its own colour
bool	PlaybackHelper::createFrames()
{
	int i;
	bool result = false;
	
	//allocate and reset frame array
	m_videoFrames = (IDeckLinkMutableVideoFrame **) malloc(NUM_FRAMES * sizeof(IDeckLinkMutableVideoFrame *));
	memset(m_videoFrames, 0x0, NUM_FRAMES * sizeof(IDeckLinkMutableVideoFrame *));
	
	// allocate IDeckLink video frames
	for(i = 0; i<NUM_FRAMES; i++)
	{
		if (m_deckLinkOutput->CreateVideoFrame(m_width, m_height, m_width * 2, bmdFormat8BitYUV, bmdFrameFlagDefault, &m_videoFrames[i]) != S_OK)
		{
			fprintf(stderr, "Could not obtain frame %d\n", (i+1));
			goto bail;
		}		
		
		// fill in frame buffer
		fillFrame(i);				  
	}
	
	result = true;
	
bail:
	if (! result)
		releaseFrames();
	
	return result;
}