From b2a41e20be6c1831543e72987ce7d285655fc311 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sun, 4 Dec 2011 21:53:43 +0100 Subject: 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. --- libvo/cocoa_common.h | 3 +++ libvo/cocoa_common.m | 6 ++++++ libvo/gl_common.c | 2 ++ 3 files changed, 11 insertions(+) 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; } -- cgit v1.2.3