Using “Array” instead of “array” is now fully deprecated, and I replaced the Log::Debug() etc. functions with msg::debug() etc. because log:: was unavailable due to being a maths function. Added up-to-date copyright notice and BOM to modified files, just in case.undefined
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine - Benchmark program | |||||
| // Lol Engine — Benchmark program | |||||
| // | // | ||||
| // Copyright: (c) 2005-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2005—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #if HAVE_CONFIG_H | #if HAVE_CONFIG_H | ||||
| @@ -110,16 +111,16 @@ void bench_half(int mode) | |||||
| for (size_t i = 0; i < sizeof(result) / sizeof(*result); i++) | for (size_t i = 0; i < sizeof(result) / sizeof(*result); i++) | ||||
| result[i] *= 1e9f / (HALF_TABLE_SIZE * HALF_RUNS); | result[i] *= 1e9f / (HALF_TABLE_SIZE * HALF_RUNS); | ||||
| Log::Info(" ns/elem\n"); | |||||
| Log::Info("float = half (array) %7.3f\n", result[0]); | |||||
| Log::Info("float = half (fast) %7.3f\n", result[1]); | |||||
| Log::Info("float = float %7.3f\n", result[2]); | |||||
| Log::Info("float += half %7.3f\n", result[3]); | |||||
| Log::Info("half = half %7.3f\n", result[4]); | |||||
| Log::Info("half = -half %7.3f\n", result[5]); | |||||
| Log::Info("half = float (array) %7.3f\n", result[6]); | |||||
| Log::Info("half = float (fast) %7.3f\n", result[7]); | |||||
| Log::Info("half = float (accurate) %7.3f\n", result[8]); | |||||
| Log::Info("half += float %7.3f\n", result[9]); | |||||
| msg::info(" ns/elem\n"); | |||||
| msg::info("float = half (array) %7.3f\n", result[0]); | |||||
| msg::info("float = half (fast) %7.3f\n", result[1]); | |||||
| msg::info("float = float %7.3f\n", result[2]); | |||||
| msg::info("float += half %7.3f\n", result[3]); | |||||
| msg::info("half = half %7.3f\n", result[4]); | |||||
| msg::info("half = -half %7.3f\n", result[5]); | |||||
| msg::info("half = float (array) %7.3f\n", result[6]); | |||||
| msg::info("half = float (fast) %7.3f\n", result[7]); | |||||
| msg::info("half = float (accurate) %7.3f\n", result[8]); | |||||
| msg::info("half += float %7.3f\n", result[9]); | |||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine - Benchmark program | |||||
| // Lol Engine — Benchmark program | |||||
| // | // | ||||
| // Copyright: (c) 2005-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2005—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #if HAVE_CONFIG_H | #if HAVE_CONFIG_H | ||||
| @@ -70,11 +71,11 @@ void bench_real(int mode) | |||||
| for (size_t i = 0; i < sizeof(result) / sizeof(*result); i++) | for (size_t i = 0; i < sizeof(result) / sizeof(*result); i++) | ||||
| result[i] *= 1e9f / (REAL_TABLE_SIZE * REAL_RUNS); | result[i] *= 1e9f / (REAL_TABLE_SIZE * REAL_RUNS); | ||||
| Log::Info(" ns/elem\n"); | |||||
| Log::Info("real = real + real %7.3f\n", result[0]); | |||||
| Log::Info("real = real * real %7.3f\n", result[1]); | |||||
| Log::Info("real = real / real %7.3f\n", result[2]); | |||||
| Log::Info("real = sin(real) %7.3f\n", result[3]); | |||||
| Log::Info("real = exp(real) %7.3f\n", result[4]); | |||||
| msg::info(" ns/elem\n"); | |||||
| msg::info("real = real + real %7.3f\n", result[0]); | |||||
| msg::info("real = real * real %7.3f\n", result[1]); | |||||
| msg::info("real = real / real %7.3f\n", result[2]); | |||||
| msg::info("real = sin(real) %7.3f\n", result[3]); | |||||
| msg::info("real = exp(real) %7.3f\n", result[4]); | |||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine - Benchmark program | |||||
| // Lol Engine — Benchmark program | |||||
| // | // | ||||
| // Copyright: (c) 2005-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2005—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #if HAVE_CONFIG_H | #if HAVE_CONFIG_H | ||||
| @@ -173,18 +174,18 @@ void bench_trig(int mode) | |||||
| for (size_t i = 0; i < sizeof(result) / sizeof(*result); i++) | for (size_t i = 0; i < sizeof(result) / sizeof(*result); i++) | ||||
| result[i] *= 1e9f / (TRIG_TABLE_SIZE * TRIG_RUNS); | result[i] *= 1e9f / (TRIG_TABLE_SIZE * TRIG_RUNS); | ||||
| Log::Info(" ns/elem\n"); | |||||
| Log::Info("float = sinf(float) %7.3f\n", result[0]); | |||||
| Log::Info("float = f_sinf(float) %7.3f\n", result[1]); | |||||
| Log::Info("float = lol_sin(float) %7.3f\n", result[2]); | |||||
| Log::Info("float = cosf(float) %7.3f\n", result[3]); | |||||
| Log::Info("float = f_cosf(float) %7.3f\n", result[4]); | |||||
| Log::Info("float = lol_cos(float) %7.3f\n", result[5]); | |||||
| Log::Info("float = sinf,cosf(float) %7.3f\n", result[6]); | |||||
| Log::Info("float = f_sinf,f_cosf(float) %7.3f\n", result[7]); | |||||
| Log::Info("float = lol_sincos(float) %7.3f\n", result[8]); | |||||
| Log::Info("float = tanf(float) %7.3f\n", result[9]); | |||||
| Log::Info("float = f_tanf(float) %7.3f\n", result[10]); | |||||
| Log::Info("float = lol_tanf(float) %7.3f\n", result[11]); | |||||
| msg::info(" ns/elem\n"); | |||||
| msg::info("float = sinf(float) %7.3f\n", result[0]); | |||||
| msg::info("float = f_sinf(float) %7.3f\n", result[1]); | |||||
| msg::info("float = lol_sin(float) %7.3f\n", result[2]); | |||||
| msg::info("float = cosf(float) %7.3f\n", result[3]); | |||||
| msg::info("float = f_cosf(float) %7.3f\n", result[4]); | |||||
| msg::info("float = lol_cos(float) %7.3f\n", result[5]); | |||||
| msg::info("float = sinf,cosf(float) %7.3f\n", result[6]); | |||||
| msg::info("float = f_sinf,f_cosf(float) %7.3f\n", result[7]); | |||||
| msg::info("float = lol_sincos(float) %7.3f\n", result[8]); | |||||
| msg::info("float = tanf(float) %7.3f\n", result[9]); | |||||
| msg::info("float = f_tanf(float) %7.3f\n", result[10]); | |||||
| msg::info("float = lol_tanf(float) %7.3f\n", result[11]); | |||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine - Benchmark program | |||||
| // Lol Engine — Benchmark program | |||||
| // | // | ||||
| // Copyright: (c) 2005-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2005—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #if HAVE_CONFIG_H | #if HAVE_CONFIG_H | ||||
| @@ -79,11 +80,11 @@ void bench_matrix(int mode) | |||||
| for (size_t i = 0; i < sizeof(result) / sizeof(*result); i++) | for (size_t i = 0; i < sizeof(result) / sizeof(*result); i++) | ||||
| result[i] *= 1e9f / (MATRIX_TABLE_SIZE * MATRIX_RUNS); | result[i] *= 1e9f / (MATRIX_TABLE_SIZE * MATRIX_RUNS); | ||||
| Log::Info(" ns/elem\n"); | |||||
| Log::Info("mat4 = mat4 %7.3f\n", result[0]); | |||||
| Log::Info("float = mat4.det() %7.3f\n", result[1]); | |||||
| Log::Info("mat4 *= mat4 %7.3f\n", result[2]); | |||||
| Log::Info("mat4 += mat4 %7.3f\n", result[3]); | |||||
| Log::Info("mat4 = mat4.invert() %7.3f\n", result[4]); | |||||
| msg::info(" ns/elem\n"); | |||||
| msg::info("mat4 = mat4 %7.3f\n", result[0]); | |||||
| msg::info("float = mat4.det() %7.3f\n", result[1]); | |||||
| msg::info("mat4 *= mat4 %7.3f\n", result[2]); | |||||
| msg::info("mat4 += mat4 %7.3f\n", result[3]); | |||||
| msg::info("mat4 = mat4.invert() %7.3f\n", result[4]); | |||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine - Benchmark program | |||||
| // Lol Engine — Benchmark program | |||||
| // | // | ||||
| // Copyright: (c) 2005-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2005—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #if HAVE_CONFIG_H | #if HAVE_CONFIG_H | ||||
| @@ -27,39 +28,39 @@ int main(int argc, char **argv) | |||||
| { | { | ||||
| UNUSED(argc, argv); | UNUSED(argc, argv); | ||||
| Log::Info("-----------------------\n"); | |||||
| Log::Info(" High precision floats\n"); | |||||
| Log::Info("-----------------------\n"); | |||||
| msg::info("-----------------------\n"); | |||||
| msg::info(" High precision floats\n"); | |||||
| msg::info("-----------------------\n"); | |||||
| bench_real(1); | bench_real(1); | ||||
| Log::Info("--------------------------\n"); | |||||
| Log::Info(" Trigonometry [-1e5, 1e5]\n"); | |||||
| Log::Info("--------------------------\n"); | |||||
| msg::info("--------------------------\n"); | |||||
| msg::info(" Trigonometry [-1e5, 1e5]\n"); | |||||
| msg::info("--------------------------\n"); | |||||
| bench_trig(1); | bench_trig(1); | ||||
| Log::Info("------------------------\n"); | |||||
| Log::Info(" Trigonometry [-pi, pi]\n"); | |||||
| Log::Info("------------------------\n"); | |||||
| msg::info("------------------------\n"); | |||||
| msg::info(" Trigonometry [-pi, pi]\n"); | |||||
| msg::info("------------------------\n"); | |||||
| bench_trig(2); | bench_trig(2); | ||||
| Log::Info("----------------------------\n"); | |||||
| Log::Info(" Trigonometry [-1e-2, 1e-2]\n"); | |||||
| Log::Info("----------------------------\n"); | |||||
| msg::info("----------------------------\n"); | |||||
| msg::info(" Trigonometry [-1e-2, 1e-2]\n"); | |||||
| msg::info("----------------------------\n"); | |||||
| bench_trig(3); | bench_trig(3); | ||||
| Log::Info("----------------------------\n"); | |||||
| Log::Info(" Float matrices [-2.0, 2.0]\n"); | |||||
| Log::Info("----------------------------\n"); | |||||
| msg::info("----------------------------\n"); | |||||
| msg::info(" Float matrices [-2.0, 2.0]\n"); | |||||
| msg::info("----------------------------\n"); | |||||
| bench_matrix(1); | bench_matrix(1); | ||||
| Log::Info("-------------------------------------\n"); | |||||
| Log::Info(" Half precision floats (random bits)\n"); | |||||
| Log::Info("-------------------------------------\n"); | |||||
| msg::info("-------------------------------------\n"); | |||||
| msg::info(" Half precision floats (random bits)\n"); | |||||
| msg::info("-------------------------------------\n"); | |||||
| bench_half(1); | bench_half(1); | ||||
| Log::Info("-----------------------------------\n"); | |||||
| Log::Info(" Half precision floats [-2.0, 2.0]\n"); | |||||
| Log::Info("-----------------------------------\n"); | |||||
| msg::info("-----------------------------------\n"); | |||||
| msg::info(" Half precision floats [-2.0, 2.0]\n"); | |||||
| msg::info("-----------------------------------\n"); | |||||
| bench_half(2); | bench_half(2); | ||||
| #if defined _WIN32 | #if defined _WIN32 | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine - Graphing tutorial | |||||
| // Lol Engine — Graphing tutorial | |||||
| // | // | ||||
| // Copyright: (c) 2012-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2012—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #if HAVE_CONFIG_H | #if HAVE_CONFIG_H | ||||
| @@ -170,10 +171,10 @@ public: | |||||
| float loluademo_inst_return = demo_loader->GetVar<float>("loluademo_inst_return"); | float loluademo_inst_return = demo_loader->GetVar<float>("loluademo_inst_return"); | ||||
| DemoObject* loluademo_inst = demo_loader->GetPtr<DemoObject>("loluademo_inst"); | DemoObject* loluademo_inst = demo_loader->GetPtr<DemoObject>("loluademo_inst"); | ||||
| Log::Info("Lua Vars: \ | |||||
| msg::info("Lua Vars: \ | |||||
| testvalue_num: %.2f, testvalue_int: %i, testvalue_uint: %i, testvalue_str: %s.\n", | testvalue_num: %.2f, testvalue_int: %i, testvalue_uint: %i, testvalue_str: %s.\n", | ||||
| testvalue_num, testvalue_int, testvalue_uint, testvalue_str.C()); | testvalue_num, testvalue_int, testvalue_uint, testvalue_str.C()); | ||||
| Log::Info("Lua Vars: \ | |||||
| msg::info("Lua Vars: \ | |||||
| function_return: %s, loluademo_return: %i, loluademo_inst_return: %.f, loluademo_getx: %i, loluademo_inst->m_x: %i.\n", | function_return: %s, loluademo_return: %i, loluademo_inst_return: %.f, loluademo_getx: %i, loluademo_inst->m_x: %i.\n", | ||||
| function_return.C(), loluademo_return, loluademo_inst_return, loluademo_getx, loluademo_inst->m_x); | function_return.C(), loluademo_return, loluademo_inst_return, loluademo_getx, loluademo_inst->m_x); | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -28,7 +29,7 @@ void DumpStack() | |||||
| { | { | ||||
| #if EMSCRIPTEN | #if EMSCRIPTEN | ||||
| /* This would require demangling but we don't care yet. */ | /* This would require demangling but we don't care yet. */ | ||||
| Log::Debug("%s\n", emscripten_run_script_string("(new Error).stack")); | |||||
| msg::debug("%s\n", emscripten_run_script_string("(new Error).stack")); | |||||
| #elif HAVE_CXA_DEMANGLE && HAVE_BACKTRACE_SYMBOLS | #elif HAVE_CXA_DEMANGLE && HAVE_BACKTRACE_SYMBOLS | ||||
| /* Get current stack frames */ | /* Get current stack frames */ | ||||
| void *stack_ptrs[50]; | void *stack_ptrs[50]; | ||||
| @@ -36,7 +37,7 @@ void DumpStack() | |||||
| char **callstack = backtrace_symbols(stack_ptrs, size); | char **callstack = backtrace_symbols(stack_ptrs, size); | ||||
| if (size > 1) | if (size > 1) | ||||
| Log::Debug("%d functions in stack trace:\n", (int)size - 1); | |||||
| msg::debug("%d functions in stack trace:\n", (int)size - 1); | |||||
| /* Parse stack frames, skipping the first element (because | /* Parse stack frames, skipping the first element (because | ||||
| * that’s ourselves) and print information. */ | * that’s ourselves) and print information. */ | ||||
| @@ -67,13 +68,13 @@ void DumpStack() | |||||
| if (ret == 0) | if (ret == 0) | ||||
| name = realname; | name = realname; | ||||
| Log::Debug("#%d %s: %s+%s %s\n", (int)i, | |||||
| msg::debug("#%d %s: %s+%s %s\n", (int)i, | |||||
| callstack[i], name, offset, address); | callstack[i], name, offset, address); | ||||
| free(realname); | free(realname); | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| Log::Debug("#%d %s\n", (int)i, callstack[i]); | |||||
| msg::debug("#%d %s\n", (int)i, callstack[i]); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2014 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -28,38 +29,38 @@ namespace lol | |||||
| { | { | ||||
| /* | /* | ||||
| * Public Log class | |||||
| * Public log class | |||||
| */ | */ | ||||
| void Log::Debug(char const *fmt, ...) | |||||
| void msg::debug(char const *fmt, ...) | |||||
| { | { | ||||
| va_list ap; | va_list ap; | ||||
| va_start(ap, fmt); | va_start(ap, fmt); | ||||
| Helper(DebugMessage, fmt, ap); | |||||
| helper(MessageType::Debug, fmt, ap); | |||||
| va_end(ap); | va_end(ap); | ||||
| } | } | ||||
| void Log::Info(char const *fmt, ...) | |||||
| void msg::info(char const *fmt, ...) | |||||
| { | { | ||||
| va_list ap; | va_list ap; | ||||
| va_start(ap, fmt); | va_start(ap, fmt); | ||||
| Helper(InfoMessage, fmt, ap); | |||||
| helper(MessageType::Info, fmt, ap); | |||||
| va_end(ap); | va_end(ap); | ||||
| } | } | ||||
| void Log::Warn(char const *fmt, ...) | |||||
| void msg::warn(char const *fmt, ...) | |||||
| { | { | ||||
| va_list ap; | va_list ap; | ||||
| va_start(ap, fmt); | va_start(ap, fmt); | ||||
| Helper(WarnMessage, fmt, ap); | |||||
| helper(MessageType::Warning, fmt, ap); | |||||
| va_end(ap); | va_end(ap); | ||||
| } | } | ||||
| void Log::Error(char const *fmt, ...) | |||||
| void msg::error(char const *fmt, ...) | |||||
| { | { | ||||
| va_list ap; | va_list ap; | ||||
| va_start(ap, fmt); | va_start(ap, fmt); | ||||
| Helper(ErrorMessage, fmt, ap); | |||||
| helper(MessageType::Error, fmt, ap); | |||||
| va_end(ap); | va_end(ap); | ||||
| } | } | ||||
| @@ -67,10 +68,10 @@ void Log::Error(char const *fmt, ...) | |||||
| * Private helper function | * Private helper function | ||||
| */ | */ | ||||
| void Log::Helper(MessageType type, char const *fmt, va_list ap) | |||||
| void msg::helper(MessageType type, char const *fmt, va_list ap) | |||||
| { | { | ||||
| #if defined __ANDROID__ | #if defined __ANDROID__ | ||||
| int const prio[] = | |||||
| static int const prio[] = | |||||
| { | { | ||||
| ANDROID_LOG_DEBUG, | ANDROID_LOG_DEBUG, | ||||
| ANDROID_LOG_INFO, | ANDROID_LOG_INFO, | ||||
| @@ -79,10 +80,10 @@ void Log::Helper(MessageType type, char const *fmt, va_list ap) | |||||
| }; | }; | ||||
| String buf = String::vformat(fmt, ap); | String buf = String::vformat(fmt, ap); | ||||
| __android_log_print(prio[type], "LOL", "[%d] %s", (int)gettid(), &buf[0]); | |||||
| __android_log_print(prio[(int)type], "LOL", "[%d] %s", (int)gettid(), &buf[0]); | |||||
| #else | #else | ||||
| char const *prefix[] = | |||||
| static char const * const prefix[] = | |||||
| { | { | ||||
| "DEBUG", | "DEBUG", | ||||
| "INFO", | "INFO", | ||||
| @@ -91,14 +92,14 @@ void Log::Helper(MessageType type, char const *fmt, va_list ap) | |||||
| }; | }; | ||||
| # if defined _WIN32 | # if defined _WIN32 | ||||
| String buf = String(prefix[type]) + ": " + String::vformat(fmt, ap); | |||||
| String buf = String(prefix[(int)type]) + ": " + String::vformat(fmt, ap); | |||||
| array<WCHAR> widechar; | array<WCHAR> widechar; | ||||
| widechar.Resize(buf.count() + 1); | widechar.Resize(buf.count() + 1); | ||||
| MultiByteToWideChar(CP_UTF8, 0, buf.C(), buf.count() + 1, widechar.data(), widechar.count()); | MultiByteToWideChar(CP_UTF8, 0, buf.C(), buf.count() + 1, widechar.data(), widechar.count()); | ||||
| OutputDebugStringW(widechar.data()); | OutputDebugStringW(widechar.data()); | ||||
| # else | # else | ||||
| fprintf(stderr, "%s: ", prefix[type]); | |||||
| fprintf(stderr, "%s: ", prefix[(int)type]); | |||||
| vfprintf(stderr, fmt, ap); | vfprintf(stderr, fmt, ap); | ||||
| # endif | # endif | ||||
| #endif | #endif | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -39,7 +40,7 @@ public: | |||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (nentities) | if (nentities) | ||||
| Log::Error("still %i entities in dict\n", nentities); | |||||
| msg::error("still %i entities in dict\n", nentities); | |||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -134,7 +135,7 @@ void Dict::RemoveSlot(Entity *entity) | |||||
| } | } | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("removing unregistered entity %p (%s)\n", | |||||
| msg::error("removing unregistered entity %p (%s)\n", | |||||
| entity, entity->GetName()); | entity, entity->GetName()); | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -80,7 +81,7 @@ EglApp::EglApp(char const *title, ivec2 res, float fps) : | |||||
| data->dpy = XOpenDisplay(nullptr); | data->dpy = XOpenDisplay(nullptr); | ||||
| if (data->dpy == nullptr) | if (data->dpy == nullptr) | ||||
| { | { | ||||
| Log::Error("cannot connect to X server\n"); | |||||
| msg::error("cannot connect to X server\n"); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| @@ -110,13 +111,13 @@ EglApp::EglApp(char const *title, ivec2 res, float fps) : | |||||
| # endif | # endif | ||||
| if (data->egl_dpy == EGL_NO_DISPLAY) | if (data->egl_dpy == EGL_NO_DISPLAY) | ||||
| { | { | ||||
| Log::Error("cannot get EGL display\n"); | |||||
| msg::error("cannot get EGL display\n"); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| if (!eglInitialize(data->egl_dpy, nullptr, nullptr)) | if (!eglInitialize(data->egl_dpy, nullptr, nullptr)) | ||||
| { | { | ||||
| Log::Error("cannot initialize EGL\n"); | |||||
| msg::error("cannot initialize EGL\n"); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| @@ -138,19 +139,19 @@ EglApp::EglApp(char const *title, ivec2 res, float fps) : | |||||
| EGLint num_config; | EGLint num_config; | ||||
| if (!eglChooseConfig(data->egl_dpy, attr, &ecfg, 1, &num_config)) | if (!eglChooseConfig(data->egl_dpy, attr, &ecfg, 1, &num_config)) | ||||
| { | { | ||||
| Log::Error("cannot choose EGL config (%i)\n", eglGetError()); | |||||
| msg::error("cannot choose EGL config (%i)\n", eglGetError()); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| if (num_config != 1) | if (num_config != 1) | ||||
| { | { | ||||
| Log::Error("cannot choose between %i EGL configs\n", num_config); | |||||
| msg::error("cannot choose between %i EGL configs\n", num_config); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| if (!eglBindAPI(EGL_OPENGL_ES_API)) | if (!eglBindAPI(EGL_OPENGL_ES_API)) | ||||
| { | { | ||||
| Log::Error("cannot bind OpenGL ES API (%i)\n", eglGetError()); | |||||
| msg::error("cannot bind OpenGL ES API (%i)\n", eglGetError()); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| @@ -197,28 +198,28 @@ EglApp::EglApp(char const *title, ivec2 res, float fps) : | |||||
| switch (eglGetError()) | switch (eglGetError()) | ||||
| { | { | ||||
| case EGL_BAD_DISPLAY: | case EGL_BAD_DISPLAY: | ||||
| Log::Error("missing EGL display connection\n"); | |||||
| msg::error("missing EGL display connection\n"); | |||||
| break; | break; | ||||
| case EGL_NOT_INITIALIZED: | case EGL_NOT_INITIALIZED: | ||||
| Log::Error("EGL display not initialized\n"); | |||||
| msg::error("EGL display not initialized\n"); | |||||
| break; | break; | ||||
| case EGL_BAD_CONFIG: | case EGL_BAD_CONFIG: | ||||
| Log::Error("invalid EGL configuration\n"); | |||||
| msg::error("invalid EGL configuration\n"); | |||||
| break; | break; | ||||
| case EGL_BAD_NATIVE_WINDOW: | case EGL_BAD_NATIVE_WINDOW: | ||||
| Log::Error("invalid EGL native window\n"); | |||||
| msg::error("invalid EGL native window\n"); | |||||
| break; | break; | ||||
| case EGL_BAD_ATTRIBUTE: | case EGL_BAD_ATTRIBUTE: | ||||
| Log::Error("invalid EGL window attribute\n"); | |||||
| msg::error("invalid EGL window attribute\n"); | |||||
| break; | break; | ||||
| case EGL_BAD_ALLOC: | case EGL_BAD_ALLOC: | ||||
| Log::Error("cannot allocate EGL surface\n"); | |||||
| msg::error("cannot allocate EGL surface\n"); | |||||
| break; | break; | ||||
| case EGL_BAD_MATCH: | case EGL_BAD_MATCH: | ||||
| Log::Error("unsupported EGL window\n"); | |||||
| msg::error("unsupported EGL window\n"); | |||||
| break; | break; | ||||
| default: | default: | ||||
| Log::Error("cannot create EGL surface (%i)\n", eglGetError()); | |||||
| msg::error("cannot create EGL surface (%i)\n", eglGetError()); | |||||
| break; | break; | ||||
| } | } | ||||
| @@ -236,7 +237,7 @@ EglApp::EglApp(char const *title, ivec2 res, float fps) : | |||||
| EGL_NO_CONTEXT, ctxattr); | EGL_NO_CONTEXT, ctxattr); | ||||
| if (data->egl_ctx == EGL_NO_CONTEXT) | if (data->egl_ctx == EGL_NO_CONTEXT) | ||||
| { | { | ||||
| Log::Error("cannot create EGL context (%i)\n", eglGetError()); | |||||
| msg::error("cannot create EGL context (%i)\n", eglGetError()); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -36,7 +37,7 @@ Entity::~Entity() | |||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (!m_destroy) | if (!m_destroy) | ||||
| Log::Error("entity destructor called directly\n"); | |||||
| msg::error("entity destructor called directly\n"); | |||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -58,7 +59,7 @@ void Entity::TickGame(float seconds) | |||||
| UNUSED(seconds); | UNUSED(seconds); | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (m_tickstate != STATE_PRETICK_GAME) | if (m_tickstate != STATE_PRETICK_GAME) | ||||
| Log::Error("invalid entity game tick\n"); | |||||
| msg::error("invalid entity game tick\n"); | |||||
| m_tickstate = STATE_POSTTICK_GAME; | m_tickstate = STATE_POSTTICK_GAME; | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -68,7 +69,7 @@ void Entity::TickDraw(float seconds, Scene &scene) | |||||
| (void)seconds; | (void)seconds; | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (m_tickstate != STATE_PRETICK_DRAW) | if (m_tickstate != STATE_PRETICK_DRAW) | ||||
| Log::Error("invalid entity draw tick\n"); | |||||
| msg::error("invalid entity draw tick\n"); | |||||
| m_tickstate = STATE_POSTTICK_DRAW; | m_tickstate = STATE_POSTTICK_DRAW; | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -88,7 +89,7 @@ Renderer::Renderer(ivec2 size) | |||||
| m_data->m_d3d_ctx = Direct3DCreate9(D3D_SDK_VERSION); | m_data->m_d3d_ctx = Direct3DCreate9(D3D_SDK_VERSION); | ||||
| if (!m_data->m_d3d_ctx) | if (!m_data->m_d3d_ctx) | ||||
| { | { | ||||
| Log::Error("cannot initialise D3D\n"); | |||||
| msg::error("cannot initialise D3D\n"); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| @@ -119,7 +120,7 @@ Renderer::Renderer(ivec2 size) | |||||
| &d3dpp, &m_data->m_d3d_dev); | &d3dpp, &m_data->m_d3d_dev); | ||||
| if (FAILED(hr)) | if (FAILED(hr)) | ||||
| { | { | ||||
| Log::Error("cannot create D3D device\n"); | |||||
| msg::error("cannot create D3D device\n"); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| @@ -129,7 +130,7 @@ Renderer::Renderer(ivec2 size) | |||||
| GLenum glerr = glewInit(); | GLenum glerr = glewInit(); | ||||
| if (glerr != GLEW_OK) | if (glerr != GLEW_OK) | ||||
| { | { | ||||
| Log::Error("cannot initialise GLEW: %s\n", glewGetErrorString(glerr)); | |||||
| msg::error("cannot initialise GLEW: %s\n", glewGetErrorString(glerr)); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| # endif | # endif | ||||
| @@ -1,9 +1,9 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010-2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // This program is free software. It comes without any warranty, to | |||||
| // This library is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| // and/or modify it under the terms of the Do What the Fuck You Want | // and/or modify it under the terms of the Do What the Fuck You Want | ||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | // to Public License, Version 2, as published by the WTFPL Task Force. | ||||
| @@ -269,9 +269,9 @@ Shader::Shader(String const &name, | |||||
| &data->vert_table); | &data->vert_table); | ||||
| if (FAILED(hr)) | if (FAILED(hr)) | ||||
| { | { | ||||
| Log::Error("failed to compile vertex shader %s: %s\n", name.C(), | |||||
| msg::error("failed to compile vertex shader %s: %s\n", name.C(), | |||||
| error_msg ? error_msg->GetBufferPointer() : "error"); | error_msg ? error_msg->GetBufferPointer() : "error"); | ||||
| Log::Error("shader source:\n%s\n", vert); | |||||
| msg::error("shader source:\n%s\n", vert); | |||||
| } | } | ||||
| data->m_dev->CreateVertexShader((DWORD *)shader_code->GetBufferPointer(), | data->m_dev->CreateVertexShader((DWORD *)shader_code->GetBufferPointer(), | ||||
| &data->vert_shader); | &data->vert_shader); | ||||
| @@ -287,14 +287,14 @@ Shader::Shader(String const &name, | |||||
| glGetShaderiv(data->vert_id, GL_COMPILE_STATUS, &status); | glGetShaderiv(data->vert_id, GL_COMPILE_STATUS, &status); | ||||
| if (status != GL_TRUE) | if (status != GL_TRUE) | ||||
| { | { | ||||
| Log::Error("failed to compile vertex shader %s: %s\n", | |||||
| msg::error("failed to compile vertex shader %s: %s\n", | |||||
| name.C(), errbuf); | name.C(), errbuf); | ||||
| Log::Error("shader source:\n%s\n", shader_code.C()); | |||||
| msg::error("shader source:\n%s\n", shader_code.C()); | |||||
| } | } | ||||
| else if (len > 16) | else if (len > 16) | ||||
| { | { | ||||
| Log::Debug("compile log for vertex shader %s: %s\n", name.C(), errbuf); | |||||
| Log::Debug("shader source:\n%s\n", shader_code.C()); | |||||
| msg::debug("compile log for vertex shader %s: %s\n", name.C(), errbuf); | |||||
| msg::debug("shader source:\n%s\n", shader_code.C()); | |||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -306,9 +306,9 @@ Shader::Shader(String const &name, | |||||
| &data->frag_table); | &data->frag_table); | ||||
| if (FAILED(hr)) | if (FAILED(hr)) | ||||
| { | { | ||||
| Log::Error("failed to compile fragment shader %s: %s\n", name.C(), | |||||
| msg::error("failed to compile fragment shader %s: %s\n", name.C(), | |||||
| error_msg ? error_msg->GetBufferPointer() : "error"); | error_msg ? error_msg->GetBufferPointer() : "error"); | ||||
| Log::Error("shader source:\n%s\n", frag); | |||||
| msg::error("shader source:\n%s\n", frag); | |||||
| } | } | ||||
| data->m_dev->CreatePixelShader((DWORD *)shader_code->GetBufferPointer(), | data->m_dev->CreatePixelShader((DWORD *)shader_code->GetBufferPointer(), | ||||
| &data->frag_shader); | &data->frag_shader); | ||||
| @@ -324,15 +324,15 @@ Shader::Shader(String const &name, | |||||
| glGetShaderiv(data->frag_id, GL_COMPILE_STATUS, &status); | glGetShaderiv(data->frag_id, GL_COMPILE_STATUS, &status); | ||||
| if (status != GL_TRUE) | if (status != GL_TRUE) | ||||
| { | { | ||||
| Log::Error("failed to compile fragment shader %s: %s\n", | |||||
| msg::error("failed to compile fragment shader %s: %s\n", | |||||
| name.C(), errbuf); | name.C(), errbuf); | ||||
| Log::Error("shader source:\n%s\n", shader_code.C()); | |||||
| msg::error("shader source:\n%s\n", shader_code.C()); | |||||
| } | } | ||||
| else if (len > 16) | else if (len > 16) | ||||
| { | { | ||||
| Log::Debug("compile log for fragment shader %s: %s\n", | |||||
| msg::debug("compile log for fragment shader %s: %s\n", | |||||
| name.C(), errbuf); | name.C(), errbuf); | ||||
| Log::Debug("shader source:\n%s\n", shader_code.C()); | |||||
| msg::debug("shader source:\n%s\n", shader_code.C()); | |||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -366,11 +366,11 @@ Shader::Shader(String const &name, | |||||
| glGetProgramiv(data->prog_id, GL_LINK_STATUS, &status); | glGetProgramiv(data->prog_id, GL_LINK_STATUS, &status); | ||||
| if (status != GL_TRUE) | if (status != GL_TRUE) | ||||
| { | { | ||||
| Log::Error("failed to link program %s: %s\n", name.C(), errbuf); | |||||
| msg::error("failed to link program %s: %s\n", name.C(), errbuf); | |||||
| } | } | ||||
| else if (len > 16) | else if (len > 16) | ||||
| { | { | ||||
| Log::Debug("link log for program %s: %s\n", name.C(), errbuf); | |||||
| msg::debug("link log for program %s: %s\n", name.C(), errbuf); | |||||
| } | } | ||||
| GLint validated; | GLint validated; | ||||
| @@ -378,7 +378,7 @@ Shader::Shader(String const &name, | |||||
| glGetProgramiv(data->prog_id, GL_VALIDATE_STATUS, &validated); | glGetProgramiv(data->prog_id, GL_VALIDATE_STATUS, &validated); | ||||
| if (validated != GL_TRUE) | if (validated != GL_TRUE) | ||||
| { | { | ||||
| Log::Error("failed to validate program %s\n", name.C()); | |||||
| msg::error("failed to validate program %s\n", name.C()); | |||||
| } | } | ||||
| GLint num_attribs; | GLint num_attribs; | ||||
| @@ -416,7 +416,7 @@ Shader::Shader(String const &name, | |||||
| if (usage == VertexUsage::MAX || index == -1) | if (usage == VertexUsage::MAX || index == -1) | ||||
| { | { | ||||
| Log::Error("unable to parse attribute semantic from name: %s\n", | |||||
| msg::error("unable to parse attribute semantic from name: %s\n", | |||||
| name_buffer); | name_buffer); | ||||
| } | } | ||||
| else | else | ||||
| @@ -428,7 +428,7 @@ Shader::Shader(String const &name, | |||||
| #if _DEBUG | #if _DEBUG | ||||
| if (data->attrib_locations.has_key(flags)) | if (data->attrib_locations.has_key(flags)) | ||||
| { | { | ||||
| Log::Error("error while parsing attribute semantics in %s\n", | |||||
| msg::error("error while parsing attribute semantics in %s\n", | |||||
| name.C()); | name.C()); | ||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -459,7 +459,7 @@ ShaderAttrib Shader::GetAttribLocation(VertexUsage usage, int index) const | |||||
| /* Only spit an error once, we don’t need to flood the console. */ | /* Only spit an error once, we don’t need to flood the console. */ | ||||
| if (!data->attrib_errors.has_key(ret.m_flags)) | if (!data->attrib_errors.has_key(ret.m_flags)) | ||||
| { | { | ||||
| Log::Error("attribute %s not found in shader %s\n", | |||||
| msg::error("attribute %s not found in shader %s\n", | |||||
| usage.ToString().C(), data->m_name.C()); | usage.ToString().C(), data->m_name.C()); | ||||
| data->attrib_errors[ret.m_flags] = true; | data->attrib_errors[ret.m_flags] = true; | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -370,7 +371,7 @@ void VertexDeclaration::SetStream(VertexBuffer *vb, ShaderAttrib attribs[]) | |||||
| if (attr_index == m_count) | if (attr_index == m_count) | ||||
| { | { | ||||
| Log::Error("stream #%d with usage %x not found in declaration\n", | |||||
| msg::error("stream #%d with usage %x not found in declaration\n", | |||||
| index, usage.ToScalar()); | index, usage.ToScalar()); | ||||
| attr_index = 0; | attr_index = 0; | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -55,14 +56,14 @@ bool AndroidImageCodec::Load(Image *image, char const *path) | |||||
| if (res < 0) | if (res < 0) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("JVM environment not found, trying to attach thread\n"); | |||||
| msg::error("JVM environment not found, trying to attach thread\n"); | |||||
| #endif | #endif | ||||
| res = g_activity->vm->AttachCurrentThread(&env, nullptr); | res = g_activity->vm->AttachCurrentThread(&env, nullptr); | ||||
| } | } | ||||
| if (res < 0) | if (res < 0) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("JVM environment not found, cannot open image %s\n", path); | |||||
| msg::error("JVM environment not found, cannot open image %s\n", path); | |||||
| #endif | #endif | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -77,7 +78,7 @@ bool AndroidImageCodec::Load(Image *image, char const *path) | |||||
| if (!m_bmp) | if (!m_bmp) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("could not load %s\n", path); | |||||
| msg::error("could not load %s\n", path); | |||||
| #endif | #endif | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -121,7 +122,7 @@ bool AndroidImageCodec::Close() | |||||
| if (res < 0) | if (res < 0) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("JVM environment not found, cannot close image\n"); | |||||
| msg::error("JVM environment not found, cannot close image\n"); | |||||
| #endif | #endif | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #if HAVE_CONFIG_H | #if HAVE_CONFIG_H | ||||
| @@ -55,7 +56,7 @@ bool GdiPlusImageCodec::Load(Image *image, char const *path) | |||||
| status = Gdiplus::GdiplusStartup(&token, &input, nullptr); | status = Gdiplus::GdiplusStartup(&token, &input, nullptr); | ||||
| if (status != Gdiplus::Ok) | if (status != Gdiplus::Ok) | ||||
| { | { | ||||
| Log::Error("error %d while initialising GDI+\n", status); | |||||
| msg::error("error %d while initialising GDI+\n", status); | |||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -68,7 +69,7 @@ bool GdiPlusImageCodec::Load(Image *image, char const *path) | |||||
| wchar_t *wpath = new wchar_t[len + 1]; | wchar_t *wpath = new wchar_t[len + 1]; | ||||
| if (mbstowcs(wpath, fullpath.C(), len + 1) == (size_t)-1) | if (mbstowcs(wpath, fullpath.C(), len + 1) == (size_t)-1) | ||||
| { | { | ||||
| Log::Error("invalid image name %s\n", fullpath.C()); | |||||
| msg::error("invalid image name %s\n", fullpath.C()); | |||||
| delete[] wpath; | delete[] wpath; | ||||
| continue; | continue; | ||||
| } | } | ||||
| @@ -82,7 +83,7 @@ bool GdiPlusImageCodec::Load(Image *image, char const *path) | |||||
| if (status != Gdiplus::Ok) | if (status != Gdiplus::Ok) | ||||
| { | { | ||||
| if (status != Gdiplus::InvalidParameter) | if (status != Gdiplus::InvalidParameter) | ||||
| Log::Error("error %d loading %s\n", | |||||
| msg::error("error %d loading %s\n", | |||||
| status, fullpath.C()); | status, fullpath.C()); | ||||
| delete bitmap; | delete bitmap; | ||||
| bitmap = nullptr; | bitmap = nullptr; | ||||
| @@ -96,7 +97,7 @@ bool GdiPlusImageCodec::Load(Image *image, char const *path) | |||||
| if (!bitmap) | if (!bitmap) | ||||
| { | { | ||||
| Log::Error("could not load %s\n", path); | |||||
| msg::error("could not load %s\n", path); | |||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -106,7 +107,7 @@ bool GdiPlusImageCodec::Load(Image *image, char const *path) | |||||
| if (bitmap->LockBits(&rect, Gdiplus::ImageLockModeRead, | if (bitmap->LockBits(&rect, Gdiplus::ImageLockModeRead, | ||||
| PixelFormat32bppARGB, &bdata) != Gdiplus::Ok) | PixelFormat32bppARGB, &bdata) != Gdiplus::Ok) | ||||
| { | { | ||||
| Log::Error("could not lock bits in %s\n", path); | |||||
| msg::error("could not lock bits in %s\n", path); | |||||
| delete bitmap; | delete bitmap; | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -149,7 +150,7 @@ bool GdiPlusImageCodec::Save(Image *image, char const *path) | |||||
| Gdiplus::GetImageEncodersSize(&num, &encoder_size); | Gdiplus::GetImageEncodersSize(&num, &encoder_size); | ||||
| if (num == 0) | if (num == 0) | ||||
| { | { | ||||
| Log::Error("no GDI+ image encoders found\n"); | |||||
| msg::error("no GDI+ image encoders found\n"); | |||||
| return false; | return false; | ||||
| } | } | ||||
| Gdiplus::ImageCodecInfo *codecs | Gdiplus::ImageCodecInfo *codecs | ||||
| @@ -170,7 +171,7 @@ bool GdiPlusImageCodec::Save(Image *image, char const *path) | |||||
| wchar_t *wpath = new wchar_t[len + 1]; | wchar_t *wpath = new wchar_t[len + 1]; | ||||
| if (mbstowcs(wpath, path, len + 1) == (size_t)-1) | if (mbstowcs(wpath, path, len + 1) == (size_t)-1) | ||||
| { | { | ||||
| Log::Error("could not convert GDI+ filename '%s' to widechar\n", path); | |||||
| msg::error("could not convert GDI+ filename '%s' to widechar\n", path); | |||||
| delete[] wpath; | delete[] wpath; | ||||
| delete[] codecs; | delete[] codecs; | ||||
| return false; | return false; | ||||
| @@ -186,7 +187,7 @@ bool GdiPlusImageCodec::Save(Image *image, char const *path) | |||||
| if (b->LockBits(&rect, (unsigned int)Gdiplus::ImageLockModeWrite, | if (b->LockBits(&rect, (unsigned int)Gdiplus::ImageLockModeWrite, | ||||
| PixelFormat32bppARGB, &bdata) != Gdiplus::Ok) | PixelFormat32bppARGB, &bdata) != Gdiplus::Ok) | ||||
| { | { | ||||
| Log::Error("could not lock GDI+ image bits\n"); | |||||
| msg::error("could not lock GDI+ image bits\n"); | |||||
| delete b; | delete b; | ||||
| delete[] wpath; | delete[] wpath; | ||||
| delete[] codecs; | delete[] codecs; | ||||
| @@ -204,7 +205,7 @@ bool GdiPlusImageCodec::Save(Image *image, char const *path) | |||||
| if (b->Save(wpath, &clsid, nullptr) != Gdiplus::Ok) | if (b->Save(wpath, &clsid, nullptr) != Gdiplus::Ok) | ||||
| { | { | ||||
| Log::Error("could not save GDI+ image '%s'\n", path); | |||||
| msg::error("could not save GDI+ image '%s'\n", path); | |||||
| delete[] wpath; | delete[] wpath; | ||||
| delete[] codecs; | delete[] codecs; | ||||
| delete b; | delete b; | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -53,7 +54,7 @@ bool Imlib2ImageCodec::Load(Image *image, char const *path) | |||||
| if (!im) | if (!im) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("could not load image %s\n", path); | |||||
| msg::error("could not load image %s\n", path); | |||||
| #endif | #endif | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -65,7 +66,7 @@ bool Imlib2ImageCodec::Load(Image *image, char const *path) | |||||
| { | { | ||||
| imlib_free_image(); | imlib_free_image(); | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("could not get image data for %s\n", path); | |||||
| msg::error("could not get image data for %s\n", path); | |||||
| #endif | #endif | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -50,7 +51,7 @@ bool IosImageCodec::Load(Image *image, char const *path) | |||||
| if (!image) | if (!image) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("could not load %s\n", path); | |||||
| msg::error("could not load %s\n", path); | |||||
| #endif | #endif | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -58,7 +59,7 @@ bool SdlImageCodec::Load(Image *image, char const *path) | |||||
| if (!surface) | if (!surface) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("could not load image %s\n", path); | |||||
| msg::error("could not load image %s\n", path); | |||||
| #endif | #endif | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -1,9 +1,9 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010-2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // This program is free software. It comes without any warranty, to | |||||
| // This library is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| // and/or modify it under the terms of the Do What the Fuck You Want | // and/or modify it under the terms of the Do What the Fuck You Want | ||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | // to Public License, Version 2, as published by the WTFPL Task Force. | ||||
| @@ -162,13 +162,13 @@ bool Image::Load(char const *path) | |||||
| last_codec = codec; | last_codec = codec; | ||||
| if (codec->Load(this, path)) | if (codec->Load(this, path)) | ||||
| { | { | ||||
| Log::Info("Image::Load: Codec %s succesfully loaded %s.\n", codec->GetName(), path); | |||||
| msg::info("Image::Load: Codec %s succesfully loaded %s.\n", codec->GetName(), path); | |||||
| return true; | return true; | ||||
| } | } | ||||
| } | } | ||||
| //Log error, because we shouldn't be here | //Log error, because we shouldn't be here | ||||
| Log::Error("Image::Load: Last codec %s, Error loading image %s.\n", last_codec->GetName(), path); | |||||
| msg::error("Image::Load: Last codec %s, Error loading image %s.\n", last_codec->GetName(), path); | |||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -180,13 +180,13 @@ bool Image::Save(char const *path) | |||||
| last_codec = codec; | last_codec = codec; | ||||
| if (codec->Save(this, path)) | if (codec->Save(this, path)) | ||||
| { | { | ||||
| Log::Info("Image::Save: Codec %s succesfully saved %s.\n", codec->GetName(), path); | |||||
| msg::info("Image::Save: Codec %s succesfully saved %s.\n", codec->GetName(), path); | |||||
| return true; | return true; | ||||
| } | } | ||||
| } | } | ||||
| //Log error, because we shouldn't be here | //Log error, because we shouldn't be here | ||||
| Log::Error("Image::Save: Last codec %s, Error saving image %s.\n", last_codec->GetName(), path); | |||||
| msg::error("Image::Save: Last codec %s, Error saving image %s.\n", last_codec->GetName(), path); | |||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Benjamin Litzelmann | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Benjamin Litzelmann | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -22,7 +23,7 @@ void KeyBinding::Bind(const String& device_name, const String& key_name) | |||||
| if (!device) | if (!device) | ||||
| { | { | ||||
| Log::Warn("trying to bind key to nonexistent input device %s\n", | |||||
| msg::warn("trying to bind key to nonexistent input device %s\n", | |||||
| device_name.C()); | device_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -30,7 +31,7 @@ void KeyBinding::Bind(const String& device_name, const String& key_name) | |||||
| int keyindex = device->GetKeyIndex(key_name); | int keyindex = device->GetKeyIndex(key_name); | ||||
| if (keyindex < 0) | if (keyindex < 0) | ||||
| { | { | ||||
| Log::Warn("trying to bind nonexistent key %s.%s\n", | |||||
| msg::warn("trying to bind nonexistent key %s.%s\n", | |||||
| device_name.C(), key_name.C()); | device_name.C(), key_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -67,7 +68,7 @@ void AxisBinding::Bind(const String& device_name, const String& axis_name) | |||||
| const InputDevice* device = InputDevice::Get(device_name); | const InputDevice* device = InputDevice::Get(device_name); | ||||
| if (!device) | if (!device) | ||||
| { | { | ||||
| Log::Warn("trying to bind axis to nonexistent input device %s\n", | |||||
| msg::warn("trying to bind axis to nonexistent input device %s\n", | |||||
| device_name.C()); | device_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -75,7 +76,7 @@ void AxisBinding::Bind(const String& device_name, const String& axis_name) | |||||
| int axisindex = device->GetAxisIndex(axis_name); | int axisindex = device->GetAxisIndex(axis_name); | ||||
| if (axisindex < 0) | if (axisindex < 0) | ||||
| { | { | ||||
| Log::Warn("trying to bind nonexistent axis %s.%s\n", | |||||
| msg::warn("trying to bind nonexistent axis %s.%s\n", | |||||
| device_name.C(), axis_name.C()); | device_name.C(), axis_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -88,7 +89,7 @@ void AxisBinding::BindKey(const String& device_name, const String& key_name) | |||||
| const InputDevice* device = InputDevice::Get(device_name); | const InputDevice* device = InputDevice::Get(device_name); | ||||
| if (!device) | if (!device) | ||||
| { | { | ||||
| Log::Warn("trying to bind axis key to nonexistent input device %s\n", | |||||
| msg::warn("trying to bind axis key to nonexistent input device %s\n", | |||||
| device_name.C()); | device_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -96,7 +97,7 @@ void AxisBinding::BindKey(const String& device_name, const String& key_name) | |||||
| int keyindex = device->GetKeyIndex(key_name); | int keyindex = device->GetKeyIndex(key_name); | ||||
| if (keyindex < 0) | if (keyindex < 0) | ||||
| { | { | ||||
| Log::Warn("trying to bind nonexistent axis key %s.%s\n", | |||||
| msg::warn("trying to bind nonexistent axis key %s.%s\n", | |||||
| device_name.C(), key_name.C()); | device_name.C(), key_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -109,7 +110,7 @@ void AxisBinding::BindKeys(const String& device_name, const String& min_key_name | |||||
| const InputDevice* device = InputDevice::Get(device_name); | const InputDevice* device = InputDevice::Get(device_name); | ||||
| if (!device) | if (!device) | ||||
| { | { | ||||
| Log::Warn("trying to bind axis keys to nonexistent input device %s\n", | |||||
| msg::warn("trying to bind axis keys to nonexistent input device %s\n", | |||||
| device_name.C()); | device_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -117,7 +118,7 @@ void AxisBinding::BindKeys(const String& device_name, const String& min_key_name | |||||
| int minkeyindex = device->GetKeyIndex(min_key_name); | int minkeyindex = device->GetKeyIndex(min_key_name); | ||||
| if (minkeyindex < 0) | if (minkeyindex < 0) | ||||
| { | { | ||||
| Log::Warn("trying to bind nonexistent axis key %s.%s\n", | |||||
| msg::warn("trying to bind nonexistent axis key %s.%s\n", | |||||
| device_name.C(), min_key_name.C()); | device_name.C(), min_key_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -125,7 +126,7 @@ void AxisBinding::BindKeys(const String& device_name, const String& min_key_name | |||||
| int maxkeyindex = device->GetKeyIndex(max_key_name); | int maxkeyindex = device->GetKeyIndex(max_key_name); | ||||
| if (maxkeyindex < 0) | if (maxkeyindex < 0) | ||||
| { | { | ||||
| Log::Warn("trying to bind nonexistent axis key %s.%s\n", | |||||
| msg::warn("trying to bind nonexistent axis key %s.%s\n", | |||||
| device_name.C(), max_key_name.C()); | device_name.C(), max_key_name.C()); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -236,7 +237,7 @@ Controller::Controller(String const &name) | |||||
| m_active = false; | m_active = false; | ||||
| if (Get(name) != nullptr) | if (Get(name) != nullptr) | ||||
| { | { | ||||
| Log::Warn("controller “%s” has already been registered\n", name.C()); | |||||
| msg::warn("controller “%s” has already been registered\n", name.C()); | |||||
| } | } | ||||
| controllers.push(this); | controllers.push(this); | ||||
| } | } | ||||
| @@ -18,8 +18,12 @@ | |||||
| namespace lol | namespace lol | ||||
| { | { | ||||
| /* | |||||
| * Shuffle an array. | |||||
| */ | |||||
| template<typename T, typename ARRAY> | template<typename T, typename ARRAY> | ||||
| void array_base<T, ARRAY>::Shuffle() | |||||
| void array_base<T, ARRAY>::shuffle() | |||||
| { | { | ||||
| auto n = count(); | auto n = count(); | ||||
| auto ni = n; | auto ni = n; | ||||
| @@ -30,8 +34,16 @@ void array_base<T, ARRAY>::Shuffle() | |||||
| } | } | ||||
| } | } | ||||
| /* | |||||
| * Sort an array | |||||
| */ | |||||
| template<typename T, typename ARRAY> | template<typename T, typename ARRAY> | ||||
| void array_base<T, ARRAY>::Sort(SortAlgorithm algorithm) | |||||
| static void quick_swap_sort(array_base<T, ARRAY> &a, | |||||
| ptrdiff_t start, ptrdiff_t stop); | |||||
| template<typename T, typename ARRAY> | |||||
| void array_base<T, ARRAY>::sort(SortAlgorithm algorithm) | |||||
| { | { | ||||
| #if !SORT_WORKS // yeah cause it's shite. | #if !SORT_WORKS // yeah cause it's shite. | ||||
| algorithm = SortAlgorithm::Bubble; | algorithm = SortAlgorithm::Bubble; | ||||
| @@ -55,12 +67,13 @@ void array_base<T, ARRAY>::Sort(SortAlgorithm algorithm) | |||||
| // Quick sort with swap | // Quick sort with swap | ||||
| else if (algorithm == SortAlgorithm::QuickSwap) | else if (algorithm == SortAlgorithm::QuickSwap) | ||||
| { | { | ||||
| SortQuickSwap(0, count_s()); | |||||
| quick_swap_sort(*this, 0, count_s()); | |||||
| } | } | ||||
| } | } | ||||
| template<typename T, typename ARRAY> | template<typename T, typename ARRAY> | ||||
| void array_base<T, ARRAY>::SortQuickSwap(ptrdiff_t start, ptrdiff_t stop) | |||||
| static void quick_swap_sort(array_base<T, ARRAY> &a, | |||||
| ptrdiff_t start, ptrdiff_t stop) | |||||
| { | { | ||||
| ptrdiff_t m[3] = | ptrdiff_t m[3] = | ||||
| { | { | ||||
| @@ -71,7 +84,7 @@ void array_base<T, ARRAY>::SortQuickSwap(ptrdiff_t start, ptrdiff_t stop) | |||||
| for (int i = 0; i < 2; ) | for (int i = 0; i < 2; ) | ||||
| { | { | ||||
| if (m_data[m[i+1]] < m_data[m[i]]) | |||||
| if (a[m[i+1]] < a[m[i]]) | |||||
| { | { | ||||
| ptrdiff_t mt = m[i+1]; | ptrdiff_t mt = m[i+1]; | ||||
| m[i+1] = m[i]; | m[i+1] = m[i]; | ||||
| @@ -81,34 +94,34 @@ void array_base<T, ARRAY>::SortQuickSwap(ptrdiff_t start, ptrdiff_t stop) | |||||
| else | else | ||||
| i++; | i++; | ||||
| } | } | ||||
| //actual stuff | |||||
| T median = m_data[m[1]]; | |||||
| ptrdiff_t i0 = start; | |||||
| ptrdiff_t i1 = stop - 1; | |||||
| // actual stuff | |||||
| T median = a[m[1]]; | |||||
| ptrdiff_t i0 = start, i1 = stop - 1; | |||||
| bool b_swap = false; | bool b_swap = false; | ||||
| while (i0 < i1) | while (i0 < i1) | ||||
| { | { | ||||
| if (!(m_data[i0] < median) && m_data[i1] < median) | |||||
| if (!(a[i0] < median) && a[i1] < median) | |||||
| { | { | ||||
| std::swap(m_data[i0], m_data[i1]); | |||||
| std::swap(a[i0], a[i1]); | |||||
| i0++; | i0++; | ||||
| i1--; | i1--; | ||||
| b_swap = true; | b_swap = true; | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if (m_data[i0] < median) | |||||
| if (a[i0] < median) | |||||
| i0++; | i0++; | ||||
| if (!(m_data[i1] < median)) | |||||
| if (!(a[i1] < median)) | |||||
| i1--; | i1--; | ||||
| } | } | ||||
| } | } | ||||
| if (stop - start == 1 || !b_swap) | if (stop - start == 1 || !b_swap) | ||||
| return; | return; | ||||
| if (start < i0) | if (start < i0) | ||||
| SortQuickSwap(start, i0); | |||||
| quick_swap_sort(a, start, i0); | |||||
| if (i0 < stop) | if (i0 < stop) | ||||
| SortQuickSwap(i0, stop); | |||||
| quick_swap_sort(a, i0, stop); | |||||
| } | } | ||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| @@ -367,20 +367,20 @@ public: | |||||
| m_reserved = toreserve; | m_reserved = toreserve; | ||||
| } | } | ||||
| void Shuffle(); | |||||
| void Sort(SortAlgorithm algorithm); | |||||
| void SortQuickSwap(ptrdiff_t start, ptrdiff_t stop); | |||||
| void shuffle(); | |||||
| void sort(SortAlgorithm algorithm); | |||||
| /* Support C++11 range-based for loops */ | /* Support C++11 range-based for loops */ | ||||
| class ConstIterator | |||||
| class const_iterator | |||||
| { | { | ||||
| public: | public: | ||||
| ConstIterator(array_base const *that, ptrdiff_t pos) | |||||
| const_iterator(array_base const *that, ptrdiff_t pos) | |||||
| : m_pos(pos), | : m_pos(pos), | ||||
| m_array(that) | m_array(that) | ||||
| { } | { } | ||||
| bool operator !=(const ConstIterator& that) const | |||||
| bool operator !=(const const_iterator& that) const | |||||
| { | { | ||||
| return m_pos != that.m_pos; | return m_pos != that.m_pos; | ||||
| } | } | ||||
| @@ -390,7 +390,7 @@ public: | |||||
| return (*m_array)[m_pos]; | return (*m_array)[m_pos]; | ||||
| } | } | ||||
| ConstIterator const & operator ++() | |||||
| const_iterator const & operator ++() | |||||
| { | { | ||||
| ++m_pos; | ++m_pos; | ||||
| return *this; | return *this; | ||||
| @@ -401,15 +401,15 @@ public: | |||||
| array_base const *m_array; | array_base const *m_array; | ||||
| }; | }; | ||||
| class Iterator | |||||
| class iterator | |||||
| { | { | ||||
| public: | public: | ||||
| Iterator(array_base *that, ptrdiff_t pos) | |||||
| iterator(array_base *that, ptrdiff_t pos) | |||||
| : m_pos(pos), | : m_pos(pos), | ||||
| m_array(that) | m_array(that) | ||||
| { } | { } | ||||
| bool operator !=(const Iterator& that) const | |||||
| bool operator !=(const iterator& that) const | |||||
| { | { | ||||
| return m_pos != that.m_pos; | return m_pos != that.m_pos; | ||||
| } | } | ||||
| @@ -419,7 +419,7 @@ public: | |||||
| return (*m_array)[m_pos]; | return (*m_array)[m_pos]; | ||||
| } | } | ||||
| Iterator const & operator ++() | |||||
| iterator const & operator ++() | |||||
| { | { | ||||
| ++m_pos; | ++m_pos; | ||||
| return *this; | return *this; | ||||
| @@ -532,38 +532,28 @@ public: | |||||
| */ | */ | ||||
| template<typename... T> | template<typename... T> | ||||
| typename array<T...>::Iterator begin(array<T...> &a) | |||||
| typename array<T...>::iterator begin(array<T...> &a) | |||||
| { | { | ||||
| return typename array<T...>::Iterator(&a, 0); | |||||
| return typename array<T...>::iterator(&a, 0); | |||||
| } | } | ||||
| template<typename... T> | template<typename... T> | ||||
| typename array<T...>::Iterator end(array<T...> &a) | |||||
| typename array<T...>::iterator end(array<T...> &a) | |||||
| { | { | ||||
| return typename array<T...>::Iterator(&a, a.count()); | |||||
| return typename array<T...>::iterator(&a, a.count()); | |||||
| } | } | ||||
| template<typename... T> | template<typename... T> | ||||
| typename array<T...>::ConstIterator begin(array<T...> const &a) | |||||
| typename array<T...>::const_iterator begin(array<T...> const &a) | |||||
| { | { | ||||
| return typename array<T...>::ConstIterator(&a, 0); | |||||
| return typename array<T...>::const_iterator(&a, 0); | |||||
| } | } | ||||
| template<typename... T> | template<typename... T> | ||||
| typename array<T...>::ConstIterator end(array<T...> const &a) | |||||
| typename array<T...>::const_iterator end(array<T...> const &a) | |||||
| { | { | ||||
| return typename array<T...>::ConstIterator(&a, a.count()); | |||||
| return typename array<T...>::const_iterator(&a, a.count()); | |||||
| } | } | ||||
| /* | |||||
| * Transitional alias for the deprecated camelcase version of lol::array | |||||
| */ | |||||
| #if LOL_FEATURE_CXX11_TEMPLATE_ALIASES | |||||
| template<typename... T> using Array = array<T...>; | |||||
| #else | |||||
| # define Array array | |||||
| #endif | |||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| @@ -109,13 +110,13 @@ static inline void DebugAbort() | |||||
| */ | */ | ||||
| #define LOL_ERROR_1(t) \ | #define LOL_ERROR_1(t) \ | ||||
| lol::Log::Error("assertion at %s:%d: %s\n", __FILE__, __LINE__, #t) | |||||
| lol::msg::error("assertion at %s:%d: %s\n", __FILE__, __LINE__, #t) | |||||
| #define LOL_ERROR_2(t, s) \ | #define LOL_ERROR_2(t, s) \ | ||||
| lol::Log::Error("assertion at %s:%d: %s\n", __FILE__, __LINE__, s) | |||||
| lol::msg::error("assertion at %s:%d: %s\n", __FILE__, __LINE__, s) | |||||
| #define LOL_ERROR_3(t, s, ...) \ | #define LOL_ERROR_3(t, s, ...) \ | ||||
| lol::Log::Error("assertion at %s:%d: " s "\n", __FILE__, __LINE__, __VA_ARGS__) | |||||
| lol::msg::error("assertion at %s:%d: " s "\n", __FILE__, __LINE__, __VA_ARGS__) | |||||
| #if LOL_BUILD_RELEASE | #if LOL_BUILD_RELEASE | ||||
| # define ASSERT(...) UNUSED(LOL_CALL(LOL_1ST, (__VA_ARGS__))) | # define ASSERT(...) UNUSED(LOL_CALL(LOL_1ST, (__VA_ARGS__))) | ||||
| @@ -1,17 +1,18 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #pragma once | #pragma once | ||||
| // | // | ||||
| // The Log interface | |||||
| // The msg interface | |||||
| // ----------------- | // ----------------- | ||||
| // The central logging system. | // The central logging system. | ||||
| // | // | ||||
| @@ -22,7 +23,7 @@ | |||||
| namespace lol | namespace lol | ||||
| { | { | ||||
| class Log | |||||
| class msg | |||||
| { | { | ||||
| public: | public: | ||||
| #ifdef __GNUC__ | #ifdef __GNUC__ | ||||
| @@ -30,22 +31,22 @@ public: | |||||
| #else | #else | ||||
| # define LOL_FMT_ATTR(n, p) | # define LOL_FMT_ATTR(n, p) | ||||
| #endif | #endif | ||||
| static void Debug(char const *format, ...) LOL_FMT_ATTR(1, 2); | |||||
| static void Info(char const *format, ...) LOL_FMT_ATTR(1, 2); | |||||
| static void Warn(char const *format, ...) LOL_FMT_ATTR(1, 2); | |||||
| static void Error(char const *format, ...) LOL_FMT_ATTR(1, 2); | |||||
| static void debug(char const *format, ...) LOL_FMT_ATTR(1, 2); | |||||
| static void info(char const *format, ...) LOL_FMT_ATTR(1, 2); | |||||
| static void warn(char const *format, ...) LOL_FMT_ATTR(1, 2); | |||||
| static void error(char const *format, ...) LOL_FMT_ATTR(1, 2); | |||||
| #undef LOL_FMT_ATTR | #undef LOL_FMT_ATTR | ||||
| private: | private: | ||||
| enum MessageType | |||||
| enum class MessageType | |||||
| { | { | ||||
| DebugMessage, | |||||
| InfoMessage, | |||||
| WarnMessage, | |||||
| ErrorMessage | |||||
| Debug, | |||||
| Info, | |||||
| Warning, | |||||
| Error | |||||
| }; | }; | ||||
| static void Helper(MessageType type, char const *fmt, va_list ap); | |||||
| static void helper(MessageType type, char const *fmt, va_list ap); | |||||
| }; | }; | ||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| @@ -1,9 +1,9 @@ | |||||
| // | // | ||||
| // imGui integration in lolengine | // imGui integration in lolengine | ||||
| // | // | ||||
| // Copyright © 2009-2015 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | |||||
| // Copyright © 2009—2015 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | |||||
| // | // | ||||
| // This program is free software. It comes without any warranty, to | |||||
| // This library is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| // and/or modify it under the terms of the Do What the Fuck You Want | // and/or modify it under the terms of the Do What the Fuck You Want | ||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | // to Public License, Version 2, as published by the WTFPL Task Force. | ||||
| @@ -230,7 +230,7 @@ void LolImGui::TickGame(float seconds) | |||||
| cursor.y = 1.f - cursor.y; | cursor.y = 1.f - cursor.y; | ||||
| cursor *= video_size; | cursor *= video_size; | ||||
| io.MousePos = ImVec2(cursor.x, cursor.y); | io.MousePos = ImVec2(cursor.x, cursor.y); | ||||
| Log::Debug("%.2f/%.2f\n", io.MousePos.x, io.MousePos.y); | |||||
| msg::debug("%.2f/%.2f\n", io.MousePos.x, io.MousePos.y); | |||||
| io.MouseWheel = m_controller->GetAxisValue(LolImGuiAxis::Scroll); | io.MouseWheel = m_controller->GetAxisValue(LolImGuiAxis::Scroll); | ||||
| for (int i = LolImGuiKey::MOUSE_KEY_START; i < LolImGuiKey::MOUSE_KEY_END; ++i) | for (int i = LolImGuiKey::MOUSE_KEY_START; i < LolImGuiKey::MOUSE_KEY_END; ++i) | ||||
| @@ -243,11 +243,11 @@ void LolImGui::TickGame(float seconds) | |||||
| case LolImGuiKey::Focus: | case LolImGuiKey::Focus: | ||||
| if (m_controller->IsKeyReleased(i)) | if (m_controller->IsKeyReleased(i)) | ||||
| { | { | ||||
| Log::Debug("Not focused .....\n"); | |||||
| msg::debug("Not focused .....\n"); | |||||
| io.MousePos = ImVec2(-1.f, -1.f); | io.MousePos = ImVec2(-1.f, -1.f); | ||||
| } | } | ||||
| else | else | ||||
| Log::Debug("Focused !!\n"); | |||||
| msg::debug("Focused !!\n"); | |||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| @@ -1,10 +1,10 @@ | |||||
| // | // | ||||
| // Base Lua class for Lua script loading | // Base Lua class for Lua script loading | ||||
| // | // | ||||
| // Copyright: (c) 2009-2015 Sam Hocevar <sam@hocevar.net> | |||||
| // 2009-2015 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | |||||
| // Copyright: © 2009—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2009—2015 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | |||||
| // | // | ||||
| // This program is free software. It comes without any warranty, to | |||||
| // This library is free software. It comes without any warranty, to | |||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| // and/or modify it under the terms of the Do What the Fuck You Want | // and/or modify it under the terms of the Do What the Fuck You Want | ||||
| // to Public License, Version 2, as published by the WTFPL Task Force. | // to Public License, Version 2, as published by the WTFPL Task Force. | ||||
| @@ -29,7 +29,7 @@ class LuaBaseData | |||||
| static int LuaPanic(LuaState* l) | static int LuaPanic(LuaState* l) | ||||
| { | { | ||||
| char const *message = lua_tostring(l, -1); | char const *message = lua_tostring(l, -1); | ||||
| Log::Error("%s\n", message); | |||||
| msg::error("%s\n", message); | |||||
| DebugAbort(); | DebugAbort(); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -59,18 +59,18 @@ class LuaBaseData | |||||
| String s = f.ReadString(); | String s = f.ReadString(); | ||||
| f.Close(); | f.Close(); | ||||
| Log::Debug("loading Lua file %s\n", candidate.C()); | |||||
| msg::debug("loading Lua file %s\n", candidate.C()); | |||||
| status = LuaDoCode(l, s); | status = LuaDoCode(l, s); | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| if (status == LUA_ERRFILE) | if (status == LUA_ERRFILE) | ||||
| Log::Error("could not find Lua file %s\n", filename); | |||||
| msg::error("could not find Lua file %s\n", filename); | |||||
| else if (status == 1) | else if (status == 1) | ||||
| { | { | ||||
| LuaString error; error.Get(l, -1); | LuaString error; error.Get(l, -1); | ||||
| Log::Error("Lua error %s\n", error().C()); | |||||
| msg::error("Lua error %s\n", error().C()); | |||||
| lua_pop(l, 1); | lua_pop(l, 1); | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2014 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -16,7 +17,7 @@ namespace lol | |||||
| { | { | ||||
| #define LOL_PRINTF_TOSTRING(type, ...) \ | #define LOL_PRINTF_TOSTRING(type, ...) \ | ||||
| template<> void type::printf() const { Log::Debug(__VA_ARGS__); } \ | |||||
| template<> void type::printf() const { msg::debug(__VA_ARGS__); } \ | |||||
| template<> String type::tostring() const { return String::format(__VA_ARGS__); } | template<> String type::tostring() const { return String::format(__VA_ARGS__); } | ||||
| LOL_PRINTF_TOSTRING(vec2, "[ %6.6f %6.6f ]\n", x, y); | LOL_PRINTF_TOSTRING(vec2, "[ %6.6f %6.6f ]\n", x, y); | ||||
| @@ -32,8 +33,8 @@ template<> void mat2::printf() const | |||||
| { | { | ||||
| mat2 const &p = *this; | mat2 const &p = *this; | ||||
| Log::Debug("[ %6.6f %6.6f\n", p[0][0], p[1][0]); | |||||
| Log::Debug(" %6.6f %6.6f ]\n", p[0][1], p[1][1]); | |||||
| msg::debug("[ %6.6f %6.6f\n", p[0][0], p[1][0]); | |||||
| msg::debug(" %6.6f %6.6f ]\n", p[0][1], p[1][1]); | |||||
| } | } | ||||
| template<> String mat2::tostring() const | template<> String mat2::tostring() const | ||||
| @@ -48,9 +49,9 @@ template<> void mat3::printf() const | |||||
| { | { | ||||
| mat3 const &p = *this; | mat3 const &p = *this; | ||||
| Log::Debug("[ %6.6f %6.6f %6.6f\n", p[0][0], p[1][0], p[2][0]); | |||||
| Log::Debug(" %6.6f %6.6f %6.6f\n", p[0][1], p[1][1], p[2][1]); | |||||
| Log::Debug(" %6.6f %6.6f %6.6f ]\n", p[0][2], p[1][2], p[2][2]); | |||||
| msg::debug("[ %6.6f %6.6f %6.6f\n", p[0][0], p[1][0], p[2][0]); | |||||
| msg::debug(" %6.6f %6.6f %6.6f\n", p[0][1], p[1][1], p[2][1]); | |||||
| msg::debug(" %6.6f %6.6f %6.6f ]\n", p[0][2], p[1][2], p[2][2]); | |||||
| } | } | ||||
| template<> String mat3::tostring() const | template<> String mat3::tostring() const | ||||
| @@ -66,13 +67,13 @@ template<> void mat4::printf() const | |||||
| { | { | ||||
| mat4 const &p = *this; | mat4 const &p = *this; | ||||
| Log::Debug("[ %6.6f %6.6f %6.6f %6.6f\n", | |||||
| msg::debug("[ %6.6f %6.6f %6.6f %6.6f\n", | |||||
| p[0][0], p[1][0], p[2][0], p[3][0]); | p[0][0], p[1][0], p[2][0], p[3][0]); | ||||
| Log::Debug(" %6.6f %6.6f %6.6f %6.6f\n", | |||||
| msg::debug(" %6.6f %6.6f %6.6f %6.6f\n", | |||||
| p[0][1], p[1][1], p[2][1], p[3][1]); | p[0][1], p[1][1], p[2][1], p[3][1]); | ||||
| Log::Debug(" %6.6f %6.6f %6.6f %6.6f\n", | |||||
| msg::debug(" %6.6f %6.6f %6.6f %6.6f\n", | |||||
| p[0][2], p[1][2], p[2][2], p[3][2]); | p[0][2], p[1][2], p[2][2], p[3][2]); | ||||
| Log::Debug(" %6.6f %6.6f %6.6f %6.6f ]\n", | |||||
| msg::debug(" %6.6f %6.6f %6.6f %6.6f ]\n", | |||||
| p[0][3], p[1][3], p[2][3], p[3][3]); | p[0][3], p[1][3], p[2][3], p[3][3]); | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -117,7 +118,7 @@ void SubMesh::Render() | |||||
| if (m_vbos[i] == nullptr) | if (m_vbos[i] == nullptr) | ||||
| { | { | ||||
| Log::Error("trying to render a mesh with a null VBO\n"); | |||||
| msg::error("trying to render a mesh with a null VBO\n"); | |||||
| continue; | continue; | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -40,7 +41,7 @@ AAssetManager *g_assets; | |||||
| extern "C" jint | extern "C" jint | ||||
| JNI_OnLoad(JavaVM* vm, void* reserved) | JNI_OnLoad(JavaVM* vm, void* reserved) | ||||
| { | { | ||||
| Log::Info("Java layer loading library, vm=0x%08lx", (long)(intptr_t)vm); | |||||
| msg::info("Java layer loading library, vm=0x%08lx", (long)(intptr_t)vm); | |||||
| return JNI_VERSION_1_4; | return JNI_VERSION_1_4; | ||||
| } | } | ||||
| @@ -142,7 +143,7 @@ int lol::AndroidAppData::CreateDisplay() | |||||
| if (eglMakeCurrent(m_display, m_surface, m_surface, m_context) == EGL_FALSE) | if (eglMakeCurrent(m_display, m_surface, m_surface, m_context) == EGL_FALSE) | ||||
| { | { | ||||
| Log::Error("unable to eglMakeCurrent"); | |||||
| msg::error("unable to eglMakeCurrent"); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -150,7 +151,7 @@ int lol::AndroidAppData::CreateDisplay() | |||||
| eglQuerySurface(m_display, m_surface, EGL_HEIGHT, &h); | eglQuerySurface(m_display, m_surface, EGL_HEIGHT, &h); | ||||
| /* Launch our renderer */ | /* Launch our renderer */ | ||||
| Log::Info("Java layer initialising renderer (%dx%d)", w, h); | |||||
| msg::info("Java layer initialising renderer (%dx%d)", w, h); | |||||
| Video::Setup(ivec2(w, h)); | Video::Setup(ivec2(w, h)); | ||||
| return 0; | return 0; | ||||
| @@ -265,7 +266,7 @@ AndroidAppData *g_data; | |||||
| void android_main(android_app* native_app) | void android_main(android_app* native_app) | ||||
| { | { | ||||
| Log::Info("Java layer calling android_main() for app 0x%08lx", | |||||
| msg::info("Java layer calling android_main() for app 0x%08lx", | |||||
| (long)native_app); | (long)native_app); | ||||
| /* Register native activity */ | /* Register native activity */ | ||||
| @@ -276,12 +277,12 @@ void android_main(android_app* native_app) | |||||
| jint res = g_activity->vm->GetEnv((void **)&jni_env, JNI_VERSION_1_2); | jint res = g_activity->vm->GetEnv((void **)&jni_env, JNI_VERSION_1_2); | ||||
| if (res < 0) | if (res < 0) | ||||
| { | { | ||||
| Log::Info("JVM environment not found, trying to attach thread\n"); | |||||
| msg::info("JVM environment not found, trying to attach thread\n"); | |||||
| res = g_activity->vm->AttachCurrentThread(&jni_env, nullptr); | res = g_activity->vm->AttachCurrentThread(&jni_env, nullptr); | ||||
| } | } | ||||
| if (res < 0) | if (res < 0) | ||||
| { | { | ||||
| Log::Error("JVM environment not found, cannot run main()\n"); | |||||
| msg::error("JVM environment not found, cannot run main()\n"); | |||||
| return; | return; | ||||
| } | } | ||||
| @@ -327,7 +328,7 @@ void android_main(android_app* native_app) | |||||
| source->process(native_app, source); | source->process(native_app, source); | ||||
| } | } | ||||
| Log::Info("Java layer running real main()\n"); | |||||
| msg::info("Java layer running real main()\n"); | |||||
| /* Call the user's main() function. One of these will work. */ | /* Call the user's main() function. One of these will work. */ | ||||
| lol_android_main(); | lol_android_main(); | ||||
| @@ -339,7 +340,7 @@ lol::AndroidApp::AndroidApp(char const *title, ivec2 res, float fps) | |||||
| : m_data(g_data) | : m_data(g_data) | ||||
| { | { | ||||
| /* Launch our ticker */ | /* Launch our ticker */ | ||||
| Log::Info("Java layer initialising ticker at %g fps", fps); | |||||
| msg::info("Java layer initialising ticker at %g fps", fps); | |||||
| Ticker::Setup(fps); | Ticker::Setup(fps); | ||||
| m_data->m_wanted_resolution = res; | m_data->m_wanted_resolution = res; | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2014 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -69,7 +70,7 @@ SdlAppDisplay::SdlAppDisplay(char const *title, ivec2 res) | |||||
| { | { | ||||
| if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_NOPARACHUTE) < 0) | if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_NOPARACHUTE) < 0) | ||||
| { | { | ||||
| Log::Error("cannot initialise SDL: %s\n", SDL_GetError()); | |||||
| msg::error("cannot initialise SDL: %s\n", SDL_GetError()); | |||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| } | } | ||||
| @@ -85,7 +86,7 @@ SdlAppDisplay::SdlAppDisplay(char const *title, ivec2 res) | |||||
| SDL_WINDOW_OPENGL); | SDL_WINDOW_OPENGL); | ||||
| if (!data->m_window) | if (!data->m_window) | ||||
| { | { | ||||
| Log::Error("cannot create rendering window: %s\n", SDL_GetError()); | |||||
| msg::error("cannot create rendering window: %s\n", SDL_GetError()); | |||||
| SDL_Quit(); | SDL_Quit(); | ||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| @@ -116,7 +117,7 @@ SdlAppDisplay::SdlAppDisplay(char const *title, ivec2 res) | |||||
| if (!data->m_window) | if (!data->m_window) | ||||
| { | { | ||||
| Log::Error("cannot create rendering window: %s\n", SDL_GetError()); | |||||
| msg::error("cannot create rendering window: %s\n", SDL_GetError()); | |||||
| SDL_Quit(); | SDL_Quit(); | ||||
| exit(EXIT_FAILURE); | exit(EXIT_FAILURE); | ||||
| } | } | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2014 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -74,7 +75,7 @@ static int sdl12_to_scancode(int ch, int sc) | |||||
| case id: return String(str); | case id: return String(str); | ||||
| # include "input/keys.h" | # include "input/keys.h" | ||||
| default: | default: | ||||
| Log::Error("ScanCodeToText unknown scancode %0d\n", sc); | |||||
| msg::error("ScanCodeToText unknown scancode %0d\n", sc); | |||||
| } | } | ||||
| return String(); | return String(); | ||||
| } | } | ||||
| @@ -87,7 +88,7 @@ static int sdl12_to_scancode(int ch, int sc) | |||||
| case id: return String(#name); | case id: return String(#name); | ||||
| # include "input/keys.h" | # include "input/keys.h" | ||||
| default: | default: | ||||
| Log::Error("ScanCodeToText unknown scancode %0d\n", sc); | |||||
| msg::error("ScanCodeToText unknown scancode %0d\n", sc); | |||||
| } | } | ||||
| return String(); | return String(); | ||||
| } | } | ||||
| @@ -290,7 +291,7 @@ void SdlInputData::Tick(float seconds) | |||||
| } | } | ||||
| m_keyboard->SetKey(sc2, !m_keyboard->GetKey(sc2)); | m_keyboard->SetKey(sc2, !m_keyboard->GetKey(sc2)); | ||||
| /* DEBUG STUFF | /* DEBUG STUFF | ||||
| Log::Info("Repeat: 0x%02x : %s/%s/%s/%i\n", | |||||
| msg::info("Repeat: 0x%02x : %s/%s/%s/%i\n", | |||||
| (int)m_keyboard, ScanCodeToText(sc2).C(), ScanCodeToName(sc2).C(), | (int)m_keyboard, ScanCodeToText(sc2).C(), ScanCodeToName(sc2).C(), | ||||
| m_keyboard->GetKey(sc2) ? "up" : "down", event.key.repeat); | m_keyboard->GetKey(sc2) ? "up" : "down", event.key.repeat); | ||||
| */ | */ | ||||
| @@ -317,14 +318,14 @@ void SdlInputData::Tick(float seconds) | |||||
| m_keyboard->AddText(str); | m_keyboard->AddText(str); | ||||
| } | } | ||||
| /* DEBUG STUFF | /* DEBUG STUFF | ||||
| Log::Info("Repeat: 0x%02x : %s/%s/%s/%i\n", | |||||
| msg::info("Repeat: 0x%02x : %s/%s/%s/%i\n", | |||||
| (int)m_keyboard, ScanCodeToText(sc).C(), ScanCodeToName(sc).C(), | (int)m_keyboard, ScanCodeToText(sc).C(), ScanCodeToName(sc).C(), | ||||
| event.type == SDL_KEYDOWN ? "up" : "down", event.key.repeat); | event.type == SDL_KEYDOWN ? "up" : "down", event.key.repeat); | ||||
| */ | */ | ||||
| } | } | ||||
| /* DEBUG STUFF | /* DEBUG STUFF | ||||
| else | else | ||||
| Log::Error("unknown keypress (sym 0x%02x, scancode %0d)\n", | |||||
| msg::error("unknown keypress (sym 0x%02x, scancode %0d)\n", | |||||
| event.key.keysym.sym, event.key.keysym.scancode); | event.key.keysym.sym, event.key.keysym.scancode); | ||||
| */ | */ | ||||
| # endif | # endif | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -64,7 +65,7 @@ Sample::Sample(char const *path) | |||||
| } | } | ||||
| if (!data->m_chunk) | if (!data->m_chunk) | ||||
| { | { | ||||
| Log::Error("could not load sample %s: %s\n", path, Mix_GetError()); | |||||
| msg::error("could not load sample %s: %s\n", path, Mix_GetError()); | |||||
| } | } | ||||
| data->m_channel = -1; | data->m_channel = -1; | ||||
| #endif | #endif | ||||
| @@ -1,11 +1,12 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine | |||||
| // | // | ||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // Copyright: © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | |||||
| // This library is free software; you can redistribute it and/or | |||||
| // modify it under the terms of the Do What The Fuck You Want To | |||||
| // Public License, Version 2, as published by Sam Hocevar. See | |||||
| // http://www.wtfpl.net/ for more details. | |||||
| // | // | ||||
| #include <lol/engine-internal.h> | #include <lol/engine-internal.h> | ||||
| @@ -42,9 +43,9 @@ void Init(int argc, char *argv[], | |||||
| { | { | ||||
| using namespace std; | using namespace std; | ||||
| Log::Debug("project dir: “%s”\n", projectdir.C()); | |||||
| Log::Debug("solution dir: “%s”\n", solutiondir.C()); | |||||
| Log::Debug("source subdir: “%s”\n", sourcesubdir.C()); | |||||
| msg::debug("project dir: “%s”\n", projectdir.C()); | |||||
| msg::debug("solution dir: “%s”\n", solutiondir.C()); | |||||
| msg::debug("source subdir: “%s”\n", sourcesubdir.C()); | |||||
| /* | /* | ||||
| * Retrieve binary directory, defaulting to no directory on Android | * Retrieve binary directory, defaulting to no directory on Android | ||||
| @@ -138,9 +139,9 @@ void Init(int argc, char *argv[], | |||||
| got_rootdir = true; | got_rootdir = true; | ||||
| } | } | ||||
| Log::Debug("binary dir: “%s”\n", binarydir.C()); | |||||
| msg::debug("binary dir: “%s”\n", binarydir.C()); | |||||
| for (int i = 0; i < data_dir.count(); ++i) | for (int i = 0; i < data_dir.count(); ++i) | ||||
| Log::Debug("data dir %d/%d: “%s”\n", i + 1, data_dir.count(), | |||||
| msg::debug("data dir %d/%d: “%s”\n", i + 1, data_dir.count(), | |||||
| data_dir[i].C()); | data_dir[i].C()); | ||||
| } | } | ||||
| @@ -1,8 +1,8 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2014—2015 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | |||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // © 2014—2015 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | |||||
| // | // | ||||
| // This library is free software. It comes without any warranty, to | // This library is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -223,7 +223,7 @@ void AsyncImageLoader::TreatResult(ThreadJob* result) | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| Log::Error("AsyncImageJob FAILED. See load image error above.\n"); | |||||
| msg::error("AsyncImageJob FAILED. See load image error above.\n"); | |||||
| } | } | ||||
| //Delete all that | //Delete all that | ||||
| delete(result); | delete(result); | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine — unit tests | |||||
| // | // | ||||
| // Copyright © 2010-2015 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | |||||
| // | // | ||||
| // This program is free software. It comes without any warranty, to | // This program is free software. It comes without any warranty, to | ||||
| // the extent permitted by applicable law. You can redistribute it | // the extent permitted by applicable law. You can redistribute it | ||||
| @@ -69,7 +69,7 @@ lolunit_declare_fixture(MapTest) | |||||
| } | } | ||||
| for (int i = 0; i < a.count(); i++) | for (int i = 0; i < a.count(); i++) | ||||
| m[i] = i; | m[i] = i; | ||||
| a.Shuffle(); | |||||
| a.shuffle(); | |||||
| for (int i = 0; i < a.count(); i++) | for (int i = 0; i < a.count(); i++) | ||||
| m.remove(a[i]); | m.remove(a[i]); | ||||
| } | } | ||||
| @@ -86,7 +86,7 @@ lolunit_declare_fixture(MapTest) | |||||
| } | } | ||||
| for (int i = 0; i < a.count(); i++) | for (int i = 0; i < a.count(); i++) | ||||
| m[a[i]] = i; | m[a[i]] = i; | ||||
| a.Shuffle(); | |||||
| a.shuffle(); | |||||
| for (int i = 0; i < a.count(); i++) | for (int i = 0; i < a.count(); i++) | ||||
| m.remove(a[i]); | m.remove(a[i]); | ||||
| } | } | ||||
| @@ -1,5 +1,5 @@ | |||||
| // | // | ||||
| // Lol Engine | |||||
| // Lol Engine — unit tests | |||||
| // | // | ||||
| // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | // Copyright © 2010—2015 Sam Hocevar <sam@hocevar.net> | ||||
| // © 2014—2015 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | // © 2014—2015 Benjamin "Touky" Huet <huet.benjamin@gmail.com> | ||||
| @@ -38,9 +38,9 @@ lolunit_declare_fixture(thread_test) | |||||
| { | { | ||||
| Timer timer; | Timer timer; | ||||
| m_done = false; | m_done = false; | ||||
| Log::Info("%s: STARTED WORK\n", GetName()); | |||||
| msg::info("%s: STARTED WORK\n", GetName()); | |||||
| timer.Wait(2.f); | timer.Wait(2.f); | ||||
| Log::Info("%s: ENDED WORK\n", GetName()); | |||||
| msg::info("%s: ENDED WORK\n", GetName()); | |||||
| m_done = true; | m_done = true; | ||||
| return true; | return true; | ||||
| } | } | ||||
| @@ -81,14 +81,14 @@ lolunit_declare_fixture(thread_test) | |||||
| void AddJob(ThreadJob* job) | void AddJob(ThreadJob* job) | ||||
| { | { | ||||
| Log::Info("%s DISPATCHING JOB %s\n", GetName(), job->GetName()); | |||||
| msg::info("%s DISPATCHING JOB %s\n", GetName(), job->GetName()); | |||||
| DispatchJob(job); | DispatchJob(job); | ||||
| } | } | ||||
| bool GetWorkResult(array<ThreadJob*>& results) | bool GetWorkResult(array<ThreadJob*>& results) | ||||
| { | { | ||||
| results += m_job_result; | results += m_job_result; | ||||
| m_job_result.empty(); | m_job_result.empty(); | ||||
| Log::Info("%s GETWORKRESULT (%i)\n", GetName(), results.count()); | |||||
| msg::info("%s GETWORKRESULT (%i)\n", GetName(), results.count()); | |||||
| return results.count() > 0; | return results.count() > 0; | ||||
| } | } | ||||
| @@ -99,7 +99,7 @@ lolunit_declare_fixture(thread_test) | |||||
| case UnitTestStatus::NOT_QUEUED: | case UnitTestStatus::NOT_QUEUED: | ||||
| if (!!GetDispatchCount()) | if (!!GetDispatchCount()) | ||||
| { | { | ||||
| Log::Info("%s TICKGAME %s\n", GetName(), m_status.ToString().C()); | |||||
| msg::info("%s TICKGAME %s\n", GetName(), m_status.ToString().C()); | |||||
| m_status = UnitTestStatus::QUEUED; | m_status = UnitTestStatus::QUEUED; | ||||
| } | } | ||||
| break; | break; | ||||
| @@ -110,14 +110,14 @@ lolunit_declare_fixture(thread_test) | |||||
| if (GetDispatchedCount()) | if (GetDispatchedCount()) | ||||
| #endif | #endif | ||||
| { | { | ||||
| Log::Info("%s TICKGAME %s\n", GetName(), m_status.ToString().C()); | |||||
| msg::info("%s TICKGAME %s\n", GetName(), m_status.ToString().C()); | |||||
| m_status = UnitTestStatus::RETRIEVED; | m_status = UnitTestStatus::RETRIEVED; | ||||
| } | } | ||||
| break; | break; | ||||
| case UnitTestStatus::RETRIEVED: | case UnitTestStatus::RETRIEVED: | ||||
| if (m_job_result.count() == 4) | if (m_job_result.count() == 4) | ||||
| { | { | ||||
| Log::Info("%s TICKGAME %s\n", GetName(), m_status.ToString().C()); | |||||
| msg::info("%s TICKGAME %s\n", GetName(), m_status.ToString().C()); | |||||
| m_status = UnitTestStatus::DONE; | m_status = UnitTestStatus::DONE; | ||||
| } | } | ||||
| break; | break; | ||||
| @@ -151,10 +151,10 @@ lolunit_declare_fixture(thread_test) | |||||
| lolunit_declare_test(threads) | lolunit_declare_test(threads) | ||||
| { | { | ||||
| Log::Info("%s START\n", m_manager.GetName()); | |||||
| msg::info("%s START\n", m_manager.GetName()); | |||||
| //Start threads manager | //Start threads manager | ||||
| m_manager.Start(); | m_manager.Start(); | ||||
| Log::Info("%s STARTED\n", m_manager.GetName()); | |||||
| msg::info("%s STARTED\n", m_manager.GetName()); | |||||
| UnitTestJob job[4]; | UnitTestJob job[4]; | ||||
| lolunit_assert_equal(0, m_manager.Test_GetDispatchCount()); | lolunit_assert_equal(0, m_manager.Test_GetDispatchCount()); | ||||
| @@ -187,10 +187,10 @@ lolunit_declare_fixture(thread_test) | |||||
| m_manager.GetWorkResult(results); | m_manager.GetWorkResult(results); | ||||
| lolunit_assert_equal(4, results.count()); | lolunit_assert_equal(4, results.count()); | ||||
| Log::Info("%s STOP\n", m_manager.GetName()); | |||||
| msg::info("%s STOP\n", m_manager.GetName()); | |||||
| //Stop manager | //Stop manager | ||||
| m_manager.Stop(); | m_manager.Stop(); | ||||
| Log::Info("%s STOPPED\n", m_manager.GetName()); | |||||
| msg::info("%s STOPPED\n", m_manager.GetName()); | |||||
| } | } | ||||
| lolunit_declare_test(queue_try_push) | lolunit_declare_test(queue_try_push) | ||||
| @@ -44,7 +44,7 @@ public: | |||||
| "still %d entities in ticker\n", nentities); | "still %d entities in ticker\n", nentities); | ||||
| ASSERT(m_autolist.count() == 0, | ASSERT(m_autolist.count() == 0, | ||||
| "still %d autoreleased entities\n", m_autolist.count()); | "still %d autoreleased entities\n", m_autolist.count()); | ||||
| Log::Debug("%d frames required to quit\n", frame - quitframe); | |||||
| msg::debug("%d frames required to quit\n", frame - quitframe); | |||||
| #if LOL_FEATURE_THREADS | #if LOL_FEATURE_THREADS | ||||
| gametick.push(0); | gametick.push(0); | ||||
| @@ -150,7 +150,7 @@ int Ticker::Unref(Entity *entity) | |||||
| void TickerData::GameThreadMain() | void TickerData::GameThreadMain() | ||||
| { | { | ||||
| #if LOL_BUILD_DEBUG | #if LOL_BUILD_DEBUG | ||||
| Log::Info("ticker game thread initialised\n"); | |||||
| msg::info("ticker game thread initialised\n"); | |||||
| #endif | #endif | ||||
| for (;;) | for (;;) | ||||
| @@ -167,7 +167,7 @@ void TickerData::GameThreadMain() | |||||
| drawtick.push(0); | drawtick.push(0); | ||||
| #if LOL_BUILD_DEBUG | #if LOL_BUILD_DEBUG | ||||
| Log::Info("ticker game thread terminated\n"); | |||||
| msg::info("ticker game thread terminated\n"); | |||||
| #endif | #endif | ||||
| } | } | ||||
| #endif /* LOL_FEATURE_THREADS */ | #endif /* LOL_FEATURE_THREADS */ | ||||
| @@ -176,7 +176,7 @@ void TickerData::GameThreadMain() | |||||
| void TickerData::DrawThreadMain() /* unused */ | void TickerData::DrawThreadMain() /* unused */ | ||||
| { | { | ||||
| #if LOL_BUILD_DEBUG | #if LOL_BUILD_DEBUG | ||||
| Log::Info("ticker draw thread initialised\n"); | |||||
| msg::info("ticker draw thread initialised\n"); | |||||
| #endif | #endif | ||||
| for (;;) | for (;;) | ||||
| @@ -191,7 +191,7 @@ void TickerData::DrawThreadMain() /* unused */ | |||||
| } | } | ||||
| #if LOL_BUILD_DEBUG | #if LOL_BUILD_DEBUG | ||||
| Log::Info("ticker draw thread terminated\n"); | |||||
| msg::info("ticker draw thread terminated\n"); | |||||
| #endif | #endif | ||||
| } | } | ||||
| #endif /* LOL_FEATURE_THREADS */ | #endif /* LOL_FEATURE_THREADS */ | ||||
| @@ -213,16 +213,16 @@ void TickerData::GameThreadTick() | |||||
| Profiler::Start(Profiler::STAT_TICK_GAME); | Profiler::Start(Profiler::STAT_TICK_GAME); | ||||
| #if 0 | #if 0 | ||||
| Log::Debug("-------------------------------------\n"); | |||||
| msg::debug("-------------------------------------\n"); | |||||
| for (int g = 0; g < Entity::ALLGROUP_END; ++g) | for (int g = 0; g < Entity::ALLGROUP_END; ++g) | ||||
| { | { | ||||
| Log::Debug("%s Group %d\n", | |||||
| msg::debug("%s Group %d\n", | |||||
| (g < Entity::GAMEGROUP_END) ? "Game" : "Draw", g); | (g < Entity::GAMEGROUP_END) ? "Game" : "Draw", g); | ||||
| for (int i = 0; i < data->m_list[g].count(); ++i) | for (int i = 0; i < data->m_list[g].count(); ++i) | ||||
| { | { | ||||
| Entity *e = data->m_list[g][i]; | Entity *e = data->m_list[g][i]; | ||||
| Log::Debug(" \\-- [%p] %s (m_ref %d, destroy %d)\n", | |||||
| msg::debug(" \\-- [%p] %s (m_ref %d, destroy %d)\n", | |||||
| e, e->GetName(), e->m_ref, e->m_destroy); | e, e->GetName(), e->m_ref, e->m_destroy); | ||||
| } | } | ||||
| } | } | ||||
| @@ -255,7 +255,7 @@ void TickerData::GameThreadTick() | |||||
| data->keepalive += data->deltatime; | data->keepalive += data->deltatime; | ||||
| if (data->keepalive > 10.f) | if (data->keepalive > 10.f) | ||||
| { | { | ||||
| Log::Info("ticker keepalive: tick!\n"); | |||||
| msg::info("ticker keepalive: tick!\n"); | |||||
| data->keepalive = 0.f; | data->keepalive = 0.f; | ||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -276,7 +276,7 @@ void TickerData::GameThreadTick() | |||||
| if (e->m_ref) | if (e->m_ref) | ||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| Log::Error("poking %s\n", e->GetName()); | |||||
| msg::error("poking %s\n", e->GetName()); | |||||
| #endif | #endif | ||||
| e->m_ref--; | e->m_ref--; | ||||
| n++; | n++; | ||||
| @@ -285,7 +285,7 @@ void TickerData::GameThreadTick() | |||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (n) | if (n) | ||||
| Log::Error("%d entities stuck after %d frames, poked %d\n", | |||||
| msg::error("%d entities stuck after %d frames, poked %d\n", | |||||
| data->nentities, data->quitdelay, n); | data->nentities, data->quitdelay, n); | ||||
| #endif | #endif | ||||
| @@ -397,14 +397,14 @@ void TickerData::GameThreadTick() | |||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (e->m_tickstate != Entity::STATE_IDLE) | if (e->m_tickstate != Entity::STATE_IDLE) | ||||
| Log::Error("entity %s [%p] not idle for game tick\n", | |||||
| msg::error("entity %s [%p] not idle for game tick\n", | |||||
| e->GetName(), e); | e->GetName(), e); | ||||
| e->m_tickstate = Entity::STATE_PRETICK_GAME; | e->m_tickstate = Entity::STATE_PRETICK_GAME; | ||||
| #endif | #endif | ||||
| e->TickGame(data->deltatime); | e->TickGame(data->deltatime); | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (e->m_tickstate != Entity::STATE_POSTTICK_GAME) | if (e->m_tickstate != Entity::STATE_POSTTICK_GAME) | ||||
| Log::Error("entity %s [%p] missed super game tick\n", | |||||
| msg::error("entity %s [%p] missed super game tick\n", | |||||
| e->GetName(), e); | e->GetName(), e); | ||||
| e->m_tickstate = Entity::STATE_IDLE; | e->m_tickstate = Entity::STATE_IDLE; | ||||
| #endif | #endif | ||||
| @@ -446,14 +446,14 @@ void TickerData::DrawThreadTick() | |||||
| { | { | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (e->m_tickstate != Entity::STATE_IDLE) | if (e->m_tickstate != Entity::STATE_IDLE) | ||||
| Log::Error("entity %s [%p] not idle for draw tick\n", | |||||
| msg::error("entity %s [%p] not idle for draw tick\n", | |||||
| e->GetName(), e); | e->GetName(), e); | ||||
| e->m_tickstate = Entity::STATE_PRETICK_DRAW; | e->m_tickstate = Entity::STATE_PRETICK_DRAW; | ||||
| #endif | #endif | ||||
| e->TickDraw(data->deltatime, Scene::GetScene(scene_idx)); | e->TickDraw(data->deltatime, Scene::GetScene(scene_idx)); | ||||
| #if !LOL_BUILD_RELEASE | #if !LOL_BUILD_RELEASE | ||||
| if (e->m_tickstate != Entity::STATE_POSTTICK_DRAW) | if (e->m_tickstate != Entity::STATE_POSTTICK_DRAW) | ||||
| Log::Error("entity %s [%p] missed super draw tick\n", | |||||
| msg::error("entity %s [%p] missed super draw tick\n", | |||||
| e->GetName(), e); | e->GetName(), e); | ||||
| e->m_tickstate = Entity::STATE_IDLE; | e->m_tickstate = Entity::STATE_IDLE; | ||||
| #endif | #endif | ||||