diff options
author | Samuel Rødal <sroedal@trolltech.com> | 2010-03-25 11:14:40 (GMT) |
---|---|---|
committer | Samuel Rødal <sroedal@trolltech.com> | 2010-03-26 09:49:09 (GMT) |
commit | fa44a37174f51f3d2786fc6e60d8fa5561a4df6c (patch) | |
tree | 014108ee7598fb3a246bad894cb0a47da36115b9 /src/gui/painting/qdrawhelper_neon_p.h | |
parent | 0ad22e6cd1cb353e2e1244c1eb7257cb3af9def4 (diff) | |
download | Qt-fa44a37174f51f3d2786fc6e60d8fa5561a4df6c.zip Qt-fa44a37174f51f3d2786fc6e60d8fa5561a4df6c.tar.gz Qt-fa44a37174f51f3d2786fc6e60d8fa5561a4df6c.tar.bz2 |
Optimized SourceOver and 16 bit dest fetches, dest stores using NEON.
This makes for example linear gradient blending on top of RGB16
156 % faster (from 20.4 fps to 52.3 fps in my benchmark).
Task-number: QTBUG-6684
Reviewed-by: Gunnar Sletta
Diffstat (limited to 'src/gui/painting/qdrawhelper_neon_p.h')
-rw-r--r-- | src/gui/painting/qdrawhelper_neon_p.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gui/painting/qdrawhelper_neon_p.h b/src/gui/painting/qdrawhelper_neon_p.h index 6f25243..d6a4509 100644 --- a/src/gui/painting/qdrawhelper_neon_p.h +++ b/src/gui/painting/qdrawhelper_neon_p.h @@ -74,6 +74,11 @@ void qt_blend_argb32_on_rgb16_neon(uchar *destPixels, int dbpl, int w, int h, int const_alpha); +void qt_blend_argb32_on_argb32_scanline_neon(uint *dest, + const uint *src, + int length, + uint const_alpha); + void qt_blend_rgb16_on_argb32_neon(uchar *destPixels, int dbpl, const uchar *srcPixels, int sbpl, int w, int h, @@ -115,6 +120,13 @@ void qt_transform_image_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl, const QTransform &targetRectTransform, int const_alpha); +uint * QT_FASTCALL qt_destFetchRGB16_neon(uint *buffer, + QRasterBuffer *rasterBuffer, + int x, int y, int length); + +void QT_FASTCALL qt_destStoreRGB16_neon(QRasterBuffer *rasterBuffer, + int x, int y, const uint *buffer, int length); + #endif // QT_HAVE_NEON QT_END_NAMESPACE |