Move */arch/sdl/timer.c -> similar/arch/sdl/timer.c

This commit is contained in:
Kp 2013-03-03 01:03:33 +00:00
parent ea29654c53
commit 78fde624f6
3 changed files with 6 additions and 62 deletions

View file

@ -304,6 +304,10 @@ class DXXProgram(DXXCommon):
similar_arch_sdlmixer_sources = [os.path.join('similar', f) for f in [
'arch/sdl/jukebox.c'
]
]
similar_common_sources = [os.path.join('similar', f) for f in [
'arch/sdl/timer.c',
]
]
class UserSettings(DXXCommon.UserSettings):
def __init__(self,ARGUMENTS,target):
@ -362,7 +366,7 @@ class DXXProgram(DXXCommon):
if DXXProgram.static_archive_construction is None:
DXXProgram.static_archive_construction = DXXArchive()
apply_target_name = lambda n: self._apply_target_name(n)
for t in ['similar_arch_ogl_sources', 'similar_arch_sdlmixer_sources']:
for t in ['similar_arch_ogl_sources', 'similar_arch_sdlmixer_sources', 'similar_common_sources']:
self.create_lazy_object_property(t, apply_target_name)
DXXCommon.__init__(self)
self.user_settings = self.UserSettings(self.ARGUMENTS, self.target)
@ -435,6 +439,7 @@ class DXXProgram(DXXCommon):
objects.extend(self.objects_similar_arch_sdlmixer_sources)
if (self.user_settings.opengl == 1) or (self.user_settings.opengles == 1):
objects.extend(self.objects_similar_arch_ogl_sources)
objects.extend(self.objects_similar_common_sources)
# finally building program...
env.Program(target=str(exe_target), source = self.common_sources + objects, LIBS = self.platform_settings.libs, LINKFLAGS = str(self.platform_settings.lflags))
if (sys.platform != 'darwin'):
@ -472,7 +477,6 @@ class D1XProgram(DXXProgram):
'arch/sdl/joy.c',
'arch/sdl/key.c',
'arch/sdl/mouse.c',
'arch/sdl/timer.c',
'arch/sdl/digi.c',
'arch/sdl/digi_audio.c',
'iff/iff.c',
@ -649,7 +653,6 @@ class D2XProgram(DXXProgram):
'arch/sdl/joy.c',
'arch/sdl/key.c',
'arch/sdl/mouse.c',
'arch/sdl/timer.c',
'arch/sdl/digi.c',
'arch/sdl/digi_audio.c',
'iff/iff.c',

View file

@ -1,59 +0,0 @@
/*
*
* SDL library timer functions
*
*/
#include <SDL/SDL.h>
#include "maths.h"
#include "timer.h"
#include "config.h"
static fix64 F64_RunTime = 0;
void timer_update(void)
{
static ubyte init = 1;
static fix64 last_tv = 0;
fix64 cur_tv = SDL_GetTicks()*F1_0/1000;
if (init)
{
last_tv = cur_tv;
init = 0;
}
if (last_tv < cur_tv) // in case SDL_GetTicks wraps, don't update and have a little hickup
F64_RunTime += (cur_tv - last_tv); // increment! this value will overflow long after we are all dead... so why bother checking?
last_tv = cur_tv;
}
fix64 timer_query(void)
{
return (F64_RunTime);
}
void timer_delay(fix seconds)
{
SDL_Delay(f2i(fixmul(seconds, i2f(1000))));
}
// Replacement for timer_delay which considers calc time the program needs between frames (not reentrant)
void timer_delay2(int fps)
{
static u_int32_t FrameStart=0;
u_int32_t FrameLoop=0;
while (FrameLoop < 1000/(GameCfg.VSync?MAXIMUM_FPS:fps))
{
u_int32_t tv_now = SDL_GetTicks();
if (FrameStart > tv_now)
FrameStart = tv_now;
if (!GameCfg.VSync)
SDL_Delay(1);
FrameLoop=tv_now-FrameStart;
}
FrameStart=SDL_GetTicks();
}