| Index: webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm
|
| diff --git a/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm b/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm
|
| deleted file mode 100644
|
| index bfd6eebe7ebe70077d92dfe23f2111a1346aa021..0000000000000000000000000000000000000000
|
| --- a/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm
|
| +++ /dev/null
|
| @@ -1,110 +0,0 @@
|
| -/*
|
| - * Copyright 2015 The WebRTC project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -#import "RTCOpenGLVideoRenderer.h"
|
| -
|
| -#import "RTCShader+Private.h"
|
| -#import "WebRTC/RTCVideoFrame.h"
|
| -
|
| -@implementation RTCOpenGLVideoRenderer {
|
| - GlContextType *_context;
|
| - BOOL _isInitialized;
|
| - id<RTCShader> _i420Shader;
|
| - id<RTCShader> _nv12Shader;
|
| -}
|
| -
|
| -@synthesize lastDrawnFrame = _lastDrawnFrame;
|
| -
|
| -+ (void)initialize {
|
| - // Disable dithering for performance.
|
| - glDisable(GL_DITHER);
|
| -}
|
| -
|
| -- (instancetype)initWithContext:(GlContextType *)context {
|
| - NSAssert(context != nil, @"context cannot be nil");
|
| - if (self = [super init]) {
|
| - _context = context;
|
| - }
|
| - return self;
|
| -}
|
| -
|
| -- (BOOL)drawFrame:(RTCVideoFrame *)frame {
|
| - if (!_isInitialized || !frame || frame == _lastDrawnFrame) {
|
| - return NO;
|
| - }
|
| - [self ensureGLContext];
|
| - glClear(GL_COLOR_BUFFER_BIT);
|
| - id<RTCShader> shader = nil;
|
| -#if TARGET_OS_IPHONE
|
| - if (frame.nativeHandle) {
|
| - if (!_nv12Shader) {
|
| - _nv12Shader = [[RTCNativeNV12Shader alloc] initWithContext:_context];
|
| - }
|
| - shader = _nv12Shader;
|
| - } else {
|
| - if (!_i420Shader) {
|
| - _i420Shader = [[RTCI420Shader alloc] initWithContext:_context];
|
| - }
|
| - shader = _i420Shader;
|
| - }
|
| -#else
|
| - // Rendering native CVPixelBuffer is not supported on OS X.
|
| - frame = [frame newI420VideoFrame];
|
| - if (!_i420Shader) {
|
| - _i420Shader = [[RTCI420Shader alloc] initWithContext:_context];
|
| - }
|
| - shader = _i420Shader;
|
| -#endif
|
| - if (!shader || ![shader drawFrame:frame]) {
|
| - return NO;
|
| - }
|
| -
|
| -#if !TARGET_OS_IPHONE
|
| - [_context flushBuffer];
|
| -#endif
|
| - _lastDrawnFrame = frame;
|
| -
|
| - return YES;
|
| -}
|
| -
|
| -- (void)setupGL {
|
| - if (_isInitialized) {
|
| - return;
|
| - }
|
| - [self ensureGLContext];
|
| - _isInitialized = YES;
|
| -}
|
| -
|
| -- (void)teardownGL {
|
| - if (!_isInitialized) {
|
| - return;
|
| - }
|
| - [self ensureGLContext];
|
| - _i420Shader = nil;
|
| - _nv12Shader = nil;
|
| - _isInitialized = NO;
|
| -}
|
| -
|
| -#pragma mark - Private
|
| -
|
| -- (void)ensureGLContext {
|
| - NSAssert(_context, @"context shouldn't be nil");
|
| -#if TARGET_OS_IPHONE
|
| - if ([EAGLContext currentContext] != _context) {
|
| - [EAGLContext setCurrentContext:_context];
|
| - }
|
| -#else
|
| - if ([NSOpenGLContext currentContext] != _context) {
|
| - [_context makeCurrentContext];
|
| - }
|
| -#endif
|
| -}
|
| -
|
| -@end
|
|
|