Skip to content

heysokam/wgpu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wgpu

wgpu bindings for Nim

How to

  1. Install requirements: rust, git, nim
  2. Install the bindings with nimble install https://github.com/heysokam/wgpu, or add them to your project's nimble file
  3. Use import wgpu to access the wgpu bindings.

I highly recommend to follow Learn WebGPU C++ for learning the API.
It's the best newbie-friendly tutorial out there for wgpu, and it doesn't require knowing TypeScript or Rust.
As a reference, it is easier to follow than the infamous Learn OpenGL, in my opinion.

Current state and todo

  • Wrapper for wgpu-native latest
  • Better rename system
    • camelCase for Function names
    • Redundant type prefixes in function names
  • Linux suppport
  • Windows support
  • Mac support
  • Web support (wasm with emscripten)
    (note: not planned. send a PR if you figure it out)

Build Info

# Requirements  (manually installed by the user)
nim   # For compiling the wrapper
rust  # For compiling wgpu-native
nglfw # For using the `wgpu/extras` features provided by the lib

Static Linking

This library is compiled automatically and linked statically when importing.

Dynamic linking will not be implemented.

Disclaimers and Other Info

About bindings generation

This wrapper is auto-generated with Futhark.
Most names are renamed with a Callback function for ergonomics.
See the @gen/cfg file for a detailed list for renaming rules.

About the buildsystem

The buildsystem of this lib depends on cargo and git.
They will be called automatically when you build your project.