vlc | branch: master | Felix Paul Kühne <fkue...@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]))

_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to