mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-31 08:16:03 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Examples
 | |
| 
 | |
| ## What is this?
 | |
| 
 | |
| In here are a collection of standalone SDL application examples. Unless
 | |
| otherwise stated, they should work on all supported platforms out of the box.
 | |
| If they don't [please file a bug to let us know](https://github.com/libsdl-org/SDL/issues/new).
 | |
| 
 | |
| 
 | |
| ## What is this SDL_AppIterate thing?
 | |
| 
 | |
| SDL can optionally build apps as a collection of callbacks instead of the
 | |
| usual program structure that starts and ends in a function called `main`.
 | |
| The examples use this format for two reasons.
 | |
| 
 | |
| First, it allows the examples to work when built as web applications without
 | |
| a pile of ugly `#ifdef`s, and all of these examples are published on the web
 | |
| at [examples.libsdl.org](https://examples.libsdl.org/), so you can easily see
 | |
| them in action.
 | |
| 
 | |
| Second, it's example code! The callbacks let us cleanly break the program up
 | |
| into the four logical pieces most apps care about:
 | |
| 
 | |
| - Program startup
 | |
| - Event handling
 | |
| - What the program actually does in a single frame
 | |
| - Program shutdown
 | |
| 
 | |
| A detailed technical explanation of these callbacks is in
 | |
| docs/README-main-functions.md (or view that page on the web on
 | |
| [the wiki](https://wiki.libsdl.org/SDL3/README/main-functions#main-callbacks-in-sdl3)).
 | |
| 
 | |
| 
 | |
| ## I would like to build and run these examples myself.
 | |
| 
 | |
| When you build SDL with CMake, you can add `-DSDL_EXAMPLES=On` to the
 | |
| CMake command line. When you build SDL, these examples will be built with it.
 | |
| 
 | |
| But most of these can just be built as a single .c file, as long as you point
 | |
| your compiler at SDL3's headers and link against SDL.
 | |
| 
 | |
| 
 | |
| ## What is the license on the example code? Can I paste this into my project?
 | |
| 
 | |
| All code in the examples directory is considered public domain! You can do
 | |
| anything you like with it, including copy/paste it into your closed-source
 | |
| project, sell it, and pretend you wrote it yourself. We do not require you to
 | |
| give us credit for this code (but we always appreciate if you do!).
 | |
| 
 | |
| This is only true for the examples directory. The rest of SDL falls under the
 | |
| [zlib license](https://github.com/libsdl-org/SDL/blob/main/LICENSE.txt).
 | |
| 
 | |
| 
 | |
| ## What is template.html and highlight-plugin.lua in this directory?
 | |
| 
 | |
| This is what [examples.libsdl.org](https://examples.libsdl.org/) uses when
 | |
| generating the web versions of these example programs. You can ignore this,
 | |
| unless you are improving it, in which case we definitely would love to hear
 | |
| from you!
 | |
| 
 | |
| 
 | |
| ## What is template.c in this directory?
 | |
| 
 | |
| If writing new examples, this is the skeleton code we start from, to keep
 | |
| everything consistent. You can ignore it.
 | |
| 
 | |
| 
 | 
