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);