| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -52,8 +52,9 @@ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Global Variables Definition | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//---------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Log types messages supported flags (bit based) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static unsigned char logTypeFlags = LOG_INFO | LOG_WARNING | LOG_ERROR; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Log types messages | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static int logTypeLevel = LOG_INFO; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static int logTypeExit = LOG_ERROR; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static TraceLogCallback logCallback = NULL; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(PLATFORM_ANDROID) | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -79,10 +80,16 @@ static int android_close(void *cookie); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Module Functions Definition - Utilities | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//---------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Enable trace log message types (bit flags based) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void SetTraceLog(unsigned char types) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Set the current threshold (minimum) log level. | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void SetTraceLogLevel(int logType) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    logTypeFlags = types; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    logTypeLevel = logType; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Set the exit threshold (minimum) log level. | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void SetTraceLogExit(int logType) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    logTypeExit = logType; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Set a trace log callback to enable custom logging bypassing raylib's one | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -92,58 +99,56 @@ void SetTraceLogCallback(TraceLogCallback callback) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Show trace log messages (LOG_INFO, LOG_WARNING, LOG_ERROR, LOG_DEBUG) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void TraceLog(int msgType, const char *text, ...) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void TraceLog(int logType, const char *text, ...) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(SUPPORT_TRACELOG) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    char buffer[MAX_TRACELOG_BUFFER_SIZE] = { 0 }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (logType < logTypeLevel) { // Message has level below current threshold, don't emit. | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        return; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    va_list args; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    va_start(args, text); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (logCallback) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        logCallback(msgType, text, args); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        logCallback(logType, text, args); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        va_end(args); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        return; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    switch(msgType) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_INFO: strcpy(buffer, "INFO: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_ERROR: strcpy(buffer, "ERROR: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_WARNING: strcpy(buffer, "WARNING: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_DEBUG: strcpy(buffer, "DEBUG: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_OTHER: strcpy(buffer, "OTHER: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        default: break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    strcat(buffer, text); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    strcat(buffer, "\n"); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(PLATFORM_ANDROID) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    switch(msgType) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    switch(logType) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        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; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_OTHER: if (logTypeFlags & LOG_OTHER) __android_log_vprint(ANDROID_LOG_VERBOSE, "raylib", buffer, args); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_TRACE: __android_log_vprint(ANDROID_LOG_VERBOSE, "raylib", text, args); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_DEBUG: __android_log_vprint(ANDROID_LOG_DEBUG, "raylib", text, args); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_INFO: __android_log_vprint(ANDROID_LOG_INFO, "raylib", text, args); ; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_WARNING: __android_log_vprint(ANDROID_LOG_WARN, "raylib", text, args); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_ERROR: __android_log_vprint(ANDROID_LOG_ERROR, "raylib", text, args); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_FATAL: __android_log_vprint(ANDROID_LOG_FATAL, "raylib", text, args); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        default: break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#else | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    switch(msgType) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    char buffer[MAX_TRACELOG_BUFFER_SIZE] = { 0 }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    switch(logType) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        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; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_OTHER: if (logTypeFlags & LOG_OTHER) vprintf(buffer, args); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_TRACE: strcpy(buffer, "TRACE: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_DEBUG: strcpy(buffer, "DEBUG: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_INFO: strcpy(buffer, "INFO: "); ; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_WARNING: strcpy(buffer, "WARN: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_ERROR: strcpy(buffer, "ERROR: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case LOG_FATAL: strcpy(buffer, "FATAL: "); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        default: break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    strcat(buffer, text); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    strcat(buffer, "\n"); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    vprintf(buffer, args); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    va_end(args); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (msgType == LOG_ERROR) exit(1);  // If LOG_ERROR message, exit program | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (logType >= logTypeExit) exit(1);  // If exit message, exit program | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif  // SUPPORT_TRACELOG | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |