blob: 1b1b8e2474e6e00d0a6f285036947a17cf905dbe [file] [log] [blame]
#ifndef _LV_STANDALONE_DISPLAY_H
#define _LV_STANDALONE_DISPLAY_H
#include <libvisual/libvisual.h>
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 */