From b0d37c1e7871ff0256fb52ecff765006a0f10bf7 Mon Sep 17 00:00:00 2001 From: whitequark Date: Wed, 20 Jul 2016 07:50:05 +0000 Subject: [PATCH] Replace platform-specific GetMilliseconds using std::chrono. --- src/platform/cocoamain.mm | 13 +------------ src/platform/gtkmain.cpp | 6 ------ src/platform/w32main.cpp | 9 --------- src/solvespace.h | 1 + src/util.cpp | 6 ++++++ 5 files changed, 8 insertions(+), 27 deletions(-) diff --git a/src/platform/cocoamain.mm b/src/platform/cocoamain.mm index 6f3ca86..3bfb991 100644 --- a/src/platform/cocoamain.mm +++ b/src/platform/cocoamain.mm @@ -70,17 +70,6 @@ std::string CnfThawString(const std::string &val, const std::string &key) { /* Timer */ -int64_t SolveSpace::GetMilliseconds(void) { - clock_serv_t cclock; - mach_timespec_t mts; - - host_get_clock_service(mach_host_self(), SYSTEM_CLOCK, &cclock); - clock_get_time(cclock, &mts); - mach_port_deallocate(mach_task_self(), cclock); - - return mts.tv_sec * 1000 + mts.tv_nsec / 1000000; -} - @interface DeferredHandler : NSObject + (void) runLater:(id)dummy; + (void) runCallback; @@ -1363,7 +1352,7 @@ static void connexionClose() { unregisterConnexionClient(connexionClient); cleanupConnexionHandlers(); - + CFRelease(spaceBundle); } diff --git a/src/platform/gtkmain.cpp b/src/platform/gtkmain.cpp index 802935b..5ce08a8 100644 --- a/src/platform/gtkmain.cpp +++ b/src/platform/gtkmain.cpp @@ -194,12 +194,6 @@ static void CnfThawWindowPos(Gtk::Window *win, const std::string &key) { /* Timers */ -int64_t GetMilliseconds(void) { - struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - return 1000 * (uint64_t) ts.tv_sec + ts.tv_nsec / 1000000; -} - static bool TimerCallback() { SS.GW.TimerCallback(); SS.TW.TimerCallback(); diff --git a/src/platform/w32main.cpp b/src/platform/w32main.cpp index 38ac5ef..c5d5130 100644 --- a/src/platform/w32main.cpp +++ b/src/platform/w32main.cpp @@ -772,15 +772,6 @@ bool SolveSpace::FullScreenIsActive() return false; } -int64_t SolveSpace::GetMilliseconds() -{ - LARGE_INTEGER t, f; - QueryPerformanceCounter(&t); - QueryPerformanceFrequency(&f); - LONGLONG d = t.QuadPart/(f.QuadPart/1000); - return (int64_t)d; -} - void SolveSpace::InvalidateText() { InvalidateRect(TextWnd, NULL, false); diff --git a/src/solvespace.h b/src/solvespace.h index 1f0b582..6e17551 100644 --- a/src/solvespace.h +++ b/src/solvespace.h @@ -24,6 +24,7 @@ #include #include #include +#include #ifdef WIN32 # include // required by GL headers #endif diff --git a/src/util.cpp b/src/util.cpp index 3e13c90..8269cde 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -61,6 +61,12 @@ bool SolveSpace::FilenameHasExtension(const std::string &str, const char *ext) return true; } +int64_t SolveSpace::GetMilliseconds() +{ + auto timestamp = std::chrono::steady_clock::now().time_since_epoch(); + return std::chrono::duration_cast(timestamp).count(); +} + void SolveSpace::MakeMatrix(double *mat, double a11, double a12, double a13, double a14, double a21, double a22, double a23, double a24,