chicken-users
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]