A GLSL shader development tool for the LÖVE game framework.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
assets
libs
src
states
templates
threads
.gitmodules
CHANGELOG.md
LICENSE
README.md
conf.lua
globals.lua
main.lua

README.md

shaderview

A shader development and viewing tool for the LÖVE game framework.

Features

  • Automatic file reloading - Your app/shaders/textures will automatically reload when changes are detected.
  • Robust error handling - Even when your app or shader crashes, Shaderview won't. Shaderview will gracefully recover when you fix the error.
  • Debug tools - View project info, performance data, and textures all inside the integrated debug GUI.

How to use

Shaderview creates and loads projects from a save directory, which can be found using love.filesystem.getSaveDirectory. In this document, the save directory will be referred to as save/.

When you create a project it is placed inside of save/projects/. For example, if you make a project called "my_shader" then the associated project folder will be save/projects/my_shader. The structure of a project folder looks like this:

  • project/
    • app/
      • main.lua
    • shaders/
    • textures/

App

The app/main.lua file is the core of your application, where you can send variables to shaders, create canvases, and set the active shader. It is much like a normal LÖVE main.lua file, except it defines functions in a module rather than in the global table. The normal LÖVE callbacks can be easily translated to this format. For example, love.keypressed becomes app:keypressed, love.update becomes app:update and so on. The arguments remain the same and are simply passed into your application code as they would be normally. When this file changes, it will be reloaded automatically.

Shaders

The shaders/ directory is where you place all of your shader files. Shaders inside of this directory will be loaded into a global table called shaders where the key is the name of the file (without the extension) and the value is the created Shader. For example, shaders/my_shader.frag becomes shaders.my_shader or shaders['my_shader']. Whenever you change a shader, it will be reloaded automatically.

Textures

The textures/ directory is where you place all of your textures. Textures in this directory will be loaded into a global table called textures where the key is the name of the file (without the extension) and the value is the created Image. For example, textures/my_texture.png becomes textures.my_texture or textures['my_texture']. Whenever you change a texture, it will be reloaded automatically.

Configuration

The default configuration file for Shaderview is save/config/default.lua and the user configuration file is save/config/user.lua. The user configuration file will overwrite any properties set in the default file. When either the default or user configuration is modified, it will be reloaded.