update GSLog
This commit is contained in:
parent
c0cb0062c1
commit
a489f54814
12 changed files with 43 additions and 29 deletions
|
|
@ -15,7 +15,7 @@ enum GSLogLevel {
|
|||
GSLogDebug
|
||||
};
|
||||
|
||||
GSDECL void GSLog(int level, const char* fmt, ...);
|
||||
GSDECL void GSLog(GSEngine engine, int level, const char* fmt, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ extern "C" {
|
|||
#define GSMathPi 3.14159265358979323846
|
||||
|
||||
GSDECL void GSMathCross3(GSVector3 r, GSVector3 v0, GSVector3 v1);
|
||||
GSDECL GSNumber GSMathInner3(GSVector3 v0, GSVector3 v1);
|
||||
GSDECL void GSMathNormalize3(GSVector3 vec);
|
||||
GSDECL void GSMathSubtract3(GSVector3 r, GSVector3 v0, GSVector3 v1);
|
||||
GSDECL void GSMathAdd3(GSVector3 r, GSVector3 v0, GSVector3 v1);
|
||||
|
|
|
|||
|
|
@ -202,6 +202,8 @@ struct _GSFile {
|
|||
};
|
||||
|
||||
struct _GSResource {
|
||||
GSEngine engine;
|
||||
|
||||
GSFile file;
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ GSClient GSClientCreate(GSEngine engine) {
|
|||
}
|
||||
}
|
||||
|
||||
GSLog(GSLogInfo, "Created client");
|
||||
GSLog(engine, GSLogInfo, "Created client");
|
||||
|
||||
return client;
|
||||
}
|
||||
|
|
@ -79,9 +79,9 @@ void GSClientDestroy(GSClient client) {
|
|||
|
||||
GSGLDestroy(client->gl);
|
||||
|
||||
free(client);
|
||||
GSLog(client->engine, GSLogInfo, "Destroyed client");
|
||||
|
||||
GSLog(GSLogInfo, "Destroyed client");
|
||||
free(client);
|
||||
}
|
||||
|
||||
static void scene(GSClient client) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ void GSInit(void) {
|
|||
|
||||
GSVersionGet(&version);
|
||||
|
||||
GSLog(GSLogInfo, "GearSrc Engine %s", version.string);
|
||||
GSLog(NULL, GSLogInfo, "GearSrc Engine %s", version.string);
|
||||
}
|
||||
|
||||
GSBool GSEngineRegisterResource(GSEngine engine, const char* name, const char* path) {
|
||||
|
|
@ -22,7 +22,7 @@ GSBool GSEngineRegisterResource(GSEngine engine, const char* name, const char* p
|
|||
if((resource = GSResourceOpen(engine, path)) != NULL) {
|
||||
shput(engine->resource, name, resource);
|
||||
|
||||
GSLog(GSLogInfo, "Registered resource %s as %s", path, name);
|
||||
GSLog(engine, GSLogInfo, "Registered resource %s as %s", path, name);
|
||||
|
||||
return GSTrue;
|
||||
}
|
||||
|
|
@ -36,7 +36,7 @@ void GSEngineUnregisterResource(GSEngine engine, const char* name) {
|
|||
if(ind != -1) {
|
||||
GSResourceClose(engine->resource[ind].value);
|
||||
|
||||
GSLog(GSLogInfo, "Unregistered resource %s", name);
|
||||
GSLog(engine, GSLogInfo, "Unregistered resource %s", name);
|
||||
|
||||
shdel(engine->resource, name);
|
||||
}
|
||||
|
|
@ -65,7 +65,7 @@ GSEngine GSEngineCreate(GSEngineParam* param) {
|
|||
GSEngineRegisterResource(engine, "game", "game.gsp");
|
||||
|
||||
if(engine != NULL && param->client && (engine->client = GSClientCreate(engine)) == NULL) {
|
||||
GSLog(GSLogError, "Failed to create client");
|
||||
GSLog(engine, GSLogError, "Failed to create client");
|
||||
|
||||
GSEngineDestroy(engine);
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ GSEngine GSEngineCreate(GSEngineParam* param) {
|
|||
}
|
||||
|
||||
if(engine != NULL && param->server && (engine->server = GSServerCreate(engine)) == NULL) {
|
||||
GSLog(GSLogError, "Failed to create server");
|
||||
GSLog(engine, GSLogError, "Failed to create server");
|
||||
|
||||
GSEngineDestroy(engine);
|
||||
|
||||
|
|
@ -81,7 +81,7 @@ GSEngine GSEngineCreate(GSEngineParam* param) {
|
|||
}
|
||||
|
||||
if(engine == NULL) {
|
||||
GSLog(GSLogError, "Failed to create engine");
|
||||
GSLog(engine, GSLogError, "Failed to create engine");
|
||||
}
|
||||
|
||||
return engine;
|
||||
|
|
@ -121,8 +121,8 @@ void GSEngineLoop(GSEngine engine) {
|
|||
long wait = 1000 / tps;
|
||||
|
||||
if(engine->param->sleep == NULL || engine->param->get_tick == NULL) {
|
||||
GSLog(GSLogWarn, "sleep and/or get_tick parameter are missing!");
|
||||
GSLog(GSLogWarn, "This will result game to be crazy fast!!!");
|
||||
GSLog(engine, GSLogWarn, "sleep and/or get_tick parameter are missing!");
|
||||
GSLog(engine, GSLogWarn, "This will result game to be crazy fast!!!");
|
||||
} else {
|
||||
t = engine->param->get_tick();
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ GSFile GSFileOpen(GSEngine engine, const char* path) {
|
|||
file->size = ftell(file->fp);
|
||||
fseek(file->fp, 0, SEEK_SET);
|
||||
|
||||
GSLog(GSLogInfo, "Opened %s", path);
|
||||
GSLog(engine, GSLogInfo, "Opened %s", path);
|
||||
|
||||
return file;
|
||||
}
|
||||
|
|
@ -37,7 +37,7 @@ GSFile GSFileOpen(GSEngine engine, const char* path) {
|
|||
if((file->data = GSResourceGet(engine->resource[i].value, nam, &file->size)) != NULL) {
|
||||
free(s);
|
||||
|
||||
GSLog(GSLogInfo, "Opened %s", path);
|
||||
GSLog(engine, GSLogInfo, "Opened %s", path);
|
||||
return file;
|
||||
}
|
||||
break;
|
||||
|
|
@ -46,7 +46,7 @@ GSFile GSFileOpen(GSEngine engine, const char* path) {
|
|||
}
|
||||
free(s);
|
||||
|
||||
GSLog(GSLogError, "Could not open %s", path);
|
||||
GSLog(engine, GSLogError, "Could not open %s", path);
|
||||
GSFileClose(file);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include <GearSrc/File.h>
|
||||
#include <GearSrc/Log.h>
|
||||
|
||||
static void err(const char* path, GLuint shader) {
|
||||
static void err(GSEngine engine, const char* path, GLuint shader) {
|
||||
GLint len, ret;
|
||||
char* e;
|
||||
|
||||
|
|
@ -14,7 +14,7 @@ static void err(const char* path, GLuint shader) {
|
|||
|
||||
glGetShaderInfoLog(shader, len, &ret, e);
|
||||
|
||||
GSLog(GSLogError, "%s: %s\n", path, e);
|
||||
GSLog(engine, GSLogError, "%s: %s\n", path, e);
|
||||
|
||||
free(e);
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ GSBool GSGLShaderPrepare(GSGL gl, GLuint* shader, const char* vs, const char* fs
|
|||
glCompileShader(vsi);
|
||||
glGetShaderiv(vsi, GL_COMPILE_STATUS, &st);
|
||||
if(!st) {
|
||||
err(vs, vsi);
|
||||
err(gl->engine, vs, vsi);
|
||||
|
||||
glDeleteShader(vsi);
|
||||
glDeleteShader(fsi);
|
||||
|
|
@ -78,7 +78,7 @@ GSBool GSGLShaderPrepare(GSGL gl, GLuint* shader, const char* vs, const char* fs
|
|||
glCompileShader(fsi);
|
||||
glGetShaderiv(fsi, GL_COMPILE_STATUS, &st);
|
||||
if(!st) {
|
||||
err(fs, fsi);
|
||||
err(gl->engine, fs, fsi);
|
||||
|
||||
glDeleteShader(vsi);
|
||||
glDeleteShader(fsi);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include <GearSrc/Log.h>
|
||||
|
||||
void GSLog(int level, const char* fmt, ...) {
|
||||
void GSLog(GSEngine engine, int level, const char* fmt, ...) {
|
||||
va_list va;
|
||||
FILE* out = stdout;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,15 @@ void GSMathCross3(GSVector3 r, GSVector3 v0, GSVector3 v1) {
|
|||
r[2] = v0[0] * v1[1] - v0[1] * v1[0];
|
||||
}
|
||||
|
||||
GSNumber GSMathInner3(GSVector3 v0, GSVector3 v1) {
|
||||
GSNumber r = 0;
|
||||
int i;
|
||||
|
||||
for(i = 0; i < 3; i++) r += v0[i] * v1[i];
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void GSMathNormalize3(GSVector3 vec) {
|
||||
GSNumber l = 0;
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -270,7 +270,7 @@ GSModel GSModelOpen(GSEngine engine, const char* path) {
|
|||
|
||||
GSEngineUnregisterResource(engine, "model-ws");
|
||||
|
||||
GSLog(GSLogInfo, "Opened model %s, %d vertexes, %d faces", path, arrlen(model->vertex), arrlen(model->face));
|
||||
GSLog(engine, GSLogInfo, "Opened model %s, %d vertexes, %d faces", path, arrlen(model->vertex), arrlen(model->face));
|
||||
|
||||
/* TODO: check for animation */
|
||||
if(gl != NULL) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ GSResource GSResourceOpen(GSEngine engine, const char* path) {
|
|||
|
||||
memset(resource, 0, sizeof(*resource));
|
||||
|
||||
resource->engine = engine;
|
||||
|
||||
if((resource->file = GSFileOpen(engine, path)) == NULL) {
|
||||
GSResourceClose(resource);
|
||||
return NULL;
|
||||
|
|
@ -50,7 +52,7 @@ GSResource GSResourceOpen(GSEngine engine, const char* path) {
|
|||
}
|
||||
|
||||
if(memcmp(sig, res_sig, 4) != 0) {
|
||||
GSLog(GSLogError, "%s: Resource has wrong signature", path);
|
||||
GSLog(engine, GSLogError, "%s: Resource has wrong signature", path);
|
||||
GSResourceClose(resource);
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -58,7 +60,7 @@ GSResource GSResourceOpen(GSEngine engine, const char* path) {
|
|||
return resource;
|
||||
}
|
||||
|
||||
int find_entry(GSFile f, const char* name, int max, GSU32* totsz, GSU32* actsz, GSU32* cmpsz, GSU32* seekpos) {
|
||||
int find_entry(GSEngine engine, GSFile f, const char* name, int max, GSU32* totsz, GSU32* actsz, GSU32* cmpsz, GSU32* seekpos) {
|
||||
GSU32 crc = GSEndianSwapU32BE(GSCRC32((void*)name, strlen(name)));
|
||||
int i;
|
||||
|
||||
|
|
@ -101,7 +103,7 @@ int find_entry(GSFile f, const char* name, int max, GSU32* totsz, GSU32* actsz,
|
|||
if(totsz != NULL) *totsz = tsz;
|
||||
|
||||
if(crc == t && strcmp(fn, name) == 0) {
|
||||
GSLog(GSLogDebug, "Directory %s/ found", fn);
|
||||
GSLog(engine, GSLogDebug, "Directory %s/ found", fn);
|
||||
free(fn);
|
||||
return n;
|
||||
}
|
||||
|
|
@ -128,7 +130,7 @@ int find_entry(GSFile f, const char* name, int max, GSU32* totsz, GSU32* actsz,
|
|||
*seekpos = GSEndianSwapU32BE(*seekpos);
|
||||
|
||||
if(crc == t && strcmp(fn, name) == 0) {
|
||||
GSLog(GSLogDebug, "File %s found", fn);
|
||||
GSLog(engine, GSLogDebug, "File %s found", fn);
|
||||
free(fn);
|
||||
return -2;
|
||||
}
|
||||
|
|
@ -158,7 +160,7 @@ void* GSResourceGet(GSResource resource, const char* name, unsigned int* size) {
|
|||
|
||||
if(s != NULL) s[0] = 0;
|
||||
|
||||
m = find_entry(resource->file, f, m, strlen(f) == 0 ? &totsz : NULL, &actsz, &cmpsz, &seekpos);
|
||||
m = find_entry(resource->engine, resource->file, f, m, strlen(f) == 0 ? &totsz : NULL, &actsz, &cmpsz, &seekpos);
|
||||
if(m == -1) break;
|
||||
if(m == -2) {
|
||||
unsigned char* cmp = malloc(cmpsz);
|
||||
|
|
|
|||
|
|
@ -9,15 +9,15 @@ GSServer GSServerCreate(GSEngine engine) {
|
|||
|
||||
server->engine = engine;
|
||||
|
||||
GSLog(GSLogInfo, "Created server");
|
||||
GSLog(engine, GSLogInfo, "Created server");
|
||||
|
||||
return server;
|
||||
}
|
||||
|
||||
void GSServerDestroy(GSServer server) {
|
||||
free(server);
|
||||
GSLog(server->engine, GSLogInfo, "Destroyed server");
|
||||
|
||||
GSLog(GSLogInfo, "Destroyed server");
|
||||
free(server);
|
||||
}
|
||||
|
||||
void GSServerStep(GSServer server) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue