Skip to content
This repository was archived by the owner on Jan 19, 2024. It is now read-only.

Latest commit

 

History

History
56 lines (38 loc) · 1.21 KB

README.rst

File metadata and controls

56 lines (38 loc) · 1.21 KB

CVulkan

CVulkan is a C extension for Vulkan. It leverages power of Vulkan with simplicity of Python.

Presentation

CVulkan is a complete Vulkan wrapper. It keeps the original Vulkan API and try to limit the differences induced by Python.

How to install

Pip

You can install directly CVulkan with pip:

pip install cvulkan

Manual install

You can install it manually if you want the last version:

git clone https://github.com/realitix/cvulkan
cd cvulkan
python setup.py install

How to contribute

To contribute, you should first read the How it works section. Any contribution is welcome and I answer quickly.

 How it works

CVulkan is a C module generated by a Python script. To proceed, the script vulkan_generator.py computes a model of Vulkan API based on vk.xml (the file from Kronos describing the API) and then uses jinja2 templates to write the vulkanmodule.c file.

Here the basic steps:

  • Load vk.xml
  • Use xmltodict to parse the xml document
  • Generate a good data model from it
  • Pass the model to the jinja2 template engine
  • The template engine generate the final c file