static int Open(vlc_object_t *this)
{
vout_display_t *vd = (vout_display_t *)this;
+
+ if (vout_display_IsWindowed(vd))
+ return VLC_EGENERIC;
+
vout_display_sys_t *sys = calloc (1, sizeof(*sys));
NSAutoreleasePool *autoreleasePool = nil;
if (!viewContainer || ![viewContainer isKindOfClass:[UIView class]])
goto bailout;
- vout_display_DeleteWindow (vd, NULL);
-
/* This will be released in Close(), on
* main thread, after we are done using it. */
sys->viewContainer = [viewContainer retain];
/* forward our dimensions to the vout core */
CGSize viewSize = sys->viewContainer.frame.size;
vout_display_SendEventFullscreen(vd, false);
- vout_display_SendEventDisplaySize(vd, (int)viewSize.width, (int)viewSize.height, false);
+ vout_display_SendEventDisplaySize(vd, (int)viewSize.width, (int)viewSize.height);
/* */
[[NSNotificationCenter defaultCenter] addObserver:sys->glESView
case VOUT_DISPLAY_HIDE_MOUSE:
return VLC_EGENERIC;
- case VOUT_DISPLAY_CHANGE_FULLSCREEN:
- case VOUT_DISPLAY_CHANGE_WINDOW_STATE:
case VOUT_DISPLAY_CHANGE_DISPLAY_FILLED:
case VOUT_DISPLAY_CHANGE_ZOOM:
case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT:
sys->place = place;
}
- [autoreleasePool release];
- return VLC_SUCCESS;
- }
+ // x / y are top left corner, but we need the lower left one
+ if (query != VOUT_DISPLAY_CHANGE_DISPLAY_SIZE)
+ glViewport(place.x, cfg_tmp.display.height - (place.y + place.height), place.width, place.height);
- case VOUT_DISPLAY_GET_OPENGL:
- {
- vlc_gl_t **gl = va_arg(ap, vlc_gl_t **);
- *gl = &sys->gl;
+ [autoreleasePool release];
return VLC_SUCCESS;
}
assert (0);
default:
msg_Err(vd, "Unknown request %d", query);
+ case VOUT_DISPLAY_CHANGE_FULLSCREEN:
return VLC_EGENERIC;
}
}
vout_display_PlacePicture(&place, &_voutDisplay->source, &cfg_tmp, false);
_voutDisplay->sys->place = place;
vout_display_SendEventDisplaySize(_voutDisplay, viewSize.width * scaleFactor,
- viewSize.height * scaleFactor,
- _voutDisplay->cfg->is_fullscreen);
+ viewSize.height * scaleFactor);
}
}
{
UIGestureRecognizerState state = [tapRecognizer state];
CGPoint touchPoint = [tapRecognizer locationInView:self];
+ CGFloat scaleFactor = self.contentScaleFactor;
vout_display_SendMouseMovedDisplayCoordinates(_voutDisplay, ORIENT_NORMAL,
- (int)touchPoint.x, (int)touchPoint.y,
+ (int)touchPoint.x * scaleFactor, (int)touchPoint.y * scaleFactor,
&_voutDisplay->sys->place);
vout_display_SendEventMousePressed(_voutDisplay, MOUSE_BUTTON_LEFT);