1 /*
2  *  Copyright 2015 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #import <Foundation/Foundation.h>
12 #import <UIKit/UIKit.h>
13 
14 #import "RTCMacros.h"
15 #import "RTCVideoRenderer.h"
16 #import "RTCVideoViewShading.h"
17 
18 NS_ASSUME_NONNULL_BEGIN
19 
20 @class RTC_OBJC_TYPE(RTCEAGLVideoView);
21 
22 /**
23  * RTCEAGLVideoView is an RTCVideoRenderer which renders video frames
24  * in its bounds using OpenGLES 2.0 or OpenGLES 3.0.
25  */
26 RTC_OBJC_EXPORT
27 NS_EXTENSION_UNAVAILABLE_IOS("Rendering not available in app extensions.")
28 @interface RTC_OBJC_TYPE (RTCEAGLVideoView) : UIView <RTC_OBJC_TYPE(RTCVideoRenderer)>
29 
30 @property(nonatomic, weak) id<RTC_OBJC_TYPE(RTCVideoViewDelegate)> delegate;
31 
32 - (instancetype)initWithFrame:(CGRect)frame
33                        shader:(id<RTC_OBJC_TYPE(RTCVideoViewShading)>)shader
34     NS_DESIGNATED_INITIALIZER;
35 
36 - (instancetype)initWithCoder:(NSCoder *)aDecoder
37                        shader:(id<RTC_OBJC_TYPE(RTCVideoViewShading)>)shader
38     NS_DESIGNATED_INITIALIZER;
39 
40 /** @abstract Wrapped RTCVideoRotation, or nil.
41  */
42 @property(nonatomic, nullable) NSValue *rotationOverride;
43 @end
44 
45 NS_ASSUME_NONNULL_END
46