anchor.diff:        (gl:vertex bx2 by2)
         (gl:vertex bx1 by2))))
   
  +(defun render-string (str font spacing)
  +  (gl:with-pushed-matrix
  +    (loop for i from 0 below (length str)
  +          for cur = (zpb-ttf:find-glyph (char str i) font)
  +          for prev = nil then cur
  +          do (when prev
  +               (gl:translate (- (zpb-ttf:kerning-offset prev cur font)
  +                                (zpb-ttf:left-side-bearing cur))
  +                             0 0))
  +               (render-glyph cur)
  +               (gl:translate (+ spacing (zpb-ttf:advance-width cur)) 0 0))))
  +
   (defun draw-string (str font size spacing)
     (gl:with-pushed-matrix
  -    (let* ((bbox (zpb-ttf:bounding-box font))
  -           ;(bx1 (aref bbox 0))
  -           ;(by1 (aref bbox 1))
  -           ;(bx2 (aref bbox 2))
  -           ;(by2 (aref bbox 3))
  -           (scaling (/ size (zpb-ttf:units/em font))))
  +    (let* ((scaling (/ size (zpb-ttf:units/em font))))
         (gl:scale scaling scaling 1)
         (render-string str font (* spacing scaling)))))
   
  
positive.code:   (gl:stencil-func :always 0 1)
    (gl:stencil-op :keep :invert :invert)
    (gl:color-mask nil nil nil nil)
    (fill-inner glyph)
    (gl:stencil-func :notequal 0 1)
    (gl:stencil-op :keep :keep :keep)
    (gl:color-mask t t t t)
  
negative.code: (in-package :proto)
  
  (defvar *font*)
  
  (defmacro vector-push-extend-to (vec &rest rest)
    `(loop for e in (list ,@rest)
           do (vector-push-extend e ,vec)))
  
  (defun separate-contour (contour)
    (let ((curve (make-array 6 :element-type 'fixnum :fill-pointer 0 :adjustable t))
  