anchor.diff:       for bundle in (bundles renderer)
        for geom = (geometry bundle)
        do (progn
  +          (bind-state renderer (gl-state bundle))
             (gl:bind-vertex-array (vao geom))
             (if (indices geom)
                 (let ((index-offset (allocation-offset
  
positive.code: 
  (defgeneric allocate-buffer-storage (renderer size target usage))
  
  (defclass renderer ()
    ((buffers :accessor buffers :initform nil)
     (bundles :accessor bundles :initform nil)
     (new-bundles :accessor new-bundles :initform nil)))
  
  (defmethod allocate-buffer-storage ((renderer renderer) size target usage)
    (loop
       for buffer in (buffers renderer)
  
negative.code:                      :initform nil)
     (log :reader render-error-log :initarg :error-log :initform nil))
    (:report report-render-error))
  
  (defclass renderer ()
    ((buffers :accessor buffers :initform nil)
     (bundles :accessor bundles :initform nil)
     (new-bundles :accessor new-bundles :initform nil)))
  
  ;;; A simple reference counting protocol for objects that should do some
  ;;; cleanup e.g., release OpenGL resources, when they are no longer used.
  