A 3D game engine from scratch.
at main 105 lines 2.0 kB view raw
1// (c) 2020 Vlad-Stefan Harbuz <vlad@vladh.net> 2 3#include <signal.h> 4#include "logs.hpp" 5 6 7void 8logs::fatal(const char *format, ...) 9{ 10 va_list vargs; 11 fprintf(stderr, "fatal | "); 12 va_start(vargs, format); 13 vfprintf(stderr, format, vargs); 14 fprintf(stderr, "\n"); 15 va_end(vargs); 16#if defined(PLATFORM_WINDOWS) 17 __debugbreak(); 18#elif defined(PLATFORM_POSIX) 19 raise(SIGABRT); 20#endif 21} 22 23 24void 25logs::error(const char *format, ...) 26{ 27 va_list vargs; 28 fprintf(stderr, "error | "); 29 va_start(vargs, format); 30 vfprintf(stderr, format, vargs); 31 fprintf(stderr, "\n"); 32 va_end(vargs); 33} 34 35 36void 37logs::warning(const char *format, ...) 38{ 39 va_list vargs; 40 fprintf(stderr, "warn | "); 41 va_start(vargs, format); 42 vfprintf(stderr, format, vargs); 43 fprintf(stderr, "\n"); 44 va_end(vargs); 45} 46 47 48void 49logs::info(const char *format, ...) 50{ 51 va_list vargs; 52 fprintf(stdout, "info | "); 53 va_start(vargs, format); 54 vfprintf(stdout, format, vargs); 55 fprintf(stdout, "\n"); 56 va_end(vargs); 57} 58 59 60void 61logs::print_newline() 62{ 63 fprintf(stdout, "\n"); 64} 65 66 67void 68logs::print_aimatrix4x4(aiMatrix4x4 *t) 69{ 70 info("(%f, %f, %f, %f)", t->a1, t->b1, t->c1, t->d1); 71 info("(%f, %f, %f, %f)", t->a2, t->b2, t->c2, t->d2); 72 info("(%f, %f, %f, %f)", t->a3, t->b3, t->c3, t->d3); 73 info("(%f, %f, %f, %f)", t->a4, t->b4, t->c4, t->d4); 74} 75 76 77void 78logs::print_m4(m4 *t) 79{ 80 info("(%f, %f, %f, %f)", (*t)[0][0], (*t)[1][0], (*t)[2][0], (*t)[3][0]); 81 info("(%f, %f, %f, %f)", (*t)[0][1], (*t)[1][1], (*t)[2][1], (*t)[3][1]); 82 info("(%f, %f, %f, %f)", (*t)[0][2], (*t)[1][2], (*t)[2][2], (*t)[3][2]); 83 info("(%f, %f, %f, %f)", (*t)[0][3], (*t)[1][3], (*t)[2][3], (*t)[3][3]); 84} 85 86 87void 88logs::print_v2(v2 *t) 89{ 90 info("(%f, %f)", (*t)[0], (*t)[1]); 91} 92 93 94void 95logs::print_v3(v3 *t) 96{ 97 info("(%f, %f, %f)", (*t)[0], (*t)[1], (*t)[2]); 98} 99 100 101void 102logs::print_v4(v4 *t) 103{ 104 info("(%f, %f, %f, %f)", (*t)[0], (*t)[1], (*t)[2], (*t)[3]); 105}