anchor.diff:  
   (in-package #:cl-glut-examples)
   
  -;;;GLuint startList;
   (defparameter *start-list* nil)
   
   (defclass tess-window (glut:window)
  
positive.code: 
  (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))))
  
  (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)))
      (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
                     
      (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))))
  
      (gl:clear-color 0 0 0 0)
      (setf *start-list* (gl:gen-lists 2))
  
negative.code:                      :mode '(:single :rgb)))
  
  (defclass example-tessellator (glu:tessellator)
    ())
  
  (defclass star-tessellator (glu:tessellator)
    ())
  
  (defmethod glut:display ((w tess-window))
  