From fdc983fb3c4ad79cdba282d84a7d8c51ae740965 Mon Sep 17 00:00:00 2001 From: Mika Salmela Date: Tue, 5 Sep 2017 09:55:07 +0300 Subject: Set clamp to edge wrap modes for surface textures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By default surface textures had wrong wrap modes making the color bleed on edges. This patch changes the texture wrap modes to clamp to edge. Task-number: QTBUG-62996 Change-Id: Iebee66b01a78db6036cb0c833f39237f8e98b6b7 Reviewed-by: Tomi Korpipää --- src/datavisualization/engine/surface3drenderer.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index 9cfa0edc..9fa1eeb8 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -317,8 +317,12 @@ void Surface3DRenderer::updateSurfaceTextures(QVector series const QSurfaceDataArray &array = *dataProxy->array(); if (!series->texture().isNull()) { - cache->setSurfaceTexture(m_textureHelper->create2DTexture( - series->texture(), true, true, true)); + GLuint texId = m_textureHelper->create2DTexture(series->texture(), + true, true, true, true); + glBindTexture(GL_TEXTURE_2D, texId); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glBindTexture(GL_TEXTURE_2D, 0); + cache->setSurfaceTexture(texId); if (cache->isFlatShadingEnabled()) cache->surfaceObject()->coarseUVs(array, cache->dataArray()); -- cgit v1.2.3