Skip to content

anunknowperson/renderlib

Repository files navigation

RenderLib 🚀

CMake on multiple platforms License: MIT Codestyle

High-performance rendering library using Vulkan API. RenderLib provides a convenient interface for graphics applications, simplifying interactions with low-level graphics.

📑 Contents

✨ Features

  • Abstraction over Vulkan API for convenient use
  • Cross-platform support (Windows, Linux)
  • Efficient shader management
  • Support for various graphic primitives
  • Optimized GPU resource handling

🔧 Requirements

  • C++23 or newer
  • CMake 3.24+
  • Vulkan SDK 1.4+
  • vcpkg for dependency management
  • Compiler with C++23 support:
    • MSVC 19.35+ (Visual Studio 2022+)
    • GCC 13+
    • Clang 17+

🛠️ Installation and Building

1. Clone the Repository

git clone --recurse-submodules https://github.com/anunknowperson/renderlib.git
cd renderlib

2. Install Dependencies

Installing Vulkan SDK

Download and install the Vulkan SDK according to your operating system.

3. Configure and Build Using CMake Presets

List available configuration presets:

cmake --list-presets

Configure the project with a selected preset:

cmake --preset wx64-debug  # for Windows Debug
cmake --preset lx64-debug  # for Linux Debug

Build the project:

cmake --build --preset wx64-debug
cmake --build --preset lx64-debug

4. Running demo

Note: Temporary solution - to run the demo you need to copy the shaders folder from the project root to the renderlib\out\build\wx64-debug\demo directory:

xcopy /E /I shaders renderlib\out\build\wx64-debug\demo\shaders  # for Windows
cp -r shaders renderlib/out/build/wx64-debug/demo/shaders  # for Linux

To launch the demo:

./out/build/wx64-debug/demo/renderlib.x.exe  # for Windows
./out/build/lx64-debug/demo/renderlib.x  # for Linux

👥 Contributing

We welcome contributions to the project! If you'd like to contribute:

  1. Fork the repository
  2. Create a feature branch (git switch -c amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin amazing-feature)
  5. Open a Pull Request

Code Style

The project uses clang-format and clang-tidy to maintain a consistent code style. Before submitting a PR, make sure your code matches the formatting standards:

clang-format-18 -i path/to/your/file.cpp

📄 License

Distributed under the MIT License. See the LICENSE file for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10