src/gui/painting/qrasterizer.cpp
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
equal deleted inserted replaced
27:93b982ccede2 31:5daf16870df6
   196 
   196 
   197     QScanConverter scanConverter;
   197     QScanConverter scanConverter;
   198 };
   198 };
   199 
   199 
   200 QScanConverter::QScanConverter()
   200 QScanConverter::QScanConverter()
   201    : m_alloc(0)
   201    : m_lines(0)
       
   202    , m_alloc(0)
   202    , m_size(0)
   203    , m_size(0)
   203    , m_intersections(0)
   204    , m_intersections(0)
       
   205    , m_active(0)
   204 {
   206 {
   205 }
   207 }
   206 
   208 
   207 QScanConverter::~QScanConverter()
   209 QScanConverter::~QScanConverter()
   208 {
   210 {
   308 
   310 
   309 // should be a member function but VC6 doesn't support member template functions
   311 // should be a member function but VC6 doesn't support member template functions
   310 template <typename T>
   312 template <typename T>
   311 void qScanConvert(QScanConverter &d, T allVertical)
   313 void qScanConvert(QScanConverter &d, T allVertical)
   312 {
   314 {
       
   315     if (!d.m_lines.size()) {
       
   316         d.m_active.reset();
       
   317         return;
       
   318     }
   313     qSort(d.m_lines.data(), d.m_lines.data() + d.m_lines.size(), QT_PREPEND_NAMESPACE(topOrder));
   319     qSort(d.m_lines.data(), d.m_lines.data() + d.m_lines.size(), QT_PREPEND_NAMESPACE(topOrder));
   314     int line = 0;
   320     int line = 0;
   315     for (int y = d.m_lines.first().top; y <= d.m_bottom; ++y) {
   321     for (int y = d.m_lines.first().top; y <= d.m_bottom; ++y) {
   316         for (; line < d.m_lines.size() && d.m_lines.at(line).top == y; ++line) {
   322         for (; line < d.m_lines.size() && d.m_lines.at(line).top == y; ++line) {
   317             // add node to active list
   323             // add node to active list