[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] [ANN] New egg: glls
From: |
Alex Charlton |
Subject: |
[Chicken-users] [ANN] New egg: glls |
Date: |
Wed, 14 May 2014 16:41:27 -0400 |
User-agent: |
mu4e 0.9.9.5; emacs 24.4.50.1 |
I'm pleased to announce glls: a (pseudo-)Scheme to GLSL (OpenGL Shader
Language) compiler. Embedding GLSL shaders into your programs is now as easy as
writing S-expressions in a Scheme file. The compilation from a glls definition
to a GLSL shader happens at compile-time, so using glls has no run-time cost
(aside from having it loaded into memory). Using glls gives your Scheme program
knowledge about your shaders, so shader and program compilation as well as
attribute and uniform location retrieval is provided automatically.
If you're familiar with Varjo (a Common Lisp project), glls performs a similar
task but with a more limited scope. While Varjo performs type-checking to
validate its shaders, glls is a very literal compiler: you get what you write –
even if you write something wrong. Errors at the GLSL level are therefore
caught during GLSL compilation rather than during glls->GLSL compilation.
If I may be so bold: The best has yet to come for glls. While defining your
shaders in Scheme is convenient, the true power of this comes from taking
advantage of what your Scheme program then knows about the shaders. Future work
on glls will see automatic compilation of rendering functions for each
pipeline, as well as tools for dynamic re-loading of pipelines for all your
REPL-based shader hacking sessions.
If you’re interested, check out the source:
https://github.com/AlexCharlton/glls
And the docs:
https://wiki.call-cc.org/eggref/4/glls
And if someone could add this to the egg list, I would be most appreciative.
https://raw.githubusercontent.com/AlexCharlton/glls/master/glls.release-info
Thanks!
--
Alex
P.S. I seem to have broken the wiki. The edit and history actions for the glls
wiki page are returning 500 errors :S
- [Chicken-users] [ANN] New egg: glls,
Alex Charlton <=