edeetee / ffgl-rs

FFGL for rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FFGL in Rust

FFGL Binding for rust. Resolume + macos + glium + rust

Screenshot

Support

  • Currently Macos only
    • Wouldn't require too much to get working on windows, just need to get the build script working
  • FFGL 2 (resolume)

Functionality

  • Logging inside resolume
  • Handy scripts to build and run inside resolume
  • Example ISF plugin
    • Give an input ISF file and output an FFGL plugin
    • Quicker than using Wire for basic ISF shaders
  • Buildtime error for invalid ISF code

Usage

Currently only tested on macos.

ISF Example

The following command will take an ISF file and output an FFGL plugin. The plugin will be copied to the resolume plugin folder.

example_isf/isf_to_resolume.sh <isf_file>

Commands

Deploy

The following script will turn the dylib into a macos bundle and copy it to the resolume plugin folder. example_isf/deploy_bundle_to_resolume.sh

Run

./run_resolume.sh

Change log level

I have integrated tracing into the plugin. To change the log level you can set the RUST_LOG environment variable. For example to set the log level to trace you can run

RUST_LOG=trace ./run_resolume.sh

Extending

ffgl-core

You can create your own plugin from scratch by either using the SimpleFFGLInstance trait, or implement both the FFGLHandler and FFGLInstance traits.

You must call the ffgl_handler!() macro to associate your plugin with the correct entry points.

ffgl-glium

Use this to create a glium instance while inside an ffgl plugin

ffgl-isf

Use this to create an isf plugin. Needs more work to be modular.

Future work

  • Get working on Windows
  • Get working on FFGL1 (VDMX)
  • Embed any linked photos into the dylib along with the ISf source
  • Handle multiple passes ✔️
  • Label inputs
  • String inputs

Aims

I want a simple wrapper to make plugings for VJ programs such as resolume and present the user a basic GL context that can be used however you want for fun &advanced FX/Sources. This could be a good starting point for other connections (Connect to a touchdesigner instance that can automatically pause and swap between COMPs)

About

FFGL for rust

License:Other


Languages

Language:Rust 86.0%Language:GLSL 11.8%Language:Shell 2.0%Language:C 0.1%