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_agg.cpp [release_0


From: Udo Giacomozzi
Subject: [Gnash-commit] gnash ChangeLog backend/render_handler_agg.cpp [release_0_7_2]
Date: Sat, 04 Nov 2006 12:43:50 +0000

CVSROOT:        /cvsroot/gnash
Module name:    gnash
Branch:         release_0_7_2
Changes by:     Udo Giacomozzi <udog>   06/11/04 12:43:50

Modified files:
        .              : ChangeLog 
        backend        : render_handler_agg.cpp 

Log message:
        optimized alpha mask clearing

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&only_with_tag=release_0_7_2&r1=1.1412.2.73&r2=1.1412.2.74
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.cpp?cvsroot=gnash&only_with_tag=release_0_7_2&r1=1.29.2.12&r2=1.29.2.13

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.1412.2.73
retrieving revision 1.1412.2.74
diff -u -b -r1.1412.2.73 -r1.1412.2.74
--- ChangeLog   4 Nov 2006 12:24:35 -0000       1.1412.2.73
+++ ChangeLog   4 Nov 2006 12:43:50 -0000       1.1412.2.74
@@ -1,7 +1,7 @@
 2006-11-04 Udo Giacomozzi <address@hidden>
 
         * backend/render_handler_agg.cpp: removed compatibility include as
-        it is not enough anyway; optimized screen clearing
+        it is not enough anyway; optimized screen and mask clearing
 
 2006-11-04 Markus Gothe <address@hidden>
 

Index: backend/render_handler_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_agg.cpp,v
retrieving revision 1.29.2.12
retrieving revision 1.29.2.13
diff -u -b -r1.29.2.12 -r1.29.2.13
--- backend/render_handler_agg.cpp      4 Nov 2006 12:24:36 -0000       
1.29.2.12
+++ backend/render_handler_agg.cpp      4 Nov 2006 12:43:50 -0000       
1.29.2.13
@@ -16,7 +16,7 @@
 
  
 
-/* $Id: render_handler_agg.cpp,v 1.29.2.12 2006/11/04 12:24:36 udog Exp $ */
+/* $Id: render_handler_agg.cpp,v 1.29.2.13 2006/11/04 12:43:50 udog Exp $ */
 
 // Original version by Udo Giacomozzi and Hannes Mayr, 
 // INDUNET GmbH (www.indunet.it)
@@ -261,7 +261,22 @@
     
     m_rbuf.attach(m_buffer, width, height, width);
     
-    m_rbase.clear(agg::gray8(0));
+    // NOTE: The buffer is *not* cleared. The clear() function must be called
+    // to clear the buffer (alpha=0). The reason is to avoid clearing the
+    // whole mask when only a small portion is really used.
+  }
+  
+  void clear(unsigned int left, unsigned int top, unsigned int width,
+    unsigned int height) {
+    
+    if (!width) return;
+    
+    unsigned int y;
+    const unsigned int max_y = top+height; // to be exact, it's one off the 
max.
+    const agg::gray8 black(0);
+    
+    for (y=top; y<max_y; y++)
+      m_pixf.copy_hline(left, y, width, black);
   }
   
   ~agg_alpha_mask() 
@@ -634,6 +649,9 @@
     
     agg_alpha_mask* new_mask = new agg_alpha_mask(xres, yres); 
     
+    new_mask->clear(m_clip_xmin, m_clip_ymin,
+         m_clip_xmax-m_clip_xmin+1, m_clip_ymax-m_clip_ymin+1); 
+    
     m_alpha_mask.push_back(new_mask);
     
        }




reply via email to

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