[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog backend/render_handler_agg_style.h
From: |
Udo Giacomozzi |
Subject: |
[Gnash-commit] gnash ChangeLog backend/render_handler_agg_style.h |
Date: |
Wed, 28 May 2008 11:17:52 +0000 |
CVSROOT: /cvsroot/gnash
Module name: gnash
Changes by: Udo Giacomozzi <udog> 08/05/28 11:17:52
Modified files:
. : ChangeLog
backend : render_handler_agg_style.h
Log message:
backend/render_handler_agg_style.h: fix a bug with alpha-gradients
(fixes bug #23365)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6739&r2=1.6740
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg_style.h?cvsroot=gnash&r1=1.30&r2=1.31
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.6739
retrieving revision 1.6740
diff -u -b -r1.6739 -r1.6740
--- ChangeLog 28 May 2008 10:27:44 -0000 1.6739
+++ ChangeLog 28 May 2008 11:17:49 -0000 1.6740
@@ -1,3 +1,8 @@
+2008-05-28 Udo Giacomozzi <address@hidden>
+
+ * backend/render_handler_agg_style.h: fix a bug with alpha-gradients
+ (fixes bug #23365)
+
2008-05-28 Benjamin Wolsey <address@hidden>
* plugin/win32/plugin.cpp: fix build.
Index: backend/render_handler_agg_style.h
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_agg_style.h,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- backend/render_handler_agg_style.h 19 Feb 2008 19:20:47 -0000 1.30
+++ backend/render_handler_agg_style.h 28 May 2008 11:17:51 -0000 1.31
@@ -207,7 +207,8 @@
m_span_interpolator(m_tr),
m_gradient_func(),
m_gradient_adaptor(m_gradient_func),
- m_sg(m_span_interpolator, m_gradient_adaptor, m_gradient_lut, 0,
norm_size)
+ m_sg(m_span_interpolator, m_gradient_adaptor, m_gradient_lut, 0,
norm_size),
+ m_need_premultiply(false)
{
m_is_solid = false;
@@ -231,7 +232,10 @@
trans_color.m_a = trans_color.m_a>127 ? 127 : trans_color.m_a;
#endif
- m_gradient_lut.add_color(gr.m_ratio/255.0,
agg::rgba8_pre(trans_color.m_r,
+ if (trans_color.m_a < 255)
+ m_need_premultiply=true;
+
+ m_gradient_lut.add_color(gr.m_ratio/255.0, agg::rgba8(trans_color.m_r,
trans_color.m_g, trans_color.m_b, trans_color.m_a));
} // for
@@ -249,6 +253,10 @@
void generate_span(color_type* span, int x, int y, unsigned len)
{
m_sg.generate(span, x, y, len);
+
+ if (m_need_premultiply)
+ while (len--)
+ (span++)->premultiply();
}
// Provide access to our gradient adaptor to allow re-initialization of
@@ -285,6 +293,9 @@
// Span generator
sg_type m_sg;
+ // premultiplication necessary?
+ bool m_need_premultiply;
+
}; // agg_style_gradient
- [Gnash-commit] gnash ChangeLog backend/render_handler_agg_style.h,
Udo Giacomozzi <=