diff options
author | Uoti Urpala <uau@mplayer2.org> | 2011-12-07 00:14:03 +0200 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-12-07 00:14:03 +0200 |
commit | a3ebc5de4bb613008f7c85f221ecfd3665812c68 (patch) | |
tree | 42b101b2724414bcce4b4784564ca06da4d133b1 | |
parent | fe69b49ccc2bb3e00977f4110a59ffe3b0516d6f (diff) | |
parent | b2a41e20be6c1831543e72987ce7d285655fc311 (diff) | |
download | mpv-a3ebc5de4bb613008f7c85f221ecfd3665812c68.tar.bz2 mpv-a3ebc5de4bb613008f7c85f221ecfd3665812c68.tar.xz |
Merge remote-tracking branch 'pigoz/gl'
-rw-r--r-- | libvo/cocoa_common.h | 9 | ||||
-rw-r--r-- | libvo/cocoa_common.m | 21 | ||||
-rw-r--r-- | libvo/gl_common.c | 10 |
3 files changed, 27 insertions, 13 deletions
diff --git a/libvo/cocoa_common.h b/libvo/cocoa_common.h index c5d24e9178..4fbbb32dd9 100644 --- a/libvo/cocoa_common.h +++ b/libvo/cocoa_common.h @@ -1,19 +1,22 @@ #ifndef MPLAYER_COCOA_COMMON_H #define MPLAYER_COCOA_COMMON_H -#include "gl_common.h" +#include "video_out.h" int vo_cocoa_init(struct vo *vo); void vo_cocoa_uninit(struct vo *vo); void vo_cocoa_update_xinerama_info(struct vo *vo); -int vo_cocoa_change_attributes(struct MPGLContext *ctx); -int vo_cocoa_create_window(struct MPGLContext *ctx, uint32_t d_width, +int vo_cocoa_change_attributes(struct vo *vo); +int vo_cocoa_create_window(struct vo *vo, uint32_t d_width, uint32_t d_height, uint32_t flags); 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 56749861c2..5658ecb7bf 100644 --- a/libvo/cocoa_common.m +++ b/libvo/cocoa_common.m @@ -3,7 +3,6 @@ #import <QuartzCore/QuartzCore.h> #import <CoreServices/CoreServices.h> // for CGDisplayHideCursor #include "cocoa_common.h" -#include "gl_common.h" #include "options.h" #include "video_out.h" @@ -130,9 +129,9 @@ void vo_cocoa_update_xinerama_info(struct vo *vo) aspect_save_screenres(vo, s->screen_frame.size.width, s->screen_frame.size.height); } -int vo_cocoa_change_attributes(struct MPGLContext *ctx) +int vo_cocoa_change_attributes(struct vo *vo) { - return SET_WINDOW_OK; + return 0; } void resize_window(struct vo *vo) @@ -142,7 +141,7 @@ void resize_window(struct vo *vo) [s->glContext update]; } -int vo_cocoa_create_window(struct MPGLContext *ctx, uint32_t d_width, +int vo_cocoa_create_window(struct vo *vo, uint32_t d_width, uint32_t d_height, uint32_t flags) { if (s->current_video_size.width > 0 || s->current_video_size.height > 0) @@ -187,7 +186,7 @@ int vo_cocoa_create_window(struct MPGLContext *ctx, uint32_t d_width, } if (flags & VOFLAG_FULLSCREEN) - vo_cocoa_fullscreen(ctx->vo); + vo_cocoa_fullscreen(vo); } else { if (s->current_video_size.width != s->previous_video_size.width || s->current_video_size.height != s->previous_video_size.height) { @@ -203,15 +202,15 @@ int vo_cocoa_create_window(struct MPGLContext *ctx, uint32_t d_width, } } - resize_window(ctx->vo); + resize_window(vo); if (s->window_title) [s->window_title release]; - s->window_title = [[NSString alloc] initWithUTF8String:vo_get_window_title(ctx->vo)]; + s->window_title = [[NSString alloc] initWithUTF8String:vo_get_window_title(vo)]; [s->window setTitle: s->window_title]; - return SET_WINDOW_OK; + return 0; } void vo_cocoa_swap_buffers() @@ -263,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 27febc1b36..7cca800d40 100644 --- a/libvo/gl_common.c +++ b/libvo/gl_common.c @@ -1615,12 +1615,18 @@ void glDrawTex(GL *gl, GLfloat x, GLfloat y, GLfloat w, GLfloat h, static int create_window_cocoa(struct MPGLContext *ctx, uint32_t d_width, uint32_t d_height, uint32_t flags) { - return vo_cocoa_create_window(ctx, d_width, d_height, flags); + if (vo_cocoa_create_window(ctx->vo, d_width, d_height, flags) == 0) { + return SET_WINDOW_OK; + } else { + return SET_WINDOW_FAILED; + } } static int setGlWindow_cocoa(MPGLContext *ctx) { - vo_cocoa_change_attributes(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; } |