24 #include <sys/types.h> 44 void * _tgf_win_malloc(
size_t size)
47 char *
p = (
char*)GlobalAlloc(GMEM_FIXED, size + 3*
sizeof(
int));
48 *(
int*)(
p) = size + 3*
sizeof(int);
49 *((
int*)
p + 1) = 123456789;
50 *((
int*)(
p + size + 3*
sizeof(
int)) - 1) = 987654321;
52 return p + 2*
sizeof(int);
54 char *
p = (
char*)GlobalAlloc(GMEM_FIXED, size +
sizeof(
int));
59 return p +
sizeof(int);
64 void * _tgf_win_calloc(
size_t num,
size_t size)
66 void *
p = _tgf_win_malloc(num * size);
67 memset(
p, 0, num * size);
72 void * _tgf_win_realloc(
void * memblock,
size_t size)
75 _tgf_win_free(memblock);
79 void *
p = _tgf_win_malloc(size);
84 if (memblock != NULL) {
86 memcpy(
p, memblock,
min(*(
int*)((
char*)memblock-2*
sizeof(
int)), (
int)size));
88 memcpy(
p, memblock,
min(*(
int*)((
char*)memblock-
sizeof(
int)), (
int)size));
90 _tgf_win_free(memblock);
96 void _tgf_win_free(
void * memblock)
103 char *
p = (
char*)memblock - 2*
sizeof(
int);
105 if (!_CrtIsValidPointer(
p,
sizeof(
int), TRUE)) {
109 if (!_CrtIsValidPointer(
p, *(
int*)
p, TRUE)) {
113 if (*((
int*)
p + 1) != 123456789) {
117 if(*((
int*)(
p + *(
int*)
p ) - 1) != 987654321) {
121 GlobalFree((
char*)memblock - 2*
sizeof(
int));
123 GlobalFree((
char*)memblock -
sizeof(
int));
128 char * _tgf_win_strdup(
const char * str)
130 char * s = (
char*)_tgf_win_malloc(strlen(str)+1);
172 for (i = 0; i < n; i++) {
173 pvt->
val[i] = pvt->
val[i + 1];
179 sum /= (
tdble)(n + w);
208 int h = (int)(sec / 3600.0);
210 int m = (int)(sec / 60.0);
214 int c = (int)floor((sec) * 100.0);
217 snprintf(result, resultSize,
"%s%2.2d:%2.2d:%2.2d:%2.2d",
sign, h, m, s, c);
219 snprintf(result, resultSize,
" %s%2.2d:%2.2d:%2.2d",
sign, m, s, c);
221 snprintf(result, resultSize,
" %s%2.2d:%2.2d",
sign, s, c);
295 while ((1 << r) < x) {
315 const int BUFSIZE = 1024;
317 strncpy(buf, path, BUFSIZE);
320 #define mkdir(x) _mkdir(x) 323 const char DELIM =
'\\';
325 for (i = 0; i < BUFSIZE && buf[i] !=
'\0'; i++) {
332 #define mkdir(x) mkdir((x), S_IRWXU); 334 const char DELIM =
'/';
338 int err =
mkdir(buf);
340 if (
errno == ENOENT) {
341 char *end = strrchr(buf, DELIM);
350 if (err == -1 &&
errno != EEXIST) {
366 if (filenameandpath == 0) {
370 const char* lastdelim = strrchr(filenameandpath,
'/');
371 if (lastdelim != NULL && lastdelim != filenameandpath) {
372 const int BUFSIZE = 1024;
374 const int size =
MIN(lastdelim - filenameandpath, BUFSIZE - 1);
375 snprintf(buf, BUFSIZE,
"%s", filenameandpath);
int GfCreateDir(char *path)
Create directory for given path recursively, so all missing parent directories are created as well...
void GfParmInit(void)
Parameter set library API initialization, set up parameter set handle cache.
#define GF_DIR_CREATION_FAILED
float tdble
Floating point type used in TORCS.
void SetSingleTextureMode(void)
The Gaming Framework API.
void SetLibDir(char *buf)
tdble val[GF_MEAN_MAX_VAL+1]
void gfOsInit(void)
Init of the module.
tdble gfMean(tdble v, tMeanVal *pvt, int n, int w)
void SetDataDir(char *buf)
Scalar min(Scalar x, Scalar y)
void gfMeanReset(tdble v, tMeanVal *pvt)
void GfTime2Str(char *result, int resultSize, tdble sec, int sgn)
Convert a time in seconds (float) to an ascii string.
void SetLocalDir(char *buf)
int GfCreateDirForFile(const char *filenameandpath)
Create directory for given file path recursively, so all missing parent directories are created as we...
static int singleTextureMode
int GetSingleTextureMode(void)