mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-23 04:11:53 +00:00
Lets try using posix clocks instead of gettimeofday.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4076 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
b0d236c5c0
commit
b6a9a64124
1 changed files with 58 additions and 27 deletions
|
@ -80,7 +80,7 @@ JNIEXPORT jint JNICALL Java_com_fteqw_FTEDroidEngine_frame(JNIEnv *env, jobject
|
||||||
JNIEXPORT void JNICALL Java_com_fteqw_FTEDroidEngine_init(JNIEnv *env, jobject obj,
|
JNIEXPORT void JNICALL Java_com_fteqw_FTEDroidEngine_init(JNIEnv *env, jobject obj,
|
||||||
jint width, jint height, jint glesversion, jstring japkpath, jstring jusrpath)
|
jint width, jint height, jint glesversion, jstring japkpath, jstring jusrpath)
|
||||||
{
|
{
|
||||||
char *tmp;
|
const char *tmp;
|
||||||
vid.pixelwidth = width;
|
vid.pixelwidth = width;
|
||||||
vid.pixelheight = height;
|
vid.pixelheight = height;
|
||||||
sys_glesversion = glesversion;
|
sys_glesversion = glesversion;
|
||||||
|
@ -96,6 +96,7 @@ JNIEXPORT void JNICALL Java_com_fteqw_FTEDroidEngine_init(JNIEnv *env, jobject o
|
||||||
"",
|
"",
|
||||||
""
|
""
|
||||||
};
|
};
|
||||||
|
char *basepack;
|
||||||
int align;
|
int align;
|
||||||
quakeparms_t parms;
|
quakeparms_t parms;
|
||||||
if (sys_memheap)
|
if (sys_memheap)
|
||||||
|
@ -112,12 +113,12 @@ JNIEXPORT void JNICALL Java_com_fteqw_FTEDroidEngine_init(JNIEnv *env, jobject o
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
args[2] = parms.membase;
|
basepack = parms.membase;
|
||||||
tmp = (*env)->GetStringUTFChars(env, japkpath, NULL);
|
tmp = (*env)->GetStringUTFChars(env, japkpath, NULL);
|
||||||
strcpy(args[2], tmp);
|
strcpy(basepack, tmp);
|
||||||
(*env)->ReleaseStringUTFChars(env, japkpath, tmp);
|
(*env)->ReleaseStringUTFChars(env, japkpath, tmp);
|
||||||
parms.membase += strlen(args[2])+1;
|
parms.membase += strlen(basepack)+1;
|
||||||
parms.memsize -= strlen(args[2])+1;
|
parms.memsize -= strlen(basepack)+1;
|
||||||
|
|
||||||
parms.basedir = parms.membase;
|
parms.basedir = parms.membase;
|
||||||
tmp = (*env)->GetStringUTFChars(env, jusrpath, NULL);
|
tmp = (*env)->GetStringUTFChars(env, jusrpath, NULL);
|
||||||
|
@ -134,6 +135,8 @@ JNIEXPORT void JNICALL Java_com_fteqw_FTEDroidEngine_init(JNIEnv *env, jobject o
|
||||||
parms.memsize -= align;
|
parms.memsize -= align;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
args[2] = basepack;
|
||||||
|
|
||||||
|
|
||||||
Sys_Printf("Starting up (apk=%s, usr=%s)\n", args[2], parms.basedir);
|
Sys_Printf("Starting up (apk=%s, usr=%s)\n", args[2], parms.basedir);
|
||||||
|
|
||||||
|
@ -150,36 +153,64 @@ JNIEXPORT void JNICALL Java_com_fteqw_FTEDroidEngine_init(JNIEnv *env, jobject o
|
||||||
}
|
}
|
||||||
|
|
||||||
static int secbase;
|
static int secbase;
|
||||||
|
|
||||||
|
#ifdef _POSIX_TIMERS
|
||||||
double Sys_DoubleTime(void)
|
double Sys_DoubleTime(void)
|
||||||
{
|
{
|
||||||
struct timeval tp;
|
struct timespec ts;
|
||||||
struct timezone tzp;
|
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||||
|
|
||||||
gettimeofday(&tp, &tzp);
|
if (!secbase)
|
||||||
|
{
|
||||||
if (!secbase)
|
secbase = ts.tv_sec;
|
||||||
{
|
return ts.tv_nsec/1000000000.0;
|
||||||
secbase = tp.tv_sec;
|
}
|
||||||
return tp.tv_usec/1000000.0;
|
return (ts.tv_sec - secbase) + ts.tv_nsec/1000000000.0;
|
||||||
}
|
|
||||||
|
|
||||||
return (tp.tv_sec - secbase) + tp.tv_usec/1000000.0;
|
|
||||||
}
|
}
|
||||||
unsigned int Sys_Milliseconds(void)
|
unsigned int Sys_Milliseconds(void)
|
||||||
{
|
{
|
||||||
struct timeval tp;
|
struct timespec ts;
|
||||||
struct timezone tzp;
|
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||||
|
|
||||||
gettimeofday(&tp, &tzp);
|
if (!secbase)
|
||||||
|
{
|
||||||
if (!secbase)
|
secbase = ts.tv_sec;
|
||||||
{
|
return ts.tv_nsec/1000000;
|
||||||
secbase = tp.tv_sec;
|
}
|
||||||
return tp.tv_usec/1000;
|
return (ts.tv_sec - secbase)*1000 + ts.tv_nsec/1000000;
|
||||||
}
|
|
||||||
|
|
||||||
return (tp.tv_sec - secbase)*1000 + tp.tv_usec/1000;
|
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
double Sys_DoubleTime(void)
|
||||||
|
{
|
||||||
|
struct timeval tp;
|
||||||
|
struct timezone tzp;
|
||||||
|
|
||||||
|
gettimeofday(&tp, &tzp);
|
||||||
|
|
||||||
|
if (!secbase)
|
||||||
|
{
|
||||||
|
secbase = tp.tv_sec;
|
||||||
|
return tp.tv_usec/1000000.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (tp.tv_sec - secbase) + tp.tv_usec/1000000.0;
|
||||||
|
}
|
||||||
|
unsigned int Sys_Milliseconds(void)
|
||||||
|
{
|
||||||
|
struct timeval tp;
|
||||||
|
struct timezone tzp;
|
||||||
|
|
||||||
|
gettimeofday(&tp, &tzp);
|
||||||
|
|
||||||
|
if (!secbase)
|
||||||
|
{
|
||||||
|
secbase = tp.tv_sec;
|
||||||
|
return tp.tv_usec/1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (tp.tv_sec - secbase)*1000 + tp.tv_usec/1000;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void Sys_Shutdown(void)
|
void Sys_Shutdown(void)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue