13
13
(((flags) & (flag)) != 0)
14
14
15
15
#define FOSTER_ASSERT_RUNNING_RET (func , ret ) \
16
- do { if (!fstate.running) { FosterLogError ("Failed '%s', Foster is not running", #func); return ret; } } while(0)
16
+ do { if (!fstate.running) { FOSTER_LOG_ERROR ("Failed '%s', Foster is not running", #func); return ret; } } while(0)
17
17
18
18
#define FOSTER_ASSERT_RUNNING (func ) \
19
- do { if (!fstate.running) { FosterLogError ("Failed '%s', Foster is not running", #func); return; } } while(0)
19
+ do { if (!fstate.running) { FOSTER_LOG_ERROR ("Failed '%s', Foster is not running", #func); return; } } while(0)
20
20
21
21
FosterKeys FosterGetKeyFromSDL (SDL_Scancode key );
22
22
FosterButtons FosterGetButtonFromSDL (SDL_GameControllerButton button );
@@ -38,18 +38,18 @@ void FosterLog_SDL(void *userdata, int category, SDL_LogPriority priority, const
38
38
{
39
39
case SDL_LOG_PRIORITY_VERBOSE :
40
40
case SDL_LOG_PRIORITY_DEBUG :
41
- if (fstate .logLevel == FOSTER_LOGGING_ALL )
42
- FosterLogInfo ("%s" , message );
41
+ if (fstate .logFilter == FOSTER_LOG_FILTER_VERBOSE )
42
+ FOSTER_LOG_INFO ("%s" , message );
43
43
break ;
44
44
case SDL_LOG_PRIORITY_INFO :
45
- FosterLogInfo ("%s" , message );
45
+ FOSTER_LOG_INFO ("%s" , message );
46
46
break ;
47
47
case SDL_LOG_PRIORITY_WARN :
48
- FosterLogWarn ("%s" , message );
48
+ FOSTER_LOG_WARN ("%s" , message );
49
49
break ;
50
50
case SDL_LOG_PRIORITY_ERROR :
51
51
case SDL_LOG_PRIORITY_CRITICAL :
52
- FosterLogError ("%s" , message );
52
+ FOSTER_LOG_ERROR ("%s" , message );
53
53
break ;
54
54
}
55
55
}
@@ -67,18 +67,17 @@ void FosterStartup(FosterDesc desc)
67
67
68
68
if (fstate .desc .width <= 0 || fstate .desc .height <= 0 )
69
69
{
70
- FosterLogError ("Foster invalid application width/height (%i, %i)" , desc .width , desc .height );
70
+ FOSTER_LOG_ERROR ("Foster invalid application width/height (%i, %i)" , desc .width , desc .height );
71
71
return ;
72
72
}
73
73
74
74
// Get SDL version
75
75
SDL_version version ;
76
76
SDL_GetVersion (& version );
77
- FosterLogInfo ("SDL: v%i.%i.%i" , version .major , version .minor , version .patch );
77
+ FOSTER_LOG_INFO ("SDL: v%i.%i.%i" , version .major , version .minor , version .patch );
78
78
79
79
// track SDL output
80
- if (fstate .logLevel != FOSTER_LOGGING_NONE &&
81
- (fstate .logInfo || fstate .logWarn || fstate .logError ))
80
+ if (fstate .logFilter != FOSTER_LOG_FILTER_IGNORE_ALL && fstate .logFn )
82
81
{
83
82
SDL_LogSetOutputFunction (FosterLog_SDL , NULL );
84
83
}
@@ -96,14 +95,14 @@ void FosterStartup(FosterDesc desc)
96
95
int sdl_init_flags = SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER ;
97
96
if (SDL_Init (sdl_init_flags ) != 0 )
98
97
{
99
- FosterLogError ("Foster SDL_Init Failed: %s" , SDL_GetError ());
98
+ FOSTER_LOG_ERROR ("Foster SDL_Init Failed: %s" , SDL_GetError ());
100
99
return ;
101
100
}
102
101
103
102
// determine renderer type
104
103
if (!FosterGetDevice (fstate .desc .renderer , & fstate .device ))
105
104
{
106
- FosterLogError ("Foster Failed to get Renderer Device" );
105
+ FOSTER_LOG_ERROR ("Foster Failed to get Renderer Device" );
107
106
return ;
108
107
}
109
108
@@ -122,7 +121,7 @@ void FosterStartup(FosterDesc desc)
122
121
123
122
if (fstate .window == NULL )
124
123
{
125
- FosterLogError ("Foster SDL_CreateWindow Failed: %s" , SDL_GetError ());
124
+ FOSTER_LOG_ERROR ("Foster SDL_CreateWindow Failed: %s" , SDL_GetError ());
126
125
return ;
127
126
}
128
127
@@ -133,7 +132,7 @@ void FosterStartup(FosterDesc desc)
133
132
{
134
133
if (!fstate .device .initialize ())
135
134
{
136
- FosterLogError ("Foster Failed to initialize Renderer Device" );
135
+ FOSTER_LOG_ERROR ("Foster Failed to initialize Renderer Device" );
137
136
fstate .running = false;
138
137
SDL_DestroyWindow (fstate .window );
139
138
return ;
@@ -145,12 +144,10 @@ void FosterStartup(FosterDesc desc)
145
144
SDL_ShowWindow (fstate .window );
146
145
}
147
146
148
- void FosterRegisterLogMethods (FosterLogFn logInfo , FosterLogFn logWarn , FosterLogFn logError , FosterLogging logLevel )
147
+ void FosterSetLogCallback (FosterLogFn logFn , FosterLogFilter logFiler )
149
148
{
150
- fstate .logInfo = logInfo ;
151
- fstate .logWarn = logWarn ;
152
- fstate .logError = logError ;
153
- fstate .logLevel = logLevel ;
149
+ fstate .logFn = logFn ;
150
+ fstate .logFilter = logFiler ;
154
151
}
155
152
156
153
void FosterBeginFrame ()
@@ -433,7 +430,7 @@ void FosterSetFlags(FosterFlags flags)
433
430
{
434
431
int result = SDL_GL_SetSwapInterval (FOSTER_CHECK (flags , FOSTER_FLAG_VSYNC ) ? 1 : 0 );
435
432
if (result != 0 )
436
- FosterLogWarn ("Setting V-Sync Failed: %s" , SDL_GetError ());
433
+ FOSTER_LOG_WARN ("Setting V-Sync Failed: %s" , SDL_GetError ());
437
434
}
438
435
439
436
fstate .flags = flags ;
@@ -488,15 +485,15 @@ FosterFont* FosterFontInit(unsigned char* data, int length)
488
485
{
489
486
if (stbtt_GetNumberOfFonts (data ) <= 0 )
490
487
{
491
- FosterLogError ("Unable to parse Font File" );
488
+ FOSTER_LOG_ERROR ("Unable to parse Font File" );
492
489
return NULL ;
493
490
}
494
491
495
492
stbtt_fontinfo * info = (stbtt_fontinfo * )SDL_malloc (sizeof (stbtt_fontinfo ));
496
493
497
494
if (stbtt_InitFont (info , data , 0 ) == 0 )
498
495
{
499
- FosterLogError ("Unable to parse Font File" );
496
+ FOSTER_LOG_ERROR ("Unable to parse Font File" );
500
497
SDL_free (info );
501
498
return NULL ;
502
499
}
@@ -705,10 +702,10 @@ void FosterClear(FosterClearCommand* clear)
705
702
fstate .device .clear (clear );
706
703
}
707
704
708
- void FosterLogInfo ( const char * fmt , ...)
705
+ void FosterLog ( FosterLogLevel level , const char * fmt , ...)
709
706
{
710
- if (fstate .logLevel == FOSTER_LOGGING_NONE ||
711
- fstate .logInfo == NULL )
707
+ if (fstate .logFilter == FOSTER_LOG_FILTER_IGNORE_ALL ||
708
+ fstate .logFn == NULL )
712
709
return ;
713
710
714
711
char msg [FOSTER_MAX_MESSAGE_SIZE ];
@@ -717,37 +714,7 @@ void FosterLogInfo(const char* fmt, ...)
717
714
SDL_vsnprintf (msg , sizeof (msg ), fmt , ap );
718
715
va_end (ap );
719
716
720
- fstate .logInfo (msg );
721
- }
722
-
723
- void FosterLogWarn (const char * fmt , ...)
724
- {
725
- if (fstate .logLevel == FOSTER_LOGGING_NONE ||
726
- fstate .logWarn == NULL )
727
- return ;
728
-
729
- char msg [FOSTER_MAX_MESSAGE_SIZE ];
730
- va_list ap ;
731
- va_start (ap , fmt );
732
- SDL_vsnprintf (msg , sizeof (msg ), fmt , ap );
733
- va_end (ap );
734
-
735
- fstate .logWarn (msg );
736
- }
737
-
738
- void FosterLogError (const char * fmt , ...)
739
- {
740
- if (fstate .logLevel == FOSTER_LOGGING_NONE ||
741
- fstate .logError == NULL )
742
- return ;
743
-
744
- char msg [FOSTER_MAX_MESSAGE_SIZE ];
745
- va_list ap ;
746
- va_start (ap , fmt );
747
- SDL_vsnprintf (msg , sizeof (msg ), fmt , ap );
748
- va_end (ap );
749
-
750
- fstate .logError (msg );
717
+ fstate .logFn (msg , level );
751
718
}
752
719
753
720
int FosterFindJoystickIndexSDL (SDL_Joystick * * joysticks , SDL_JoystickID instanceID )
0 commit comments