Baggers
Baggers
This stuff is spread around and messy this wont scale as we add more an more checks from the spec. Come up with a nicer way of handling this
See https://github.com/cbaggers/varjo/blob/feature/remove-qualifiers-from-vars/protocode/qualifier-notes.lisp for details
``` ;;;; fragment shader ;; this: (let ((color (texture (image tex) uv))) (if (< (.x gl-frag-coord) 400) (bvec4 nil nil nil t) color)) ;; translates to: void main() { vec4...
``` (glsl-code (compile-frag ((a :int)) :450 nil (let ((a (if (= a 1) (return 1) (return 1 2)))) a))) ``` raises ``` invalid number of arguments: 4 [Condition of type...
this code ``` (glsl-code (translate (make-stage :geometry '((pos (:vec2 1)) (id (:int 1))) nil '(:450) '((declare (output-primitive :kind :triangle-strip :max-vertices 6)) (let* ((size 0.03) (hsize (* size 0.5))) (emit ()...
Would be nice in order to save people the task of reinventing this code themselves (or having to query at link time)
Then we can fix the ugly hack in CEPL too :)
Have proven useful to others.
This is a bummer as it makes the code *so* much nicer to read, however it does limit which implementations we can run on which is a bit of a...
Look into divergence rules, especially as applies to indexing from and array of textures. Given what we know in the compiler what can we detect? Would be nice to have...