# About:

Final Platform Layer is a Single-Header-File cross-platform C development library designed to abstract the underlying platform to a very simple and easy to use low-level api - providing low level access to (Window, Video, Audio, Keyboard, Mouse, Gamepad, Files, 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/Unix for the architectures x86/x64.

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.
- You decide how to integrate it; not the library.



# How do i get started?

You download the latest release from the github page:
https://github.com/f1nalspace/fin...lob/master/final_platform_layer.h

Drop it into your C/C++ project and use it in any place you want.

Define FPL_IMPLEMENTATION in at least one translation unit before including the header file.

For more details you can check out the official website: https://libfpl.org



# Current state / Future plans:

FPL is not finished yet and just supports a couple of platforms, but more platforms are already in progress or are planned. Also some features are not implemented yet or may be missing.

For more details: https://libfpl.org/docs/page_todo.html