diff -r 56cd8111b7f7 -r 41300fa6a67c src/gui/painting/qmemrotate.cpp --- a/src/gui/painting/qmemrotate.cpp Tue Jan 26 12:42:25 2010 +0200 +++ b/src/gui/painting/qmemrotate.cpp Tue Feb 02 00:43:10 2010 +0200 @@ -572,5 +572,26 @@ QT_IMPL_MEMROTATE(quint16, qrgb_generic16) #endif +struct qrgb_gl_rgba +{ +public: + inline qrgb_gl_rgba(quint32 v) { + if (QSysInfo::ByteOrder == QSysInfo::LittleEndian) + data = ((v << 16) & 0xff0000) | ((v >> 16) & 0xff) | (v & 0xff00ff00); + else + data = (v << 8) | ((v >> 24) & 0xff); + } + + inline operator quint32() const { return data; } + +private: + quint32 data; +} Q_PACKED; + +void Q_GUI_EXPORT qt_memrotate90_gl(const quint32 *src, int srcWidth, int srcHeight, int srcStride, + quint32 *dest, int dstStride) +{ + qt_memrotate90_template(src, srcWidth, srcHeight, srcStride, reinterpret_cast(dest), dstStride); +} QT_END_NAMESPACE