(defn
get-uniform-type
[{:keys [vertex fragment]} uni-name]
(or
(get-in vertex [:uniforms uni-name])
(get-in fragment [:uniforms uni-name])
(throw
(ex-info
"You must define the uniform in your vertex or fragment shader's :uniforms"
{:uniform-name uni-name}))))