No description
Find a file
versustunez 571c1eb35e 🐛 static Input handling
export inline to have a single instance of it
2025-05-29 17:48:42 +02:00
CMake 🎉 begin project 2025-05-29 13:21:19 +02:00
Source 🐛 static Input handling 2025-05-29 17:48:42 +02:00
.clang-format 🎉 begin project 2025-05-29 13:21:19 +02:00
.gitattributes 🎉 begin project 2025-05-29 13:21:19 +02:00
.gitignore 🎉 begin project 2025-05-29 13:21:19 +02:00
CMakeLists.txt 🎉 begin project 2025-05-29 13:21:19 +02:00
CMakePresets.json 🎉 begin project 2025-05-29 13:21:19 +02:00
LICENSE 🎉 begin project 2025-05-29 13:21:19 +02:00
main.cppm 🐛 static Input handling 2025-05-29 17:48:42 +02:00
README.md 🎉 begin project 2025-05-29 13:21:19 +02:00
vcpkg-configuration.json 🎉 begin project 2025-05-29 13:21:19 +02:00
vcpkg.json 🎉 begin project 2025-05-29 13:21:19 +02:00

UI Versus UI

VUI (short for Versus UI) is a lightweight and modern UI framework written in C++. It provides a clean and intuitive API for building native user interfaces with a focus on simplicity, performance, and extensibility.

Inspired by RGFW and GLFW

![Warning] Work in Progress VUI is currently in early development and is not yet production-ready.

Features

  • Basic windowing support
  • Event handling (keyboard, mouse, etc.)
  • Modular and easy-to-use API
  • Lightweight and efficient

🖥️ Platform Support

  • Windows (currently supported)
  • Linux (planned)

macOS and other platforms may be considered in the future.

🚧 Project Status

VUI is a heavy Work In Progress. Many components are still being developed, and APIs may change frequently. Your feedback and contributions are welcome to help shape the future of the project!

📦 Getting Started

Note: This project currently targets Windows only.

Prerequisites

  • A C++23 (or later) compatible compiler
  • CMake 3.16+

Build Instructions

git clone https://git.vstz.dev/vstz/VUI.git
cd vui
mkdir build && cd build
cmake ..
cmake --build .

🛠️ Usage

Heres a simple example of using VUI:

#include <vui/VUI.h>

int main() {
  VUI::WindowManager::Create(800, 600, "Example Window");
  while (VUI::WindowManager::HasOpen()) {
    VUI::WindowManager::Update();
    double dt = VUI::GetDeltaTime();
    // ...
    if (VUI::Input::IsKeyPressed(VUI::KeyCodes::ESCAPE)) {
      break;
    }
  }
  return 0;
}

More examples and documentation will be added as the project matures.

📅 Roadmap

  • Basic window creation
  • Event system (keyboard/mouse)
  • Linux support
  • Layout system
  • Widgets (buttons, sliders, etc.)
  • Theming & styling
  • High-DPI support

🤝 Contributing

Contributions are welcome! If you're interested in helping build VUI, feel free to open issues, submit pull requests, or discuss ideas.