No matching definitions.

glsl/codegen

src/glsl/codegen.tur

GLSL code generation from a ColoredSDF tree.

Since: Phase 3

defn

csdf->glsl

(csdf->glsl [csdf :int] :cstr)

generate a GLSL sceneSDF function from a ColoredSDF tree.

csdfColoredSDF handle

Heap-allocated GLSL source string, or "" on failure.

(let [src (csdf->glsl scene)] (println src) (csdf-glsl-free src))

Since: Phase 3

defn

csdf-glsl-free

(csdf-glsl-free [s :cstr] :void)

free a GLSL source string returned by csdf->glsl. Since: Phase 3

Internal definitions
sb-new-- allocate a fresh string builder. Since: Phase 3
sb-write-- append a C string to the builder. Since: Phase 3
sb-str-- return a pointer into the builder's buffer. Since: Phase 3
sb-free-- free the builder and its buffer. Since: Phase 3
ctr-new-- allocate an integer counter starting at 0. Since: Phase 3
ctr-next-- post-increment: returns current value then advances. Since: Phase 3
ctr-free-- free a counter. Since: Phase 3
glsl-f-- format a float as a GLSL literal (static buffer). Since: Phase 3
glsl-i-- format an int as a decimal string (static buffer). Since: Phase 3
pvar-name-- return "p" for idx 0, "p_N" otherwise (static buffer). Since: Phase 3
csdf--emit-sphere-- emit GLSL for a sphere leaf. Since: Phase 3
csdf--emit-box-- emit GLSL for a box leaf. Since: Phase 3
csdf--emit-cylinder-- emit GLSL for an infinite XY-plane cylinder. Since: Phase 3
csdf--emit-plane-- emit GLSL for an infinite plane. Since: Phase 3
csdf--emit-node-- recursively emit GLSL for a ColoredSDF subtree.
glsl--strdup-- heap-duplicate a C string. Since: Phase 3