diff options
author | wm4 <wm4@nowhere> | 2015-05-12 22:31:03 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-05-12 22:31:03 +0200 |
commit | 7735b297329ed730f410b0b3cb6503eeea04ee90 (patch) | |
tree | da08f366b88b5ebeea671c662d0be7eb1e09fe7a /video/out/cocoa_common.h | |
parent | 434343d634177f4ca1d245d22107b905fbec0b74 (diff) | |
download | mpv-7735b297329ed730f410b0b3cb6503eeea04ee90.tar.bz2 mpv-7735b297329ed730f410b0b3cb6503eeea04ee90.tar.xz |
cocoa: handle live-resizing differently
Instead of requiring a complicated mechanism to share the entire OpenGL
and renderer state between VO and Cocoa thread just to do the redrawing
during live-resize on the Cocoa thread, let the Cocoa thread wait on the
VO thread. This wil allow some major simplifications and cleanups in the
future.
One problem with this is that it can enter a deadlock whenever the VO
tries to sync with the Cocoa thread. To deal with this, the Cocoa thread
waits with a timeout. This can probably be improved later, though in
general this situation can always happen, unless the Cocoa thread waits
in a reentrant way.
Some other details aren't completely clean either. For example,
pending_events should be accessed atomically. This will also be fixed
later.
Diffstat (limited to 'video/out/cocoa_common.h')
-rw-r--r-- | video/out/cocoa_common.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/video/out/cocoa_common.h b/video/out/cocoa_common.h index 0912fbb5c8..9adae029c7 100644 --- a/video/out/cocoa_common.h +++ b/video/out/cocoa_common.h @@ -30,14 +30,10 @@ void vo_cocoa_uninit(struct vo *vo); int vo_cocoa_config_window(struct vo *vo, uint32_t flags); void vo_cocoa_set_current_context(struct vo *vo, bool current); -bool vo_cocoa_start_frame(struct vo *vo); void vo_cocoa_swap_buffers(struct vo *vo); int vo_cocoa_check_events(struct vo *vo); int vo_cocoa_control(struct vo *vo, int *events, int request, void *arg); -void vo_cocoa_register_resize_callback(struct vo *vo, - void (*cb)(struct vo *vo, int w, int h)); - void vo_cocoa_create_nsgl_ctx(struct vo *vo, void *ctx); void vo_cocoa_release_nsgl_ctx(struct vo *vo); |