All Projects → m0ppers → nuklear-glfw-vulkan

m0ppers / nuklear-glfw-vulkan

Licence: Unlicense license
A nuklear adapter that does Vulkan rendering

Programming Languages

c
50402 projects - #5 most used programming language
HTML
75241 projects
objective c
16641 projects - #2 most used programming language
C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to nuklear-glfw-vulkan

glfw-d
D translation of GLFW, a multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
Stars: ✭ 14 (-73.08%)
Mutual labels:  vulkan, glfw
Silk.net
The high-speed OpenAL, OpenGL, Vulkan, and GLFW bindings library your mother warned you about.
Stars: ✭ 534 (+926.92%)
Mutual labels:  vulkan, glfw
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 (+6707.69%)
Mutual labels:  vulkan, glfw
scop vulkan
A 3D model viewer written C++20 and Vulkan
Stars: ✭ 133 (+155.77%)
Mutual labels:  vulkan, glfw
GLFW3.NET
Automatic generated bindings of GLFW3 for .NET
Stars: ✭ 28 (-46.15%)
Mutual labels:  vulkan, glfw
glfwJS
The N-API bindings for GLFW
Stars: ✭ 49 (-5.77%)
Mutual labels:  vulkan, glfw
Oreon Engine
OpenGL/Vulkan Java 3D Engine
Stars: ✭ 431 (+728.85%)
Mutual labels:  vulkan, glfw
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+7069.23%)
Mutual labels:  vulkan, glfw
Flextgl
OpenGL and Vulkan header and loader generator.
Stars: ✭ 180 (+246.15%)
Mutual labels:  vulkan, glfw
Demos
Vulkan API crossplatform demos in Go
Stars: ✭ 103 (+98.08%)
Mutual labels:  vulkan, glfw
luajit-glfw
GLFW bindings for LuaJIT
Stars: ✭ 51 (-1.92%)
Mutual labels:  vulkan, glfw
Berserk
[WIP] High performance 3D graphics game engine
Stars: ✭ 31 (-40.38%)
Mutual labels:  vulkan, glfw
virtualGizmo3D
Virtual GIZMO - 3D object manipulator / orientator, via mouse, with pan and dolly/zoom features
Stars: ✭ 36 (-30.77%)
Mutual labels:  vulkan, glfw
zig-vulkan-triangle
simple triangle displayed using vulkan, glfw, and zig
Stars: ✭ 55 (+5.77%)
Mutual labels:  vulkan, glfw
Bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Stars: ✭ 10,252 (+19615.38%)
Mutual labels:  vulkan, glfw
Nimgl
NimGL is a Nim library that offers bindings for popular libraries used in computer graphics
Stars: ✭ 218 (+319.23%)
Mutual labels:  vulkan, glfw
game overlay sdk
Library to write messages on top of game window
Stars: ✭ 57 (+9.62%)
Mutual labels:  vulkan, overlay
how-to-optimize-gemm
row-major matmul optimization
Stars: ✭ 288 (+453.85%)
Mutual labels:  vulkan
Octavo
Verilog FPGA Parts Library. Old Octavo soft-CPU project.
Stars: ✭ 66 (+26.92%)
Mutual labels:  overlay
vk-bootstrap
Vulkan Bootstrapping Iibrary
Stars: ✭ 436 (+738.46%)
Mutual labels:  vulkan

nuklear-glfw-vulkan

An adapter to make nuklear play with vulkan and glfw

screenshot

Usage

Download the latest release from the Releases tab. Then check overlay.h/overlay.c to get an idea how to use it.

Build requirements

The implementation itself has been done using C99 so far. It is using designated initializers which are not supported by C++ compilers. This is subject to change in a later version.

As a result the example overlay only compiles using a C99 compiler.

The background however is a slighly modified version of the excellent https://www.vulkan-tutorial.com and will require a C++ compiler.

The Vulkan SDK and a Vulkan capable graphics card are obviously also required.

xxd should be installed on linux out of the box. For windows it was part of the git distribution.

Compatibility

  • works on Windows and Linux
  • Android support in progress (input events a bit off)

Building the project

  • Clone repo
  • Configure the project with CMake
  • build

Generating release header

Windows

Assuming your build directory is build

cmake --build .\build\ --config Debug --target release

Linux

Assuming your build directory is build (untested as of now)

(cd build && make release)

Afterwards there should be a nuklear-glfw-vulkan.h file in your build/release directory containing a standalone version which has all the shaders inlined.

Please ignore any compile warnings (but report errors!). There is a simple compile check in place which just checks that replacing the shaders worked.

TODOs

  • Proper buildchain that outputs a single header only file (building blocks all there)
  • Clarify where external requirements should be placed (glfw, nuklear)
  • Fix wacky input
  • Use correct blending (currently somewhat off)
  • implement resize
  • check performance
  • cross platform tests
  • proper example (incl. interaction)
  • dynamic scissor
  • implement test to check if released header works
  • implement way to specify attachments (the code right now assumes that there is only one attachment and that this is the color attachment)

Acknowledgements

  • Alexander Overvoorde for his excellent tutorial
  • Sascha Willems for his vulkan examples

You will find that I used large portions of the code from their repos.

Also the creators of nuklear and glfw obviously :)

The adapter is based on the glfw_opengl3 variant of nuklear.

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].