diff layer/Colour3DPlotRenderer.h @ 1094:8a815776151c spectrogram-minor-refactor

Split out cache rendering functions and some fixes to calculations
author Chris Cannam
date Thu, 07 Jul 2016 19:18:31 +0100
parents c8c747783110
children ba62684a4512
line wrap: on
line diff
--- a/layer/Colour3DPlotRenderer.h	Thu Jul 07 19:18:01 2016 +0100
+++ b/layer/Colour3DPlotRenderer.h	Thu Jul 07 19:18:31 2016 +0100
@@ -63,7 +63,7 @@
 	    binDisplay(AllBins),
             binScale(LinearBinScale),
 	    alwaysOpaque(false),
-            interpolate(false),
+            interpolate(false), //!!! separate out x-interpolate and y-interpolate? the spectrogram actually does (or used to)
             invertVertical(false) { }
 
 	ColourScale colourScale;       // complete ColourScale object by value
@@ -167,10 +167,15 @@
     // then repainting from cache to the requested painter.
     ScrollableImageCache m_cache;
 
+    bool useBinResolutionForDrawBuffer(LayerGeometryProvider *) const;
+
     RenderResult render(LayerGeometryProvider *v,
                         QPainter &paint, QRect rect, bool timeConstrained);
-    void renderToCache(LayerGeometryProvider *v, int x0, int repaintWidth,
-                       bool rightToLeft, bool timeConstrained);
+    void renderToCachePixelResolution(LayerGeometryProvider *v, int x0,
+                                      int repaintWidth, bool rightToLeft,
+                                      bool timeConstrained);
+    void renderToCacheBinResolution(LayerGeometryProvider *v, int x0,
+                                    int repaintWidth);
     int renderDrawBuffer(int w, int h,
                          const std::vector<int> &binforx,
                          const std::vector<double> &binfory,