diff options
Diffstat (limited to 'src/utils/timer.cpp')
-rw-r--r-- | src/utils/timer.cpp | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/src/utils/timer.cpp b/src/utils/timer.cpp deleted file mode 100644 index 21ef307ba..000000000 --- a/src/utils/timer.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2011-2017 The ManaPlus Developers - * - * This file is part of The ManaPlus Client. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "utils/timer.h" - -#include "const/utils/timer.h" - -PRAGMA48(GCC diagnostic push) -PRAGMA48(GCC diagnostic ignored "-Wshadow") -#include <SDL_timer.h> -PRAGMA48(GCC diagnostic pop) - -#include <climits> - -#include "debug.h" - -namespace -{ -#ifdef USE_SDL2 - SDL_TimerID mLogicCounterId(0); - SDL_TimerID mSecondsCounterId(0); -#else // USE_SDL2 - - SDL_TimerID mLogicCounterId(nullptr); - SDL_TimerID mSecondsCounterId(nullptr); -#endif // USE_SDL2 -} // namespace - -/** - * Tells the max tick value, - * setting it back to zero (and start again). - */ -static const int MAX_TICK_VALUE = INT_MAX / 2; - -volatile int tick_time; /**< Tick counter */ -volatile int fps = 0; /**< Frames counted in the last second */ -volatile int lps = 0; /**< Logic processed per second */ -volatile int frame_count = 0; /**< Counts the frames during one second */ -volatile int logic_count = 0; /**< Counts the logic during one second */ -volatile time_t cur_time = 0; - -static uint32_t nextTick(uint32_t interval, void *param A_UNUSED); -static uint32_t nextSecond(uint32_t interval, void *param A_UNUSED); - -/** - * Advances game logic counter. - * Called every 10 milliseconds by SDL_AddTimer() - * @see MILLISECONDS_IN_A_TICK value - */ -static uint32_t nextTick(uint32_t interval, void *param A_UNUSED) -{ - tick_time++; - if (tick_time == MAX_TICK_VALUE) - tick_time = 0; - return interval; -} - -/** - * Updates fps. - * Called every seconds by SDL_AddTimer() - */ -static uint32_t nextSecond(uint32_t interval, void *param A_UNUSED) -{ - fps = frame_count; - lps = logic_count; - frame_count = 0; - logic_count = 0; - - return interval; -} - -/** - * @return the elapsed time in milliseconds - * between two tick values. - */ -int get_elapsed_time(const int startTime) -{ - const int time = tick_time; - if (startTime <= time) - { - return (time - startTime) * MILLISECONDS_IN_A_TICK; - } - return (time + (MAX_TICK_VALUE - startTime)) - * MILLISECONDS_IN_A_TICK; -} - -int get_elapsed_time1(const int startTime) -{ - const int time = tick_time; - if (startTime <= time) - return time - startTime; - return time + (MAX_TICK_VALUE - startTime); -} - -void startTimers() -{ - // Initialize logic and seconds counters - tick_time = 0; - mLogicCounterId = SDL_AddTimer(MILLISECONDS_IN_A_TICK, nextTick, nullptr); - mSecondsCounterId = SDL_AddTimer(1000, nextSecond, nullptr); -} - -void stopTimers() -{ - SDL_RemoveTimer(mLogicCounterId); - SDL_RemoveTimer(mSecondsCounterId); -} |