filament-bindings

Crates.iofilament-bindings
lib.rsfilament-bindings
version0.2.2
sourcesrc
created_at2022-02-15 05:31:16.891577
updated_at2022-04-10 13:50:44.469201
descriptionThis package provides build scripts and prebuilt binaries for filament on Windows, macOS, Linux, and the unsafe binding interface automatically generated by rust-bindgen.
homepage
repositoryhttps://github.com/EYHN/rust-filament/tree/main/filament-bindings
max_upload_size
id532578
size17,855,381
EYHN (EYHN)

documentation

README

filament-bindings

This package provides a set of unsafe binding api, build scripts and prebuilt binaries for Google/filament on Windows, macOS, Linux.

Why unsafe

All api's of this package are marked as unsafe, because the c++ objects of filament do not use reference counting to track resource usage, this library has no way of knowing when to release objects, you have to release resources manually.

Prebuilt Binaries

Because filament builds are very slow and have build environment requirements. We provide prebuilt binaries for common platforms and features.

When a new version is released, github action automatically runs pre-build tasks, and all prebuilt binaries are saved in filament-binaries/releases.

The filament-binding build script will try to download the prebuilt binaries from github first, and skip the full source build.

We currently provide pre-built binary packages for Windows, Linux, macOS, and enable OpenGL, Vulkan backend for all platforms and Metal backend for macOS. For other platforms such as Android, iOS and WASM support is planned but not yet available.

Build requirement

  • cmake
  • clang
  • ninja
  • libglu1-mesa-dev
  • libxi-dev
  • libc++-dev
  • libc++abi-dev

Examples

triangle

Render a triangle and save the image to a ppm file

winit

Use filament with winit.

run cargo run --example winit

Commit count: 0

cargo fmt