| 611 | |
| 612 | #ifdef DEBUG |
| 613 | void |
| 614 | Image::printUnrenderedPixels(const RectI& roi) const |
| 615 | { |
| 616 | if (!_useBitmap) { |
| 617 | return; |
| 618 | } |
| 619 | QReadLocker k(&_entryLock); |
| 620 | const char* bm = _bitmap.getBitmapAt(roi.x1, roi.y1); |
| 621 | int roiw = roi.x2 - roi.x1; |
| 622 | int boundsW = _bitmap.getBounds().width(); |
| 623 | RectD bboxUnrendered; |
| 624 | bboxUnrendered.setupInfinity(); |
| 625 | RectD bboxUnavailable; |
| 626 | bboxUnavailable.setupInfinity(); |
| 627 | |
| 628 | bool hasUnrendered = false; |
| 629 | bool hasUnavailable = false; |
| 630 | |
| 631 | for ( int y = roi.y1; y < roi.y2; ++y, |
| 632 | bm += (boundsW - roiw) ) { |
| 633 | for (int x = roi.x1; x < roi.x2; ++x, ++bm) { |
| 634 | if (*bm == 0) { |
| 635 | if (x < bboxUnrendered.x1) { |
| 636 | bboxUnrendered.x1 = x; |
| 637 | } |
| 638 | if (x > bboxUnrendered.x2) { |
| 639 | bboxUnrendered.x2 = x; |
| 640 | } |
| 641 | if (y < bboxUnrendered.y1) { |
| 642 | bboxUnrendered.y1 = y; |
| 643 | } |
| 644 | if (y > bboxUnrendered.y2) { |
| 645 | bboxUnrendered.y2 = y; |
| 646 | } |
| 647 | hasUnrendered = true; |
| 648 | } else if (*bm == PIXEL_UNAVAILABLE) { |
| 649 | if (x < bboxUnavailable.x1) { |
| 650 | bboxUnavailable.x1 = x; |
| 651 | } |
| 652 | if (x > bboxUnavailable.x2) { |
| 653 | bboxUnavailable.x2 = x; |
| 654 | } |
| 655 | if (y < bboxUnavailable.y1) { |
| 656 | bboxUnavailable.y1 = y; |
| 657 | } |
| 658 | if (y > bboxUnavailable.y2) { |
| 659 | bboxUnavailable.y2 = y; |
| 660 | } |
| 661 | hasUnavailable = true; |
| 662 | } |
| 663 | } // for x |
| 664 | } // for y |
| 665 | if (hasUnrendered) { |
| 666 | qDebug() << "Unrenderer pixels in the following region:"; |
| 667 | bboxUnrendered.debug(); |
| 668 | } |
| 669 | if (hasUnavailable) { |
| 670 | qDebug() << "Unavailable pixels in the following region:"; |
no test coverage detected