//--------------------------------------------------------------------------- void Control::TimeOut () { // qDebug() << "threadId: " << QThread::currentThreadId(); if (Time_MinusPlus) { if (Frames_Pos+1==FileInfoData->ReferenceStat()->x_Current_Max) { SelectedSpeed=Speed_O; if(TinyDisplayArea && TinyDisplayArea->BigDisplayArea) TinyDisplayArea->BigDisplayArea->ControlArea->SelectedSpeed=SelectedSpeed; return; } } else { if (Frames_Pos==0) { SelectedSpeed=Speed_O; if(TinyDisplayArea && TinyDisplayArea->BigDisplayArea) TinyDisplayArea->BigDisplayArea->ControlArea->SelectedSpeed=SelectedSpeed; return; } } if(lastRenderedFrame == -1) { lastRenderedFrame = startFrame; lastRenderedFrameTimeStamp = QTime::currentTime(); setCurrentFrame(startFrame); } else { if(playAllFrames) { if (SelectedSpeed == Speed_M2 || SelectedSpeed == Speed_M1 || SelectedSpeed == Speed_M0) setCurrentFrame(--lastRenderedFrame); else if (SelectedSpeed == Speed_P2 || SelectedSpeed == Speed_P1|| SelectedSpeed == Speed_P0) setCurrentFrame(++lastRenderedFrame); } else { auto currentTime = QTime::currentTime(); auto timeFromStartFrame = startFrameTimeStamp.msecsTo(currentTime); auto framesFromStartFrame = floor(qreal(timeFromStartFrame) / averageFrameDuration); if(SelectedSpeed == Speed_M0 || SelectedSpeed == Speed_P0) { framesFromStartFrame /= 2; } else if(SelectedSpeed == Speed_M2 || SelectedSpeed == Speed_P2) { framesFromStartFrame *= 2; } size_t expectedFrame = startFrame + (Time_MinusPlus ? framesFromStartFrame : -framesFromStartFrame); if(expectedFrame != getCurrentFrame()) setCurrentFrame(expectedFrame); lastRenderedFrame = expectedFrame; lastRenderedFrameTimeStamp = currentTime; } } }
void ofGstUtils::nextFrame() { gint64 currentFrame = getCurrentFrame(); if(currentFrame!=-1) setFrame(currentFrame + 1); }
void ofGstUtils::previousFrame() { gint64 currentFrame = getCurrentFrame(); if(currentFrame!=-1) setFrame(currentFrame - 1); }
bool FunctionKeyframeNavigator::isKeyframe() const { return m_curve && m_curve->isKeyframe(getCurrentFrame()); }
void FunctionKeyframeNavigator::goPrev() { if (!m_curve) return; int k = m_curve->getPrevKeyframe(getCurrentFrame()); if (k < 0) return; setCurrentFrame(m_curve->keyframeIndexToFrame(k)); }
unsigned BoxImage::render(ViewCSSImp* view, float x, float y, float width, float height, float left, float top, unsigned start) { if (state != CompletelyAvailable) return getTick(); if (!(flags & Rendered)) start = getTick(); flags |= Rendered; glMatrixMode(GL_TEXTURE); glLoadIdentity(); if (repeat & Clamp) glScalef(1.0f / width, 1.0f / height, 0.0f); else { glScalef(1.0f / naturalWidth, 1.0f / naturalHeight, 0.0f); if (!(repeat & RepeatS)) { float r = x + width; if (left + naturalWidth < r) r = left + naturalWidth; if (x < left) x = left; width = r - x; } if (!(repeat & RepeatT)) { float b = y + height; if (top + naturalHeight < b) b = top + naturalHeight ; if (y < top) y = top; height = b - y; } } glMatrixMode(GL_MODELVIEW); int frame = 0; if (1 < frameCount) { unsigned delay = view->getDelay(); frame = getCurrentFrame(getTick(), delay, start); view->setDelay(delay); } if (width < 0.0f || height < 0.0f) return start; GLuint texname = getTexname(pixels + frame * (naturalWidth * naturalHeight * 4), naturalWidth, naturalHeight, repeat, format); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texname); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glBegin(GL_QUADS); glTexCoord2f(x - left, y - top); glVertex2f(x, y); glTexCoord2f(x - left + width, y - top); glVertex2f(x + width, y); glTexCoord2f(x - left + width, y - top + height); glVertex2f(x + width, y + height); glTexCoord2f(x - left, y - top + height); glVertex2f(x, y + height); glEnd(); glDisable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); return start; }
void YCbCrLabView::onFrameBack() { m_pSlider->setValue(getCurrentFrame() - 1); }
//------------------------------------------------------------------------------ bool LHAnimationNode::isAtLastFrame(){ return (getNumberOfFrames()-1 == getCurrentFrame()); }
double SampleNode::getNumSelfAllocationsPerFrame() const { return static_cast<double>(numAllocations) / static_cast<double>(getCurrentFrame()); }
void ofGstVideoPlayer::nextFrame(){ gint64 currentFrame = getCurrentFrame(); if(currentFrame!=-1) setFrame(currentFrame + 1); }
void ofGstVideoPlayer::previousFrame(){ gint64 currentFrame = getCurrentFrame(); if(currentFrame!=-1) setFrame(currentFrame - 1); }
bool FileSeq::getStartFrame() { // load the first stereo pair and put them into the queue mCurrentFrameIndex = mStartFrameIndex; return getCurrentFrame(); }
struct nk_image AnimationPlayer::getCurrentNkImage() { auto p = getCurrentFrame(); return p.first->getNkImage(p.second); }
void SS5Player::setCurrentFrame(int frame){ if(getCurrentFrame() == frame){ return; //同じフレームのときは時間を維持する(fpsが違うときに、毎フレームcurrentframeをsetされるとまずいので) } m_nowTime = (frame + 0.5) / getAnimeFPS(); //frame / getAnimeFPS(); }
ofImage& ofxSprite::getCurrentImage() { return getImageAtFrame(getCurrentFrame()); }
double SampleNode::getSelfSizePerFrame() const { return static_cast<double>(allocationSize) / static_cast<double>(getCurrentFrame()); }
int TApp::getCurrentImageType() { /*-- 現在のセルの種類に関係無く、Splineを選択中はベクタを編集できるようにする * --*/ if (getCurrentObject()->isSpline()) return TImage::VECTOR; TXshSimpleLevel *sl = 0; if (getCurrentFrame()->isEditingScene()) { int row = getCurrentFrame()->getFrame(); int col = getCurrentColumn()->getColumnIndex(); if (col < 0) #ifdef LINETEST return TImage::RASTER; #else { int levelType = Preferences::instance()->getDefLevelType(); return (levelType == PLI_XSHLEVEL) ? TImage::VECTOR : // RASTER image type includes both TZI_XSHLEVEL (levelType == TZP_XSHLEVEL) ? TImage::TOONZ_RASTER : TImage::RASTER; // and OVL_XSHLEVEL level types } #endif TXsheet *xsh = getCurrentXsheet()->getXsheet(); TXshCell cell = xsh->getCell(row, col); if (cell.isEmpty()) { int r0, r1; xsh->getCellRange(col, r0, r1); if (0 <= r0 && r0 <= r1) { /*-- Columnに格納されている一番上のLevelのTypeに合わせる--*/ cell = xsh->getCell(r0, col); } else /*-- Columnが空の場合 --*/ { #ifdef LINETEST return TImage::RASTER; #else int levelType = Preferences::instance()->getDefLevelType(); return (levelType == PLI_XSHLEVEL) ? TImage::VECTOR : (levelType == TZP_XSHLEVEL) ? TImage::TOONZ_RASTER : TImage::RASTER; #endif } } sl = cell.getSimpleLevel(); } else if (getCurrentFrame()->isEditingLevel()) sl = getCurrentLevel()->getSimpleLevel(); if (sl) { switch (sl->getType()) { case TZP_XSHLEVEL: return TImage::TOONZ_RASTER; case OVL_XSHLEVEL: return TImage::RASTER; case PLI_XSHLEVEL: default: return TImage::VECTOR; case MESH_XSHLEVEL: return TImage::MESH; } } return TImage::VECTOR; }
bool FunctionKeyframeNavigator::hasPrev() const { return m_curve && m_curve->getPrevKeyframe(getCurrentFrame()) >= 0; }
void FrameChanger::draw(std::ostream &oss){ auto ssp = m_owner->SSP(); oss << "frame: current=" << ssp->getCurrentFrame() << " --> " << m_frame << endl; }
void YCbCrLabView::onFrameForward() { m_pSlider->setValue(getCurrentFrame() + 1); }