anchor.diff:     (pixels :initarg :pixels)
      (ffi-array)))
   
  -;; try to collect everything needed to draw arbitrary rectangles
  -(defclass rectangle-object ()
  -  ((positions :initarg :positions)
  -   (texture-coordinates :initform
  -			#(1.0 0.0   1.0 1.0   0.0 1.0   0.0 1.0   0.0 0.0   1.0 0.0))
  -   (image-data :initarg :image-data :type 'image-object)
  -   ;; vao
  -   (vao :initarg :vao)
  -   (vbo)
  -   (shader-dictionary) ;;defdict
  -   (shader-program) ;; :basic-projection
  -   ))
  +
  +(defvar *recs* nil)
  +
  +(defclass rectangle ()
  +  ((x1 :initarg :x1 :type vec2)
  +   (x2 :initarg :x2 :type vec2)
  +   (y1 :initarg :y1 :type vec2)
  +   (y2 :initarg :y2 :type vec2)))
  +
  +(defun make-rectangle (&optional
  +			 (position (vec2 0.0 0.0))
  +			 (width 1.0)
  +			 (height 1.0))
  +  (macrolet ((vec2+ (v1 v2)
  +	       `(vec2 (+ (aref ,v1 0) (aref ,v2 0))
  +		     (+ (aref ,v1 1) (aref ,v2 1)))))
  +    (make-instance 'rectangle
  +		   :x1 position
  +		   :x2 (vec2+ position (vec2 width 0.0))
  +		   :y1 (vec2+ position (vec2 0.0 height))
  +		   :y2 (vec2+ position (vec2 width height)))))
   
   
   (defvar *default-ffi-positions*
  
positive.code: 
  (defpackage :game-objects
    (:use :cl
  	;; oooooh, only the EXTERNAL symbols get inherited!!
  ;	:game
  	:kit.gl.shader))
  
  (in-package :game-objects)
  
  
negative.code: ;;     (gl:bind-vertex-array 0)
  ;;     (values vao vbo)))
  
  