Is this correct? added by C-Keen on Tue Nov 1 10:49:15 2011

(define-record sdl-event buffer)

(let ((maker make-sdl-event))
  (set! make-sdl-event
	(lambda ()
	  (let ((bv (blob->u8vector (make-blob sizeof-sdl-event))))
	    (u8vector-set! bv 0 SDL_NOEVENT)
	    (maker (u8vector->blob bv))))))

(define-record-printer (sdl-event s out)
  (for-each (lambda (x) (display x out))
	    (list "#<sdl-event "(sdl-event-type s)">")))

(define (-sdl-unbox-event e)
  (let ((p (##sys#make-pointer)))
    (##core#inline "C_pointer_to_block" p (sdl-event-buffer e))
    p))

(define-foreign-type SDL_Event (c-pointer "SDL_Event")
  -sdl-unbox-event)