{"repo":"DonutVikingChap/libdonut","free":true,"listed":false,"github":"https://github.com/DonutVikingChap/libdonut","clone":"git clone https://github.com/DonutVikingChap/libdonut.git","description":"Application framework for cross-platform game development in C++20","language":"C++","stars":19,"topics":["cpp","cpp20","application-framework","c-plus-plus","cplusplus","game-development","graphics","library","opengl","api"],"license":"MIT","category":"game-templates","readme_excerpt":"libdonut Libdonut is an application framework for cross-platform game development in C++20. Examples - Template project with some instructional comments: template/src/main.cpp - Single-file test game using various features: examples/example game.cpp - Basic application that renders a rectangle: examples/example rectangle.cpp Features - Application framework: - Application base class: - Defines the main loop of the program in a platform-agnostic way that supports both native Windows/Linux compilation as well as the emscripten WebAssembly runtime. - Includes an optional built-in frame rate limiter. - Provides both per-frame update callbacks and frame rate-independent pacing of fixed-rate tick updates. - Events system: - EventPump: - Polls Event data from the environment on demand. - InputManager: - Maps physical Input events to abstract action numbers. - Supports simultaneous keyboard, mouse, touch and controller input. - Audio engine using SoLoud: - Sound loading: - Supports OGG, WAV, FLAC and MP3 formats. - SoundStage: - Plays 3D positional audio, background sounds and music. - Graphics rendering through OpenGL: - Window abstraction: - Handles GL context setup and window management using SDL. - Renderer: - RenderPass interface for simple batch rendering: - 3D Model rendering that supports custom shaders through Shader3D or basic built-in Blinn-Phong lighting for prototyping. - 2D Textured quad rendering with built-in shaders or custom shaders through Shader2D. - Sprite render","default_branch":null,"files":null,"tree":[],"storefront":"/r/DonutVikingChap","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/DonutVikingChap/libdonut/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}