All Projects → nimgl → vulkan

nimgl / vulkan

Licence: MIT License
Vulkan bindings for Nim

Programming Languages

nim
578 projects
GLSL
2045 projects

Projects that are alternatives of or similar to vulkan

Nvk
Vulkan API for JavaScript/TypeScript
Stars: ✭ 774 (+5060%)
Mutual labels:  vulkan, bindings
renderdoc-rs
RenderDoc application bindings for Rust
Stars: ✭ 28 (+86.67%)
Mutual labels:  vulkan, bindings
Nimgl
NimGL is a Nim library that offers bindings for popular libraries used in computer graphics
Stars: ✭ 218 (+1353.33%)
Mutual labels:  vulkan, bindings
Lwjgl3
LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio (OpenAL), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR) applications.
Stars: ✭ 3,540 (+23500%)
Mutual labels:  vulkan, bindings
imgui
ImGui bindings for Nim via cimgui
Stars: ✭ 117 (+680%)
Mutual labels:  bindings, nimgl
tokonoma
Graphics related projects/prototypes/playground (Vulkan, C++17)
Stars: ✭ 23 (+53.33%)
Mutual labels:  vulkan
pygfx
Like ThreeJS but for Python and based on wgpu
Stars: ✭ 72 (+380%)
Mutual labels:  vulkan
ZinoEngineV1
A custom Vulkan 3D game engine in C++ 3d that I make for fun.
Stars: ✭ 17 (+13.33%)
Mutual labels:  vulkan
magma
Abstraction layer to facilitate usage of Khronos Vulkan API
Stars: ✭ 23 (+53.33%)
Mutual labels:  vulkan
Xacor
Experimental Game Engine
Stars: ✭ 24 (+60%)
Mutual labels:  vulkan
gearoenix
Cross-platform C++ 3D game engine.
Stars: ✭ 33 (+120%)
Mutual labels:  vulkan
YALCT
Yet Another Live Coding Tool - Powered by Veldrid and elbow grease
Stars: ✭ 25 (+66.67%)
Mutual labels:  vulkan
Vortex2D
Real-time fluid simulation engine running on GPU with Vulkan
Stars: ✭ 91 (+506.67%)
Mutual labels:  vulkan
solo
Small C++ game engine with Lua scripting
Stars: ✭ 26 (+73.33%)
Mutual labels:  vulkan
ncnn-android-squeezenet
The squeezenet image classification android example
Stars: ✭ 100 (+566.67%)
Mutual labels:  vulkan
simplesquirrel
Yet another simple binding in C++11 for Squirrel scripting language
Stars: ✭ 37 (+146.67%)
Mutual labels:  bindings
deltachat-node
Email-based instant messaging for Node.js.
Stars: ✭ 46 (+206.67%)
Mutual labels:  bindings
gl vk bk3dthreaded
Vulkan sample rendering 3D with 'worker-threads'
Stars: ✭ 80 (+433.33%)
Mutual labels:  vulkan
osre
An open source render engine
Stars: ✭ 95 (+533.33%)
Mutual labels:  vulkan
Xamarin.iOS.DatePickerDialog
Xamarin iOS C# port of https://github.com/squimer/DatePickerDialog-iOS-Swift
Stars: ✭ 24 (+60%)
Mutual labels:  bindings

docs

Vulkan Bindings for Nim Nimble

Separated module from NimGL. In order to mantain small sized modules to facilitate development and reduce number of required modules.

Some developers do not require the entire bundle of APIs that NimGL offer, and so, prefere to only download the required modules.

Installation

Nimble download

You can install this package through the official package manager of Nim.

$ nimble install https://github.com/nimgl/vulkan.git

In order to respect already existing libraries in the package registry, and because NimGL already exists in there, this package is only able to be accesible by direct git url.

Nimble direct install

$ git clone --recursive -j8 https://github.com/nimgl/vulkan.git
$ cd vulkan
$ nimble install

NimGL module

$ nimble install nimgl

You can find more information in the main repo.

Development

It is currently being developed and tested on

  • Windows 10
  • MacOS Mojave
  • Linux Ubuntu 18.10

Contribute

I'm only one person and I use this library almost daily for school and personal projects. If you are missing some extension, procedures, bindings or anything related feel free to PR them or open an Issue with the specification and if you can some examples to have an idea on how to implement it. Thank you so much 🎉

This being a separate module behaves slightly diferently.

Please open all issues in the main repository. The PRs and new feature development will occur in each binding's repo.

Usage

import vulkan

# Create window (GLFW Recommended)

if vkInit():
  echo "Vulkan started successfully!"

var extensionCount: uint32
discard vkEnumerateInstanceExtensionProperties(nil, extensionCount.addr, nil)

echo $extensionCount & " extensions supported"

# You can load extensions
loadVK_EXT_host_query_reset()
if vkResetQueryPoolEXT == nil:
  echo "Failed to load VK_EXT_host_query_reset extension"

Check out the references and doc in order to understand Vulkan usage.

License

MIT License

NimGL is open source and is under the MIT License, we highly encourage every developer that uses it to make improvements and fork them here.

Contributors

Thank you to every contributor that has spent their time improving this library.

List of all contributors.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].