anchor.diff:    ;; associate the sampler object with the texture object and sampler uniform via the
     ;; "texture image unit", here, called *tex-unit*
     (%gl:bind-sampler *tex-unit* *sampler*)
  -  
  +
     ;(%gl:draw-elements :triangles (* 36 2) :unsigned-short 0)
     (%gl:draw-arrays :triangles 0 (* 2 36))
   
  
positive.code: 		     ;; the suffix of the format represent the data type:
  		     ;; here: f = float
  		     ;; no suffix defaults to the most commonly used: unsigned normalized integers
  		     :r8 
  		     16 ;; width = 1 means one component (not width 0!)
  		     16 ;; height, we provide the data with a 1d-array, this is where opengl
  		     ;; descides how to access it via pointer arithmetic to get at the proper values
  		     ;; i.e. how many rows in a column is decided here
  
  		     0 ; border: old no longer supported feature
  		     
  		     ;; we are uploading a single "red" component to the texture,
  		     ;; components of _texels_ are called after colors. Remember that our
  		     ;; texel is going to be represented as a 4d-vector, and a vectors
  
negative.code: (defgeneric uniform (type key value)
    (:method ((type (eql :vec)) key value)
      (uniformfv *programs-dict* key value))
  
    (:method ((type (eql :vec)) key value)
      (uniformfv *programs-dict* key value))
  
    (:method ((type (eql :mat)) key value)
      ;; nice, transpose is NIL by default!
      (uniform-matrix *programs-dict* key 4 value NIL))
  
    (:method ((type (eql :int)) key value)
      (uniformi *programs-dict* key value)))
  
  