anchor.diff:      (gl:scale (size-x rectangle) (size-y rectangle) 1)
       (destructuring-bind (r g b a) (color rectangle)
         (gl:color r g b (* a (alpha rectangle) (base-alpha rectangle)))
  -    (draw-quad))))
  +      (draw-quad))))
   
   (defmacro make-defdrawmethods (drawable-things)
  -    (let ((definitions (loop for item in drawable-things
  -                             collecting `(defdrawmethod ,item))))
  -      `(eval-when (:compile-toplevel :load-toplevel)
  -         ,@definitions)))
  +  (let ((definitions (loop for item in drawable-things
  +                        collecting `(defdrawmethod ,item))))
  +    `(eval-when (:compile-toplevel :load-toplevel)
  +       ,@definitions)))
   
   (make-defdrawmethods (weapon air-unit ground-unit explosion bullet laser-beam rocket cupes-polygon selection-indicator factory))
   
  
positive.code: (defun draw-all-entities ()
    (gl:load-identity)
    (dolist (entity *independent-entities*)
        (draw entity)))
  
  (defun draw-gui ()
    (gl:load-identity)
    (gl:use-program 0)
  
    ;(gl:blend-func :src-alpha :one-minus-src-alpha)
    (dolist (thing *gui-things*)
        (draw thing))
  
    ;(gl:blend-func :src-alpha :one)
    (when *selection-rectangle*
      (draw  *selection-rectangle*)))
  
  
negative.code:     (gl:push-matrix)
      (gl:color 1 1 1 (* (alpha text) (base-alpha text)))
      (loop for char across (text text)
         for index from 0 to (length (text text))
         do (let ((texture (aref *char-textures* (char-code char))))
              (if (char= char #\newline)
                  (progn
                    (gl:pop-matrix) ;get old state (beginning of line)
                    (gl:translate 0 -1 0) ;move one line down
                    (gl:push-matrix))  ;start again
                  (if (not (= texture 0))
                      (progn
                        (gl:bind-texture :texture-2d texture)
                        (draw-quad)
                        (when (= index (cursor-pos text))
                          (gl:bind-texture :texture-2d 0)
                          (gl:color 0.5 0.5 1 (+ 0.4 (* (sin (/ *gl-ticks* 10)) 0.1)))
                          (draw-quad)
                          (gl:color 1 1 1 1))
                        (gl:translate 1 0 0))))))
      (gl:pop-matrix)))
  
  (defdrawmethod cursor
  