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:
JT Teh
2018-04-22 09:28:27 -07:00
committed by Commit Bot
parent e8a9c45cc1
commit 5c14725d53

View File

@ -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];
});