anchor.diff:  ;; #<STRUCTURE-CLASS TEST>
   ;;
   ;; UPDATE: well it useful until we need to dispatch the accessor function over one more
  -;; struct that uses the same accessor name "the-program" to get at the program, like in
  -;; this tutorial. Hence we will implement program-data and unlitprogdata as classes so
  -;; (the-program <obj>) dispatches appropriately depending on the object class passed.
  -;; (defstruct (program-data (:conc-name NIL)) ; don't hyphenate struct readers
  -;;   the-program
  +;; struct that uses the same accessor name e.g. "the-program" to get at the program data,
  +;; like in this tutorial. Hence we will implement program-data and unlitprogdata as
  +;; classes so (the-program <obj>) dispatches appropriately depending on the object class
  +;; passed.  (defstruct (program-data (:conc-name NIL)) ; don't hyphenate struct readers
  +;; the-program
   
   ;;   light-pos-unif
   ;;   light-intensity-unif
  
positive.code: (defun make-program-data ()
    (make-instance 'program-data))
  
  
  (defconstant +projection-block-index+ 2)
  
  (defun load-lit-program (str-vertex-shader str-fragment-shader)
    "Create program-data object from shader strings. Hardcoded uniform reference."
  
negative.code:   (setf *white-diffuse-color*
  	(load-lit-program "PosVertexLighting_PN.vert" "ColorPassthrough.frag"))
    (setf *vertex-diffuse-color*
  	(load-lit-program "PosVertexLighting_PCN.vert" "ColorPassthrough.frag"))
    (setf *unlit*
  	(load-unlit-program "PosTransform.vert" "UniformColor.frag")))
  
  
  (defvar *plane-mesh*)
  