JAL-3444 missed commit of removal of object creation test.
[jalview.git] / src / jalview / renderer / seqfeatures / FeatureColourFinder.java
index 7fce08b..57366b9 100644 (file)
@@ -23,6 +23,7 @@ package jalview.renderer.seqfeatures;
 import jalview.api.FeatureRenderer;
 import jalview.api.FeaturesDisplayedI;
 import jalview.datamodel.SequenceI;
+import jalview.util.Platform;
 import jalview.viewmodel.seqfeatures.FeatureRendererModel;
 
 import java.awt.Color;
@@ -98,10 +99,16 @@ public class FeatureColourFinder
     if (featureRenderer.getTransparency() != 1f)
     {
       g = goff;
-      if (defaultColour != null)
+      Color c = (defaultColour == null ? Color.white : defaultColour);
+      if (Platform.isJS())
       {
-        offscreenImage.setRGB(0, 0, defaultColour.getRGB());
+        // Clear the HTML5 canvas color.
+        // otherwise we get a smearing.
+        // For whatever reason, this is necessary BH 2019.10.01.
+        g.setColor(c);
+        g.fillRect(0, 0, 1, 1);
       }
+      offscreenImage.setRGB(0, 0, c.getRGB());
     }
 
     Color c = featureRenderer.findFeatureColour(seq, column + 1, g);
@@ -112,8 +119,17 @@ public class FeatureColourFinder
 
     if (g != null)
     {
+      if (Platform.isJS())
+      {
+        /*
+         * for JavaScript the pixel itself
+         * is a resource that needs to be recreated in getRGB(0,0)
+         */
+        offscreenImage.flush();
+      }
       c = new Color(offscreenImage.getRGB(0, 0));
     }
+
     return c;
   }
 
@@ -123,7 +139,7 @@ public class FeatureColourFinder
    * 
    * @return
    */
-  boolean noFeaturesDisplayed()
+  public boolean noFeaturesDisplayed()
   {
     if (featureRenderer == null
             || !featureRenderer.getViewport().isShowSequenceFeatures())