kimberlite
kimberlite 

Version 0.1.0
Vulkan bindings for crystal.
Installation
Add this to your application's shard.yml:
dependencies:
kimberlite:
github: ragmaanir/kimberlite
Usage
require "kimberlite"
Internals
libvulkan.cr: lib generated bycrystal_libfrom the vulkan headerwrappers.cr: Simplest wrappers around the lib. Mostly abstracting away c-specific annoyances.shortcuts.cr: Higher level convenience methods that can be used to get some standard behavior so one does not have to deal with every detail in the vulkan initializationextension.cr: Provides access to some of the vulkan extension methods (e.g. vkCreateDebugUtilsMessengerEXT)lib_extensions.cr: Extends the library structs with convenience methodsPipelineBuilder: Can be used to set up a pipeline and provides default values for the objects used to build the pipelineRenderPassBuilder: Same asPipelineBuilder, but for render passes
Development
-
Keep some
vulkan.hnamings instead of converting to crystal convention so copy&paste is simpler (?) -
Remove prefixes from enum values (e.g
PresentModeKhrinVkPresentModeImmediateKhr) -
bin/build: generates theREADME.mdfromREADME.md.template. -
bin/release: release a new version (runs specs, buildsREADME.md, commits, tags, pushes). -
bin/generate_lib: generateslibvulkan.cr:
A docker container is used to generate libvulkan.cr from the vulkan.h of the Vulkan SDK (used version is specified in VULKAN_VERSION file) using crystal_lib. postprocess_libvulkan.cr is used to fix some incorrect renamings done by crystal_lib. crystal_lib is used as a submodule in ./crystal_lib because there might be changes to it that are vulkan specific.
Contributing
- Fork it (https://github.com/ragmaanir/kimberlite/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- ragmaanir Ragmaanir - creator, maintainer
kimberlite
- 2
- 0
- 0
- 0
- 2
- over 6 years ago
- September 13, 2018
MIT License
Thu, 30 Oct 2025 17:49:49 GMT