Update the drawable size when changing the view's frame.
Change-Id: I2ef4930e880ff8d3409d766cad4b6d14746a49dc Bug: webrtc:9179 Change-Id: I2ef4930e880ff8d3409d766cad4b6d14746a49dc Reviewed-on: https://webrtc-review.googlesource.com/71638 Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Commit-Queue: JT Teh <jtteh@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22985}
This commit is contained in:
@ -35,6 +35,7 @@
|
||||
|
||||
@implementation RTCMTLVideoView {
|
||||
int64_t _lastFrameTimeNs;
|
||||
CGSize _videoFrameSize;
|
||||
}
|
||||
|
||||
@synthesize delegate = _delegate;
|
||||
@ -94,6 +95,7 @@
|
||||
_metalView.delegate = self;
|
||||
[self addSubview:_metalView];
|
||||
_metalView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
_videoFrameSize = CGSizeZero;
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,7 +107,13 @@
|
||||
|
||||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
_metalView.frame = self.bounds;
|
||||
CGRect bounds = self.bounds;
|
||||
_metalView.frame = bounds;
|
||||
if (!CGSizeEqualToSize(_videoFrameSize, CGSizeZero)) {
|
||||
_metalView.drawableSize = _videoFrameSize;
|
||||
} else {
|
||||
_metalView.drawableSize = bounds.size;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - MTKViewDelegate methods
|
||||
@ -149,6 +157,7 @@
|
||||
|
||||
- (void)setSize:(CGSize)size {
|
||||
self.metalView.drawableSize = size;
|
||||
_videoFrameSize = size;
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.delegate videoView:self didChangeVideoSize:size];
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user