1 /*
2  *  Copyright 2017 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 
13 #import "RTCVideoFrame.h"
14 
15 NS_ASSUME_NONNULL_BEGIN
16 
17 /**
18  * RTCVideoViewShading provides a way for apps to customize the OpenGL(ES shaders
19  * used in rendering for the RTCEAGLVideoView/RTCNSGLVideoView.
20  */
21 RTC_OBJC_EXPORT
22 @protocol RTC_OBJC_TYPE
23 (RTCVideoViewShading)<NSObject>
24 
25     /** Callback for I420 frames. Each plane is given as a texture. */
26     - (void)applyShadingForFrameWithWidth : (int)width height : (int)height rotation
27     : (RTCVideoRotation)rotation yPlane : (GLuint)yPlane uPlane : (GLuint)uPlane vPlane
28     : (GLuint)vPlane;
29 
30 /** Callback for NV12 frames. Each plane is given as a texture. */
31 - (void)applyShadingForFrameWithWidth:(int)width
32                                height:(int)height
33                              rotation:(RTCVideoRotation)rotation
34                                yPlane:(GLuint)yPlane
35                               uvPlane:(GLuint)uvPlane;
36 
37 @end
38 
39 NS_ASSUME_NONNULL_END
40