diff options
author | adrian <adrian@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-12-15 20:38:54 +0000 |
---|---|---|
committer | adrian <adrian@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-12-15 20:38:54 +0000 |
commit | 2a33cd01f6d969600a56e9ea28d1504be7e7eafd (patch) | |
tree | 362245785d142d15ef346e421c9f3ff873fcb0d4 /libvo/vo_corevideo.m | |
parent | 5f0b5dcaa96326512835afbae46c30aeaa164b13 (diff) | |
download | mpv-2a33cd01f6d969600a56e9ea28d1504be7e7eafd.tar.bz2 mpv-2a33cd01f6d969600a56e9ea28d1504be7e7eafd.tar.xz |
Add support for -geometry to corevideo.
Based on a patch by Tim Wojtulewicz (timwoj at ieee dot org).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30043 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_corevideo.m')
-rw-r--r-- | libvo/vo_corevideo.m | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m index f2b29edfd2..5d25b088f4 100644 --- a/libvo/vo_corevideo.m +++ b/libvo/vo_corevideo.m @@ -497,16 +497,21 @@ static int control(uint32_t request, void *data, ...) - (void) config { - uint32_t d_width; - uint32_t d_height; - - NSRect frame; + NSRect visibleFrame; CVReturn error = kCVReturnSuccess; //config window - d_width = vo_dwidth; d_height = vo_dheight; - frame = NSMakeRect(0, 0, d_width, d_height); - [window setContentSize: frame.size]; + [window setContentSize:NSMakeSize(vo_dwidth, vo_dheight)]; + + // Use visibleFrame to position the window taking the menu bar and dock into account. + // Also flip vo_dy since the screen origin is in the bottom left on OSX. + if (screen_id < 0) + visibleFrame = [[[mpGLView window] screen] visibleFrame]; + else + visibleFrame = [[[NSScreen screens] objectAtIndex:screen_id] visibleFrame]; + [window setFrameTopLeftPoint:NSMakePoint( + visibleFrame.origin.x + vo_dx, + visibleFrame.origin.y + visibleFrame.size.height - vo_dy)]; [self releaseVideoSpecific]; error = CVPixelBufferCreateWithBytes(NULL, image_width, image_height, pixelFormat, image_datas[0], image_width*image_bytes, NULL, NULL, NULL, &frameBuffers[0]); @@ -523,7 +528,6 @@ static int control(uint32_t request, void *data, ...) mp_msg(MSGT_VO, MSGL_ERR,"[vo_corevideo] Failed to create OpenGL texture(%d)\n", error); //show window - [window center]; [window makeKeyAndOrderFront:mpGLView]; if(vo_rootwin) |