A C99 Single-Header-File Platform Abstraction Library
What is FPL?
Final Platform Layer is a Single-Header-File cross-platform C development library designed to abstract the underlying platform to a simple and easy to use api - providing low level access to (Window, Video, Audio, Input, File/Path IO, Threads, Memory, Hardware, etc.).
The main focus is game/media/simulation development, so the default settings will create a window, setup a OpenGL rendering context and initialize audio playback on any platform.
It is written in C99 for simplicity and best portability, but is C++ compatible as well.
FPL supports the platforms Windows/Linux for the architectures x86/x64.
The only dependencies are built-in operating system libraries and a C99 complaint compiler.
It is licensed under the MIT-License. This license allows you to use FPL freely in any software.
What makes it different from other platform abstraction libraries, such as SDL/SFML etc. ?
FPL is designed to require bare minimum linking to the OS (kernel32.lib / libld.so) only.
It does not require any dependencies or build-systems to get it running.
It has a lightweight feature set (Single window, Graphics api initialization, Raw audio samples playback, Input handling, Multithreading, Path/File IO, Atomics, OS/HW-Infos etc.)
No data hiding -> everything is accessible.
It uses a fixed and small memory footprint and handles memory very gracefully.
It can be controlled by a configuration structure in very detail at startup.