[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23789] trunk/blender/intern/ghost/intern: Cocoa : fix secondary window display bug issue

Jasper Mine jaspermine at ptd.net
Tue Oct 13 18:57:54 CEST 2009


Hello Mr. Plisson,

I am getting a kernel panic after running the compile.

I am on mac osx 10.5.8 intel using the nan make files.  Am I doing it  
wrong?  Do I run cmake to generate the make files or to generate an  
xcode project?

Thank you.
Jasper


On Oct 12, 2009, at 12:51 PM, Damien Plisson wrote:

> Revision: 23789
>          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23789
> Author:   damien78
> Date:     2009-10-12 18:51:36 +0200 (Mon, 12 Oct 2009)
>
> Log Message:
> -----------
> Cocoa : fix secondary window display bug issue
>
> Modified Paths:
> --------------
>    trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.h
>    trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm
>
> Modified: trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.h
> ===================================================================
> --- trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.h	2009-10-12  
> 16:34:55 UTC (rev 23788)
> +++ trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.h	2009-10-12  
> 16:51:36 UTC (rev 23789)
> @@ -275,6 +275,9 @@
> 	/** The mother SystemCocoa class to send events */
> 	GHOST_SystemCocoa *m_systemCocoa;
> 			
> +	/** The first created OpenGL context (for sharing display lists) */
> +	static NSOpenGLContext *s_firstOpenGLcontext;
> +	
> 	NSCursor*	m_customCursor;
>
> 	GHOST_TabletData m_tablet;
>
> Modified: trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm
> ===================================================================
> --- trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm	 
> 2009-10-12 16:34:55 UTC (rev 23788)
> +++ trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm	 
> 2009-10-12 16:51:36 UTC (rev 23789)
> @@ -149,6 +149,8 @@
>
> #pragma mark initialization / finalization
>
> +NSOpenGLContext* GHOST_WindowCocoa::s_firstOpenGLcontext = nil;
> +
> GHOST_WindowCocoa::GHOST_WindowCocoa(
> 	GHOST_SystemCocoa *systemCocoa,
> 	const STR_String& title,
> @@ -197,7 +199,7 @@
> 	
> 	[pixelFormat release];
> 	
> -	m_openGLContext = [m_openGLView openGLContext];
> +	m_openGLContext = [m_openGLView openGLContext]; //This context  
> will be replaced by the proper one just after
> 	
> 	[m_window setContentView:m_openGLView];
> 	[m_window setInitialFirstResponder:m_openGLView];
> @@ -229,9 +231,6 @@
> {
> 	if (m_customCursor) delete m_customCursor;
>
> -	/*if(ugly_hack==m_windowRef) ugly_hack= NULL;
> -	
> -	if(ugly_hack==NULL)  
> setDrawingContextType(GHOST_kDrawingContextTypeNone);*/
>     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
> 	[m_openGLView release];
> 	
> @@ -670,12 +669,15 @@
> 		case GHOST_kDrawingContextTypeOpenGL:
> 			if (!getValid()) break;
>             				
> -				pixelFormat = [m_openGLView pixelFormat];
> -				tmpOpenGLContext = [[NSOpenGLContext alloc]  
> initWithFormat:pixelFormat
> -															  shareContext:m_openGLContext];
> -				if (tmpOpenGLContext == nil)
> -					success = GHOST_kFailure;
> -					break;
> +			pixelFormat = [m_openGLView pixelFormat];
> +			tmpOpenGLContext = [[NSOpenGLContext alloc]  
> initWithFormat:pixelFormat
> +															  shareContext:s_firstOpenGLcontext];
> +			if (tmpOpenGLContext == nil) {
> +				success = GHOST_kFailure;
> +				break;
> +			}
> +			
> +			if (!s_firstOpenGLcontext) s_firstOpenGLcontext =  
> tmpOpenGLContext;
> #ifdef WAIT_FOR_VSYNC
> 				/* wait for vsync, to avoid tearing artifacts */
> 				[tmpOpenGLContext setValues:1  
> forParameter:NSOpenGLCPSwapInterval];
> @@ -683,7 +685,6 @@
> 				[m_openGLView setOpenGLContext:tmpOpenGLContext];
> 				[tmpOpenGLContext setView:m_openGLView];
> 				
> -				[m_openGLContext release];
> 				m_openGLContext = tmpOpenGLContext;
> 			break;
> 		
> @@ -704,7 +705,12 @@
> 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
> 	switch (m_drawingContextType) {
> 		case GHOST_kDrawingContextTypeOpenGL:
> -			[m_openGLView clearGLContext];
> +			if (m_openGLContext)
> +			{
> +				[m_openGLView clearGLContext];
> +				if (s_firstOpenGLcontext == m_openGLContext)  
> s_firstOpenGLcontext = nil;
> +				m_openGLContext = nil;
> +			}
> 			[pool drain];
> 			return GHOST_kSuccess;
> 		case GHOST_kDrawingContextTypeNone:
>
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>



More information about the Bf-committers mailing list