summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2011-12-04 21:53:43 +0100
committerStefano Pigozzi <stefano.pigozzi@gmail.com>2011-12-06 23:11:50 +0100
commitb2a41e20be6c1831543e72987ce7d285655fc311 (patch)
treeccc6c6ba44ab1491191413ae3358bdba1007a780
parentbd8ba89cca217cc78df31a357f77220a618a9b9a (diff)
downloadmpv-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.h3
-rw-r--r--libvo/cocoa_common.m6
-rw-r--r--libvo/gl_common.c2
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;
}