mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-11-04 01:34:38 +00:00 
			
		
		
		
	README-main-functions.md: Added notes about the new appstate parameter.
				
					
				
			This commit is contained in:
		@@ -137,7 +137,7 @@ functions:
 | 
				
			|||||||
First:
 | 
					First:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```c
 | 
					```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
 | 
					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
 | 
					go into an infinite mainloop; it should do any one-time startup it requires
 | 
				
			||||||
and then return.
 | 
					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:
 | 
					Then:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```c
 | 
					```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
 | 
					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:
 | 
					Next:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```c
 | 
					```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
 | 
					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:
 | 
					Finally:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```c
 | 
					```c
 | 
				
			||||||
void SDL_AppQuit(void);
 | 
					void SDL_AppQuit(void *appstate);
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This is called once before terminating the app--assuming the app isn't being
 | 
					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
 | 
					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.
 | 
					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.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user