anchor.diff:  (let ((max-draw-buffers -1))
     (defun get-gl-attachment-keyword (x)
       (unless (> max-draw-buffers 0)
  -      (setf max-draw-buffers (max-draw-buffers *gl-context*)))
  +      (when cepl.context:*gl-context*
  +	(setf max-draw-buffers (max-draw-buffers *gl-context*))))
       (case x
         (:c (color-attachment-enum 0))
         (:d #.(cffi:foreign-enum-value '%gl:enum :depth-attachment))
         (:s #.(cffi:foreign-enum-value '%gl:enum :stencil-attachment))
         (:ds #.(cffi:foreign-enum-value
  -              '%gl:enum :depth-stencil-attachment))
  +	      '%gl:enum :depth-stencil-attachment))
         (otherwise
          (if (<= x max-draw-buffers)
  -           (color-attachment-enum x)
  -           (error "Requested attachment ~s is outside the range of 0-~s supported by your current context"
  -                  x max-draw-buffers))))))
  +	   (color-attachment-enum x)
  +	   (if cepl.context:*gl-context*
  +	       (error "Requested attachment ~s is outside the range of 0-~s supported by your current context"
  +		      x max-draw-buffers)
  +	       (color-attachment-enum x)))))))
   
   (define-compiler-macro get-gl-attachment-keyword (&whole whole x)
  -  (case x
  -    (:c (color-attachment-enum 0))
  -    (:d #.(cffi:foreign-enum-value '%gl:enum :depth-attachment))
  -    (:s #.(cffi:foreign-enum-value '%gl:enum :stencil-attachment))
  -    (:ds #.(cffi:foreign-enum-value
  -            '%gl:enum :depth-stencil-attachment))
  -    (otherwise whole)))
  +  (if (numberp x)
  +      (color-attachment-enum x)
  +      (case x
  +	(:c (color-attachment-enum 0))
  +	(:d #.(cffi:foreign-enum-value '%gl:enum :depth-attachment))
  +	(:s #.(cffi:foreign-enum-value '%gl:enum :stencil-attachment))
  +	(:ds #.(cffi:foreign-enum-value
  +		'%gl:enum :depth-stencil-attachment))
  +	(otherwise whole))))
   
   (defun binding-shorthand (x)
     (when (symbolp x)
  
positive.code:               :image-format :gl-internal)))
      (let ((result
             (%update-fbo-state
              (%init-fbo
               (make-uninitialized-fbo)
               :id 0
               :is-default t
               :color-arrays
               (make-array (if double-buffering 2 1)
                           :element-type 'gpu-array-t :initial-contents
                           (cons (gen-array dimensions)
                                 (when double-buffering
                                   (list (gen-array dimensions)))))
               :depth-array (when depth (gen-array dimensions))))))
        (update-clear-mask result)
        (setf %default-framebuffer result
              %current-fbo result)
  
negative.code: ;;--------------------------------------------------------------
  
  (defun make-fbo (&rest fuzzy-attach-args)
  
    (let ((fbo-obj (pre-gl-init (make-uninitialized-fbo))))
      (if fuzzy-attach-args
  	(apply #'fbo-gen-attach fbo-obj fuzzy-attach-args)
  	(error "CEPL: FBOs must have at least one attachment"))
      (cepl.memory::if-context
       (make-fbo-now %pre%)
       fbo-obj
       (remove-if-not #'holds-gl-object-ref-p
  		    (cepl-utils:flatten fuzzy-attach-args)))))
  
  (defun make-fbo-now (fbo-obj)
    (post-gl-init fbo-obj)
    (loop :for a :across (%fbo-color-arrays fbo-obj)
       :for i :from 0 :do
       (when a (setf (attachment fbo-obj i) a)))
    (when (attachment fbo-obj :d)
      (setf (attachment fbo-obj :d) (attachment fbo-obj :d)))
    (%update-fbo-state fbo-obj)
    (check-framebuffer-status fbo-obj)
    fbo-obj)
  
  