summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorraysan5 <[email protected]>2017-12-24 16:47:33 +0100
committerraysan5 <[email protected]>2017-12-24 16:47:33 +0100
commite517d8fd168b361719c214d57463ef3ee461d425 (patch)
treefa9f6e8a66fa2e408d801c0becf8a09aa7088ec7
parente5744283432e712f163e30ee6999300f3c09b244 (diff)
downloadraylib-e517d8fd168b361719c214d57463ef3ee461d425.tar.gz
raylib-e517d8fd168b361719c214d57463ef3ee461d425.zip
Added function SetTraceLogTypes()
Trace log messages could be configured with this function to select wich ones are shown
-rw-r--r--src/core.c4
-rw-r--r--src/raylib.h13
-rw-r--r--src/utils.c38
3 files changed, 32 insertions, 23 deletions
diff --git a/src/core.c b/src/core.c
index 05c794ad..7d7e188c 100644
--- a/src/core.c
+++ b/src/core.c
@@ -329,7 +329,7 @@ static double updateTime, drawTime; // Time measures for update and draw
static double frameTime = 0.0; // Time measure for one frame
static double targetTime = 0.0; // Desired time for one frame, if 0 not applied
-static char configFlags = 0; // Configuration flags (bit based)
+static unsigned char configFlags = 0; // Configuration flags (bit based)
static bool showLogo = false; // Track if showing logo at init is enabled
#if defined(SUPPORT_GIF_RECORDING)
@@ -1138,7 +1138,7 @@ void ShowLogo(void)
}
// Setup window configuration flags (view FLAGS)
-void SetConfigFlags(char flags)
+void SetConfigFlags(unsigned char flags)
{
configFlags = flags;
diff --git a/src/raylib.h b/src/raylib.h
index b0ff1fc1..d3d58afa 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -514,11 +514,11 @@ typedef struct VrDeviceInfo {
//----------------------------------------------------------------------------------
// Trace log type
typedef enum {
- LOG_INFO = 0,
- LOG_WARNING,
- LOG_ERROR,
- LOG_DEBUG,
- LOG_OTHER
+ LOG_INFO = 1,
+ LOG_WARNING = 2,
+ LOG_ERROR = 4,
+ LOG_DEBUG = 8,
+ LOG_OTHER = 16
} LogType;
// Shader location point type
@@ -727,7 +727,8 @@ RLAPI Matrix MatrixIdentity(void); // Returns ide
// Misc. functions
RLAPI void ShowLogo(void); // Activate raylib logo at startup (can be done with flags)
-RLAPI void SetConfigFlags(char flags); // Setup window configuration flags (view FLAGS)
+RLAPI void SetConfigFlags(unsigned char flags); // Setup window configuration flags (view FLAGS)
+RLAPI void SetTraceLogTypes(unsigned char types); // Enable trace log message types (bit flags based)
RLAPI void TraceLog(int logType, const char *text, ...); // Show trace log messages (LOG_INFO, LOG_WARNING, LOG_ERROR, LOG_DEBUG)
RLAPI void TakeScreenshot(const char *fileName); // Takes a screenshot of current screen (saved a .png)
RLAPI int GetRandomValue(int min, int max); // Returns a random value between min and max (both included)
diff --git a/src/utils.c b/src/utils.c
index 72d4f2da..b262118c 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -16,9 +16,6 @@
* Show TraceLog() output messages
* NOTE: By default LOG_DEBUG traces not shown
*
-* #define SUPPORT_TRACELOG_DEBUG
-* Show TraceLog() LOG_DEBUG messages
-*
* DEPENDENCIES:
* stb_image_write - BMP/PNG writting functions
*
@@ -45,7 +42,6 @@
**********************************************************************************************/
#define SUPPORT_TRACELOG // Output tracelog messages
-//#define SUPPORT_TRACELOG_DEBUG // Avoid LOG_DEBUG messages tracing
#include "raylib.h" // WARNING: Required for: LogType enum
#include "utils.h"
@@ -63,12 +59,16 @@
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI)
#define STB_IMAGE_WRITE_IMPLEMENTATION
- #include "external/stb_image_write.h" // Required for: stbi_write_bmp(), stbi_write_png()
+ #include "external/stb_image_write.h" // Required for: stbi_write_bmp(), stbi_write_png()
#endif
//----------------------------------------------------------------------------------
// Global Variables Definition
//----------------------------------------------------------------------------------
+
+// Log types messages supported flags (bit based)
+static unsigned char logTypeFlags = LOG_INFO | LOG_WARNING | LOG_ERROR;
+
#if defined(PLATFORM_ANDROID)
AAssetManager *assetManager;
#endif
@@ -87,16 +87,17 @@ static int android_close(void *cookie);
// Module Functions Definition - Utilities
//----------------------------------------------------------------------------------
+// Enable trace log message types (bit flags based)
+void SetTraceLogTypes(unsigned char types)
+{
+ logTypeFlags = types;
+}
+
// Show trace log messages (LOG_INFO, LOG_WARNING, LOG_ERROR, LOG_DEBUG)
void TraceLog(int msgType, const char *text, ...)
{
#if defined(SUPPORT_TRACELOG)
static char buffer[128];
- int traceDebugMsgs = 0;
-
-#if defined(SUPPORT_TRACELOG_DEBUG)
- traceDebugMsgs = 1;
-#endif
switch(msgType)
{
@@ -116,14 +117,21 @@ void TraceLog(int msgType, const char *text, ...)
#if defined(PLATFORM_ANDROID)
switch(msgType)
{
- case LOG_INFO: __android_log_vprint(ANDROID_LOG_INFO, "raylib", buffer, args); break;
- case LOG_ERROR: __android_log_vprint(ANDROID_LOG_ERROR, "raylib", buffer, args); break;
- case LOG_WARNING: __android_log_vprint(ANDROID_LOG_WARN, "raylib", buffer, args); break;
- case LOG_DEBUG: if (traceDebugMsgs) __android_log_vprint(ANDROID_LOG_DEBUG, "raylib", buffer, args); break;
+ case LOG_INFO: if (logTypeFlags & LOG_INFO) __android_log_vprint(ANDROID_LOG_INFO, "raylib", buffer, args); break;
+ case LOG_WARNING: if (logTypeFlags & LOG_WARNING) __android_log_vprint(ANDROID_LOG_WARN, "raylib", buffer, args); break;
+ case LOG_ERROR: if (logTypeFlags & LOG_ERROR) __android_log_vprint(ANDROID_LOG_ERROR, "raylib", buffer, args); break;
+ case LOG_DEBUG: if (logTypeFlags & LOG_DEBUG) __android_log_vprint(ANDROID_LOG_DEBUG, "raylib", buffer, args); break;
default: break;
}
#else
- if ((msgType != LOG_DEBUG) || ((msgType == LOG_DEBUG) && (traceDebugMsgs))) vprintf(buffer, args);
+ switch(msgType)
+ {
+ case LOG_INFO: if (logTypeFlags & LOG_INFO) vprintf(buffer, args); break;
+ case LOG_WARNING: if (logTypeFlags & LOG_WARNING) vprintf(buffer, args); break;
+ case LOG_ERROR: if (logTypeFlags & LOG_ERROR) vprintf(buffer, args); break;
+ case LOG_DEBUG: if (logTypeFlags & LOG_DEBUG) vprintf(buffer, args); break;
+ default: break;
+ }
#endif
va_end(args);