[Hdrflow-svn] SF.net SVN: hdrflow: [193] trunk/app/HDRFlow
Status: Pre-Alpha
Brought to you by:
glslang
|
From: <gl...@us...> - 2007-07-19 22:24:37
|
Revision: 193
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=193&view=rev
Author: glslang
Date: 2007-07-19 15:24:34 -0700 (Thu, 19 Jul 2007)
Log Message:
-----------
+initial fullscreen code
Modified Paths:
--------------
trunk/app/HDRFlow/English.lproj/MainMenu.nib/classes.nib
trunk/app/HDRFlow/English.lproj/MainMenu.nib/keyedobjects.nib
trunk/app/HDRFlow/HDRFlowController.h
trunk/app/HDRFlow/HDRFlowController.m
trunk/app/HDRFlow/ViewportOpenGLView.h
trunk/app/HDRFlow/ViewportOpenGLView.m
Modified: trunk/app/HDRFlow/English.lproj/MainMenu.nib/classes.nib
===================================================================
--- trunk/app/HDRFlow/English.lproj/MainMenu.nib/classes.nib 2007-07-18 21:42:24 UTC (rev 192)
+++ trunk/app/HDRFlow/English.lproj/MainMenu.nib/classes.nib 2007-07-19 22:24:34 UTC (rev 193)
@@ -5,7 +5,7 @@
ACTIONS = {fileOpen = id; scriptEditor = id; viewFullscreen = id; };
CLASS = HDRFlowController;
LANGUAGE = ObjC;
- OUTLETS = {OpenGLView = ViewportOpenGLView; scriptEditor = ScriptEditorController; };
+ OUTLETS = {openGLView = ViewportOpenGLView; };
SUPERCLASS = NSObject;
},
{CLASS = ViewportOpenGLView; LANGUAGE = ObjC; SUPERCLASS = CustomOpenGLView; }
Modified: trunk/app/HDRFlow/English.lproj/MainMenu.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/app/HDRFlow/HDRFlowController.h
===================================================================
--- trunk/app/HDRFlow/HDRFlowController.h 2007-07-18 21:42:24 UTC (rev 192)
+++ trunk/app/HDRFlow/HDRFlowController.h 2007-07-19 22:24:34 UTC (rev 193)
@@ -14,7 +14,7 @@
@interface HDRFlowController : NSObject
{
ScriptEditorController* scriptEditor;
- IBOutlet ViewportOpenGLView* OpenGLView;
+ IBOutlet ViewportOpenGLView* openGLView;
}
- ( BOOL ) acceptsFirstResponder;
Modified: trunk/app/HDRFlow/HDRFlowController.m
===================================================================
--- trunk/app/HDRFlow/HDRFlowController.m 2007-07-18 21:42:24 UTC (rev 192)
+++ trunk/app/HDRFlow/HDRFlowController.m 2007-07-19 22:24:34 UTC (rev 193)
@@ -6,6 +6,7 @@
// For more information, see http://www.cryogenicgraphics.com/hdrflow.
#import "HDRFlowController.h"
+#import "ViewportOpenGLView.h"
@implementation HDRFlowController
@@ -47,6 +48,7 @@
- ( IBAction ) viewFullscreen: ( id ) sender
{
+ [ openGLView fullscreen ];
}
- ( BOOL ) acceptsFirstResponder
Modified: trunk/app/HDRFlow/ViewportOpenGLView.h
===================================================================
--- trunk/app/HDRFlow/ViewportOpenGLView.h 2007-07-18 21:42:24 UTC (rev 192)
+++ trunk/app/HDRFlow/ViewportOpenGLView.h 2007-07-19 22:24:34 UTC (rev 193)
@@ -18,6 +18,6 @@
- ( void ) drawRect: ( NSRect ) theRect;
- ( void ) update;
-- ( BOOL ) fullscreen;
+- ( void ) fullscreen;
@end
Modified: trunk/app/HDRFlow/ViewportOpenGLView.m
===================================================================
--- trunk/app/HDRFlow/ViewportOpenGLView.m 2007-07-18 21:42:24 UTC (rev 192)
+++ trunk/app/HDRFlow/ViewportOpenGLView.m 2007-07-19 22:24:34 UTC (rev 193)
@@ -75,9 +75,65 @@
;
}
-- ( BOOL ) fullscreen
+- ( void ) fullscreen
{
- return NO;
+ NSOpenGLPixelFormatAttribute attribs[ ] =
+ {
+ NSOpenGLPFAFullScreen,
+ NSOpenGLPFAScreenMask,
+ CGDisplayIDToOpenGLDisplayMask( kCGDirectMainDisplay ),
+ NSOpenGLPFADoubleBuffer,
+ NSOpenGLPFADepthSize, 24,
+ NSOpenGLPFAStencilSize, 8,
+ 0
+ };
+
+ NSOpenGLPixelFormat* pixelFormat = [ [ [ NSOpenGLPixelFormat alloc ] initWithAttributes: attribs ] autorelease ];
+ NSOpenGLContext* fullScreenContext = [ [ NSOpenGLContext alloc ] initWithFormat: pixelFormat shareContext: nil ];
+
+ if( fullScreenContext == nil ) return;
+
+ CGDisplayErr err = CGCaptureAllDisplays( );
+ if( err != CGDisplayNoErr ) return;
+
+ [ fullScreenContext setFullScreen ];
+ [ fullScreenContext makeCurrentContext ];
+
+ glViewport( 0, 0, CGDisplayPixelsWide( kCGDirectMainDisplay ), CGDisplayPixelsHigh( kCGDirectMainDisplay ) );
+
+ BOOL stayInFullScreenMode = YES;
+ while( stayInFullScreenMode )
+ {
+ NSEvent* event;
+ while( event = [ NSApp nextEventMatchingMask: NSAnyEventMask untilDate: [ NSDate distantPast ] inMode: NSDefaultRunLoopMode dequeue: YES ] )
+ {
+ switch( [ event type ] )
+ {
+ case NSKeyDown:
+ stayInFullScreenMode = NO;
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ [ fullScreenContext flushBuffer ];
+ }
+
+ glClearColor( 0.0, 0.0, 0.0, 0.0 );
+ glClear( GL_COLOR_BUFFER_BIT );
+ [ fullScreenContext flushBuffer ];
+ glClear( GL_COLOR_BUFFER_BIT );
+ [ fullScreenContext flushBuffer ];
+
+ [ NSOpenGLContext clearCurrentContext ];
+ [ fullScreenContext clearDrawable ];
+ [ fullScreenContext release ];
+
+ CGReleaseAllDisplays( );
+
+ [ self setNeedsDisplay: YES ];
}
@end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|