コード例 #1
0
    partial void goFullScreen (NSObject sender)
    {
        isInFullScreenMode = true;

        // Pause the non-fullscreen view
        openGLView.StopAnimation ();

        RectangleF mainDisplayRect;
        RectangleF viewRect;

        // Create a screen-sized window on the display you want to take over
        // Note, mainDisplayRect has a non-zero origin if the key window is on a secondary display
        mainDisplayRect = NSScreen.MainScreen.Frame;

        fullScreenWindow = new NSWindow (mainDisplayRect, NSWindowStyle.Borderless, NSBackingStore.Buffered, true);

        // Set the window level to be above the menu bar
        fullScreenWindow.Level = NSWindowLevel.MainMenu + 1;

        // Perform any other window configuration you desire
        fullScreenWindow.IsOpaque = true;
        fullScreenWindow.HidesOnDeactivate = true;

        // Create a view with a double-buffered OpenGL context and attach it to the window
        // By specifying the non-fullscreen context as the shareContext, we automatically inherit the
        // OpenGL objects (textures, etc) it has defined
        viewRect = new RectangleF (0, 0, mainDisplayRect.Size.Width, mainDisplayRect.Size.Height);

        fullScreenView = new MyOpenGLView (viewRect, openGLView.OpenGLContext);
        fullScreenWindow.ContentView = fullScreenView;

        // Show the window
        fullScreenWindow.MakeKeyAndOrderFront (this);

        // Set the scene with the full-screen viewport and viewing transformation
        Scene.ResizeGLScene (viewRect);

        // Assign the view's MainController to self
        fullScreenView.MainController = this;

        if (!isAnimating)
        {
            // Mark the view as needing drawing to initalize its contents
            fullScreenView.NeedsDisplay = true;
        }
        else
        {
            // Start playing the animation
            fullScreenView.StartAnimation ();

        }
    }
コード例 #2
0
		partial void goFullScreen (NSObject sender)
		{
			isInFullScreenMode = true;
			
			// Pause the non-fullscreen view
			openGLView.StopAnimation ();
			
			CGRect mainDisplayRect;
			CGRect viewRect;
			
			// Create a screen-sized window on the display you want to take over
			// Note, mainDisplayRect has a non-zero origin if the key window is on a secondary display
			mainDisplayRect = NSScreen.MainScreen.Frame;
			
			fullScreenWindow = new NSWindow (mainDisplayRect, NSWindowStyle.Borderless, NSBackingStore.Buffered, true);
			
			// Set the window level to be above the menu bar
			fullScreenWindow.Level = NSWindowLevel.MainMenu + 1;
			
			// Perform any other window configuration you desire
			fullScreenWindow.IsOpaque = true;
			fullScreenWindow.HidesOnDeactivate = true;
			
			// Create a view with a double-buffered OpenGL context and attach it to the window
			// By specifying the non-fullscreen context as the shareContext, we automatically inherit the 
			// OpenGL objects (textures, etc) it has defined
			viewRect = new CGRect (0, 0, mainDisplayRect.Size.Width, mainDisplayRect.Size.Height);
			
			fullScreenView = new MyOpenGLView (viewRect, openGLView.OpenGLContext);
			fullScreenWindow.ContentView = fullScreenView;
			
			// Show the window
			fullScreenWindow.MakeKeyAndOrderFront (this);
			
			// Set the scene with the full-screen viewport and viewing transformation
			Scene.ResizeGLScene (viewRect);
			
			// Assign the view's MainController to self
			fullScreenView.MainController = this;
			
			if (!isAnimating) {
				// Mark the view as needing drawing to initalize its contents
				fullScreenView.NeedsDisplay = true;
			} else {
				// Start playing the animation
				fullScreenView.StartAnimation ();
				
			}
		}