void QS60PaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pm, const QPointF &sr) { QS60PixmapData *srcData = static_cast<QS60PixmapData *>(pm.pixmapData()); srcData->beginDataAccess(); QRasterPaintEngine::drawTiledPixmap(r, pm, sr); srcData->endDataAccess(); }
void QS60PaintEngine::drawPixmap(const QPointF &p, const QPixmap &pm) { QS60PixmapData *srcData = static_cast<QS60PixmapData *>(pm.pixmapData()); srcData->beginDataAccess(); QRasterPaintEngine::drawPixmap(p, pm); srcData->endDataAccess(); }
void QS60WindowSurface::beginPaint(const QRegion &rgn) { #ifdef Q_SYMBIAN_SUPPORTS_SURFACES S60->wsSession().Finish(); #endif QWidgetPrivate *windowPrivate = qt_widget_private(window()); if (!windowPrivate->isOpaque || blitWriteAlpha(windowPrivate)) { QS60PixmapData *pixmapData = static_cast<QS60PixmapData *>(d_ptr->device.data_ptr().data()); TDisplayMode mode = displayMode(false); if (pixmapData->cfbsBitmap->DisplayMode() != mode) pixmapData->convertToDisplayMode(mode); pixmapData->beginDataAccess(); if (!windowPrivate->isOpaque) { QPainter p(&pixmapData->image); p.setCompositionMode(QPainter::CompositionMode_Source); const QVector<QRect> rects = rgn.rects(); const QColor blank = Qt::transparent; for (QVector<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it) { p.fillRect(*it, blank); } } pixmapData->endDataAccess(); } }
void QS60WindowSurface::beginPaint(const QRegion &rgn) { if (!qt_widget_private(window())->isOpaque) { QS60PixmapData *pixmapData = static_cast<QS60PixmapData *>(d_ptr->device.data_ptr().data()); pixmapData->beginDataAccess(); QImage &image = pixmapData->image; QRgb *data = reinterpret_cast<QRgb *>(image.bits()); const int row_stride = image.bytesPerLine() / 4; const QVector<QRect> rects = rgn.rects(); for (QVector<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it) { const int x_start = it->x(); const int width = it->width(); const int y_start = it->y(); const int height = it->height(); QRgb *row = data + row_stride * y_start; for (int y = 0; y < height; ++y) { qt_memfill(row + x_start, 0U, width); row += row_stride; } } pixmapData->endDataAccess(); } }
void QS60PaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) { if (pm.pixmapData()->classId() == QPixmapData::RasterClass) { QS60PixmapData *srcData = static_cast<QS60PixmapData *>(pm.pixmapData()); srcData->beginDataAccess(); QRasterPaintEngine::drawPixmap(r, pm, sr); srcData->endDataAccess(); } else { QRasterPaintEngine::drawPixmap(r, pm, sr); } }