66 lines
3.0 KiB
C
66 lines
3.0 KiB
C
#ifndef __al_included_allegro5_aintern_xfullscreen_h
|
|
#define __al_included_allegro5_aintern_xfullscreen_h
|
|
|
|
/* fullscreen and multi monitor stuff */
|
|
|
|
typedef struct _ALLEGRO_XGLX_MMON_INTERFACE _ALLEGRO_XGLX_MMON_INTERFACE;
|
|
|
|
struct _ALLEGRO_XGLX_MMON_INTERFACE {
|
|
int (*get_num_display_modes)(ALLEGRO_SYSTEM_XGLX *s, int adapter);
|
|
ALLEGRO_DISPLAY_MODE *(*get_display_mode)(ALLEGRO_SYSTEM_XGLX *s, int, int, ALLEGRO_DISPLAY_MODE*);
|
|
bool (*set_mode)(ALLEGRO_SYSTEM_XGLX *, ALLEGRO_DISPLAY_XGLX *, int, int, int, int);
|
|
void (*store_mode)(ALLEGRO_SYSTEM_XGLX *);
|
|
void (*restore_mode)(ALLEGRO_SYSTEM_XGLX *, int);
|
|
void (*get_display_offset)(ALLEGRO_SYSTEM_XGLX *, int, int *, int *);
|
|
int (*get_num_adapters)(ALLEGRO_SYSTEM_XGLX *);
|
|
bool (*get_monitor_info)(ALLEGRO_SYSTEM_XGLX *, int, ALLEGRO_MONITOR_INFO *);
|
|
int (*get_default_adapter)(ALLEGRO_SYSTEM_XGLX *);
|
|
int (*get_adapter)(ALLEGRO_SYSTEM_XGLX *, ALLEGRO_DISPLAY_XGLX *);
|
|
int (*get_xscreen)(ALLEGRO_SYSTEM_XGLX *, int);
|
|
void (*post_setup)(ALLEGRO_SYSTEM_XGLX *, ALLEGRO_DISPLAY_XGLX *);
|
|
void (*handle_xevent)(ALLEGRO_SYSTEM_XGLX *, ALLEGRO_DISPLAY_XGLX *, XEvent *e);
|
|
};
|
|
|
|
extern _ALLEGRO_XGLX_MMON_INTERFACE _al_xglx_mmon_interface;
|
|
|
|
int _al_xsys_mheadx_get_default_adapter(ALLEGRO_SYSTEM_XGLX *s);
|
|
int _al_xsys_mheadx_get_xscreen(ALLEGRO_SYSTEM_XGLX *s, int adapter);
|
|
void _al_xsys_get_active_window_center(ALLEGRO_SYSTEM_XGLX *s, int *x, int *y);
|
|
|
|
void _al_xsys_mmon_exit(ALLEGRO_SYSTEM_XGLX *s);
|
|
|
|
int _al_xglx_get_num_display_modes(ALLEGRO_SYSTEM_XGLX *s, int adapter);
|
|
ALLEGRO_DISPLAY_MODE *_al_xglx_get_display_mode(
|
|
ALLEGRO_SYSTEM_XGLX *s, int adapter, int index, ALLEGRO_DISPLAY_MODE *mode);
|
|
bool _al_xglx_fullscreen_set_mode(ALLEGRO_SYSTEM_XGLX *s, ALLEGRO_DISPLAY_XGLX *d, int w, int h,
|
|
int format, int refresh_rate);
|
|
void _al_xglx_store_video_mode(ALLEGRO_SYSTEM_XGLX *s);
|
|
void _al_xglx_restore_video_mode(ALLEGRO_SYSTEM_XGLX *s, int adapter);
|
|
void _al_xglx_fullscreen_to_display(ALLEGRO_SYSTEM_XGLX *s,
|
|
ALLEGRO_DISPLAY_XGLX *d);
|
|
void _al_xglx_set_fullscreen_window(ALLEGRO_DISPLAY *display, int value);
|
|
void _al_xglx_get_display_offset(ALLEGRO_SYSTEM_XGLX *s, int adapter, int *x, int *y);
|
|
|
|
int _al_xglx_fullscreen_select_mode(ALLEGRO_SYSTEM_XGLX *s, int adapter, int w, int h, int format, int refresh_rate);
|
|
|
|
bool _al_xglx_get_monitor_info(ALLEGRO_SYSTEM_XGLX *s, int adapter, ALLEGRO_MONITOR_INFO *info);
|
|
int _al_xglx_get_num_video_adapters(ALLEGRO_SYSTEM_XGLX *s);
|
|
|
|
int _al_xglx_get_default_adapter(ALLEGRO_SYSTEM_XGLX *s);
|
|
int _al_xglx_get_xscreen(ALLEGRO_SYSTEM_XGLX *s, int adapter);
|
|
|
|
void _al_xglx_set_above(ALLEGRO_DISPLAY *display, int value);
|
|
|
|
int _al_xglx_get_adapter(ALLEGRO_SYSTEM_XGLX *s, ALLEGRO_DISPLAY_XGLX *d, bool recalc);
|
|
|
|
void _al_xglx_handle_mmon_event(ALLEGRO_SYSTEM_XGLX *s, ALLEGRO_DISPLAY_XGLX *d, XEvent *e);
|
|
|
|
#ifdef ALLEGRO_XWINDOWS_WITH_XRANDR
|
|
void _al_xsys_xrandr_init(ALLEGRO_SYSTEM_XGLX *s);
|
|
void _al_xsys_xrandr_exit(ALLEGRO_SYSTEM_XGLX *s);
|
|
#endif /* ALLEGRO_XWINDOWS_WITH_XRANDR */
|
|
|
|
#endif
|
|
|
|
/* vim: set sts=3 sw=3 et: */
|