From f049ca4e33e0e5d06223a1c05815bc564b4bf06e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 23 Nov 2005 01:37:30 +0000 Subject: New _eglLog() function to replace fprintf/printf calls for debug/info. --- src/egl/main/egllog.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/egl/main/egllog.c (limited to 'src/egl/main/egllog.c') diff --git a/src/egl/main/egllog.c b/src/egl/main/egllog.c new file mode 100644 index 0000000000..59b1d2684e --- /dev/null +++ b/src/egl/main/egllog.c @@ -0,0 +1,57 @@ +/** + * Logging facility for debug/info messages. + */ + + +#include +#include +#include +#include "egllog.h" + +#define MAXSTRING 1000 + + +/* XXX init this with an env var or something */ +static EGLint ReportingLevel = _EGL_DEBUG; + + +/** + * Log a message to stderr. + * \param level one of _EGL_FATAL, _EGL_WARNING, _EGL_INFO, _EGL_DEBUG. + */ +void +_eglLog(EGLint level, const char *fmtStr, ...) +{ + va_list args; + char msg[MAXSTRING]; + const char *levelStr; + + if (level <= ReportingLevel) { + switch (level) { + case _EGL_FATAL: + levelStr = "Fatal"; + break; + case _EGL_WARNING: + levelStr = "Warning"; + break; + case _EGL_INFO: + levelStr = "Info"; + break; + case _EGL_DEBUG: + levelStr = "Debug"; + break; + default: + levelStr = ""; + } + + va_start(args, fmtStr); + vsnprintf(msg, MAXSTRING, fmtStr, args); + va_end(args); + + fprintf(stderr, "EGL %s: %s\n", levelStr, msg); + + if (level == _EGL_FATAL) { + exit(1); /* or abort()? */ + } + } +} -- cgit v1.2.3