TEST_F(BitmapImageTest, maybeAnimated) { loadImage("/LayoutTests/fast/images/resources/gif-loop-count.gif"); for (size_t i = 0; i < frameCount(); ++i) { EXPECT_TRUE(m_image->maybeAnimated()); advanceAnimation(); } EXPECT_FALSE(m_image->maybeAnimated()); }
void ViewController::playViewTransition() { Eigen::Vector3f target(Eigen::Vector3f::Identity()); if(mCurrentView) target = mCurrentView->getPosition(); // no need to animate, we're not going anywhere (probably goToNextGamelist() or goToPrevGamelist() when there's only 1 system) if(target == -mCamera.translation() && !isAnimationPlaying(0)) return; if(Settings::getInstance()->getString("TransitionStyle") == "fade") { // fade // stop whatever's currently playing, leaving mFadeOpacity wherever it is cancelAnimation(0); auto fadeFunc = [this](float t) { mFadeOpacity = lerp<float>(0, 1, t); }; const static int FADE_DURATION = 240; // fade in/out time const static int FADE_WAIT = 320; // time to wait between in/out setAnimation(new LambdaAnimation(fadeFunc, FADE_DURATION), 0, [this, fadeFunc, target] { this->mCamera.translation() = -target; updateHelpPrompts(); setAnimation(new LambdaAnimation(fadeFunc, FADE_DURATION), FADE_WAIT, nullptr, true); }); // fast-forward animation if we're partway faded if(target == -mCamera.translation()) { // not changing screens, so cancel the first half entirely advanceAnimation(0, FADE_DURATION); advanceAnimation(0, FADE_WAIT); advanceAnimation(0, FADE_DURATION - (int)(mFadeOpacity * FADE_DURATION)); }else{ advanceAnimation(0, (int)(mFadeOpacity * FADE_DURATION)); } }else{ // slide setAnimation(new MoveCameraAnimation(mCamera, target)); updateHelpPrompts(); // update help prompts immediately } }
TEST_F(BitmapImageTest, animationRepetitions) { loadImage("/LayoutTests/fast/images/resources/full2loop.gif"); int expectedRepetitionCount = 2; EXPECT_EQ(expectedRepetitionCount, repetitionCount()); // We actually loop once more than stored repetition count. for (int repeat = 0; repeat < expectedRepetitionCount + 1; ++repeat) { for (size_t i = 0; i < frameCount(); ++i) { EXPECT_FALSE(animationFinished()); advanceAnimation(); } } EXPECT_TRUE(animationFinished()); }
void KasBar::addTestItems() { KasItem *i = new KasItem( this ); insert( 0, i ); i->setText( "Animated" ); i->setIcon( KGlobal::iconLoader()->loadIcon( "icons", KIconLoader::NoGroup, KIconLoader::SizeMedium ) ); i->setAnimation( resources()->startupAnimation() ); QTimer *aniTimer = new QTimer( i ); connect( aniTimer, SIGNAL( timeout() ), i, SLOT( advanceAnimation() ) ); aniTimer->start( 100 ); i->setShowAnimation( true ); updateLayout(); }
void QAnimationDriver::advance() { advanceAnimation(-1); }