#ifndef _LV_STANDALONE_DISPLAY_H #define _LV_STANDALONE_DISPLAY_H #include typedef struct _SADisplayDriver SADisplayDriver; typedef struct _SADisplay SADisplay; typedef int (*SADisplayDriverCreateFunc)(SADisplay *display, VisVideoDepth depth, VisVideoAttributeOptions *vidoptions, int width, int height, int resizable); typedef int (*SADisplayDriverCloseFunc)(SADisplay *display); typedef int (*SADisplayDriverLockFunc)(SADisplay *display); typedef int (*SADisplayDriverUnlockFunc)(SADisplay *display); typedef int (*SADisplayDriverFullScreenFunc)(SADisplay *display, int fullscreen, int autoscale); typedef int (*SADisplayDriverGetVideoFunc)(SADisplay *display, VisVideo *video); typedef int (*SADisplayDriverUpdateRectFunc)(SADisplay *display, VisRectangle *rect); typedef int (*SADisplayDriverDrainEventsFunc)(SADisplay *display, VisEventQueue *eventqueue); struct _SADisplayDriver { VisObject object; SADisplayDriverCreateFunc create; SADisplayDriverCloseFunc close; SADisplayDriverLockFunc lock; SADisplayDriverUnlockFunc unlock; SADisplayDriverFullScreenFunc fullscreen; SADisplayDriverGetVideoFunc getvideo; SADisplayDriverUpdateRectFunc updaterect; SADisplayDriverDrainEventsFunc drainevents; }; struct _SADisplay { VisObject object; SADisplayDriver *driver; VisVideo *screen; VisObject *native; int frames_drawn; VisTimer timer; }; /* prototypes */ SADisplay *display_new (SADisplayDriver *driver); int display_create (SADisplay *display, VisVideoDepth depth, VisVideoAttributeOptions *vidoptions, int width, int height, int resizable); int display_close (SADisplay *display); VisVideo *display_get_video (SADisplay *display); int display_lock (SADisplay *display); int display_unlock (SADisplay *display); int display_update_all (SADisplay *display); int display_update_rectangle (SADisplay *display, VisRectangle *rect); int display_set_fullscreen (SADisplay *display, int fullscreen, int autoscale); int display_drain_events (SADisplay *display, VisEventQueue *eventqueue); int display_fps_limit (SADisplay *display, int fps); int display_fps_total (SADisplay *display); float display_fps_average (SADisplay *display); #endif /* _LV_STANDALONE_DISPLAY_H */