diff options
author | Olivier Goffart <olivier.goffart@nokia.com> | 2011-04-18 16:31:19 (GMT) |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2011-04-18 16:31:19 (GMT) |
commit | fda9cc1d8a0e49817d1c6192c52d18dffcecf327 (patch) | |
tree | aa9a3209339af6882eb496ab827f5ac297452d66 /src/openvg/qpaintengine_vg.cpp | |
parent | 6814998ab4d9c6b0990b0bf01119ace69363ce3e (diff) | |
parent | c8aafe9a63b13a4af3049c43fcd5e8cce27db829 (diff) | |
download | Qt-fda9cc1d8a0e49817d1c6192c52d18dffcecf327.zip Qt-fda9cc1d8a0e49817d1c6192c52d18dffcecf327.tar.gz Qt-fda9cc1d8a0e49817d1c6192c52d18dffcecf327.tar.bz2 |
Merge remote-tracking branch 'origin/4.7' into qt-master-from-4.7
Conflicts:
qmake/generators/makefile.cpp
qmake/generators/win32/msbuild_objectmodel.cpp
qmake/generators/win32/msvc_vcxproj.cpp
src/corelib/global/qnamespace.h
src/gui/text/qtextcontrol.cpp
Diffstat (limited to 'src/openvg/qpaintengine_vg.cpp')
-rw-r--r-- | src/openvg/qpaintengine_vg.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index 3c2b5fd..588c35a 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -1021,9 +1021,11 @@ static VGImage toVGImage switch (img.format()) { case QImage::Format_Mono: img = image.convertToFormat(QImage::Format_MonoLSB, flags); + img.invertPixels(); format = VG_BW_1; break; case QImage::Format_MonoLSB: + img.invertPixels(); format = VG_BW_1; break; case QImage::Format_RGB32: @@ -3186,6 +3188,19 @@ void qt_vg_drawVGImageStencil bool QVGPaintEngine::canVgWritePixels(const QImage &image) const { Q_D(const QVGPaintEngine); + + // qt_vg_image_to_vg_format returns VG_sARGB_8888 as + // fallback case if no matching VG format is found. + // If given image format is not Format_ARGB32 and returned + // format is VG_sARGB_8888, it means that no match was + // found. In that case vgWritePixels cannot be used. + // Also 1-bit formats cannot be used directly either. + if ((image.format() != QImage::Format_ARGB32 + && qt_vg_image_to_vg_format(image.format()) == VG_sARGB_8888) + || image.depth() == 1) { + return false; + } + // vgWritePixels ignores masking, blending and xforms so we can only use it if // ALL of the following conditions are true: // - It is a simple translate, or a scale of -1 on the y-axis (inverted) |