]> git.sesse.net Git - vlc/commitdiff
* Enable OpenGL without Acceleration on Mac OSX. (Fallback option)
authorDerk-Jan Hartman <hartman@videolan.org>
Wed, 1 Feb 2006 18:13:49 +0000 (18:13 +0000)
committerDerk-Jan Hartman <hartman@videolan.org>
Wed, 1 Feb 2006 18:13:49 +0000 (18:13 +0000)
modules/gui/macosx/voutgl.m

index d4e468be7ca72ce32ae13e40cd690f39c8adb3c4..2d4e966fffa5667beccb2578e28dfe16e3c0f69d 100644 (file)
@@ -58,6 +58,7 @@ struct vout_sys_t
     VLCGLView         * o_glview;
     VLCVoutView       * o_vout_view;
     vlc_bool_t          b_saved_frame;
+    vlc_bool_t          b_accelerated;
     NSRect              s_frame;
     vlc_bool_t          b_got_frame;
     vlc_mutex_t         lock;
@@ -79,13 +80,6 @@ int E_(OpenVideoGL)  ( vlc_object_t * p_this )
 {
     vout_thread_t * p_vout = (vout_thread_t *) p_this;
 
-    if( !CGDisplayUsesOpenGLAcceleration( kCGDirectMainDisplay ) )
-    {
-        msg_Warn( p_vout, "no hardware acceleration" );
-        return( 1 );
-    }
-    msg_Dbg( p_vout, "display is Quartz Extreme accelerated" );
-
     p_vout->p_sys = malloc( sizeof( vout_sys_t ) );
     if( p_vout->p_sys == NULL )
     {
@@ -95,6 +89,10 @@ int E_(OpenVideoGL)  ( vlc_object_t * p_this )
 
     memset( p_vout->p_sys, 0, sizeof( vout_sys_t ) );
 
+    p_vout->p_sys->b_accelerated  = CGDisplayUsesOpenGLAcceleration( kCGDirectMainDisplay );
+    if( p_vout->p_sys->b_accelerated )
+        msg_Dbg( p_vout, "display is Quartz Extreme accelerated" );
+
     p_vout->p_sys->o_pool = [[NSAutoreleasePool alloc] init];
     vlc_mutex_init( p_vout, &p_vout->p_sys->lock );
 
@@ -103,7 +101,6 @@ int E_(OpenVideoGL)  ( vlc_object_t * p_this )
     [p_vout->p_sys->o_glview autorelease];
 
     /* Spawn the window */
-
     if( !(p_vout->p_sys->o_vout_view = [VLCVoutView getVoutView: p_vout
                     subView: p_vout->p_sys->o_glview frame: nil]) )
     {
@@ -241,9 +238,8 @@ static void Unlock( vout_thread_t * p_vout )
 
 - (id) initWithVout: (vout_thread_t *) vout
 {
-    p_vout = vout;
-
-    NSOpenGLPixelFormatAttribute attribs[] =
+    NSOpenGLPixelFormat * fmt;
+    NSOpenGLPixelFormatAttribute attribs_accel[] =
     {
         NSOpenGLPFAAccelerated,
         NSOpenGLPFANoRecovery,
@@ -253,9 +249,21 @@ static void Unlock( vout_thread_t * p_vout )
         NSOpenGLPFAWindow,
         0
     };
+    NSOpenGLPixelFormatAttribute attribs[] =
+    {
+        NSOpenGLPFANoRecovery,
+        NSOpenGLPFAColorSize, 24,
+        NSOpenGLPFAAlphaSize, 8,
+        NSOpenGLPFADepthSize, 24,
+        NSOpenGLPFAWindow,
+        0
+    };
+
+    p_vout = vout;
 
-    NSOpenGLPixelFormat * fmt = [[NSOpenGLPixelFormat alloc]
-        initWithAttributes: attribs];
+    if( p_vout->p_sys->b_accelerated )
+        fmt = [[NSOpenGLPixelFormat alloc] initWithAttributes: attribs_accel];
+    else  fmt = [[NSOpenGLPixelFormat alloc] initWithAttributes: attribs];
 
     if( !fmt )
     {