mirror of https://github.com/mpv-player/mpv
Merge remote-tracking branch 'pigoz/gl'
This commit is contained in:
commit
a3ebc5de4b
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue