const Solid* importSolid(const char* path) {
const AiScene* scene = importScene(path);
if (scene == NULL) {
+ logError("Failed to import solid from %s", path);
return NULL;
}
TgaImage* textureImage = readTga(texturePath);
if (textureImage == NULL) {
- logError("Asset texture file not found: %s", texturePath);
+ logError("Importing solid from %s: Cannot read texture file %s", path, texturePath);
}
else {
glTexImage2D(GL_TEXTURE_2D,
static const AiScene* importScene(const char* path) {
const AiScene* scene = aiImportFile(path, aiProcess_PreTransformVertices);
- if (scene == NULL) {
- logError("Failed to import asset from %s", path);
- }
- else if (scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE) {
+ if (scene != NULL && scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE) {
logError("Incomplete scene imported from %s", path);
aiReleaseImport(scene);
scene = NULL;
-void logMessage(LogLevel msgLevel, const char* file, int line, const char* message, ...) {
+void logMessage(LogLevel msgLevel, const char* func, const char* message, ...) {
if (msgLevel > logLevel) {
return;
}
const char* msgLevelString;
switch (msgLevel) {
case LOGLEVEL_ERROR:
- msgLevelString = "error: ";
+ msgLevelString = "ERROR ";
break;
case LOGLEVEL_WARNING:
- msgLevelString = "warning: ";
+ msgLevelString = "WARNING ";
break;
case LOGLEVEL_INFO:
msgLevelString = "";
break;
case LOGLEVEL_DEBUG:
- msgLevelString = "debug: ";
+ msgLevelString = "DEBUG ";
break;
default:
- msgLevelString = "(invalid message level!) ";
+ msgLevelString = "(invalid message level) ";
break;
}
va_list args;
va_start(args, message);
- fprintf(stderr, "%s:%i: %s", file, line, msgLevelString);
+ fprintf(stderr, "%s %s:: ", func, msgLevelString);
vfprintf(stderr, message, args);
fputc('\n', stderr);
LogLevel logLevel;
-#define logError(...) logMessage(LOGLEVEL_ERROR, __FILE__, __LINE__, __VA_ARGS__)
-#define logWarning(...) logMessage(LOGLEVEL_WARNING, __FILE__, __LINE__, __VA_ARGS__)
-#define logInfo(...) logMessage(LOGLEVEL_INFO, __FILE__, __LINE__, __VA_ARGS__)
-#define logDebug(...) logMessage(LOGLEVEL_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
+#define logError(...) logMessage(LOGLEVEL_ERROR, __func__, __VA_ARGS__)
+#define logWarning(...) logMessage(LOGLEVEL_WARNING, __func__, __VA_ARGS__)
+#define logInfo(...) logMessage(LOGLEVEL_INFO, __func__, __VA_ARGS__)
+#define logDebug(...) logMessage(LOGLEVEL_DEBUG, __func__, __VA_ARGS__)
-void logMessage(LogLevel msgLevel, const char* file, int line, const char* message, ...);
+void logMessage(LogLevel msgLevel, const char* func, const char* message, ...);
#endif