README-main-functions.md: Added notes about the new `appstate` parameter.
parent
7a9f99cff3
commit
ad92c9e300
|
@ -137,7 +137,7 @@ functions:
|
|||
First:
|
||||
|
||||
```c
|
||||
int SDL_AppInit(int argc, char **argv);
|
||||
int SDL_AppInit(void **appstate, int argc, char **argv);
|
||||
```
|
||||
|
||||
This will be called _once_ before anything else. argc/argv work like they
|
||||
|
@ -148,10 +148,17 @@ an exit code that reports success to the platform. This function should not
|
|||
go into an infinite mainloop; it should do any one-time startup it requires
|
||||
and then return.
|
||||
|
||||
If you want to, you can assign a pointer to `*appstate`, and this pointer
|
||||
will be made available to you in later functions calls in their `appstate`
|
||||
parameter. This allows you to avoid global variables, but is totally
|
||||
optional. If you don't set this, the pointer will be NULL in later function
|
||||
calls.
|
||||
|
||||
|
||||
Then:
|
||||
|
||||
```c
|
||||
int SDL_AppIterate(void);
|
||||
int SDL_AppIterate(void *appstate);
|
||||
```
|
||||
|
||||
This is called over and over, possibly at the refresh rate of the display or
|
||||
|
@ -171,7 +178,7 @@ as fast as possible. You do not check the event queue in this function
|
|||
Next:
|
||||
|
||||
```c
|
||||
int SDL_AppEvent(const SDL_Event *event);
|
||||
int SDL_AppEvent(void *appstate, const SDL_Event *event);
|
||||
```
|
||||
|
||||
This will be called whenever an SDL event arrives, on the thread that runs
|
||||
|
@ -183,7 +190,7 @@ SDL_AppIterate(), so you can terminate in response to SDL_EVENT_QUIT, etc.
|
|||
Finally:
|
||||
|
||||
```c
|
||||
void SDL_AppQuit(void);
|
||||
void SDL_AppQuit(void *appstate);
|
||||
```
|
||||
|
||||
This is called once before terminating the app--assuming the app isn't being
|
||||
|
@ -192,3 +199,5 @@ SDL will call SDL_Quit so the app doesn't have to (but it's safe for the app
|
|||
to call it, too). Process termination proceeds as if the app returned normally
|
||||
from main(), so atexit handles will run, if your platform supports that.
|
||||
|
||||
If you set `*appstate` during SDL_AppInit, this is where you should free that
|
||||
data, as this pointer will not be provided to your app again.
|
||||
|
|
Loading…
Reference in New Issue