A 3D game engine from scratch.
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}