A playful Vulkan rendering library, crafted for a simpler world. 🍃
Vultra aims to empower you to build and prototype games and vulkan apps quickly. It is a lightweight rendering library written in C99, drawing inspiration from the simplicity of Raylib and the robustness of liblava. Originally a study project, the focus is on keeping the code clear, simple, and easy to work with.
Screenshots
Caution
Vultra is currently in a highly work-in-progress state. The API is unstable and subject to significant changes. It is intended for learning and experimentation purposes.
To get started with, here's a simple example that demonstrates the basics:
#include "vultra/vultra.h"
int
main( void )
{
const int screenWidth = 640;
const int screenHeight = 480;
InitWindow( screenWidth, screenHeight, "Vultra: Basic Window" );
SetTargetFPS( 60 );
while( !ShouldQuit() )
{
if( IsKeyDown( KEY_ESCAPE ) ) break;
BeginDrawing();
{
// ...
}
EndDrawing();
}
CloseWindow();
return EXIT_SUCCESS;
}-
First, set up CPM.cmake in your project:
mkdir -p cmake wget -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake
-
In your
CMakeLists.txt, add the following lines afterproject(...):include(cmake/CPM.cmake) CPMAddPackage("gh:SOHNE/[email protected]") add_executable(your_target main.cpp) target_link_libraries(your_target PRIVATE Vultra::Vultra)
The majority of Vultra code is open-source. We are committed to a transparent development process and highly appreciate any contributions. Whether you are helping us fix bugs, proposing new features, improving our documentation or spreading the word - we would love to have you as a part of the SOHNE/Vultra community. Please refer to our contribution guidelines.
-
Bug Report: If you see an error message or encounter an issue while using Vultra, please create a bug report.
-
Feature Request: If you have an idea or if there is a capability that is missing and would make development easier and more robust, please submit a feature request.
-
Documentation Request: If you're reading the Vultra docs and feel like you're missing something, please submit a documentation request.
Vultra is licensed under the zlib/libpng license.
You are free to use, modify, and distribute this library under the following conditions:
- No Misrepresentation: You must not misrepresent the origin of the software. If you use this software in a product, an acknowledgment in the product documentation is appreciated but not required.
- Modified Versions: Altered source versions must be clearly marked as such and must not be misrepresented as the original software.
- License Notice: This license notice may not be removed or altered from any source distribution.
For the full license text, please see the LICENSE file.
Vultra depends on several third-party libraries and dependencies, each distributed under its own license. It is the responsibility of the user to review and comply with these additional licenses.