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); } }
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; }
// 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; }