fix VNC platform plugin build on big-endian machines
Task-number: QTBUG-58734 Change-Id: I3e44ee4be5003acaba2f1b8ed2658a3ff1bd700e Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>bb10
parent
c5e687895d
commit
6f64bfa654
|
|
@ -142,7 +142,7 @@ void QVncClient::convertPixels(char *dst, const char *src, int count) const
|
|||
case 16: {
|
||||
quint16 p = *reinterpret_cast<const quint16*>(src);
|
||||
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
|
||||
if (swapBytes)
|
||||
if (m_swapBytes)
|
||||
p = ((p & 0xff) << 8) | ((p & 0xff00) >> 8);
|
||||
#endif
|
||||
r = (p >> 11) & 0x1f;
|
||||
|
|
@ -484,7 +484,7 @@ void QVncClient::setPixelFormat()
|
|||
m_sameEndian = (QSysInfo::ByteOrder == QSysInfo::BigEndian) == !!m_pixelFormat.bigEndian;
|
||||
m_needConversion = pixelConversionNeeded();
|
||||
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
|
||||
m_swapBytes = qvnc_screen->swapBytes();
|
||||
m_swapBytes = server()->screen()->swapBytes();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
@ -639,7 +639,7 @@ bool QVncClient::pixelConversionNeeded() const
|
|||
return true;
|
||||
|
||||
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
|
||||
if (qvnc_screen->swapBytes())
|
||||
if (server()->screen()->swapBytes())
|
||||
return true;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@
|
|||
#include <QtFbSupport/private/qfbcursor_p.h>
|
||||
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtGui/QScreen>
|
||||
#include <QtCore/QRegularExpression>
|
||||
|
||||
|
||||
|
|
@ -172,14 +173,18 @@ QPixmap QVncScreen::grabWindow(WId wid, int x, int y, int width, int height) con
|
|||
}
|
||||
|
||||
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
|
||||
bool QVNCScreen::swapBytes() const
|
||||
bool QVncScreen::swapBytes() const
|
||||
{
|
||||
return false;
|
||||
|
||||
/* TODO
|
||||
if (depth() != 16)
|
||||
return false;
|
||||
|
||||
if (screen())
|
||||
return screen()->frameBufferLittleEndian();
|
||||
return frameBufferLittleEndian();
|
||||
*/
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public:
|
|||
void clearDirty() { dirtyRegion = QRegion(); }
|
||||
|
||||
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
|
||||
bool swapBytes() const
|
||||
bool swapBytes() const;
|
||||
#endif
|
||||
|
||||
QStringList mArgs;
|
||||
|
|
|
|||
Loading…
Reference in New Issue