Skip to content

Latest commit

 

History

History
44 lines (38 loc) · 1.2 KB

README.md

File metadata and controls

44 lines (38 loc) · 1.2 KB

glslesPreprocessor

Preprocess webgl shader code before browser/drivergpu compilation:

  • lint

  • minimize

  • obfuscate

  • optimize

  • format

  • Tokens subAST API:

    • token: type, depth, scope
    • identifiers instances/declaration
    • variables usage range (reuse/prune)
  • error and warnings

    • invalid
    • vague "perfromance token to cycles"
    • uniform flow warning
    • unused uniform/varying/variable/function
  • prune

    • comment
    • unused
    • preprocessor branched out code
    • whitespace
  • format

    • guarantee consistent style
  • perf oriented

    • performance/allocation oriented
    • tokenisation and strip at same passe
    • tokens Actions in least pass possible
    • export to string and minify/stylify in one pass

TODO: - worker sample - faster - token based editor (Edit sub token array update from diff. (shader edit a 'view' of token tree)) - try to work on array/typedarray uint8 instead of js strings (immutable js string makes for a lot of allocations...)

Fork/Code/Inspiration From:

License

MIT, see LICENSE.md for further information.