Changeset 561 for trunk/src/gui/painting/qoutlinemapper.cpp
- Timestamp:
- Feb 11, 2010, 11:19:06 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/vendor/nokia/qt/4.6.1 merged eligible /branches/vendor/nokia/qt/current merged eligible /branches/vendor/trolltech/qt/current 3-149
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
trunk/src/gui/painting/qoutlinemapper.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtGui module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 41 41 42 42 #include "qoutlinemapper_p.h" 43 43 #include <private/qpainterpath_p.h> 44 44 #include "qmath.h" 45 45 … … 199 199 } 200 200 } else { 201 // ## TODO: this case needs to be plain code polygonal paths 202 QPainterPath path; 203 if (m_element_types.isEmpty()) { 204 if (!m_elements.isEmpty()) 205 path.moveTo(m_elements.at(0)); 206 for (int i=1; i<m_elements.size(); ++i) 207 path.lineTo(m_elements.at(i)); 208 } else { 209 for (int i=0; i<m_elements.size(); ++i) { 210 switch (m_element_types.at(i)) { 211 case QPainterPath::MoveToElement: 212 path.moveTo(m_elements.at(i)); 213 break; 214 case QPainterPath::LineToElement: 215 path.lineTo(m_elements.at(i)); 216 break; 217 case QPainterPath::CurveToElement: 218 path.cubicTo(m_elements.at(i), m_elements.at(i+1), m_elements.at(i+2)); 219 i += 2; 220 break; 221 default: 222 Q_ASSERT(false); 223 break; 224 } 225 } 226 } 201 const QVectorPath vp((qreal *)m_elements.data(), m_elements.size(), m_element_types.size() ? m_element_types.data() : 0); 202 QPainterPath path = vp.convertToPainterPath(); 227 203 path = QTransform(m_m11, m_m12, m_m13, m_m21, m_m22, m_m23, m_dx, m_dy, m_m33).map(path); 204 if (!(m_outline.flags & QT_FT_OUTLINE_EVEN_ODD_FILL)) 205 path.setFillRule(Qt::WindingFill); 228 206 uint old_txop = m_txop; 229 207 m_txop = QTransform::TxNone; … … 248 226 249 227 #ifdef QT_DEBUG_CONVERT 250 printf(" - control point rect (%.2f, %.2f) %.2f x %.2f \n",228 printf(" - control point rect (%.2f, %.2f) %.2f x %.2f, clip=(%d,%d, %dx%d)\n", 251 229 controlPointRect.x(), controlPointRect.y(), 252 controlPointRect.width(), controlPointRect.height()); 230 controlPointRect.width(), controlPointRect.height(), 231 m_clip_rect.x(), m_clip_rect.y(), m_clip_rect.width(), m_clip_rect.height()); 253 232 #endif 254 233 … … 258 237 || controlPointRect.right() > QT_RASTER_COORD_LIMIT 259 238 || controlPointRect.top() < -QT_RASTER_COORD_LIMIT 260 || controlPointRect.bottom() > QT_RASTER_COORD_LIMIT); 239 || controlPointRect.bottom() > QT_RASTER_COORD_LIMIT 240 || controlPointRect.width() > QT_RASTER_COORD_LIMIT 241 || controlPointRect.height() > QT_RASTER_COORD_LIMIT); 261 242 262 243 if (do_clip) {
Note:
See TracChangeset
for help on using the changeset viewer.