diff layer/Colour3DPlotRenderer.h @ 1121:d930ff725f64 spectrogram-minor-refactor

Wiring through the magnitude range updates
author Chris Cannam
date Fri, 22 Jul 2016 12:17:55 +0100
parents be5b91ec81a0
children 94370157b265
line wrap: on
line diff
--- a/layer/Colour3DPlotRenderer.h	Wed Jul 20 13:40:23 2016 +0100
+++ b/layer/Colour3DPlotRenderer.h	Fri Jul 22 12:17:55 2016 +0100
@@ -163,7 +163,7 @@
      *
      * Returns an empty QRect if the cache is entirely valid.
      */
-    QRect getLargestUncachedRect();
+    QRect getLargestUncachedRect(const LayerGeometryProvider *v);
 
     /**
      * Return true if the rendering will be opaque. This may be used
@@ -184,6 +184,12 @@
     // member is to avoid reallocation.
     QImage m_drawBuffer;
 
+    // A temporary store of magnitude ranges per-column, used when
+    // rendering to the draw buffer. This always has the same length
+    // as the width of the draw buffer, and the x coordinates of the
+    // two containers are equivalent.
+    std::vector<MagnitudeRange> m_magRanges;
+    
     // The image cache is our persistent record of the visible
     // area. It is always the same size as the view (i.e. the paint
     // size reported by the LayerGeometryProvider) and is scrolled and
@@ -205,8 +211,8 @@
     RenderResult render(const LayerGeometryProvider *v,
                         QPainter &paint, QRect rect, bool timeConstrained);
 
-    void renderDirectTranslucent(const LayerGeometryProvider *v,
-                                 QPainter &paint, QRect rect);
+    MagnitudeRange renderDirectTranslucent(const LayerGeometryProvider *v,
+                                           QPainter &paint, QRect rect);
     
     void renderToCachePixelResolution(const LayerGeometryProvider *v, int x0,
                                       int repaintWidth, bool rightToLeft,