diff --git a/include/SDL3/SDL_main.h b/include/SDL3/SDL_main.h index 009cd4ef1a..81a601df8f 100644 --- a/include/SDL3/SDL_main.h +++ b/include/SDL3/SDL_main.h @@ -167,12 +167,10 @@ */ #define SDL_MAIN_NEEDED - #elif defined(SDL_PLATFORM_IOS) - /* On iOS SDL provides a main function that creates an application delegate - and starts the iOS application run loop. + #elif defined(SDL_PLATFORM_IOS) || defined(SDL_PLATFORM_TVOS) + /* On iOS and tvOS SDL provides a main function that creates an application delegate and starts the application run loop. - To use it, just #include SDL_main.h in the source file that contains your - main() function. + To use it, just #include in the source file that contains your main() function. See src/video/uikit/SDL_uikitappdelegate.m for more details. */ @@ -230,6 +228,15 @@ */ #define SDL_MAIN_AVAILABLE + #else + /* + This platform SDL provides a main function that sets up the main + thread and calls your main function. + + If you provide this yourself, you may define SDL_MAIN_HANDLED + */ + #define SDL_MAIN_AVAILABLE + #endif #endif /* SDL_MAIN_HANDLED */ diff --git a/src/main/SDL_runapp.c b/src/main/SDL_runapp.c index df0750529d..09c6b003c1 100644 --- a/src/main/SDL_runapp.c +++ b/src/main/SDL_runapp.c @@ -21,9 +21,15 @@ #include "SDL_internal.h" #include "SDL_main_callbacks.h" -/* Most platforms that use/need SDL_main have their own SDL_RunApp() implementation. - * If not, you can special case it here by appending || defined(__YOUR_PLATFORM__) */ -#if ( !defined(SDL_MAIN_NEEDED) && !defined(SDL_MAIN_AVAILABLE) ) || defined(SDL_PLATFORM_ANDROID) +// Add your platform here if you define a custom SDL_RunApp() implementation +#if !defined(SDL_PLATFORM_WIN32) && \ + !defined(SDL_PLATFORM_GDK) && \ + !defined(SDL_PLATFORM_IOS) && \ + !defined(SDL_PLATFORM_TVOS) && \ + !defined(SDL_PLATFORM_EMSCRIPTEN) && \ + !defined(SDL_PLATFORM_PSP) && \ + !defined(SDL_PLATFORM_PS2) && \ + !defined(SDL_PLATFORM_3DS) int SDL_RunApp(int argc, char *argv[], SDL_main_func mainFunction, void * reserved) {