gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog gui/gnash.cpp gui/gui.h


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog gui/gnash.cpp gui/gui.h
Date: Mon, 31 Jul 2006 00:05:19 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/07/31 00:05:19

Modified files:
        .              : ChangeLog 
        gui            : gnash.cpp gui.h 

Log message:
                * gui/gui.h: added NullGui class definition.
                * gui/gnash.cpp: use Gui trough a pointer, to allow for
                  dynamic polymorphism. Use NullGui when rendering is
                  disabled.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.559&r2=1.560
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gnash.cpp?cvsroot=gnash&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gui.h?cvsroot=gnash&r1=1.8&r2=1.9

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.559
retrieving revision 1.560
diff -u -b -r1.559 -r1.560
--- ChangeLog   30 Jul 2006 15:54:00 -0000      1.559
+++ ChangeLog   31 Jul 2006 00:05:19 -0000      1.560
@@ -1,3 +1,10 @@
+2006-07-31 Sandro Santilli <address@hidden>
+
+       * gui/gui.h: added NullGui class definition.
+       * gui/gnash.cpp: use Gui trough a pointer, to allow for
+         dynamic polymorphism. Use NullGui when rendering is
+         disabled.
+
 2006-07-30  Rob Savoye  <address@hidden>
 
        * server/network.h, network.cpp: Remove as they now live in

Index: gui/gnash.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gnash.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- gui/gnash.cpp       29 Jul 2006 13:48:28 -0000      1.20
+++ gui/gnash.cpp       31 Jul 2006 00:05:19 -0000      1.21
@@ -316,13 +316,24 @@
       height = int(movie_height * scale);
     }
 
-    GUI_CLASS gui(windowid, scale, do_loop, bit_depth);
+    std::auto_ptr<Gui> gui_ptr;
+    if ( do_render )
+    {
+       gui_ptr.reset(new GUI_CLASS(windowid, scale, do_loop, bit_depth));
+
 #ifdef GUI_SDL
-    if (!sdl_abort) {
-      gui.disableCoreTrap();
+       if (!sdl_abort && sdlgui=dynamic_cast<SDLGui>(gui_ptr.get()>) ) {
+         sdlgui.disableCoreTrap();
     }
 #endif
 
+    }
+    else
+    {
+       gui_ptr.reset(new NullGui);
+    }
+    Gui& gui = *gui_ptr;
+
     gui.init(argc, &argv);
 
     gui.createWindow(width, height);

Index: gui/gui.h
===================================================================
RCS file: /sources/gnash/gnash/gui/gui.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- gui/gui.h   27 Jul 2006 00:15:22 -0000      1.8
+++ gui/gui.h   31 Jul 2006 00:05:19 -0000      1.9
@@ -64,6 +64,10 @@
     
     bool init(int xid, int argc, char **argv[]);
     bool createWindow(int xid, int width, int height);    
+
+    virtual bool init(int argc, char **argv[]) = 0;
+    virtual void setCallback(unsigned int interval) = 0;
+    virtual void setTimeout(unsigned int timeout) = 0;
     virtual bool createWindow(int width, int height) = 0;
     virtual bool run(void *) = 0;
     virtual bool createMenu() = 0;
@@ -105,6 +109,33 @@
     render_handler* _renderer;
 };
  
+/// Null GUI, used when rendering is disabled
+class NullGui : public Gui {
+
+public: 
+
+       NullGui() {}
+       ~NullGui() {}
+       void setCallback(unsigned int interval) {}
+       void setTimeout(unsigned int timeout) {}
+       bool init(int argc, char **argv[]) { return true; }
+       bool createWindow(int , int)
+       {
+               return true;
+       }
+       bool run(void *)
+       {
+               while (true)
+               {
+                       Gui::advance_movie(this);
+               }
+               return false;
+       }
+       bool createMenu()  { return true; }
+       bool setupEvents()  { return true; }
+       void renderBuffer()  { }
+};
+ 
   
 } // end of gnash namespace
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]