From 4049a25afd47ae0299c075ea22e2de8fbd205e16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1ri=20Tristan=20Helgason?= Date: Fri, 20 Apr 2018 17:33:32 +0200 Subject: [PATCH] Make MTLView content mode settable. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We want to allow the application to set it's own content mode. Bug: b/73147161 Change-Id: I60fab454353a4c39731e49b7b6066e51d8e9a94d Reviewed-on: https://webrtc-review.googlesource.com/70501 Commit-Queue: Kári Helgason Reviewed-by: Anders Carlsson Cr-Commit-Position: refs/heads/master@{#22962} --- sdk/objc/Framework/Classes/Metal/RTCMTLVideoView.m | 4 ++++ .../Framework/Headers/WebRTC/RTCMTLVideoView.h | 4 ++++ .../Framework/UnitTests/RTCMTLVideoView_xctest.m | 14 ++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/sdk/objc/Framework/Classes/Metal/RTCMTLVideoView.m b/sdk/objc/Framework/Classes/Metal/RTCMTLVideoView.m index eff06af81e..dde626645a 100644 --- a/sdk/objc/Framework/Classes/Metal/RTCMTLVideoView.m +++ b/sdk/objc/Framework/Classes/Metal/RTCMTLVideoView.m @@ -97,6 +97,10 @@ } } +- (void)setVideoContentMode:(UIViewContentMode)mode { + _metalView.contentMode = mode; +} + #pragma mark - Private - (void)layoutSubviews { diff --git a/sdk/objc/Framework/Headers/WebRTC/RTCMTLVideoView.h b/sdk/objc/Framework/Headers/WebRTC/RTCMTLVideoView.h index 802e0ff325..266f2c223f 100644 --- a/sdk/objc/Framework/Headers/WebRTC/RTCMTLVideoView.h +++ b/sdk/objc/Framework/Headers/WebRTC/RTCMTLVideoView.h @@ -32,7 +32,11 @@ NS_CLASS_AVAILABLE_IOS(9) RTC_EXPORT @interface RTCMTLVideoView : UIView + @property(nonatomic, weak) id delegate; + +- (void)setVideoContentMode:(UIViewContentMode)mode; + @end NS_ASSUME_NONNULL_END diff --git a/sdk/objc/Framework/UnitTests/RTCMTLVideoView_xctest.m b/sdk/objc/Framework/UnitTests/RTCMTLVideoView_xctest.m index a832173b2a..e7168a6605 100644 --- a/sdk/objc/Framework/UnitTests/RTCMTLVideoView_xctest.m +++ b/sdk/objc/Framework/UnitTests/RTCMTLVideoView_xctest.m @@ -11,6 +11,7 @@ #import #import +#import #import #include @@ -258,4 +259,17 @@ OCMVerifyAllWithDelay(delegateMock, 1); } +- (void)testSetContentMode { + OCMStub([self.classMock isMetalAvailable]).andReturn(YES); + id metalKitView = OCMClassMock([MTKView class]); + [[[[self.classMock stub] ignoringNonObjectArgs] andReturn:metalKitView] + createMetalView:CGRectZero]; + OCMExpect([metalKitView setContentMode:UIViewContentModeScaleAspectFill]); + + RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; + [realView setVideoContentMode:UIViewContentModeScaleAspectFill]; + + OCMVerify(metalKitView); +} + @end