gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/trunk r11985: Prevent rounding errors that


From: Bastiaan Jacques
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r11985: Prevent rounding errors that were causing some rendering artifacts that
Date: Fri, 05 Mar 2010 18:58:43 +0100
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 11985
committer: Bastiaan Jacques <address@hidden>
branch nick: trunk
timestamp: Fri 2010-03-05 18:58:43 +0100
message:
  Prevent rounding errors that were causing some rendering artifacts that
  occurred as a result of anti-aliasing.
modified:
  backend/Renderer_cairo.cpp
=== modified file 'backend/Renderer_cairo.cpp'
--- a/backend/Renderer_cairo.cpp        2010-03-05 04:19:28 +0000
+++ b/backend/Renderer_cairo.cpp        2010-03-05 17:58:43 +0000
@@ -575,7 +575,6 @@
       set_color(bg_color);
     }
 
-    cairo_set_matrix(_cr, &_stage_mat);
 
     for (size_t rno=0; rno < _invalidated_ranges.size(); rno++) {
         const geometry::Range2d<float>& range =
@@ -587,6 +586,7 @@
             cairo_paint(_cr);
             // reset any rectangles that might have been added to the path...
             cairo_new_path(_cr);
+            cairo_set_matrix(_cr, &_stage_mat);
             return;
         }
 
@@ -595,16 +595,19 @@
                maxx = range.getMaxX(),
                maxy = range.getMaxY();
 
-        snap_to_pixel(_cr, x, y, false);
-        snap_to_pixel(_cr, maxx, maxy, true);
+        // Transform to pixels.
+        cairo_matrix_transform_point(&_stage_mat, &x, &y);
+        cairo_matrix_transform_point(&_stage_mat, &maxx, &maxy);
 
-        cairo_rectangle(_cr, x, y, maxx - x, maxy - y);
+        cairo_rectangle(_cr, rint(x), rint(y), rint(maxx - x), rint(maxy - y));
     }
 
     cairo_clip(_cr);
 
     // Paint the background color over the clipped region(s).
     cairo_paint(_cr);
+
+    cairo_set_matrix(_cr, &_stage_mat);
 }
 
 void


reply via email to

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