This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch geoapi-4.0 in repository https://gitbox.apache.org/repos/asf/sis.git
commit b1f006e6d165b099967575ce3c246da6612d7f12 Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Sun Dec 5 01:05:36 2021 +0100 Need to discard fully the old data when new data are loaded. --- .../src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java | 4 +++- .../java/org/apache/sis/internal/map/coverage/RenderingData.java | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java index f7b07c7..6f5dfa2 100644 --- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java +++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java @@ -809,7 +809,9 @@ public class CoverageCanvas extends MapCanvasAWT { data.coverageLoader = MultiResolutionImageLoader.getInstance(resource, data.coverageLoader); coverage = data.ensureCoverageLoaded(objectiveToDisplay, objectivePOI); } - data.ensureImageLoaded(coverage, sliceExtent); + if (data.ensureImageLoaded(coverage, sliceExtent)) { + recoloredImage = null; + } /* * Find whether resampling to apply is different than the resampling used last time that the image * has been rendered, ignoring translations. Translations do not require new resampling operations diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java index d78d832..42fd292 100644 --- a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java +++ b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java @@ -336,14 +336,15 @@ public class RenderingData implements Cloneable { * @param coverage the coverage from which to read data, or {@code null} if the coverage did not changed. * @param sliceExtent a subspace of the grid coverage extent where all dimensions except two have a size of 1 cell. * May be {@code null} if this grid coverage has only two dimensions with a size greater than 1 cell. + * @return whether the {@linkpalin #data} changed. * @throws FactoryException if the CRS changed but the transform from old to new CRS can not be determined. * @throws TransformException if an error occurred while transforming coordinates from old to new CRS. */ - public final void ensureImageLoaded(GridCoverage coverage, final GridExtent sliceExtent) + public final boolean ensureImageLoaded(GridCoverage coverage, final GridExtent sliceExtent) throws FactoryException, TransformException { if (data != null || coverage == null) { - return; + return false; } coverage = coverage.forConvertedValues(true); final GridGeometry old = dataGeometry; @@ -383,6 +384,7 @@ public class RenderingData implements Cloneable { cornerToObjective = MathTransforms.concatenate(forward, cornerToObjective); objectiveToCenter = MathTransforms.concatenate(objectiveToCenter, inverse); } + return true; } /**