Commit fd30747b5b54a760ca280ad1e75ce87026478f5e

Replace qt_vg_imageBits() with constBits() in the OpenVG code

Reviewed-by: Sarah Smith
  
978978 int height = sourceImage.height();
979979 int width = sourceImage.width();
980980 for (int y=0; y<height; ++y) {
981 uchar *source = sourceImage.scanLine(y);
981 const uchar *source = sourceImage.constScanLine(y);
982982 QRgb *target = reinterpret_cast<QRgb *>(dest.scanLine(y));
983983 for (int x=0; x < width; ++x)
984984 target[x] = (source[x>>3] >> (x&7)) & 1 ? fg : bg;
986986 return dest;
987987}
988988
989// defined in qpixmapdata_vg.cpp.
990const uchar *qt_vg_imageBits(const QImage& image);
991
992989static VGImage toVGImage
993990 (const QImage & image, Qt::ImageConversionFlags flags = Qt::AutoColor)
994991{
10191019 break;
10201020 }
10211021
1022 const uchar *pixels = qt_vg_imageBits(img);
1022 const uchar *pixels = img.constBits();
10231023
10241024 VGImage vgImg = QVGImagePool::instance()->createPermanentImage
10251025 (format, img.width(), img.height(), VG_IMAGE_QUALITY_FASTER);
10631063 break;
10641064 }
10651065
1066 const uchar *pixels = qt_vg_imageBits(img) + bpp * sr.x() +
1066 const uchar *pixels = img.constBits() + bpp * sr.x() +
10671067 img.bytesPerLine() * sr.y();
10681068
10691069 VGImage vgImg = QVGImagePool::instance()->createPermanentImage
10851085 painter.drawImage(0, 0, image);
10861086 painter.end();
10871087
1088 const uchar *pixels = qt_vg_imageBits(img);
1088 const uchar *pixels = img.constBits();
10891089
10901090 VGImage vgImg = QVGImagePool::instance()->createPermanentImage
10911091 (VG_sARGB_8888_PRE, img.width(), img.height(), VG_IMAGE_QUALITY_FASTER);
11071107 painter.drawImage(QPoint(0, 0), image, sr);
11081108 painter.end();
11091109
1110 const uchar *pixels = qt_vg_imageBits(img);
1110 const uchar *pixels = img.constBits();
11111111
11121112 VGImage vgImg = QVGImagePool::instance()->createPermanentImage
11131113 (VG_sARGB_8888_PRE, img.width(), img.height(), VG_IMAGE_QUALITY_FASTER);
31723172 if (!scaledImage.isNull()) { // Not a space character
31733173 if (scaledImage.format() == QImage::Format_Indexed8) {
31743174 vgImage = vgCreateImage(VG_A_8, scaledImage.width(), scaledImage.height(), VG_IMAGE_QUALITY_FASTER);
3175 vgImageSubData(vgImage, qt_vg_imageBits(scaledImage), scaledImage.bytesPerLine(), VG_A_8, 0, 0, scaledImage.width(), scaledImage.height());
3175 vgImageSubData(vgImage, scaledImage.constBits(), scaledImage.bytesPerLine(), VG_A_8, 0, 0, scaledImage.width(), scaledImage.height());
31763176 } else if (scaledImage.format() == QImage::Format_Mono) {
31773177 QImage img = scaledImage.convertToFormat(QImage::Format_Indexed8);
31783178 vgImage = vgCreateImage(VG_A_8, img.width(), img.height(), VG_IMAGE_QUALITY_FASTER);
3179 vgImageSubData(vgImage, qt_vg_imageBits(img), img.bytesPerLine(), VG_A_8, 0, 0, img.width(), img.height());
3179 vgImageSubData(vgImage, img.constBits(), img.bytesPerLine(), VG_A_8, 0, 0, img.width(), img.height());
31803180 } else {
31813181 QImage img = scaledImage.convertToFormat(QImage::Format_ARGB32_Premultiplied);
31823182 vgImage = vgCreateImage(VG_sARGB_8888_PRE, img.width(), img.height(), VG_IMAGE_QUALITY_FASTER);
3183 vgImageSubData(vgImage, qt_vg_imageBits(img), img.bytesPerLine(), VG_sARGB_8888_PRE, 0, 0, img.width(), img.height());
3183 vgImageSubData(vgImage, img.constBits(), img.bytesPerLine(), VG_sARGB_8888_PRE, 0, 0, img.width(), img.height());
31843184 }
31853185 }
31863186 origin[0] = -metrics.x.toReal() + 0.5f;
36473647 if (vgImage == VG_INVALID_HANDLE)
36483648 return;
36493649 vgImageSubData
3650 (vgImage, qt_vg_imageBits(img) + img.bytesPerLine() * (img.height() - 1),
3650 (vgImage, img.constBits() + img.bytesPerLine() * (img.height() - 1),
36513651 -(img.bytesPerLine()), VG_sARGB_8888_PRE, 0, 0,
36523652 img.width(), img.height());
36533653
  
231231 return source.paintEngine();
232232}
233233
234// This function works around QImage::bits() making a deep copy if the
235// QImage is not const. We force it to be const and then get the bits.
236// XXX: Should add a QImage::constBits() in the future to replace this.
237const uchar *qt_vg_imageBits(const QImage& image)
238{
239 return image.bits();
240}
241
242234VGImage QVGPixmapData::toVGImage()
243235{
244236 if (!isValid())
263263 if (!source.isNull() && recreate) {
264264 vgImageSubData
265265 (vgImage,
266 qt_vg_imageBits(source), source.bytesPerLine(),
266 source.constBits(), source.bytesPerLine(),
267267 VG_sARGB_8888_PRE, 0, 0, w, h);
268268 }
269269
662662 if (bitmap) {
663663 if (bitmap->Create(TSize(source.width(), source.height()),
664664 EColor16MAP) == KErrNone) {
665 const uchar *sptr = qt_vg_imageBits(source);
665 const uchar *sptr = source.constBits();
666666 bitmap->BeginDataAccess();
667667
668668 uchar *dptr = (uchar*)bitmap->DataAddress();