mirror of
				https://github.com/NoelFB/blah.git
				synced 2025-10-31 01:01:33 +08:00 
			
		
		
		
	Merge branch 'master' of https://github.com/NoelFB/blah
This commit is contained in:
		
							
								
								
									
										39
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								README.md
									
									
									
									
									
								
							| @ -3,14 +3,49 @@ a small C++ game framework for 2D games. | ||||
|  | ||||
| this will likely see breaking changes. | ||||
|  | ||||
| #### Prerequisites  | ||||
| #### prerequisites  | ||||
|  - A C++17 compiler and CMake | ||||
|  - Only an SDL2 `platform` [is done](https://github.com/NoelFB/blah/blob/master/private/blah/internal/platform_sdl2.cpp). CMake will need to find SDL2 via `SDL2_INCLUDE_DIRS` and `SDL2_LIBRARIES` | ||||
|  - Only an OpenGL `graphics` [is done](https://github.com/NoelFB/blah/blob/master/private/blah/internal/graphics_opengl.cpp), so it currently requires OpenGL. | ||||
|   | ||||
| #### Notes | ||||
| #### notes | ||||
|  - There are probably lots of small bugs as this is highly untested. Best used as a learning resource for now. | ||||
|  - There's a custom "vector" class which is called List and Stacklist which may later be replaced with std::vector | ||||
|  - There's no Shader abstraction, so the [Sprite Batcher](https://github.com/NoelFB/blah/blob/master/public/blah/drawing/batch.h) has hard-coded GLSL. This will need to change. | ||||
|  - The rendering layer may be replaced with [FNA3D](https://github.com/FNA-XNA/FNA3D), [BGFX](https://github.com/bkaradzic/bgfx), [Sokol](https://github.com/floooh/sokol), or something else. | ||||
|  - There's no Audio layer implementation yet. | ||||
|  | ||||
|  | ||||
| #### a sample application | ||||
|  | ||||
| ```cpp | ||||
| #include <blah.h> | ||||
| using namespace Blah; | ||||
|  | ||||
| Batch batch; | ||||
|  | ||||
| void render() | ||||
| { | ||||
| 	Graphics::clear(Graphics::backbuffer, 0x00000000); | ||||
| 	 | ||||
| 	batch.push_matrix(Mat3x2::create_transform(Vec2(App::draw_width(), App::draw_height()) / 2, Vec2::zero, Vec2::one, Time::elapsed * Calc::TAU)); | ||||
| 	batch.rect(Rect(-32, -32, 64, 64), 0xff0000); | ||||
| 	batch.pop_matrix(); | ||||
| 	 | ||||
| 	batch.render(Graphics::backbuffer); | ||||
| 	batch.clear(); | ||||
| } | ||||
|  | ||||
| int main() | ||||
| { | ||||
| 	Config config; | ||||
| 	config.name = "blah app"; | ||||
| 	config.width = 1280; | ||||
| 	config.height = 720; | ||||
| 	config.on_render = render; | ||||
| 	 | ||||
| 	App::run(&config); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| ``` | ||||
|  | ||||
		Reference in New Issue
	
	Block a user