diff options
author | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2011-12-04 21:53:43 +0100 |
---|---|---|
committer | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2011-12-06 23:11:50 +0100 |
commit | b2a41e20be6c1831543e72987ce7d285655fc311 (patch) | |
tree | ccc6c6ba44ab1491191413ae3358bdba1007a780 | |
parent | bd8ba89cca217cc78df31a357f77220a618a9b9a (diff) | |
download | mpv-b2a41e20be6c1831543e72987ce7d285655fc311.tar.bz2 mpv-b2a41e20be6c1831543e72987ce7d285655fc311.tar.xz |
vo_gl: cocoa: point swapinterval to cocoa_common function
Currently there is no way to set the swap interval with a function
that has a signature compatible with other platforms' gl extensions.
Make a wrapper function around the gui toolkit method of setting the
swap interval property, and point gl->SwapInterval to it.
-rw-r--r-- | libvo/cocoa_common.h | 3 | ||||
-rw-r--r-- | libvo/cocoa_common.m | 6 | ||||
-rw-r--r-- | libvo/gl_common.c | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/libvo/cocoa_common.h b/libvo/cocoa_common.h index a69f61916c..4fbbb32dd9 100644 --- a/libvo/cocoa_common.h +++ b/libvo/cocoa_common.h @@ -16,4 +16,7 @@ void vo_cocoa_swap_buffers(void); int vo_cocoa_check_events(struct vo *vo); void vo_cocoa_fullscreen(struct vo *vo); +// returns an int to conform to the gl extensions from other platforms +int vo_cocoa_swap_interval(int enabled); + #endif /* MPLAYER_COCOA_COMMON_H */ diff --git a/libvo/cocoa_common.m b/libvo/cocoa_common.m index c509dbcf39..5658ecb7bf 100644 --- a/libvo/cocoa_common.m +++ b/libvo/cocoa_common.m @@ -262,6 +262,12 @@ void vo_cocoa_fullscreen(struct vo *vo) resize_window(vo); } +int vo_cocoa_swap_interval(int enabled) +{ + [s->glContext setValues:&enabled forParameter:NSOpenGLCPSwapInterval]; + return 0; +} + void create_menu() { NSMenu *menu; diff --git a/libvo/gl_common.c b/libvo/gl_common.c index d9814c6f6a..7cca800d40 100644 --- a/libvo/gl_common.c +++ b/libvo/gl_common.c @@ -1625,6 +1625,8 @@ static int setGlWindow_cocoa(MPGLContext *ctx) { vo_cocoa_change_attributes(ctx->vo); getFunctions(ctx->gl, (void *)getdladdr, NULL); + if (!ctx->gl->SwapInterval) + ctx->gl->SwapInterval = vo_cocoa_swap_interval; return SET_WINDOW_OK; } |