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];
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;
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:
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 *);
} 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
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:
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);
}
}
- (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);
}
}