Fix ogl screenshots for windows.

Fix the macosx build (perhaps).
This changes the JitIL timed profiling to using assembly language to obtain the time.  It does seem to be faster.  Not sure if it will work on macosx, but if it does it has the necessary precision that gettimeofday does not have.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6448 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Glenn Rice
2010-11-20 03:24:51 +00:00
parent ef55177ed6
commit 7788bac40c
5 changed files with 43 additions and 8 deletions

View File

@ -21,6 +21,12 @@
#include <Windows.h>
#include <mmsystem.h>
#include <sys/timeb.h>
#else
#include <unistd.h>
#if !defined(_POSIX_TIMERS) || _POSIX_TIMERS == 0
#define USE_GETTIMEOFDAY
#include <sys/time.h>
#endif
#endif
#include "Common.h"
@ -34,6 +40,10 @@ u32 Timer::GetTimeMs()
{
#ifdef _WIN32
return timeGetTime();
#elif defined USE_GETTIMEOFDAY
struct timeval t;
(void)gettimeofday(&t, NULL);
return ((u32)(t.tv_sec * 1000 + t.tv_usec / 1000));
#else
struct timespec t;
(void)clock_gettime(CLOCK_MONOTONIC_RAW, &t);
@ -203,6 +213,10 @@ std::string Timer::GetTimeFormatted()
struct timeb tp;
(void)::ftime(&tp);
sprintf(formattedTime, "%s:%03i", tmp, tp.millitm);
#elif defined USE_GETTIMEOFDAY
struct timeval t;
(void)gettimeofday(&t, NULL);
sprintf(formattedTime, "%s:%03d", tmp, (int)(t.tv_usec / 1000));
#else
struct timespec t;
(void)clock_gettime(CLOCK_REALTIME, &t);
@ -219,6 +233,9 @@ double Timer::GetDoubleTime()
#ifdef _WIN32
struct timeb tp;
(void)::ftime(&tp);
#elif defined USE_GETTIMEOFDAY
struct timeval t;
(void)gettimeofday(&t, NULL);
#else
struct timespec t;
(void)clock_gettime(CLOCK_REALTIME, &t);
@ -236,6 +253,8 @@ double Timer::GetDoubleTime()
u32 Seconds = (u32)TmpSeconds;
#ifdef _WIN32
double ms = tp.millitm / 1000.0 / 1000.0;
#elif defined USE_GETTIMEOFDAY
double ms = t.tv_usec / 1000000.0;
#else
double ms = t.tv_nsec / 1000000000.0;
#endif