text: #ifndef			__DEMO_UPDATE_DRIVER_H__
  #define			__DEMO_UPDATE_DRIVER_H__
  
  #include <allegro.h>
  
  /*
     Structure that defines a screen update driver. Each actual driver
     consists of a number of functions that expose it to the user programmer
     and any number of internal static variables.
  */
  typedef struct DEMO_SCREEN_UPDATE_DRIVER {
     /* Creates all the necessary internal variables such as video
        pages, memory buffers, etc. Must return an error code as
        defined in defines.h */
     int (*create) (void);
  
     /* Destroys all internal variables. */
     void (*destroy) (void);
  
     /* Flips the page, blits the backbuffer to the screen, etc. Whatever
        it takes to put the backbuffer to the screen. */
     void (*draw) (void);
  
     /* Returns a pointer to the backbuffer the user programmer can
        safely draw to. */
     BITMAP *(*get_canvas) (void);
  } DEMO_SCREEN_UPDATE_DRIVER;
  
  
  #endif				/* __DEMO_UPDATE_DRIVER_H__ */
  