summaryrefslogtreecommitdiffstats
path: root/libvo/w32_common.h
diff options
context:
space:
mode:
authorwm4 <wm4@mplayer2.org>2012-04-14 13:39:53 +0200
committerwm4 <wm4@mplayer2.org>2012-04-14 17:03:11 +0200
commit923f353d2ab9fa24d3a3989c23cec88499068b77 (patch)
tree3bdebdf5a426b7bcc50a4d6bb6efe2a7f9a7ffdb /libvo/w32_common.h
parent8c041127d1a3445e482472cb5cff8116c07dab25 (diff)
downloadmpv-923f353d2ab9fa24d3a3989c23cec88499068b77.tar.bz2
mpv-923f353d2ab9fa24d3a3989c23cec88499068b77.tar.xz
win32: move global variables into a struct & some refactoring
This reflects the changes done to x11_common in mplayer2 some years ago. It makes it possible to open multiple VOs at once. The removed defines are probably for ancient versions of MinGW with incomplete headers. Remove some minor code duplication.
Diffstat (limited to 'libvo/w32_common.h')
-rw-r--r--libvo/w32_common.h57
1 files changed, 43 insertions, 14 deletions
diff --git a/libvo/w32_common.h b/libvo/w32_common.h
index cb3bbf3504..1e4bd604a0 100644
--- a/libvo/w32_common.h
+++ b/libvo/w32_common.h
@@ -20,21 +20,50 @@
#define MPLAYER_W32_COMMON_H
#include <stdint.h>
+#include <stdbool.h>
#include <windows.h>
-extern HWND vo_w32_window;
-extern int vo_vm;
-
-int vo_w32_init(void);
-void vo_w32_uninit(void);
-void vo_w32_ontop(void);
-void vo_w32_border(void);
-void vo_w32_fullscreen(void);
-int vo_w32_check_events(void);
-int vo_w32_config(uint32_t, uint32_t, uint32_t);
-void destroyRenderingContext(void);
-void w32_update_xinerama_info(void);
-HDC vo_w32_get_dc(HWND wnd);
-void vo_w32_release_dc(HWND wnd, HDC dc);
+struct vo_w32_state {
+ HWND window;
+
+ // HDC used when rendering to a device instead of window
+ HDC dev_hdc;
+
+ bool vm;
+
+ int depthonscreen;
+
+ // last non-fullscreen extends (updated only on fullscreen or on initialization)
+ int prev_width;
+ int prev_height;
+ int prev_x;
+ int prev_y;
+
+ // whether the window position and size were intialized
+ bool window_bounds_initialized;
+
+ bool current_fs;
+
+ int window_x;
+ int window_y;
+
+ // video size
+ uint32_t o_dwidth;
+ uint32_t o_dheight;
+
+ int event_flags;
+ int mon_cnt;
+};
+
+int vo_w32_init(struct vo *vo);
+void vo_w32_uninit(struct vo *vo);
+void vo_w32_ontop(struct vo *vo);
+void vo_w32_border(struct vo *vo);
+void vo_w32_fullscreen(struct vo *vo);
+int vo_w32_check_events(struct vo *vo);
+int vo_w32_config(struct vo *vo, uint32_t, uint32_t, uint32_t);
+void w32_update_xinerama_info(struct vo *vo);
+HDC vo_w32_get_dc(struct vo *vo, HWND wnd);
+void vo_w32_release_dc(struct vo *vo, HWND wnd, HDC dc);
#endif /* MPLAYER_W32_COMMON_H */