Added support for the DEBUG_INVOCATION environment variable

Fixes https://github.com/libsdl-org/SDL/issues/12275
This commit is contained in:
Sam Lantinga
2025-09-07 14:10:55 -07:00
parent 9116a56c13
commit 35959b606a
2 changed files with 17 additions and 2 deletions

View File

@@ -2410,6 +2410,10 @@ extern "C" {
* *
* `app=info,assert=warn,test=verbose,*=error` * `app=info,assert=warn,test=verbose,*=error`
* *
* If the `DEBUG_INVOCATION` environment variable is set to "1", the default log levels are equivalent to:
*
* `assert=warn,test=verbose,*=debug`
*
* This hint can be set anytime. * This hint can be set anytime.
* *
* \since This hint is available since SDL 3.2.0. * \since This hint is available since SDL 3.2.0.

View File

@@ -375,6 +375,9 @@ void SDL_ResetLogPriorities(void)
SDL_LockMutex(SDL_log_lock); SDL_LockMutex(SDL_log_lock);
{ {
const char *env = SDL_getenv("DEBUG_INVOCATION");
bool debug = (env && *env && *env != '0');
CleanupLogPriorities(); CleanupLogPriorities();
SDL_log_default_priority = SDL_LOG_PRIORITY_INVALID; SDL_log_default_priority = SDL_LOG_PRIORITY_INVALID;
@@ -397,7 +400,11 @@ void SDL_ResetLogPriorities(void)
switch (i) { switch (i) {
case SDL_LOG_CATEGORY_APPLICATION: case SDL_LOG_CATEGORY_APPLICATION:
SDL_log_priorities[i] = SDL_LOG_PRIORITY_INFO; if (debug) {
SDL_log_priorities[i] = SDL_LOG_PRIORITY_DEBUG;
} else {
SDL_log_priorities[i] = SDL_LOG_PRIORITY_INFO;
}
break; break;
case SDL_LOG_CATEGORY_ASSERT: case SDL_LOG_CATEGORY_ASSERT:
SDL_log_priorities[i] = SDL_LOG_PRIORITY_WARN; SDL_log_priorities[i] = SDL_LOG_PRIORITY_WARN;
@@ -406,7 +413,11 @@ void SDL_ResetLogPriorities(void)
SDL_log_priorities[i] = SDL_LOG_PRIORITY_VERBOSE; SDL_log_priorities[i] = SDL_LOG_PRIORITY_VERBOSE;
break; break;
default: default:
SDL_log_priorities[i] = SDL_LOG_PRIORITY_ERROR; if (debug) {
SDL_log_priorities[i] = SDL_LOG_PRIORITY_DEBUG;
} else {
SDL_log_priorities[i] = SDL_LOG_PRIORITY_ERROR;
}
break; break;
} }
} }