{"id":13532460,"url":"https://github.com/NoelFB/blah","last_synced_at":"2025-04-01T20:32:08.690Z","repository":{"id":38379056,"uuid":"290421800","full_name":"NoelFB/blah","owner":"NoelFB","description":"A small 2d c++ game framework","archived":false,"fork":false,"pushed_at":"2023-04-27T17:30:37.000Z","size":968,"stargazers_count":583,"open_issues_count":2,"forks_count":53,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-26T23:36:57.188Z","etag":null,"topics":["cpp17","game-engine","game-engine-2d","game-framework"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NoelFB.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-08-26T07:03:50.000Z","updated_at":"2025-03-26T15:09:42.000Z","dependencies_parsed_at":"2024-01-03T04:02:19.715Z","dependency_job_id":"3dd262ce-f1b6-4a00-8a11-827b0457d022","html_url":"https://github.com/NoelFB/blah","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoelFB%2Fblah","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoelFB%2Fblah/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoelFB%2Fblah/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoelFB%2Fblah/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NoelFB","download_url":"https://codeload.github.com/NoelFB/blah/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709923,"owners_count":20821297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp17","game-engine","game-engine-2d","game-framework"],"created_at":"2024-08-01T07:01:11.128Z","updated_at":"2025-04-01T20:32:03.669Z","avatar_url":"https://github.com/NoelFB.png","language":"C++","readme":"## blah\r\nA small 2D C++ Game Framework, using few dependencies and simple code to maintain easy building and portability.\r\n\r\n**☆ This will likely see breaking changes! Use at your own risk! ☆**\r\n\r\n#### a sample application\r\n\r\n```cpp\r\n#include \u003cblah.h\u003e\r\nusing namespace Blah;\r\n\r\nBatch batch;\r\n\r\nint main()\r\n{\r\n    Config config;\r\n    config.name = \"blah app\";\r\n    config.on_render = []()\r\n    {\r\n        auto target = App::backbuffer();\r\n        target-\u003eclear(Color::black);\r\n\r\n        auto center = Vec2f(target-\u003ewidth(), target-\u003eheight()) / 2;\r\n        auto rotation = Time::seconds * Calc::TAU;\r\n        auto transform = Mat3x2f::create_transform(center, Vec2f::zero, Vec2f::one, rotation);\r\n\r\n        batch.push_matrix(transform);\r\n        batch.rect(Rectf(-32, -32, 64, 64), Color::red);\r\n        batch.pop_matrix();\r\n\r\n        batch.render(target);\r\n        batch.clear();\r\n    };\r\n\r\n    return App::run(\u0026config);\r\n}\r\n\r\n```\r\n\r\n#### building\r\n - Requires C++17 and CMake 3.14+\r\n - At least one **Renderer** implementation must be enabled in CMake:\r\n\t- [OpenGL](https://github.com/NoelFB/blah/blob/master/src/internal/blah_renderer_opengl.cpp) (Default on Linux/macOS) `BLAH_RENDERER_OPENGL`\r\n\t- [D3D11](https://github.com/NoelFB/blah/blob/master/src/internal/blah_renderer_d3d11.cpp) (Default on Windows) `BLAH_RENDERER_D3D11`\r\n\t- Additional renderers can be added by implementing the [Renderer Backend](https://github.com/NoelFB/blah/blob/master/src/internal/blah_renderer.h)\r\n \r\n#### notes\r\n - There's no Shader abstraction, so you need to swap between GLSL/HLSL depending on the Renderer.\r\n - Only floatN/mat3x2/mat4x4 uniforms are supported.\r\n - No threaded rendering, so it will explode if you try that.\r\n\r\n","funding_links":[],"categories":["C++","Libraries"],"sub_categories":["C++"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNoelFB%2Fblah","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNoelFB%2Fblah","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNoelFB%2Fblah/lists"}