[Top][All Lists]
[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; }