;; left right bottom top near far
(bind-func fill_projection_matrix
(lambda (mat:float* l r b t n f)
(pfill! mat
(/ 2.0 (- r l)) 0.0 0.0 0.0
0.0 (/ (* 2.0 n) (- t b)) 0.0 0.0
(/ (+ r l) (- r l)) (/ (+ t b) (- t b)) (* -1.0 (/ (+ f n) (- f n))) -1.0
0.0 0.0 (* -1.0 (* 2.0 f n) (- f n)) 0.0)
void))