summaryrefslogtreecommitdiffstats
path: root/src/app/system_windows.h
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2013-03-24 00:03:37 +0100
committerPiotr Dziwinski <piotrdz@gmail.com>2013-03-24 12:00:12 +0100
commit195d6cded05f7ef5bde695ee047b341a0265eab3 (patch)
treeaf6ffa3622ae9bf7f2f5f065e269e86a019af854 /src/app/system_windows.h
parentc211b001d2a4c9b36034a812650f1a2ac693ee54 (diff)
downloadcolobot-195d6cded05f7ef5bde695ee047b341a0265eab3.tar.gz
colobot-195d6cded05f7ef5bde695ee047b341a0265eab3.tar.bz2
colobot-195d6cded05f7ef5bde695ee047b341a0265eab3.zip
Fixed timer functions on win32
* changed win32 implementation to QueryPerformaceTimer system function * refactored system utils code * proper tests for time utils and update event creation in application * should fix issue #134
Diffstat (limited to 'src/app/system_windows.h')
-rw-r--r--src/app/system_windows.h29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/app/system_windows.h b/src/app/system_windows.h
index 804d064..e367b92 100644
--- a/src/app/system_windows.h
+++ b/src/app/system_windows.h
@@ -22,23 +22,32 @@
#include "app/system.h"
-#include <windows.h>
-
struct SystemTimeStamp
{
- FILETIME fileTime;
+ long long counterValue;
SystemTimeStamp()
{
- fileTime.dwHighDateTime = fileTime.dwLowDateTime = 0;
+ counterValue = 0;
}
};
-std::string UTF8_Encode_Windows(const std::wstring &wstr);
-std::wstring UTF8_Decode_Windows(const std::string &str);
-SystemDialogResult SystemDialog_Windows(SystemDialogType type, const std::string& title, const std::string& message);
+class CSystemUtilsWindows : public CSystemUtils
+{
+public:
+ virtual void Init() override;
+
+ virtual SystemDialogResult SystemDialog(SystemDialogType type, const std::string& title, const std::string& message) override;
-void GetCurrentTimeStamp_Windows(SystemTimeStamp *stamp);
-long long GetTimeStampExactResolution_Windows();
-long long TimeStampExactDiff_Windows(SystemTimeStamp *before, SystemTimeStamp *after);
+ virtual void GetCurrentTimeStamp(SystemTimeStamp *stamp) override;
+ virtual long long GetTimeStampExactResolution() override;
+ virtual long long TimeStampExactDiff(SystemTimeStamp *before, SystemTimeStamp *after) override;
+
+private:
+ std::string UTF8_Encode(const std::wstring &wstr);
+ std::wstring UTF8_Decode(const std::string &str);
+
+protected:
+ long long m_counterFrequency;
+};