gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog backend/render_handler.h backen...


From: Udo Giacomozzi
Subject: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen...
Date: Wed, 18 Jul 2007 10:03:05 +0000

CVSROOT:        /cvsroot/gnash
Module name:    gnash
Changes by:     Udo Giacomozzi <udog>   07/07/18 10:03:05

Modified files:
        .              : ChangeLog 
        backend        : render_handler.h render_handler_agg.cpp 
                         render_handler_tri.cpp render_handler_tri.h 
        gui            : gtk.cpp gtksup.h 

Log message:
        * backend/render_handler.h, backend/render_handler_agg.cpp,   
backend/render_handler_tri.{cpp,h}: new methods pixel_to_world * gui/gtk.cpp, 
gui/gtksup.h: Fix re-rendering on expose for scaled movies

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3757&r2=1.3758
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler.h?cvsroot=gnash&r1=1.43&r2=1.44
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.cpp?cvsroot=gnash&r1=1.91&r2=1.92
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_tri.cpp?cvsroot=gnash&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_tri.h?cvsroot=gnash&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtk.cpp?cvsroot=gnash&r1=1.99&r2=1.100
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtksup.h?cvsroot=gnash&r1=1.44&r2=1.45

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.3757
retrieving revision 1.3758
diff -u -b -r1.3757 -r1.3758
--- ChangeLog   18 Jul 2007 09:08:30 -0000      1.3757
+++ ChangeLog   18 Jul 2007 10:03:04 -0000      1.3758
@@ -2,6 +2,9 @@
        
        * gui/gtk.cpp: Make the drawing area resize also vertically with the 
window,
          fixes bug #18871
+       * backend/render_handler.h, backend/render_handler_agg.cpp, 
+         backend/render_handler_tri.{cpp,h}: new methods "pixel_to_world"
+       * gui/gtk.cpp, gui/gtksup.h: Fix re-rendering on expose for scaled 
movies
 
 2007-07-18 Zou Lunkai <address@hidden>
        

Index: backend/render_handler.h
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- backend/render_handler.h    13 Jul 2007 16:05:08 -0000      1.43
+++ backend/render_handler.h    18 Jul 2007 10:03:04 -0000      1.44
@@ -18,7 +18,7 @@
 // 
 //
 
-/* $Id: render_handler.h,v 1.43 2007/07/13 16:05:08 strk Exp $ */
+/* $Id: render_handler.h,v 1.44 2007/07/18 10:03:04 udog Exp $ */
 
 #ifndef RENDER_HANDLER_H
 #define RENDER_HANDLER_H
@@ -308,6 +308,18 @@
        /// Converts world coordinates to pixel coordinates
        virtual geometry::Range2d<int> world_to_pixel(const rect& worldbounds) 
= 0;
   
+       /// Converts pixel coordinates to world coordinates (TWIPS)
+       virtual point pixel_to_world(int x, int y) = 0;
+       
+       virtual geometry::Range2d<float> pixel_to_world(const 
geometry::Range2d<int>& pixelbounds)
+  {
+    point topleft     = pixel_to_world(pixelbounds.getMinX(), 
pixelbounds.getMinY());
+    point bottomright = pixel_to_world(pixelbounds.getMaxX(), 
pixelbounds.getMaxY());
+    
+    return geometry::Range2d<float> (topleft.m_x, topleft.m_y, 
+      bottomright.m_x, bottomright.m_y);
+  }
+  
        virtual geometry::Range2d<int> world_to_pixel(const 
geometry::Range2d<float>& worldbounds)
        {
                if ((worldbounds.isNull() || worldbounds.isWorld()))    
@@ -317,6 +329,7 @@
                                           worldbounds.getMaxX(), 
worldbounds.getMaxY()));  
        }
                
+               
        /// Bracket the displaying of a frame from a movie.
        //
        /// Set up to render a full frame from a movie and fills the

Index: backend/render_handler_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_agg.cpp,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -b -r1.91 -r1.92
--- backend/render_handler_agg.cpp      13 Jul 2007 16:05:08 -0000      1.91
+++ backend/render_handler_agg.cpp      18 Jul 2007 10:03:04 -0000      1.92
@@ -17,7 +17,7 @@
 
  
 
-/* $Id: render_handler_agg.cpp,v 1.91 2007/07/13 16:05:08 strk Exp $ */
+/* $Id: render_handler_agg.cpp,v 1.92 2007/07/18 10:03:04 udog Exp $ */
 
 // Original version by Udo Giacomozzi and Hannes Mayr, 
 // INDUNET GmbH (www.indunet.it)
@@ -1913,8 +1913,8 @@
                // and Intersect() against valid range instead.
                point p(world_x, world_y);
                stage_matrix.transform(p);
-               x = p.m_x;
-               y = p.m_y;
+               x = (int)p.m_x;
+               y = (int)p.m_y;
        }
 
   geometry::Range2d<int> world_to_pixel(const rect& wb)
@@ -1944,6 +1944,14 @@
     return geometry::Range2d<int>(xmin, ymin, xmax, ymax);
   }
   
