[Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx: [400] trunk/fuse
                
                Brought to you by:
                
                    fredm
                    
                
            
            
        
        
        
    | 
      
      
      From: <fr...@us...> - 2007-06-26 12:07:48
      
     | 
| Revision: 400
          http://svn.sourceforge.net/fuse-for-macosx/?rev=400&view=rev
Author:   fredm
Date:     2007-06-26 05:07:47 -0700 (Tue, 26 Jun 2007)
Log Message:
-----------
Don't bother updating the screen if nothing has changed.
Modified Paths:
--------------
    trunk/fuse/fusepb/views/DisplayOpenGLView.h
    trunk/fuse/fusepb/views/DisplayOpenGLView.m
    trunk/fuse/ui/cocoa/cocoadisplay.h
    trunk/fuse/ui/cocoa/cocoadisplay.m
    trunk/fuse/ui/cocoa/cocoastatusbar.m
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.h
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.h	2007-06-24 21:52:32 UTC (rev 399)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.h	2007-06-26 12:07:47 UTC (rev 400)
@@ -66,6 +66,7 @@
   ui_statusbar_state disk_state;
   ui_statusbar_state mdr_state;
   ui_statusbar_state tape_state;
+  BOOL statusbar_updated;
 
   NSWindow *fullscreenWindow;
   NSWindow *windowedWindow;
Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m
===================================================================
--- trunk/fuse/fusepb/views/DisplayOpenGLView.m	2007-06-24 21:52:32 UTC (rev 399)
+++ trunk/fuse/fusepb/views/DisplayOpenGLView.m	2007-06-26 12:07:47 UTC (rev 400)
@@ -255,6 +255,8 @@
 
   currentScreenTex = 0;
 
+  statusbar_updated = NO;
+
   return self;
 }
 
@@ -430,7 +432,8 @@
   PIG_dirtytable *workdirty = NULL;
 
   [buffered_screen_lock lock];
-  if( NO == screenTexInitialised ) {
+  if( NO == screenTexInitialised ||
+      ( 0 == buffered_screen.dirty->count && NO == statusbar_updated ) ) {
     [buffered_screen_lock unlock];
     return;
   }
@@ -488,6 +491,8 @@
   /* Swap buffer to screen */
   [[self openGLContext] flushBuffer];
 
+  statusbar_updated = NO;
+
   [buffered_screen_lock unlock];
 }
 
@@ -941,18 +946,21 @@
 -(void) setDiskState:(NSNumber*)state
 {
   disk_state = [state unsignedCharValue];
+  statusbar_updated = YES;
   [[FuseController singleton] setDiskState:state];
 }
 
 -(void) setTapeState:(NSNumber*)state
 {
   tape_state = [state unsignedCharValue];
+  statusbar_updated = YES;
   [[FuseController singleton] setTapeState:state];
 }
 
 -(void) setMdrState:(NSNumber*)state
 {
   mdr_state = [state unsignedCharValue];
+  statusbar_updated = YES;
   [[FuseController singleton] setMdrState:state];
 }
 
Modified: trunk/fuse/ui/cocoa/cocoadisplay.h
===================================================================
--- trunk/fuse/ui/cocoa/cocoadisplay.h	2007-06-24 21:52:32 UTC (rev 399)
+++ trunk/fuse/ui/cocoa/cocoadisplay.h	2007-06-26 12:07:47 UTC (rev 400)
@@ -50,8 +50,6 @@
 extern NSLock *buffered_screen_lock;
 extern Cocoa_Texture buffered_screen;
 
-void cocoadisplay_display_updated( void );
-
 void copy_area( Cocoa_Texture *dest_screen, Cocoa_Texture *src_screen, PIG_rect *r );
 
 #endif			/* #ifndef FUSE_COCOADISPLAY_H */
Modified: trunk/fuse/ui/cocoa/cocoadisplay.m
===================================================================
--- trunk/fuse/ui/cocoa/cocoadisplay.m	2007-06-24 21:52:32 UTC (rev 399)
+++ trunk/fuse/ui/cocoa/cocoadisplay.m	2007-06-26 12:07:47 UTC (rev 400)
@@ -498,9 +498,3 @@
 
   return 0;
 }
-
-void
-cocoadisplay_display_updated( void )
-{
-  display_updated = 1;
-}
Modified: trunk/fuse/ui/cocoa/cocoastatusbar.m
===================================================================
--- trunk/fuse/ui/cocoa/cocoastatusbar.m	2007-06-24 21:52:32 UTC (rev 399)
+++ trunk/fuse/ui/cocoa/cocoastatusbar.m	2007-06-26 12:07:47 UTC (rev 400)
@@ -42,7 +42,6 @@
           withObject:[NSNumber numberWithUnsignedChar:state]
           waitUntilDone:NO
     ];
-    if ( settings_current.statusbar ) cocoadisplay_display_updated();
     return 0;
 
   case UI_STATUSBAR_ITEM_PAUSED:
@@ -55,7 +54,6 @@
           withObject:[NSNumber numberWithUnsignedChar:state]
           waitUntilDone:NO
     ];
-    if ( settings_current.statusbar ) cocoadisplay_display_updated();
     return 0;
 
   case UI_STATUSBAR_ITEM_MICRODRIVE:
@@ -64,7 +62,6 @@
           withObject:[NSNumber numberWithUnsignedChar:state]
           waitUntilDone:NO
     ];
-    if ( settings_current.statusbar ) cocoadisplay_display_updated();
     return 0;
 
   case UI_STATUSBAR_ITEM_MOUSE:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |