diff options
| -rw-r--r-- | comet.c | 3 | ||||
| -rw-r--r-- | log.c | 26 | ||||
| -rw-r--r-- | log.h | 27 | ||||
| -rw-r--r-- | x11.c | 4 |
4 files changed, 59 insertions, 1 deletions
@@ -2,10 +2,13 @@ #include <glib-unix.h> #include "x11.h" +#include "log.h" #include "draw.h" int main(int argc, char **argv) { + log_init(G_LOG_LEVEL_DEBUG); + Window *win = window_create(); draw(win); @@ -0,0 +1,26 @@ +#include <glib.h> + +#include "log.h" + +static void log_handler(const char *log_domain, + GLogLevelFlags level, + const char *message, + gpointer log_level) +{ + GLogLevelFlags message_level = level & G_LOG_LEVEL_MASK; + + if ((GLogLevelFlags)log_level < message_level) + return; + + if (message_level <= G_LOG_LEVEL_WARNING) + g_printerr("%s\n", message); + else + g_print("%s\n", message); +} + +void log_init(GLogLevelFlags level) +{ + g_log_set_default_handler(log_handler, (void *)level); +} + +// vim: ts=4 sw=4 et @@ -0,0 +1,27 @@ +#ifndef COMET_LOG_H +#define COMET_LOG_H + +#include <stdio.h> + +#define DEBUG_FORMAT(format, ...) \ + "[%s] \x1b[1mdebug\x1b[0m: " format, __func__, ## __VA_ARGS__ + +#define INFO_FORMAT(format, ...) \ + "[%s] \x1b[1;96minfo\x1b[0m: " format, __func__, ## __VA_ARGS__ + +#define WARNING_FORMAT(format, ...) \ + "[%s] \x1b[1;33mwarning\x1b[0m: " format, __func__, ## __VA_ARGS__ + +#define ERROR_FORMAT(format, ...) \ + "[%s] \x1b[1;31merror\x1b[0m: " format, __func__, ## __VA_ARGS__ + +#define log_debug(...) g_debug(DEBUG_FORMAT(__VA_ARGS__)) +#define log_info(...) g_info(INFO_FORMAT(__VA_ARGS__)) +#define log_warning(...) g_warning(WARNING_FORMAT(__VA_ARGS__)) +#define log_error(...) g_error(ERROR_FORMAT(__VA_ARGS__)) + +void log_init(GLogLevelFlags level); + +#endif + +// vim: ts=4 sw=4 et @@ -60,7 +60,7 @@ Window *window_create(void) y, x, h, w, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, win->screen->root_visual, - XCB_CW_BACK_PIXEL, + XCB_CW_BACK_PIXEL, //XCB_CW_BACK_PIXEL | XCB_CW_BACK_PIXMAP | XCB_CW_OVERRIDE_REDIRECT | // XCB_CW_BORDER_PIXEL | XCB_CW_EVENT_MASK | XCB_CW_COLORMAP, &win->screen->white_pixel); @@ -89,6 +89,8 @@ done: win->surface = cairo_xcb_surface_create(win->connection, win->window, win->visual_type, w, h); win->cr = cairo_create(win->surface); + log_debug("Cairo initialized"); + return win; } |
