From b7fe998252464f40a476a52b6dd5310383d91a94 Mon Sep 17 00:00:00 2001 From: jacob1 Date: Sat, 31 Jan 2015 14:09:50 -0500 Subject: [PATCH] fix mouse coords at startup being 0,0, fix glitch that could make background windows fade completely to black --- src/PowderToySDL.cpp | 8 ++++++-- src/gui/interface/Engine.cpp | 22 +++++----------------- src/gui/interface/Engine.h | 2 +- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/PowderToySDL.cpp b/src/PowderToySDL.cpp index 81f522421..51a819c02 100644 --- a/src/PowderToySDL.cpp +++ b/src/PowderToySDL.cpp @@ -987,11 +987,15 @@ int main(int argc, char * argv[]) } } + //initial mouse coords + int sdl_x, sdl_y; + SDL_GetMouseState(&sdl_x, &sdl_y); + engine->onMouseMove(sdl_x*inputScale, sdl_y*inputScale); EngineProcess(); - #ifdef WIN +#ifdef WIN SaveWindowPosition(); - #endif +#endif #if !defined(DEBUG) && !defined(_DEBUG) } diff --git a/src/gui/interface/Engine.cpp b/src/gui/interface/Engine.cpp index 24846a7ed..cd65e685e 100644 --- a/src/gui/interface/Engine.cpp +++ b/src/gui/interface/Engine.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "Config.h" #include "Misc.h" @@ -76,7 +77,7 @@ void Engine::Exit() void Engine::ShowWindow(Window * window) { - windowOpenState = 0.0f; + windowOpenState = 0; if(window->Position.X==-1) { window->Position.X = (width_-window->Size.X)/2; @@ -182,22 +183,6 @@ void Engine::Tick() lastTick = gettime(); - if(windowOpenState<1.0f) - { - if(lastBuffer) - { - pixel * vid = g->vid; - g->vid = lastBuffer; - g->fillrect(0, 0, width_, height_, 0, 0, 0, 5); - g->vid = vid; - - } - /*if(windowTargetPosition.Y < state_->Position.Y) - { - state_->Position.Y += windowTargetPosition.Y/20; - }*/ - windowOpenState += 0.05f;//*dt; - } /*if(statequeued_ != NULL) { @@ -223,6 +208,9 @@ void Engine::Draw() g->Clear(); #ifndef OGLI memcpy(g->vid, lastBuffer, (width_ * height_) * PIXELSIZE); + if(windowOpenState < 20) + windowOpenState++; + g->fillrect(0, 0, width_, height_, 0, 0, 0, 255-std::pow(.98, windowOpenState)*255); #endif } else diff --git a/src/gui/interface/Engine.h b/src/gui/interface/Engine.h index d61521adb..c3fff51e9 100644 --- a/src/gui/interface/Engine.h +++ b/src/gui/interface/Engine.h @@ -87,7 +87,7 @@ namespace ui //Window* statequeued_; Window* state_; Point windowTargetPosition; - float windowOpenState; + int windowOpenState; bool running_; bool break_;