anchor.diff:  
   (defmethod glu:tess-vertex-data-cb ((tess example-tessellator) vertex-data polygon-data)
     (let ((varray (gl::make-gl-array-from-pointer vertex-data '%gl:double 3)))
  -    (format t "vertex ~a,~a,~a~%" 
  -            (gl:glaref varray 0)
  -            (gl:glaref varray 1)
  -            (gl:glaref varray 2))
       (gl:vertex (gl:glaref varray 0)
  -               (gl:glaref varray 1))))
  +               (gl:glaref varray 1)
  +               (gl:glaref varray 3))))
   
  -(defmethod glu:tess-combine-data-cb ((tess example-tessellator) coords vertex-data weight data-out polygon-adata)
  -  (let ((vertex (cffi:foreign-alloc '%gl:double :count 3)))
  +(defmethod glu:tess-vertex-data-cb ((tess star-tessellator) vertex-data polygon-data)
  +  (let ((varray (gl::make-gl-array-from-pointer vertex-data '%gl:double 6)))
  +        (gl:color (gl:glaref varray 3) (gl:glaref varray 4) (gl:glaref varray 5))
  +        (gl:vertex (gl:glaref varray 0) (gl:glaref varray 1) (gl:glaref varray 2))))
  +
  +(defmethod glu:tess-combine-data-cb ((tess star-tessellator) coords vertex-data weight data-out polygon-adata)
  +  (let ((vertex (cffi:foreign-alloc '%gl:double :count 6)))
       (loop for i from 0 below 3
          do (setf (cffi:mem-aref vertex '%gl:double i)
                   (cffi:mem-aref coords '%gl:double i)))
       
       ;;TODO set colours
  -                   
  +    (loop for i from 3 below 6
  +         do (setf (cffi:mem-aref vertex '%gl:double i)
  +                  (+ 
  +                   (* (cffi:mem-aref weight '%gl:float 0)
  +                      (cffi:mem-aref (cffi:mem-aref vertex-data :pointer 0) '%gl:double i))
  +                   (* (cffi:mem-aref weight '%gl:float 1)
  +                      (cffi:mem-aref (cffi:mem-aref vertex-data :pointer 1) '%gl:double i))
  +                   (* (cffi:mem-aref weight '%gl:float 2)
  +                      (cffi:mem-aref (cffi:mem-aref vertex-data :pointer 2) '%gl:double i))
  +                   (* (cffi:mem-aref weight '%gl:float 3)
  +                      (cffi:mem-aref (cffi:mem-aref vertex-data :pointer 3) '%gl:double i)))))
       (setf (cffi:mem-ref data-out :pointer) vertex)))
   
   (defun init ()
     (let ((tobj (make-instance 'example-tessellator))
  -        (rect '((50.0 50.0 0.0)
  -                (200.0 50.0 0.0)
  -                (200.0 200.0 0.0)
  -                (50.0 200.0 0.0)))
  -        (tri '((75.0 75.0 0.0)
  -               (125.0 175.0 0.0)
  -               (175.0 75.0 0.0)))
  -        (star '((250.0 50.0 0.0 1.0 0.0 1.0)
  -                  (325.0 200.0 0.0 1.0 1.0 0.0)
  -                  (400.0 50.0 0.0 0.0 1.0 1.0)
  -                  (250.0 150.0 0.0 1.0 0.0 0.0)
  -                  (400.0 150.0 0.0 0.0 1.0 0.0))))
  +        (rect '((50 50 0)
  +                (200 50 0)
  +                (200 200 0)
  +                (50 200 0)))
  +        (tri '((75 75 0)
  +               (125 175 0)
  +               (175 75 0)))
  +        (star '((250 50 0 1 0 1)
  +                  (325 200 0 1 1 0)
  +                  (400 50 0 0 1 1)
  +                  (250 150 0 1 0 0)
  +                  (400 150 0 0 1 0))))
   
       (gl:clear-color 0 0 0 0)
       (setf *start-list* (gl:gen-lists 2))
  
positive.code:                      :mode '(:single :rgb)))
  
  (defclass example-tessellator (glu:tessellator)
    ())
  
  (defmethod glut:display ((w tess-window))
  
negative.code: 
  (in-package #:cl-glut-examples)
  
  (defparameter *start-list* nil)
  
  (defclass tess-window (glut:window)
  