From: Fridrich S. <str...@us...> - 2008-07-16 10:47:42
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4774/src/lib Modified Files: Tag: STABLE-0-1-0 WPG1Parser.cpp Log Message: fix path coordinates + fill attributes Index: WPG1Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.cpp,v retrieving revision 1.33.2.5 retrieving revision 1.33.2.6 diff -u -d -r1.33.2.5 -r1.33.2.6 --- WPG1Parser.cpp 16 Jul 2008 09:51:07 -0000 1.33.2.5 +++ WPG1Parser.cpp 16 Jul 2008 10:47:38 -0000 1.33.2.6 @@ -447,6 +447,10 @@ int cy = readS16(); int rx = readS16(); int ry = readS16(); + int rotation = readS16(); + int beginAngle = readS16(); + int endAngle = readS16(); + unsigned flags = readU16(); libwpg::WPGPoint center; center.x = (double)cx/1200.0; @@ -477,7 +481,7 @@ path.closed = false; long xInitial = readS16(); long yInitial = readS16(); - path.moveTo(libwpg::WPGPoint((double)xInitial/1200.0, (double)yInitial/1200.0)); + path.moveTo(libwpg::WPGPoint((double)xInitial/1200.0, (double)(m_height-yInitial)/1200.0)); for (unsigned i = 1; i < (count-1)/3; i++) { long xControl1 = readS16(); @@ -486,12 +490,12 @@ long yControl2 = readS16(); long xCoordinate = readS16(); long yCoordinate = readS16(); - path.curveTo(libwpg::WPGPoint((double)xControl1/1200.0, (double)yControl1/1200.0), - libwpg::WPGPoint((double)xControl2/1200.0, (double)yControl2/1200.0), - libwpg::WPGPoint((double)xCoordinate/1200.0, (double)yCoordinate/1200.0)); + path.curveTo(libwpg::WPGPoint((double)xControl1/1200.0, (double)(m_height-yControl1)/1200.0), + libwpg::WPGPoint((double)xControl2/1200.0, (double)(m_height-yControl2)/1200.0), + libwpg::WPGPoint((double)xCoordinate/1200.0, (double)(m_height-yCoordinate)/1200.0)); } - m_painter->setBrush(m_brush); + m_painter->setBrush(path.closed ? m_brush : libwpg::WPGBrush()); m_painter->setPen(m_pen); m_painter->drawPath(path); |