A small cross-platform C library for creating windows and rendering 32-bit pixel buffers.
MiniFB is a cross-platform C library that creates windows and renders 32-bit pixel buffers with minimal overhead. It solves the problem of writing portable low-level graphics code by abstracting platform-specific windowing and input APIs, allowing developers to focus on pixel manipulation rather than system integration.
C and C++ developers building pixel-based graphics applications, simple games, demoscene productions, or educational tools who need a lightweight, portable windowing solution without the complexity of larger frameworks.
Developers choose MiniFB for its extreme simplicity, small codebase, and broad platform support—from desktop and mobile to web and even legacy systems like DOS. It provides just enough abstraction to be portable while staying close to the metal.
MiniFB is a small cross platform library to create a frame buffer that you can draw pixels in
Provides a unified API for window creation and input handling across Windows, macOS, Linux, iOS, Android, Web, and DOS, enabling a single codebase for diverse targets as highlighted in the platform support matrix.
Offers a small set of functions focused on pixel buffer updates and basic events, reducing integration complexity—exemplified by the quick start example requiring only a few calls.
Utilizes hardware-accelerated APIs like OpenGL on Windows/Linux and Metal on macOS by default, with built-in frame rate control and vertical sync where supported.
Supports niche environments like WebAssembly and MS-DOS, including debugging tools for DOSBox-x, making it unique for retro computing or embedded web graphics.
Some platforms lack key features; for instance, iOS has no keyboard callbacks, Android input is limited, and Wayland requires protocol regeneration for compatibility, as noted in the limitations table.
Requires different CMake flags and dependencies per platform (e.g., libwayland-dev for Wayland or specific X11 packages), which can complicate multi-platform setup and maintenance.
Android uses RGBA byte order while desktop uses BGRA, forcing manual swizzling for external image data to avoid color swaps, as detailed in the Android pixel format section.
Protocol Buffers - Google's data interchange format
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
JSON for Modern C++
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.