anchor.diff:  uniform vec2 cam_size;
   uniform vec2 dir;
   void main(){
  -  vec2 v2 = vec(-dir.y, dir.x);
  -  vec2 v = dir * vertex_position + v2 * vertex_position;
  +  vec2 d = dir;
  +  vec2 v2 = vec2(-d.y, d.x);
  +  vec2 v = vec2(d.x * vertex_position.x + v2.x * vertex_position.y,
  +                d.y * vertex_position.x + v2.y * vertex_position.y);
  +
     gl_Position = vec4((v * size + offset - cam) / cam_size * 2.0,0.0,1.0);
   }
   ")
  
positive.code:      (let ((buf (+ leaves it)))
         (setf (member (deref buf) z) 
  	     (min (+ (member (deref buf) z) 0.05) 1.0))))
      (incr time-since-last-leaf 0.1)
      (when (> time-since-last-leaf 10.0)
        (add-to-list+ leaves leaf-cnt (vec (member pos x) (member pos y) 0.0))
        (add-to-list+ leaf-dir leaf-dir-cnt dir)
        (setf time-since-last-leaf 0))))
  
  (defun pt-dist(f64 (a vec2) (b vec2))
  
negative.code: 		    (setf turn (unjitter-axis (- 0.0 (cast (deref axes) f64))))
  		    (scroll-cb win 0.0 (unjitter-axis (cast (deref (+ axes 4)) f64)))
  		    )))
  	    (setf player-dir (vec2turn player-dir (* turn 0.1)))
  
  	    )
  	  (setf cam-pos (deref (+ points (cast (- points-cnt 1) i64))))
  	  (let ((v (vec2-normalize (vec2:rot90 player-dir))))
  	    (update-leaves cam-pos v)
  	    )
  	  (load-points))
  	
  	
  