Skip to content
Shadertoy viewer/editor
C GLSL Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
shots
src
Makefile
README.md

README.md

Shade it! - Shadertoy viewer/editor

Start with shader hash to autodownload json and assets
./shade_it 4dKfDV
or Drag and Drop from Shadertoy.com or Drag and Drop json from assets/glsl/st/
Stores json and screenshots in assets folder.

Middle mouse button to switch shader.
Press n to create new shader, will open in Editor
If file is changed and saved it should autocompile, press c to do that manually.
Adjust your editor before compiling:
#define EDITOR "/usr/bin/kate"
P to toggle rendering/pause.
S to override screenshot.
ESC to quit.

Screenshots:
Screenshot

Dependencies:
SDL2/SDL2 Image/glew/curl/jansson/fontstash

Get in touch on SDL-Discourse

More useful links:
SDL2 | SDL-Discourse | SDL2-Example Code | N. Nopper-Code | McKesson-Book | Íñigo Quílez | shadertoy

Building/Development-Details:
SDL2 Image is very easy to replace, like with Stb_image.

For a cross-platform build:
I don't really aim for a multi-platform build, but I am not against that either.
Due the lack of time/money (development ressources) I don't do that. Feel free to commit/fork or raise an issue.

Since inotify and epoll are used for the autocompile feature, you either need to get rid of the feature or look for a proper substitution.
I think libcurl and jansson are pretty much portable, some POSIX-features are used and I call system with chmod to set attributes, which isn't neccesary under most circumstances.

Roadmap:
At the moment I work on FFT to make the fragment shaders audio responsive.

WebGL 2.0 / OpenGL ES 3.0 has tons of new features and the shadertoy-team has done a lot of work, I am unsure if I can keep up with all the features in the future, but I think this code isn't the worst boilerplate.

A detailed ToDo-List will be submitted.

You can’t perform that action at this time.