commit a4fab4b
uint
·
2026-07-21 20:11:04 +0000 UTC
parent 2b431fb
give sokol logging capabilities
2 files changed,
+21,
-1
+20,
-0
1@@ -4,6 +4,25 @@
2 #include "platform/platform.h"
3 #include "renderer/renderer.h"
4
5+/* logging function for passing to sokol */
6+static void sokol_log(const char* tag, u32 level, u32 item, const char* msg, u32 ln, const char* file, void* user);
7+
8+static void sokol_log(const char* tag, u32 level, u32 item, const char* msg, u32 ln, const char* file, void* user)
9+{
10+ LogType type;
11+ (void)item;
12+ (void)user;
13+
14+ type = level <= 1 ? LOG_ERR : LOG_DBG;
15+
16+ mg_log(type, "%s: %s [%s:%u]",
17+ tag ? tag : "Sokol",
18+ msg ? msg : "No message",
19+ file ? file : "Unknown",
20+ ln
21+ );
22+}
23+
24 void renderer_create(MGContext* ctx, MGRenderer* ren)
25 {
26 sg_desc desc = {0};
27@@ -14,6 +33,7 @@ void renderer_create(MGContext* ctx, MGRenderer* ren)
28 desc.environment.defaults.color_format = SG_PIXELFORMAT_RGBA8;
29 desc.environment.defaults.depth_format = SG_PIXELFORMAT_DEPTH;
30 desc.environment.defaults.sample_count = 1;
31+ desc.logger.func = sokol_log;
32
33 sg_setup(&desc);
34
+1,
-1
1@@ -8,7 +8,7 @@ static void vlog(FILE* fd, const char* fmt, va_list ap);
2
3 static void vlog(FILE* fd, const char* fmt, va_list ap)
4 {
5- fprintf(fd, "magnolia: ");
6+ fprintf(fd, "Magnolia: ");
7 vfprintf(fd, fmt, ap);
8 fputc('\n', fd);
9 fflush(fd);