From fb93a4d2b632a1b3d762c88ff28a78bd81a94ba7 Mon Sep 17 00:00:00 2001 From: hex007 Date: Tue, 23 May 2017 17:41:14 -0700 Subject: [PATCH 1/3] Added None Transition --- es-app/src/guis/GuiMenu.cpp | 1 + es-app/src/views/SystemView.cpp | 15 ++++++++++++--- es-app/src/views/ViewController.cpp | 21 +++++++++++++++++++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/es-app/src/guis/GuiMenu.cpp b/es-app/src/guis/GuiMenu.cpp index 98a00526d..5bdc9232f 100644 --- a/es-app/src/guis/GuiMenu.cpp +++ b/es-app/src/guis/GuiMenu.cpp @@ -127,6 +127,7 @@ GuiMenu::GuiMenu(Window* window) : GuiComponent(window), mMenu(window, "MAIN MEN std::vector transitions; transitions.push_back("fade"); transitions.push_back("slide"); + transitions.push_back("none"); for(auto it = transitions.begin(); it != transitions.end(); it++) transition_style->add(*it, *it, Settings::getInstance()->getString("TransitionStyle") == *it); s->addWithLabel("TRANSITION STYLE", transition_style); diff --git a/es-app/src/views/SystemView.cpp b/es-app/src/views/SystemView.cpp index d77b192e8..30294bbb2 100644 --- a/es-app/src/views/SystemView.cpp +++ b/es-app/src/views/SystemView.cpp @@ -264,10 +264,10 @@ void SystemView::onCursorChanged(const CursorState& state) this->mExtrasCamOffset = endPos; }, 500); - } - else{ // slide + } else if (Settings::getInstance()->getString("TransitionStyle") == "slide") { + // slide anim = new LambdaAnimation( - [startPos, endPos, posMax, this](float t) + [this, startPos, endPos, posMax](float t) { t -= 1; float f = lerp(startPos, endPos, t*t*t + 1); @@ -279,8 +279,17 @@ void SystemView::onCursorChanged(const CursorState& state) this->mCamOffset = f; this->mExtrasCamOffset = f; }, 500); + } else { + // None + anim = new LambdaAnimation( + [this, endPos](float t) + { + this->mCamOffset = endPos; + this->mExtrasCamOffset = endPos; + }, 1); } + setAnimation(anim, 0, nullptr, false, 0); } diff --git a/es-app/src/views/ViewController.cpp b/es-app/src/views/ViewController.cpp index fffed0a4f..81fef5851 100644 --- a/es-app/src/views/ViewController.cpp +++ b/es-app/src/views/ViewController.cpp @@ -188,10 +188,18 @@ void ViewController::playViewTransition() }else{ advanceAnimation(0, (int)(mFadeOpacity * FADE_DURATION)); } - }else{ + } else if (Settings::getInstance()->getString("TransitionStyle") == "slide"){ // slide setAnimation(new MoveCameraAnimation(mCamera, target)); updateHelpPrompts(); // update help prompts immediately + } else { + // none + setAnimation(new LambdaAnimation( + [this, target](float t) + { + this->mCamera.translation() = -target; + }, 1)); + updateHelpPrompts(); } } @@ -236,7 +244,7 @@ void ViewController::launch(FileData* game, Eigen::Vector3f center) setAnimation(new LambdaAnimation(fadeFunc, 800), 0, nullptr, true); this->onFileChanged(game, FILE_METADATA_CHANGED); }); - }else{ + } else if (Settings::getInstance()->getString("TransitionStyle") == "slide"){ // move camera to zoom in on center + fade out, launch game, come back in setAnimation(new LaunchAnimation(mCamera, mFadeOpacity, center, 1500), 0, [this, origCamera, center, game] { @@ -246,6 +254,15 @@ void ViewController::launch(FileData* game, Eigen::Vector3f center) setAnimation(new LaunchAnimation(mCamera, mFadeOpacity, center, 600), 0, nullptr, true); this->onFileChanged(game, FILE_METADATA_CHANGED); }); + } else { + setAnimation(new LaunchAnimation(mCamera, mFadeOpacity, center, 10), 0, [this, origCamera, center, game] + { + game->getSystem()->launchGame(mWindow, game); + mCamera = origCamera; + mLockInput = false; + setAnimation(new LaunchAnimation(mCamera, mFadeOpacity, center, 10), 0, nullptr, true); + this->onFileChanged(game, FILE_METADATA_CHANGED); + }); } } From 2ec037de2f73bf826bab32eefb198cfab82de020 Mon Sep 17 00:00:00 2001 From: hex007 Date: Thu, 25 May 2017 17:52:49 -0700 Subject: [PATCH 2/3] Added Instant Transition --- es-app/src/guis/GuiMenu.cpp | 1 + es-app/src/views/SystemView.cpp | 20 ++++++++++++++++++-- es-app/src/views/ViewController.cpp | 10 ++++++---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/es-app/src/guis/GuiMenu.cpp b/es-app/src/guis/GuiMenu.cpp index 5bdc9232f..6298cf936 100644 --- a/es-app/src/guis/GuiMenu.cpp +++ b/es-app/src/guis/GuiMenu.cpp @@ -127,6 +127,7 @@ GuiMenu::GuiMenu(Window* window) : GuiComponent(window), mMenu(window, "MAIN MEN std::vector transitions; transitions.push_back("fade"); transitions.push_back("slide"); + transitions.push_back("instant"); transitions.push_back("none"); for(auto it = transitions.begin(); it != transitions.end(); it++) transition_style->add(*it, *it, Settings::getInstance()->getString("TransitionStyle") == *it); diff --git a/es-app/src/views/SystemView.cpp b/es-app/src/views/SystemView.cpp index 30294bbb2..1103470f6 100644 --- a/es-app/src/views/SystemView.cpp +++ b/es-app/src/views/SystemView.cpp @@ -237,7 +237,8 @@ void SystemView::onCursorChanged(const CursorState& state) return; Animation* anim; - if(Settings::getInstance()->getString("TransitionStyle") == "fade") + std::string transition_style = Settings::getInstance()->getString("TransitionStyle"); + if(transition_style == "fade") { float startExtrasFade = mExtrasFadeOpacity; anim = new LambdaAnimation( @@ -264,7 +265,7 @@ void SystemView::onCursorChanged(const CursorState& state) this->mExtrasCamOffset = endPos; }, 500); - } else if (Settings::getInstance()->getString("TransitionStyle") == "slide") { + } else if (transition_style == "slide") { // slide anim = new LambdaAnimation( [this, startPos, endPos, posMax](float t) @@ -279,6 +280,21 @@ void SystemView::onCursorChanged(const CursorState& state) this->mCamOffset = f; this->mExtrasCamOffset = f; }, 500); + } else if (transition_style == "instant") { + // instant + anim = new LambdaAnimation( + [this, startPos, endPos, posMax](float t) + { + t -= 1; + float f = lerp(startPos, endPos, t*t*t + 1); + if(f < 0) + f += posMax; + if(f >= posMax) + f -= posMax; + + this->mCamOffset = f; + this->mExtrasCamOffset = endPos; + }, 500); } else { // None anim = new LambdaAnimation( diff --git a/es-app/src/views/ViewController.cpp b/es-app/src/views/ViewController.cpp index 81fef5851..e0836e12f 100644 --- a/es-app/src/views/ViewController.cpp +++ b/es-app/src/views/ViewController.cpp @@ -160,7 +160,8 @@ void ViewController::playViewTransition() if(target == -mCamera.translation() && !isAnimationPlaying(0)) return; - if(Settings::getInstance()->getString("TransitionStyle") == "fade") + std::string transition_style = Settings::getInstance()->getString("TransitionStyle"); + if(transition_style == "fade") { // fade // stop whatever's currently playing, leaving mFadeOpacity wherever it is @@ -188,7 +189,7 @@ void ViewController::playViewTransition() }else{ advanceAnimation(0, (int)(mFadeOpacity * FADE_DURATION)); } - } else if (Settings::getInstance()->getString("TransitionStyle") == "slide"){ + } else if (transition_style == "slide" || transition_style == "instant"){ // slide setAnimation(new MoveCameraAnimation(mCamera, target)); updateHelpPrompts(); // update help prompts immediately @@ -229,7 +230,8 @@ void ViewController::launch(FileData* game, Eigen::Vector3f center) stopAnimation(1); // make sure the fade in isn't still playing mLockInput = true; - if(Settings::getInstance()->getString("TransitionStyle") == "fade") + std::string transition_style = Settings::getInstance()->getString("TransitionStyle"); + if(transition_style == "fade") { // fade out, launch game, fade back in auto fadeFunc = [this](float t) { @@ -244,7 +246,7 @@ void ViewController::launch(FileData* game, Eigen::Vector3f center) setAnimation(new LambdaAnimation(fadeFunc, 800), 0, nullptr, true); this->onFileChanged(game, FILE_METADATA_CHANGED); }); - } else if (Settings::getInstance()->getString("TransitionStyle") == "slide"){ + } else if (transition_style == "slide" || transition_style == "instant"){ // move camera to zoom in on center + fade out, launch game, come back in setAnimation(new LaunchAnimation(mCamera, mFadeOpacity, center, 1500), 0, [this, origCamera, center, game] { From 1da0c780b29b80aef9ecf868da75837d73319c54 Mon Sep 17 00:00:00 2001 From: hex007 Date: Wed, 31 May 2017 09:54:11 -0700 Subject: [PATCH 3/3] Renamed additional transitions - instant -> simple slide - none -> instant --- es-app/src/guis/GuiMenu.cpp | 2 +- es-app/src/views/SystemView.cpp | 6 +++--- es-app/src/views/ViewController.cpp | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/es-app/src/guis/GuiMenu.cpp b/es-app/src/guis/GuiMenu.cpp index 6298cf936..6c8dbe7c6 100644 --- a/es-app/src/guis/GuiMenu.cpp +++ b/es-app/src/guis/GuiMenu.cpp @@ -127,8 +127,8 @@ GuiMenu::GuiMenu(Window* window) : GuiComponent(window), mMenu(window, "MAIN MEN std::vector transitions; transitions.push_back("fade"); transitions.push_back("slide"); + transitions.push_back("simple slide"); transitions.push_back("instant"); - transitions.push_back("none"); for(auto it = transitions.begin(); it != transitions.end(); it++) transition_style->add(*it, *it, Settings::getInstance()->getString("TransitionStyle") == *it); s->addWithLabel("TRANSITION STYLE", transition_style); diff --git a/es-app/src/views/SystemView.cpp b/es-app/src/views/SystemView.cpp index 1103470f6..b04996607 100644 --- a/es-app/src/views/SystemView.cpp +++ b/es-app/src/views/SystemView.cpp @@ -280,8 +280,8 @@ void SystemView::onCursorChanged(const CursorState& state) this->mCamOffset = f; this->mExtrasCamOffset = f; }, 500); - } else if (transition_style == "instant") { - // instant + } else if (transition_style == "simple slide") { + // simple slide anim = new LambdaAnimation( [this, startPos, endPos, posMax](float t) { @@ -296,7 +296,7 @@ void SystemView::onCursorChanged(const CursorState& state) this->mExtrasCamOffset = endPos; }, 500); } else { - // None + // instant anim = new LambdaAnimation( [this, endPos](float t) { diff --git a/es-app/src/views/ViewController.cpp b/es-app/src/views/ViewController.cpp index e0836e12f..7e3c242b6 100644 --- a/es-app/src/views/ViewController.cpp +++ b/es-app/src/views/ViewController.cpp @@ -189,12 +189,12 @@ void ViewController::playViewTransition() }else{ advanceAnimation(0, (int)(mFadeOpacity * FADE_DURATION)); } - } else if (transition_style == "slide" || transition_style == "instant"){ - // slide + } else if (transition_style == "slide" || transition_style == "simple slide"){ + // slide or simple slide setAnimation(new MoveCameraAnimation(mCamera, target)); updateHelpPrompts(); // update help prompts immediately } else { - // none + // instant setAnimation(new LambdaAnimation( [this, target](float t) { @@ -246,7 +246,7 @@ void ViewController::launch(FileData* game, Eigen::Vector3f center) setAnimation(new LambdaAnimation(fadeFunc, 800), 0, nullptr, true); this->onFileChanged(game, FILE_METADATA_CHANGED); }); - } else if (transition_style == "slide" || transition_style == "instant"){ + } else if (transition_style == "slide" || transition_style == "simple slide"){ // move camera to zoom in on center + fade out, launch game, come back in setAnimation(new LaunchAnimation(mCamera, mFadeOpacity, center, 1500), 0, [this, origCamera, center, game] {