GLSL + Zig + OSC
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Norwin 6d22cfb8c7 update to zig 0.10.0-dev.3555+7e07f3d4f 2 years ago
shaders provide iTime, iResolution by default 4 years ago
src update to zig 0.10.0-dev.3555+7e07f3d4f 2 years ago
.gitignore update to zig 0.9.1 2 years ago
README.md update to zig 0.10.0-dev.3555+7e07f3d4f 2 years ago
build.zig update for zig 0.7.1 2 years ago
config.yaml better config 4 years ago

README.md

zig-glsl-view

Renders a hot-reloaded fragment shader to one or more output windows.

All shader uniform values are writable via OSC at /param/<uniform name>/set

  • build and run via zig build run
  • install to ~/bin/glsl-osc via zig build --prefix ~

configuration

configuration is read from config.yaml in the current working directory

  • fragment (str): path to GLSL fragment shader.
  • width (int): horizontal rendering resolution. defaults to 1920.
  • height (int): vertical rendering resolution. defaults to 1080.
  • outputs: list of outputs. defaults to one 800x600 window. each output is a dictionary with the following keys:
    • type (str): currently always window.
    • width (int): window width. defaults to 800.
    • height (int): window height. defaults to 600.
    • fullscreen (bool): defaults to false.
    • monitor (str): screen name to use for fullscreen. defaults to secondary screen.
    • transparent (bool): transparent instead of black frame buffer background. defaults to false.
  • osc: either a 'liblo URL' or dictionary with the following keys:
    • protocol (str): udp, tcp or unix. defaults to udp.
    • port (int): port to bind to. defaults to 9000.

OSC / libio URLs

Unfortunately undocumented by libio. The following formats are valid:

  • osc.udp://localhost:1234
  • osc.udp://224.0.1.9:1234 (multicast IP)
  • osc.tcp://:1234
  • osc.unix://localhost/tmp/mysocket

building / dependencies

Build successfully works with:

zig 0.9.1 and 0.10.0-dev.3555+7e07f3d4
glfw-x11 3.3.8-1
libepoxy 1.5.10-1
libyaml 0.2.5-1
liblo 1:0.31-2