# ReWindow [![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/) A library which allows easily creating and managing a window and it's events across multiple platforms *primarily for games*. ## Features - Window Creation - Create multiple windows at once. Windows can also create so-called `message-boxes`, which are technically windows too. - Window Management - Change the state of the window, title, size, fullscreen mode, v-sync, and more. - Window Events - Callback function hooks for reading user-input and window state events, such as exit, focus, etc. - State of the Art C++20 - Supported Platforms: X11 on Linux, Windows - Builds on ARM. - One API supports all platforms. - Supports OpenGL, Vulkan, Software Rendering(?) - Public Domain. - Lightweight AF. - Painless integration with \. (Ours is JGL!) - Straightforward, well-documented source code and API. - Packaged with InputService as a built-in, portable input API. ## Run Demo Install dependencies ```bash Fedora/RHEL: dnf install cmake make gcc-g++ libX11 libX11-devel mesa-libGL-devel vulkan-loader-devel dbus-devel Ubuntu/Debian: apt-get install cmake make gcc g++ libx11-6 libx11-dev libgl-dev libvulkan-dev libxrandr-dev libdbus-1-dev ``` Clone the repository ```bash git clone https://git.redacted.cc/Redacted/ReWindow.git ``` Build ```bash cd ReWindow && mkdir build && cd build && cmake .. && make ``` Run it ```bash ./ReWindowDemo ```