Commit 9d926a9e authored by Jean-Paul Saman's avatar Jean-Paul Saman

minimal_macosx: "drawable-agl" and "drawable-gl" split

parent 054e7db9
/***************************************************************************** /*****************************************************************************
* VLCOpenGLVoutView.m: MacOS X OpenGL provider * VLCOpenGLVoutView.m: MacOS X OpenGL provider
***************************************************************************** *****************************************************************************
* Copyright (C) 2001-2007 the VideoLAN team * Copyright (C) 2001-2009 the VideoLAN team
* $Id$ * $Id$
* *
* Authors: Colin Delacroix <colin@zoy.org> * Authors: Colin Delacroix <colin@zoy.org>
...@@ -49,8 +49,8 @@ int cocoaglvoutviewInit( vout_thread_t * p_vout ) ...@@ -49,8 +49,8 @@ int cocoaglvoutviewInit( vout_thread_t * p_vout )
msg_Dbg( p_vout, "Mac OS X Vout is opening" ); msg_Dbg( p_vout, "Mac OS X Vout is opening" );
var_Create( p_vout, "drawable", VLC_VAR_DOINHERIT ); var_Create( p_vout, "drawable-gl", VLC_VAR_DOINHERIT );
var_Get( p_vout, "drawable", &value_drawable ); var_Get( p_vout, "drawabl-gl", &value_drawable );
p_vout->p_sys->o_pool = [[NSAutoreleasePool alloc] init]; p_vout->p_sys->o_pool = [[NSAutoreleasePool alloc] init];
...@@ -81,7 +81,7 @@ void cocoaglvoutviewEnd( vout_thread_t * p_vout ) ...@@ -81,7 +81,7 @@ void cocoaglvoutviewEnd( vout_thread_t * p_vout )
id <VLCOpenGLVoutEmbedding> o_cocoaglview_container; id <VLCOpenGLVoutEmbedding> o_cocoaglview_container;
msg_Dbg( p_vout, "Mac OS X Vout is closing" ); msg_Dbg( p_vout, "Mac OS X Vout is closing" );
var_Destroy( p_vout, "drawable" ); var_Destroy( p_vout, "drawable-gl" );
o_cocoaglview_container = [p_vout->p_sys->o_glview container]; o_cocoaglview_container = [p_vout->p_sys->o_glview container];
......
...@@ -77,14 +77,15 @@ int aglInit( vout_thread_t * p_vout ) ...@@ -77,14 +77,15 @@ int aglInit( vout_thread_t * p_vout )
msg_Err( p_vout, "Cannot create AGL context." ); msg_Err( p_vout, "Cannot create AGL context." );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
else { else
{
// tell opengl not to sync buffer swap with vertical retrace (too inefficient) // tell opengl not to sync buffer swap with vertical retrace (too inefficient)
GLint param = 0; GLint param = 0;
aglSetInteger(p_vout->p_sys->agl_ctx, AGL_SWAP_INTERVAL, &param); aglSetInteger(p_vout->p_sys->agl_ctx, AGL_SWAP_INTERVAL, &param);
aglEnable(p_vout->p_sys->agl_ctx, AGL_SWAP_INTERVAL); aglEnable(p_vout->p_sys->agl_ctx, AGL_SWAP_INTERVAL);
} }
var_Get( p_vout->p_libvlc, "drawable", &val ); var_Get( p_vout->p_libvlc, "drawable-agl", &val );
p_vout->p_sys->agl_drawable = (AGLDrawable)val.i_int; p_vout->p_sys->agl_drawable = (AGLDrawable)val.i_int;
aglSetDrawable(p_vout->p_sys->agl_ctx, p_vout->p_sys->agl_drawable); aglSetDrawable(p_vout->p_sys->agl_ctx, p_vout->p_sys->agl_drawable);
...@@ -123,7 +124,8 @@ int aglInit( vout_thread_t * p_vout ) ...@@ -123,7 +124,8 @@ int aglInit( vout_thread_t * p_vout )
void aglEnd( vout_thread_t * p_vout ) void aglEnd( vout_thread_t * p_vout )
{ {
aglSetCurrentContext(NULL); aglSetCurrentContext(NULL);
if( p_vout->p_sys->theWindow ) DisposeWindow( p_vout->p_sys->theWindow ); if( p_vout->p_sys->theWindow )
DisposeWindow( p_vout->p_sys->theWindow );
aglDestroyContext(p_vout->p_sys->agl_ctx); aglDestroyContext(p_vout->p_sys->agl_ctx);
} }
...@@ -205,7 +207,7 @@ int aglManage( vout_thread_t * p_vout ) ...@@ -205,7 +207,7 @@ int aglManage( vout_thread_t * p_vout )
Rect viewBounds; Rect viewBounds;
Rect clipBounds; Rect clipBounds;
var_Get( p_vout->p_libvlc, "drawable", &val ); var_Get( p_vout->p_libvlc, "drawable-agl", &val );
p_vout->p_sys->agl_drawable = (AGLDrawable)val.i_int; p_vout->p_sys->agl_drawable = (AGLDrawable)val.i_int;
aglSetDrawable(p_vout->p_sys->agl_ctx, p_vout->p_sys->agl_drawable); aglSetDrawable(p_vout->p_sys->agl_ctx, p_vout->p_sys->agl_drawable);
......
...@@ -36,7 +36,8 @@ ...@@ -36,7 +36,8 @@
int OpenVideoGL ( vlc_object_t * p_this ) int OpenVideoGL ( vlc_object_t * p_this )
{ {
vout_thread_t * p_vout = (vout_thread_t *) p_this; vout_thread_t * p_vout = (vout_thread_t *) p_this;
vlc_value_t value_drawable; int i_drawable_agl;
int i_drawable_gl;
if( !CGDisplayUsesOpenGLAcceleration( kCGDirectMainDisplay ) ) if( !CGDisplayUsesOpenGLAcceleration( kCGDirectMainDisplay ) )
{ {
...@@ -53,9 +54,11 @@ int OpenVideoGL ( vlc_object_t * p_this ) ...@@ -53,9 +54,11 @@ int OpenVideoGL ( vlc_object_t * p_this )
memset( p_vout->p_sys, 0, sizeof( vout_sys_t ) ); memset( p_vout->p_sys, 0, sizeof( vout_sys_t ) );
var_Get( p_vout->p_libvlc, "drawable", &value_drawable ); i_drawable_agl = var_GetInteger( p_vout->p_libvlc, "drawable-agl" );
i_drawable_gl = var_GetInteger( p_vout->p_libvlc, "drawable-gl" );
if( 0 /* Are we in the mozilla plugin ? XXX: get that from drawable */ ) /* Are we in the mozilla plugin ? */
if( i_drawable_agl > 0 )
{ {
p_vout->pf_init = aglInit; p_vout->pf_init = aglInit;
p_vout->pf_end = aglEnd; p_vout->pf_end = aglEnd;
...@@ -65,7 +68,7 @@ int OpenVideoGL ( vlc_object_t * p_this ) ...@@ -65,7 +68,7 @@ int OpenVideoGL ( vlc_object_t * p_this )
p_vout->pf_lock = aglLock; p_vout->pf_lock = aglLock;
p_vout->pf_unlock = aglUnlock; p_vout->pf_unlock = aglUnlock;
} }
else else /*if( i_drawable_gl > 0 )*/
{ {
/* Let's use the VLCOpenGLVoutView.m class */ /* Let's use the VLCOpenGLVoutView.m class */
p_vout->pf_init = cocoaglvoutviewInit; p_vout->pf_init = cocoaglvoutviewInit;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment