Move */arch/sdl/timer.c -> similar/arch/sdl/timer.c
This commit is contained in:
parent
ea29654c53
commit
78fde624f6
|
@ -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',
|
||||
|
|
|
@ -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();
|
||||
}
|
Loading…
Reference in a new issue