anchor.diff:  (defvar new-pos (vec 0 0))
   (defvar cam-pos (vec 0 50))
   (defvar cam-size (vec 100 100))
  +(defvar circle (vec 50 30 10))
   (let ((iteration 0)
         (speed 1.0))
     (while (< iteration 4000)
       (let ((ts (timestamp)))
         (let ((lastpt (deref (ptr+ points (cast (- points-cnt 1) i64)))))
   	(add-to-list+ points points-cnt 
  -		      (+ lastpt player-dir))
  +		      (+ lastpt (* player-dir speed)))
   	(let ((turn (if (or (glfw:get-key win glfw:key-a)
   			    (glfw:get-key win glfw:key-left))
   			1.0
  
positive.code: 				(glfw:get-key win glfw:key-right))
  			    -1.0
  			    0.0))))
  	  (setf player-dir (vec2turn player-dir (* turn speed)))) 
  	(setf cam-pos (deref (ptr+ points (cast (- points-cnt 1) i64))))
  	(load-points))
        (setf speed (* 0.99 speed))
  
negative.code: 	     (setf (deref (ptr+ buf (+ 1 (* it 2))))
  		   (cast (member point y) f32))))
      (gl:buffer-data gl:array-buffer (cast (* points-cnt (size-of (type f32)) 2) u32)
  		    (cast buf (ptr void)) gl:stream-draw)
      (dealloc (cast buf (ptr void)))
      ))
  (load-points)
  	  
  (defvar vbo-circle (cast 0 u32))
  (gl:gen-buffers 1 (addrof vbo-circle))
  (let ((buf (cast (alloc (* 2 (size-of (type f32)) 16)) (ptr f32))))
    (gl:bind-buffer gl:array-buffer vbo-circle)
    (range it 0 8
       (setf (deref (ptr+ buf (+ (* it 2) 0))) (sin32 (cast it f32)))
       (setf (deref (ptr+ buf (+ (* it 2) 1))) (cos32 (cast it f32))))
    (gl:buffer-data gl:array-buffer (* (size-of (type f32)) 16) 
  		  (cast buf (ptr void)) gl:static-draw)
    (dealloc buf))
  
  (gl:enable-vertex-attrib-array 0)
  (gl:bind-buffer gl:array-buffer vbo)
  (gl:vertex-attrib-pointer 0 2 gl:float gl:false 0 null) 
  