anchor.diff:  
   (defmethod mousewheel-event ((window test-window) ts x y)
     (with-slots (rotation) window
  -    (incf *rotate-x* 0.2)
  -    (print (list x y))
  -    (render window))
  -  ;; (format t "Mousewheel-event issued ts:~a x:~x y:~y" ts x y)
  -  )
  +    (cond ((= y 1) (incf *zoom-z* 0.2))
  +	  ((= y -1) (decf *zoom-z* 0.2)))
  +;    (render window)
  +    ))
   
   (defmethod textinput-event ((window test-window) ts text) ;
     ;; (format t "You typed: ~S~%" text)
  
positive.code: (defvar *position-buffer-object*)
  
  
  
  (defmethod initialize-instance :after ((w test-window) &key &allow-other-keys)
    ;; GL setup can go here; your GL context is automatically active,
    ;; and this is done in the main thread.
  
    ;; if you (setf (idle-render window) t) it'll call RENDER as fast as
    ;; possible when not processing other events; suitable for games
    (setf (idle-render w) t)
    (gl:clear-color 0 0 1 1)
    (gl:clear :color-buffer-bit)
    (gl:viewport 0 0 800 600)
  
    (gl:enable :cull-face)
    (gl:cull-face :back)
    (gl:front-face :cw)
  
    ;; shader stuff
    (initialize-program)
  
  
negative.code:   (format t "~A button: ~A at ~A, ~A~%" state b x y))
  
  (defmethod mousemotion-event ((window test-window) ts mask x y xr yr)
    (flet ((left-mouse-button-clicked-p ()
  	   (= mask 1)))
      ;; rotate x, y axis
      (when (left-mouse-button-clicked-p)
        (incf *rotate-y* (/ xr 100.0))
        (incf *rotate-x* (/ yr 100.0)))))
  
  ;; (make-instance 'test-window)
  