X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_output%2Fmacosx.m;h=aab54cb29067f867d830aa827e348a4f55ca3d07;hb=9ad0b1735ec1e81578ab1807501758616c0b6777;hp=4267310c013d6c74b9d3d60a479a769ec76ddc3d;hpb=4508f2745c7448f3a128e21152c564d8796fe5e1;p=vlc diff --git a/modules/video_output/macosx.m b/modules/video_output/macosx.m index 4267310c01..aab54cb290 100644 --- a/modules/video_output/macosx.m +++ b/modules/video_output/macosx.m @@ -183,8 +183,10 @@ static int Open (vlc_object_t *this) nsPool = [[NSAutoreleasePool alloc] init]; [VLCOpenGLVideoView performSelectorOnMainThread:@selector(getNewView:) withObject:[NSValue valueWithPointer:&sys->glView] waitUntilDone:YES]; - if (!sys->glView) + if (!sys->glView) { + msg_Err(vd, "Initialization of open gl view failed"); goto error; + } [sys->glView setVoutDisplay:vd]; @@ -237,7 +239,7 @@ static int Open (vlc_object_t *this) vd->control = Control; /* */ - vout_display_SendEventDisplaySize (vd, vd->fmt.i_visible_width, vd->fmt.i_visible_height, false); + vout_display_SendEventDisplaySize (vd, vd->fmt.i_visible_width, vd->fmt.i_visible_height); return VLC_SUCCESS; @@ -320,19 +322,6 @@ static int Control (vout_display_t *vd, int query, va_list ap) switch (query) { - case VOUT_DISPLAY_CHANGE_FULLSCREEN: - { - const vout_display_cfg_t *cfg = va_arg (ap, const vout_display_cfg_t *); - if (vout_window_SetFullScreen (sys->embed, cfg->is_fullscreen)) - return VLC_EGENERIC; - - return VLC_SUCCESS; - } - case VOUT_DISPLAY_CHANGE_WINDOW_STATE: - { - unsigned state = va_arg (ap, unsigned); - return vout_window_SetState (sys->embed, state); - } case VOUT_DISPLAY_CHANGE_DISPLAY_FILLED: case VOUT_DISPLAY_CHANGE_ZOOM: case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: @@ -351,7 +340,6 @@ static int Control (vout_display_t *vd, int query, va_list ap) const vout_display_cfg_t *cfg; const video_format_t *source; - bool is_forced = false; if (query == VOUT_DISPLAY_CHANGE_SOURCE_ASPECT || query == VOUT_DISPLAY_CHANGE_SOURCE_CROP) { source = (const video_format_t *)va_arg (ap, const video_format_t *); @@ -359,16 +347,6 @@ static int Control (vout_display_t *vd, int query, va_list ap) } else { source = &vd->source; cfg = (const vout_display_cfg_t*)va_arg (ap, const vout_display_cfg_t *); - if (query == VOUT_DISPLAY_CHANGE_DISPLAY_SIZE) - is_forced = (bool)va_arg (ap, int); - } - - if (query == VOUT_DISPLAY_CHANGE_DISPLAY_SIZE && is_forced - && (cfg->display.width != vd->cfg->display.width - || cfg->display.height != vd->cfg->display.height) - && vout_window_SetSize (sys->embed, cfg->display.width, cfg->display.height)) { - [o_pool release]; - return VLC_EGENERIC; } /* we always use our current frame here, because we have some size constraints @@ -406,13 +384,6 @@ static int Control (vout_display_t *vd, int query, va_list ap) return VLC_SUCCESS; } - case VOUT_DISPLAY_GET_OPENGL: - { - vlc_gl_t **gl = va_arg (ap, vlc_gl_t **); - *gl = &sys->gl; - return VLC_SUCCESS; - } - case VOUT_DISPLAY_RESET_PICTURES: assert (0); default: @@ -644,7 +615,7 @@ static void OpenglSwap (vlc_gl_t *gl) vout_display_PlacePicture (&place, &vd->source, &cfg_tmp, false); vd->sys->place = place; - vout_display_SendEventDisplaySize (vd, bounds.size.width, bounds.size.height, vd->cfg->is_fullscreen); + vout_display_SendEventDisplaySize (vd, bounds.size.width, bounds.size.height); } } @@ -768,24 +739,21 @@ static void OpenglSwap (vlc_gl_t *gl) - (void)mouseMoved:(NSEvent *)o_event { - NSPoint ml; - NSRect s_rect; - BOOL b_inside; - /* on HiDPI displays, the point bounds don't equal the actual pixel based bounds */ - if (OSX_LION) - s_rect = [self convertRectToBacking:[self bounds]]; - else - s_rect = [self bounds]; - ml = [self convertPoint: [o_event locationInWindow] fromView: nil]; - b_inside = [self mouse: ml inRect: s_rect]; + NSPoint ml = [self convertPoint: [o_event locationInWindow] fromView: nil]; + NSRect videoRect = [self bounds]; + BOOL b_inside = [self mouse: ml inRect: videoRect]; + + if (OSX_LION) { + ml = [self convertPointToBacking: ml]; + videoRect = [self convertRectToBacking: videoRect]; + } if (b_inside) { @synchronized (self) { if (vd) { - vout_display_SendMouseMovedDisplayCoordinates(vd, ORIENT_NORMAL, - (int)ml.x, s_rect.size.height - (int)ml.y, + (int)ml.x, videoRect.size.height - (int)ml.y, &vd->sys->place); } }