Added SDL_GetDefaultLogOutputFunction()

Fixes https://github.com/libsdl-org/SDL/issues/10603
Closes https://github.com/libsdl-org/SDL/pull/11106
This commit is contained in:
Sam Lantinga 2024-10-13 12:01:45 -07:00
parent b766c824bd
commit a8ca024495
5 changed files with 24 additions and 0 deletions

View file

@ -473,6 +473,20 @@ extern SDL_DECLSPEC void SDLCALL SDL_LogMessageV(int category,
*/ */
typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message);
/**
* Get the default log output function.
*
* \returns the default log output callback.
*
* \threadsafety It is safe to call this function from any thread.
*
* \since This function is available since SDL 3.1.6.
*
* \sa SDL_SetLogOutputFunction
* \sa SDL_GetLogOutputFunction
*/
extern SDL_DECLSPEC SDL_LogOutputFunction SDLCALL SDL_GetDefaultLogOutputFunction(void);
/** /**
* Get the current log output function. * Get the current log output function.
* *
@ -485,6 +499,7 @@ typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_
* *
* \since This function is available since SDL 3.0.0. * \since This function is available since SDL 3.0.0.
* *
* \sa SDL_GetDefaultLogOutputFunction
* \sa SDL_SetLogOutputFunction * \sa SDL_SetLogOutputFunction
*/ */
extern SDL_DECLSPEC void SDLCALL SDL_GetLogOutputFunction(SDL_LogOutputFunction *callback, void **userdata); extern SDL_DECLSPEC void SDLCALL SDL_GetLogOutputFunction(SDL_LogOutputFunction *callback, void **userdata);
@ -499,6 +514,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_GetLogOutputFunction(SDL_LogOutputFunction
* *
* \since This function is available since SDL 3.0.0. * \since This function is available since SDL 3.0.0.
* *
* \sa SDL_GetDefaultLogOutputFunction
* \sa SDL_GetLogOutputFunction * \sa SDL_GetLogOutputFunction
*/ */
extern SDL_DECLSPEC void SDLCALL SDL_SetLogOutputFunction(SDL_LogOutputFunction callback, void *userdata); extern SDL_DECLSPEC void SDLCALL SDL_SetLogOutputFunction(SDL_LogOutputFunction callback, void *userdata);

View file

@ -772,6 +772,11 @@ static void SDLCALL SDL_LogOutput(void *userdata, int category, SDL_LogPriority
#endif #endif
} }
SDL_LogOutputFunction SDL_GetDefaultLogOutputFunction(void)
{
return SDL_LogOutput;
}
void SDL_GetLogOutputFunction(SDL_LogOutputFunction *callback, void **userdata) void SDL_GetLogOutputFunction(SDL_LogOutputFunction *callback, void **userdata)
{ {
SDL_LockMutex(SDL_log_function_lock); SDL_LockMutex(SDL_log_function_lock);

View file

@ -1180,6 +1180,7 @@ SDL3_0.0.0 {
SDL_DelayPrecise; SDL_DelayPrecise;
SDL_CalculateGPUTextureFormatSize; SDL_CalculateGPUTextureFormatSize;
SDL_SetErrorV; SDL_SetErrorV;
SDL_GetDefaultLogOutputFunction;
# extra symbols go here (don't modify this line) # extra symbols go here (don't modify this line)
local: *; local: *;
}; };

View file

@ -1205,3 +1205,4 @@
#define SDL_DelayPrecise SDL_DelayPrecise_REAL #define SDL_DelayPrecise SDL_DelayPrecise_REAL
#define SDL_CalculateGPUTextureFormatSize SDL_CalculateGPUTextureFormatSize_REAL #define SDL_CalculateGPUTextureFormatSize SDL_CalculateGPUTextureFormatSize_REAL
#define SDL_SetErrorV SDL_SetErrorV_REAL #define SDL_SetErrorV SDL_SetErrorV_REAL
#define SDL_GetDefaultLogOutputFunction SDL_GetDefaultLogOutputFunction_REAL

View file

@ -1211,3 +1211,4 @@ SDL_DYNAPI_PROC(Uint32,SDL_StepBackUTF8,(const char *a, const char **b),(a,b),re
SDL_DYNAPI_PROC(void,SDL_DelayPrecise,(Uint64 a),(a),) SDL_DYNAPI_PROC(void,SDL_DelayPrecise,(Uint64 a),(a),)
SDL_DYNAPI_PROC(Uint32,SDL_CalculateGPUTextureFormatSize,(SDL_GPUTextureFormat a, Uint32 b, Uint32 c, Uint32 d),(a,b,c,d),return) SDL_DYNAPI_PROC(Uint32,SDL_CalculateGPUTextureFormatSize,(SDL_GPUTextureFormat a, Uint32 b, Uint32 c, Uint32 d),(a,b,c,d),return)
SDL_DYNAPI_PROC(bool,SDL_SetErrorV,(SDL_PRINTF_FORMAT_STRING const char *a,va_list b),(a,b),return) SDL_DYNAPI_PROC(bool,SDL_SetErrorV,(SDL_PRINTF_FORMAT_STRING const char *a,va_list b),(a,b),return)
SDL_DYNAPI_PROC(SDL_LogOutputFunction,SDL_GetDefaultLogOutputFunction,(void),(),return)