summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qdrawhelper_neon_p.h
diff options
context:
space:
mode:
authorSamuel Rødal <sroedal@trolltech.com>2010-03-25 12:14:40 +0100
committerSamuel Rødal <sroedal@trolltech.com>2010-03-26 10:49:09 +0100
commitfa44a37174f51f3d2786fc6e60d8fa5561a4df6c (patch)
tree014108ee7598fb3a246bad894cb0a47da36115b9 /src/gui/painting/qdrawhelper_neon_p.h
parent0ad22e6cd1cb353e2e1244c1eb7257cb3af9def4 (diff)
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.h12
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 6f25243290..d6a4509075 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