OS4 DepotLogo by Alkaron 
(anonymous IP:,1826) 

   Bug tracker
   Locale browser


   o Audio (333)
   o Datatype (50)
   o Demo (198)
   o Development (571)
   o Document (21)
   o Driver (96)
   o Emulation (144)
   o Game (944)
   o Graphics (486)
   o Library (107)
   o Network (223)
   o Office (61)
   o Utility (874)
   o Video (65)

Total files: 4173

Full index file
Recent index file



Support the site

 Readme for:  Graphics » Viewer » shaderjoy.lha


Description: Display fragment shaders
Download: shaderjoy.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 4Mb
Version: 1.22
Date: 09 Jan 2022
Author: Juha Niemimaki
Submitter: Juha Niemimaki
Homepage: http://capehill.kapsi.fi
Requirements: OpenGL ES 2.0, Warp3D Nova
Category: graphics/viewer
Replaces: graphics/viewer/shaderjoy.lha
License: Freeware
Distribute: yes
Min OS Version: 4.1
FileID: 11909
Comments: 5
Snapshots: 1
Videos: 1
Downloads: 35  (Current version)
600  (Accumulated)
Votes: 23 (1/0)  (30 days/7 days)

Show comments Show snapshots Show videos Show content Show crashlogs Replace file 
# Shaderjoy 1.22

Shaderjoy allows you to display and create Shadertoy (https://www.shadertoy.com)
compatible fragment shaders. Fragment shaders (sometimes called pixel shaders)
are programs that are executed per fragment (pixel) on the GPU.

## Requirements

Ogles2.library 3.1.

Warp3D Nova 1.83.

## Usage

- Load/Save/Create new shader using RMB menu.
- Load/Save/Create new project using RMB menu.
- Reload shader using RMB menu or 'r' key.
- Drop shader file (.frag) into the window.
- Drop project file (.sjp) into the window.
- Load texture (or select buffer) channel using RMB menu.
- Add/Remove Common/Buffer A-D tabs.
- Select VSYNC method using RMB menu.
- Toggle fullscreen mode with LMB double-click, using RMB menu or 'f' key.
- Toggle FPS counter using RMB menu.
- Toggle verbose logging using RMB menu.
- Toggle special shader debug logging using RMB menu (requires ogles2.library
version 3).
- Toggle pause mode with SPACE key.
- Save a screenshot using RMB menu or 's' key.

## Vertical sync method

- WaitTOF: interrupt-based (*)
- WaitBOVP: busyloop (*)
- Disabled: do not limit frame rate

*) as explained in the Graphics.library Autodoc.

## Supported uniform variables

- vec3 iResolution: the window size in pixels (xy).
- vec4 iMouse: x/y have the mouse coordinate if LMB is pressed, z/w have the
original mouse coordinate when "dragging" started.
- float iTime: second.microsecond.
- float iTimeDelta
- int iFrame: current frame number, starting from 0.
- float iFrameRate
- sampler2D iChannel0...3: texture.
- vec3 iChannelResolution[4]: texture width (x) and height (y).
- vec4 iDate: year (x), month (y), day (z) and seconds (w).

## Tooltypes

- CHECKUNINITIALIZED: let ogles2.library find uninitialized variables in shader
- SHADERDEBUG: enable detailed shader debug log.
- VSYNC: enable vertical sync.
- SHOWFPS: display FPS counter in fullscreen mode.
- FULLSCREEN: start in fullscreen mode.
- EDITORVIEW: enable shader code editor in window mode.
- SCREENMODE: override system resolution in fullscreen mode.
- FONTNAME: editor font name.
- FONTSIZE: editor font size.
- EDITORNAME: external editor, for example NotePad.
- AUTORELOAD: monitor current shader source file and reload on change.
- WINDOWSIZE: window inner size.
- FLOATTEXTURE: FBOs use floating point texture, instead of unsigned byte.

## Multipass rendering

                                                |- iChannel0
                                                |- iChannel1
                    Common----> Buffer A/B/C/D -*- iChannel2
                       |                   |    |- iChannel3
                       |                   v
                       |     |- iChannel0 (buffer/texture)
                       v     |- iChannel1
      Window - Image shader -*- iChannel2
                             |- iChannel3

## Project files

Shaderjoy project files (.sjp) are text files that connect shaders and channel
inputs together. Project
file can be created by loading shader program(s) and textures and then saving
the project file.

If you end up modifying project files by hand, be careful: file parser is
case-sensitive and simple.

## ARexx commands

- QUIT: exit program. Example: rx "ADDRESS SHADERJOY.1 QUIT".

## Known issues

- Many Shadertoy shaders don't work properly:
  - Future driver update will improve situation.
  - Some shaders rely on undefined behaviour.
- Buffer A...D dynamic range is limited to 0...1.0, because floating point
textures are not used yet.
- Rendering order is from Buffer A to D (instead of the loading order).


- Audio support (sound shaders, audio playing, FFT...)
- Keyboard support
- Better Shadertoy compatibility

## Changes

- Add LOGLEVEL tooltype.
- Add ARexx port.
- Add twister and tunnel shaders.
- Check CTRL-C signal during event handling.
- Display VSYNC status on window info bar.
- Fix issue with FPS counter when starting in fullscreen mode.

Copyright © 2004-2022 by Björn Hagström All Rights Reserved