+  point 
+  pixel_to_world(int x, int y)
+  {
+    point p(x, y);
+    stage_matrix.transform_by_inverse(p);
+    return p;    
+  };
+  
   void set_invalidated_region_world() {
     InvalidatedRanges ranges;
     ranges.setWorld();

Index: backend/render_handler_tri.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_tri.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- backend/render_handler_tri.cpp      13 Jul 2007 16:05:08 -0000      1.16
+++ backend/render_handler_tri.cpp      18 Jul 2007 10:03:04 -0000      1.17
@@ -18,7 +18,7 @@
 // 
 //
 
-/* $Id: render_handler_tri.cpp,v 1.16 2007/07/13 16:05:08 strk Exp $ */
+/* $Id: render_handler_tri.cpp,v 1.17 2007/07/18 10:03:04 udog Exp $ */
 
 #include "render_handler_tri.h"
 
@@ -346,6 +346,12 @@
   assert(0); // not implemented (and currently not required for tri. renderers)
 }
 
+point 
+triangulating_render_handler::pixel_to_world(int /*x*/, int /*y*/)
+{
+  assert(0); // not implemented (and currently not required for tri. renderers)
+}
+
 tri_cache_manager::~tri_cache_manager()
 {
        for (MeshSetList::iterator i=m_cached_meshes.begin(), 
e=m_cached_meshes.end();

Index: backend/render_handler_tri.h
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_tri.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- backend/render_handler_tri.h        13 Jul 2007 16:05:08 -0000      1.13
+++ backend/render_handler_tri.h        18 Jul 2007 10:03:04 -0000      1.14
@@ -18,7 +18,7 @@
 // 
 //
 
-/* $Id: render_handler_tri.h,v 1.13 2007/07/13 16:05:08 strk Exp $ */
+/* $Id: render_handler_tri.h,v 1.14 2007/07/18 10:03:04 udog Exp $ */
 
 #ifndef GNASH_RENDER_HANDLER_TRI_H
 #define GNASH_RENDER_HANDLER_TRI_H
@@ -140,6 +140,8 @@
   /// Translates world coordinates to pixel coordinates
   geometry::Range2d<int> world_to_pixel(const rect& worldbounds);
     
+  point pixel_to_world(int x, int y);
+    
   // --- helper methods 
--------------------------------------------------------
   // These methods are called by draw_shape_character() and normally don't need
   // to be accessed by other classes. They are here to make the class more

Index: gui/gtk.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/gui/gtk.cpp,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -b -r1.99 -r1.100
--- gui/gtk.cpp 18 Jul 2007 09:18:42 -0000      1.99
+++ gui/gtk.cpp 18 Jul 2007 10:03:04 -0000      1.100
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: gtk.cpp,v 1.99 2007/07/18 09:18:42 udog Exp $ */
+/* $Id: gtk.cpp,v 1.100 2007/07/18 10:03:04 udog Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -267,6 +267,31 @@
 #endif
 }
 
+void
+GtkGui::rerenderPixels(int xmin, int ymin, int xmax, int ymax) 
+{
+
+  // This function is called in expose events to force partly re-rendering
+  // of the window. The coordinates are PIXELS.
+   
+  // The macro PIXELS_TO_TWIPS can't be used since the renderer might do 
+  // scaling.
+   
+#ifdef RENDERER_AGG
+       InvalidatedRanges ranges;
+       
+       geometry::Range2d<int> exposed_pixels(xmin, ymin, xmax, ymax);
+       
+       geometry::Range2d<float> exposed_twips = 
+    _renderer->pixel_to_world(exposed_pixels); 
+       
+       ranges.add(exposed_twips);
+       setInvalidatedRegions(ranges);
+#endif
+  renderBuffer();   
+
+}
+
 #ifdef RENDERER_AGG
 void
 GtkGui::setInvalidatedRegions(const InvalidatedRanges& ranges)
@@ -1024,17 +1049,11 @@
 
        GtkGui* gui = static_cast<GtkGui*>(data);
 
-       InvalidatedRanges ranges;
 
        int xmin = event->area.x, xmax = event->area.x + event->area.width,
            ymin = event->area.y, ymax = event->area.y + event->area.height;
 
-       geometry::Range2d<float> exposed(PIXELS_TO_TWIPS(xmin),
-          PIXELS_TO_TWIPS(ymin), PIXELS_TO_TWIPS(xmax), PIXELS_TO_TWIPS(ymax));
-
-       ranges.add(exposed);
-       gui->setInvalidatedRegions(ranges);
-       gui->renderBuffer();
+  gui->rerenderPixels(xmin, ymin, xmax, ymax);
 
        return TRUE;
 }

Index: gui/gtksup.h
===================================================================
RCS file: /cvsroot/gnash/gnash/gui/gtksup.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- gui/gtksup.h        1 Jul 2007 10:54:03 -0000       1.44
+++ gui/gtksup.h        18 Jul 2007 10:03:04 -0000      1.45
@@ -136,6 +136,8 @@
 
     GdkPixbuf* create_pixbuf(const gchar *filename);
     
+    void GtkGui::rerenderPixels(int xmin, int ymin, int xmax, int ymax);
+    
 #ifdef RENDERER_AGG    
     void setInvalidatedRegions(const InvalidatedRanges& ranges);
     bool want_multiple_regions() { return true; }




reply via email to

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