mirror of
https://github.com/mpv-player/mpv
synced 2024-12-18 21:06:00 +00:00
cocoa: simplify the config code and run it on the main thread
This could be dangerous because we initialize the window asynchronously and return immediately from config, but since the OpenGL context is already created, this seems to work correctly and doesn't cause weird deadlock cases.
This commit is contained in:
parent
c5ebaca31e
commit
0ec14ec597
@ -366,9 +366,7 @@ void vo_cocoa_release_nsgl_ctx(struct vo *vo)
|
|||||||
int vo_cocoa_config_window(struct vo *vo, uint32_t flags, void *gl_ctx)
|
int vo_cocoa_config_window(struct vo *vo, uint32_t flags, void *gl_ctx)
|
||||||
{
|
{
|
||||||
struct vo_cocoa_state *s = vo->cocoa;
|
struct vo_cocoa_state *s = vo->cocoa;
|
||||||
__block int ctxok = 0;
|
with_cocoa_lock_on_main_thread(vo, ^{
|
||||||
|
|
||||||
with_cocoa_lock(vo, ^{
|
|
||||||
struct mp_rect screenrc;
|
struct mp_rect screenrc;
|
||||||
vo_cocoa_update_screen_info(vo, &screenrc);
|
vo_cocoa_update_screen_info(vo, &screenrc);
|
||||||
|
|
||||||
@ -394,12 +392,6 @@ int vo_cocoa_config_window(struct vo *vo, uint32_t flags, void *gl_ctx)
|
|||||||
cocoa_add_fs_screen_profile_observer(vo);
|
cocoa_add_fs_screen_profile_observer(vo);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (ctxok < 0)
|
|
||||||
return ctxok;
|
|
||||||
|
|
||||||
[vo->cocoa->gl_ctx makeCurrentContext];
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user