From d0244a84f150fe59327afa9bd59d0f9cdde72406 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 14 Oct 2014 13:29:18 +0300 Subject: Gradient adjustment logic was broken. Bug in adjustment logic caused adjustment to happen pretty much always. Task-number: QTRD-3374 Change-Id: Id6151d2d3eb8369bbf9252e4eb4b76ed57fb1f3c Reviewed-by: Mika Salmela --- src/datavisualization/utils/scatterobjectbufferhelper.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/datavisualization/utils/scatterobjectbufferhelper.cpp') diff --git a/src/datavisualization/utils/scatterobjectbufferhelper.cpp b/src/datavisualization/utils/scatterobjectbufferhelper.cpp index 6135c225..8925a7a4 100644 --- a/src/datavisualization/utils/scatterobjectbufferhelper.cpp +++ b/src/datavisualization/utils/scatterobjectbufferhelper.cpp @@ -233,8 +233,8 @@ uint ScatterObjectBufferHelper::createRangeGradientUVs(ScatterSeriesRenderCache const ScatterRenderItemArray &renderArray = cache->renderArray(); const bool updateAll = (cache->updateIndices().size() == 0); const int updateSize = updateAll ? renderArray.size() : cache->updateIndices().size(); - const float yAdjustment = 0.1f / gradientTextureHeight; - const float flippedYAdjustment = 0.9f / gradientTextureHeight; + const float yAdjustment = 0.1f; + const float flippedYAdjustment = 0.9f; QVector2D uv; uv.setX(0.0f); @@ -250,11 +250,11 @@ uint ScatterObjectBufferHelper::createRangeGradientUVs(ScatterSeriesRenderCache // Avoid values near gradient texel boundary, as this causes artifacts // with some graphics cards. const float floorY = float(qFloor(y * gradientTextureHeight)); - const float diff = y - floorY; + const float diff = (y * gradientTextureHeight) - floorY; if (diff < yAdjustment) - y += yAdjustment; + y += yAdjustment / gradientTextureHeight; else if (diff > flippedYAdjustment) - y -= yAdjustment; + y -= yAdjustment / gradientTextureHeight; uv.setY(y); int offset = pos * uvsCount; -- cgit v1.2.3