From ff512434c8272989ff08c027cccd1460f8808756 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 1 Oct 2013 10:14:50 +0300 Subject: Fix kinect demo scatter artifacts - also speeds up scatter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +minor optimization to scatter renderer Change-Id: Iee3f52642a43ec9348edec6bde9d247c5d171e04 Reviewed-by: Tomi Korpipää --- tests/kinectsurface/surfacedata.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/kinectsurface/surfacedata.cpp b/tests/kinectsurface/surfacedata.cpp index 45aa68c9..999ccfce 100644 --- a/tests/kinectsurface/surfacedata.cpp +++ b/tests/kinectsurface/surfacedata.cpp @@ -258,12 +258,12 @@ void SurfaceData::setData(const QImage &image) int widthBits = imageWidth * 4; if (m_mode == Scatter) { - QScatterDataArray *dataArray = m_scatterDataArray; - QScatterDataItem *ptrToDataArray = &dataArray->first(); + QScatterDataItem *ptrToDataArray = &m_scatterDataArray->first(); int limitsX = imageWidth / 2; int limitsZ = imageHeight / 2; qreal height = 0; + int count = 0; for (int i = -limitsZ; i < limitsZ; i++, bitCount -= widthBits) { for (int j = -limitsX; j < limitsX; j++) { @@ -271,10 +271,12 @@ void SurfaceData::setData(const QImage &image) if (height > -128) { ptrToDataArray->setPosition(QVector3D(qreal(j), height, qreal(i))); ptrToDataArray++; + count++; } } } + QScatterDataArray *dataArray = new QScatterDataArray(m_scatterDataArray->mid(0, count)); static_cast(m_scatter->activeDataProxy())->resetArray(dataArray); } else { QBarDataArray *dataArray = m_barDataArray; -- cgit v1.2.3