Splash screen fits to the new logo on startup, before reverting

This commit is contained in:
2015-08-23 05:52:27 +10:00
parent 57a4fc8380
commit c36c5210ab
4 changed files with 24 additions and 8 deletions
+5 -2
View File
@@ -51,7 +51,10 @@ void ClientApplication::Init(int argc, char* argv[]) {
//get the config values
int w = config.Int("client.screen.w");
int h = config.Int("client.screen.h");
int f = config.Int("client.screen.f") ? SDL_WINDOW_FULLSCREEN : 0;
int f = config.Boolean("client.screen.f") ? SDL_WINDOW_FULLSCREEN : 0;
//BUG: fullscreen is disabled
f = 0;
//default sizes
w = w ? w : 800;
@@ -322,7 +325,7 @@ void ClientApplication::ProcessSceneSignal(SceneSignal signal) {
//add scene creation calls here
case SceneSignal::FIRST:
case SceneSignal::SPLASHSCREEN:
activeScene = new SplashScreen();
activeScene = new SplashScreen(window);
break;
case SceneSignal::MAINMENU:
activeScene = new MainMenu();
+14 -5
View File
@@ -27,14 +27,23 @@
//Public access members
//-------------------------
SplashScreen::SplashScreen() {
//TODO: I need a logo that isn't partially invisible
SplashScreen::SplashScreen(SDL_Window* w) {
//fit the screen to the logo
//TODO: refactor the code for this window trick
window = w;
SDL_GetWindowSize(window, &windowWidth, &windowHeight);
logo.Load(GetRenderer(), ConfigUtility::GetSingleton()["dir.logos"] + "krstudios.png");
SDL_SetWindowSize(window, logo.GetClipW(), logo.GetClipH());
SDL_RenderSetLogicalSize(GetRenderer(), logo.GetClipW(), logo.GetClipH());
startTick = std::chrono::steady_clock::now();
}
SplashScreen::~SplashScreen() {
//
SDL_SetWindowSize(window, windowWidth, windowHeight);
SDL_RenderSetLogicalSize(GetRenderer(), windowWidth, windowHeight);
}
//-------------------------
@@ -42,7 +51,7 @@ SplashScreen::~SplashScreen() {
//-------------------------
void SplashScreen::FrameStart() {
if (std::chrono::steady_clock::now() - startTick > std::chrono::duration<int>(1)) {
if (std::chrono::steady_clock::now() - startTick > std::chrono::duration<int>(3)) {
SetSceneSignal(SceneSignal::MAINMENU);
}
}
@@ -51,5 +60,5 @@ void SplashScreen::RenderFrame(SDL_Renderer* renderer) {
int w = 0, h = 0;
SDL_RenderGetLogicalSize(renderer, &w, &h);
//TODO: fix logo position
logo.DrawTo(renderer, (w - logo.GetClipW() / 4) / 2, (h - logo.GetClipH() / 4) / 2, .25, .25);
logo.DrawTo(renderer, (w - logo.GetClipW()) / 2, (h - logo.GetClipH()) / 2);
}
+5 -1
View File
@@ -29,7 +29,7 @@
class SplashScreen : public BaseScene {
public:
//Public access members
SplashScreen();
SplashScreen(SDL_Window*);
~SplashScreen();
void RenderFrame(SDL_Renderer* renderer) override;
@@ -41,4 +41,8 @@ private:
//members
std::chrono::steady_clock::time_point startTick;
Image logo;
//screws with the window
SDL_Window* window = nullptr;
int windowWidth, windowHeight;
};
Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 40 KiB