Decouple shaders from source code#38
Open
00c1 wants to merge 3 commits intotsoding:masterfrom
00c1:decouple-shaders
Open
Decouple shaders from source code#3800c1 wants to merge 3 commits intotsoding:masterfrom 00c1:decouple-shaders
00c1 wants to merge 3 commits intotsoding:masterfrom
00c1:decouple-shaders
Conversation
Member
|
I do not particularly understand what exactly is the problem we are solving here, sorry. |
Author
|
@rexim The filter shaders are currently all defined in the same file, inline as strings. I think it would be much more easier and convenient to add new filter effects and overall maintain this project if the shaders were defined separately as standalone files. Some of the problems with inline definition (that this PR solves) are:
As much as I would love to avoid requesting each shader over the network this is the easiest way to achieve this without adding a build step and extra complexity. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR moves inline shader source code into separate files located in the
glsldirectory.Filters now specify their vertex and fragment shaders with a relative URL instead:
The shader sources are now fetched from network and are cached by the browser like any other resource. Usual caching rules apply and clients should have their caches invalidated when the Github Pages cache times out.
The render button is disabled while any shader is being loaded to prevent half of the gif being rendered with one shader and half with another if the shader is updated while gif is still being rendered.
Here's a demonstration of loading shaders with a very slow network connection. Note that switching to a cached shader is instant and does not show the placeholder:
demo.mp4