             [gamma.api :as g]))
 
 
+
+
+(defn ast [inputs]
+  (apply g/block
+         (mapv
+           (fn [[k v]]
+             (g/set k v))
+           inputs)))
+
+
+
 (defn precision-defaults [p]
+  (println p)
   (let [x (map (fn [[k v]] (str "precision " (name v) " " (name k) ";\n")) p)]
     (if (empty? x)
       ""
       (apply str x))))
-
 
 (defn glsl [shader opts]
   (let [p (:precision opts)]

         (emit/emit (:ir shader) shader)
         {:width 80})))))


(defn ast [inputs]
  (apply g/block
         (mapv
           (fn [[k v]]
             (g/set k v))
           inputs)))


(defn shader [shader opts]

            (:inputs fs))))

(defn program
  ([x]
   (let [{:keys [vertex-shader fragment-shader precision]} x
         vs (shader vertex-shader precision)
         fs (shader fragment-shader precision)]
     {:tag             :program
      :vertex-shader   vs
      :fragment-shader fs
