[vlc-commits] iOS vout: re-use existing OpenGL context if available and compatible
Felix Paul Kühne
git at videolan.org
Mon Sep 14 14:34:06 CEST 2015
vlc | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Mon Sep 14 14:32:59 2015 +0200| [79f2fd00415347595727e654d648b38064c74e5f] | committer: Felix Paul Kühne
iOS vout: re-use existing OpenGL context if available and compatible
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=79f2fd00415347595727e654d648b38064c74e5f
---
modules/video_output/ios2.m | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/modules/video_output/ios2.m b/modules/video_output/ios2.m
index 8cdda5a..178b057 100644
--- a/modules/video_output/ios2.m
+++ b/modules/video_output/ios2.m
@@ -612,7 +612,16 @@ static void ZeroCopyDisplay(vout_display_t *vd, picture_t *pic, subpicture_t *su
layer.drawableProperties = [NSDictionary dictionaryWithObject:kEAGLColorFormatRGBA8 forKey: kEAGLDrawablePropertyColorFormat];
layer.opaque = YES;
- _eaglContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
+ /* a client app may have already created a rendering context,
+ * so re-use it if it is valid */
+ EAGLContext *existingContext = [EAGLContext currentContext];
+ if (existingContext) {
+ if ([existingContext API] == kEAGLRenderingAPIOpenGLES2)
+ _eaglContext = [EAGLContext currentContext];
+ }
+
+ if (!_eaglContext)
+ _eaglContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (unlikely(!_eaglContext))
return nil;
if (unlikely(![EAGLContext setCurrentContext:_eaglContext]))
More information about the vlc-commits
mailing list