Mercurial > hg > svgui
comparison layer/Colour3DPlotRenderer.cpp @ 1499:e4c9d38d304d
Debug concerns
author | Chris Cannam |
---|---|
date | Tue, 10 Sep 2019 16:35:28 +0100 |
parents | 78d9282519b0 |
children | ac5a82e57d23 |
comparison
equal
deleted
inserted
replaced
1498:76b388d4d19c | 1499:e4c9d38d304d |
---|---|
107 timeConstrained = false; | 107 timeConstrained = false; |
108 | 108 |
109 } else if (m_secondsPerXPixelValid) { | 109 } else if (m_secondsPerXPixelValid) { |
110 double predicted = m_secondsPerXPixel * rect.width(); | 110 double predicted = m_secondsPerXPixel * rect.width(); |
111 #ifdef DEBUG_COLOUR_PLOT_REPAINT | 111 #ifdef DEBUG_COLOUR_PLOT_REPAINT |
112 SVDEBUG << "Predicted time for width " << rect.width() << " = " | 112 SVDEBUG << "render " << m_sources.source |
113 << ": Predicted time for width " << rect.width() << " = " | |
113 << predicted << " (" << m_secondsPerXPixel << " x " | 114 << predicted << " (" << m_secondsPerXPixel << " x " |
114 << rect.width() << ")" << endl; | 115 << rect.width() << ")" << endl; |
115 #endif | 116 #endif |
116 if (predicted < 0.175) { | 117 if (predicted < 0.175) { |
117 #ifdef DEBUG_COLOUR_PLOT_REPAINT | 118 #ifdef DEBUG_COLOUR_PLOT_REPAINT |
118 SVDEBUG << "Predicted time looks fast enough: no partial renders" | 119 SVDEBUG << "render " << m_sources.source |
120 << ": Predicted time looks fast enough: no partial renders" | |
119 << endl; | 121 << endl; |
120 #endif | 122 #endif |
121 timeConstrained = false; | 123 timeConstrained = false; |
122 } | 124 } |
123 } | 125 } |
144 MagnitudeRange range = renderDirectTranslucent(v, paint, rect); | 146 MagnitudeRange range = renderDirectTranslucent(v, paint, rect); |
145 return { rect, range }; | 147 return { rect, range }; |
146 } | 148 } |
147 | 149 |
148 #ifdef DEBUG_COLOUR_PLOT_REPAINT | 150 #ifdef DEBUG_COLOUR_PLOT_REPAINT |
149 SVDEBUG << "cache start " << m_cache.getStartFrame() | 151 SVDEBUG << "render " << m_sources.source |
150 << " valid left " << m_cache.getValidLeft() | 152 << ": cache start " << m_cache.getStartFrame() |
151 << " valid right " << m_cache.getValidRight() | 153 << " valid left " << m_cache.getValidLeft() |
152 << endl; | 154 << " valid right " << m_cache.getValidRight() |
155 << endl; | |
153 SVDEBUG << " view start " << startFrame | 156 SVDEBUG << " view start " << startFrame |
154 << " x0 " << x0 | 157 << " x0 " << x0 |
155 << " x1 " << x1 | 158 << " x1 " << x1 |
156 << endl; | 159 << endl; |
157 #endif | 160 #endif |
158 | 161 |
159 static HitCount count("Colour3DPlotRenderer: image cache"); | 162 static HitCount count("Colour3DPlotRenderer: image cache"); |
160 | 163 |
161 if (m_cache.isValid()) { // some part of the cache is valid | 164 if (m_cache.isValid()) { // some part of the cache is valid |
295 renderToCacheBinResolution(v, x0, x1 - x0); | 298 renderToCacheBinResolution(v, x0, x1 - x0); |
296 | 299 |
297 } else { // must be DrawBufferPixelResolution, handled DirectTranslucent earlier | 300 } else { // must be DrawBufferPixelResolution, handled DirectTranslucent earlier |
298 | 301 |
299 if (timeConstrained && justInvalidated) { | 302 if (timeConstrained && justInvalidated) { |
300 SVDEBUG << "render: just invalidated cache in time-constrained context, that's all we're doing for now - wait for next update to start filling" << endl; | 303 SVDEBUG << "render " << m_sources.source << ": just invalidated cache in time-constrained context, that's all we're doing for now - wait for next update to start filling" << endl; |
301 } else { | 304 } else { |
302 renderToCachePixelResolution(v, x0, x1 - x0, rightToLeft, timeConstrained); | 305 renderToCachePixelResolution(v, x0, x1 - x0, rightToLeft, timeConstrained); |
303 } | 306 } |
304 } | 307 } |
305 | 308 |
324 } | 327 } |
325 | 328 |
326 MagnitudeRange range = m_magCache.getRange(reqx0, reqx1 - reqx0); | 329 MagnitudeRange range = m_magCache.getRange(reqx0, reqx1 - reqx0); |
327 | 330 |
328 #ifdef DEBUG_COLOUR_PLOT_REPAINT | 331 #ifdef DEBUG_COLOUR_PLOT_REPAINT |
329 SVDEBUG << "render: returning rect rendered as " << pr.x() << "," << pr.y() | 332 SVDEBUG << "render " << m_sources.source |
333 << ": returning rect rendered as " << pr.x() << "," << pr.y() | |
330 << " " << pr.width() << "x" << pr.height() << endl; | 334 << " " << pr.width() << "x" << pr.height() << endl; |
331 SVDEBUG << "render: mag range from cache in x-range " << reqx0 | 335 SVDEBUG << "render " << m_sources.source |
336 << ": mag range from cache in x-range " << reqx0 | |
332 << " to " << reqx1 << " is " << range.getMin() << " -> " | 337 << " to " << reqx1 << " is " << range.getMin() << " -> " |
333 << range.getMax() << endl; | 338 << range.getMax() << endl; |
334 #endif | 339 #endif |
335 | 340 |
336 return { pr, range }; | 341 return { pr, range }; |
650 } | 655 } |
651 } | 656 } |
652 } | 657 } |
653 | 658 |
654 #ifdef DEBUG_COLOUR_PLOT_REPAINT | 659 #ifdef DEBUG_COLOUR_PLOT_REPAINT |
655 SVDEBUG << "getPreferredPeakCache: zoomLevel = " << zoomLevel | 660 SVDEBUG << "render " << m_sources.source |
661 << ": getPreferredPeakCache: zoomLevel = " << zoomLevel | |
656 << ", binResolution " << binResolution | 662 << ", binResolution " << binResolution |
657 << ", peakCaches " << m_sources.peakCaches.size() | 663 << ", peakCaches " << m_sources.peakCaches.size() |
658 << ": preferring peakCacheIndex " << peakCacheIndex | 664 << ": preferring peakCacheIndex " << peakCacheIndex |
659 << " for binsPerPeak " << binsPerPeak | 665 << " for binsPerPeak " << binsPerPeak |
660 << endl; | 666 << endl; |
667 bool rightToLeft, | 673 bool rightToLeft, |
668 bool timeConstrained) | 674 bool timeConstrained) |
669 { | 675 { |
670 Profiler profiler("Colour3DPlotRenderer::renderToCachePixelResolution"); | 676 Profiler profiler("Colour3DPlotRenderer::renderToCachePixelResolution"); |
671 #ifdef DEBUG_COLOUR_PLOT_REPAINT | 677 #ifdef DEBUG_COLOUR_PLOT_REPAINT |
672 SVDEBUG << "renderToCachePixelResolution" << endl; | 678 SVDEBUG << "render " << m_sources.source |
679 << ": renderToCachePixelResolution" << endl; | |
673 #endif | 680 #endif |
674 | 681 |
675 // Draw to the draw buffer, and then copy from there. The draw | 682 // Draw to the draw buffer, and then copy from there. The draw |
676 // buffer is at the same resolution as the target in the cache, so | 683 // buffer is at the same resolution as the target in the cache, so |
677 // no extra scaling needed. | 684 // no extra scaling needed. |
806 Colour3DPlotRenderer::renderToCacheBinResolution(const LayerGeometryProvider *v, | 813 Colour3DPlotRenderer::renderToCacheBinResolution(const LayerGeometryProvider *v, |
807 int x0, int repaintWidth) | 814 int x0, int repaintWidth) |
808 { | 815 { |
809 Profiler profiler("Colour3DPlotRenderer::renderToCacheBinResolution"); | 816 Profiler profiler("Colour3DPlotRenderer::renderToCacheBinResolution"); |
810 #ifdef DEBUG_COLOUR_PLOT_REPAINT | 817 #ifdef DEBUG_COLOUR_PLOT_REPAINT |
811 SVDEBUG << "renderToCacheBinResolution" << endl; | 818 SVDEBUG << "render " << m_sources.source |
819 << ": renderToCacheBinResolution" << endl; | |
812 #endif | 820 #endif |
813 | 821 |
814 // Draw to the draw buffer, and then scale-copy from there. Draw | 822 // Draw to the draw buffer, and then scale-copy from there. Draw |
815 // buffer is at bin resolution, i.e. buffer x == source column | 823 // buffer is at bin resolution, i.e. buffer x == source column |
816 // number. We use toolkit smooth scaling for interpolation. | 824 // number. We use toolkit smooth scaling for interpolation. |
1339 m_secondsPerXPixelValid = true; | 1347 m_secondsPerXPixelValid = true; |
1340 | 1348 |
1341 #ifdef DEBUG_COLOUR_PLOT_REPAINT | 1349 #ifdef DEBUG_COLOUR_PLOT_REPAINT |
1342 SVDEBUG << "across " << xPixelCount << " x-pixels, seconds per x-pixel = " | 1350 SVDEBUG << "across " << xPixelCount << " x-pixels, seconds per x-pixel = " |
1343 << m_secondsPerXPixel << " (total = " | 1351 << m_secondsPerXPixel << " (total = " |
1344 << (xPixelCount * m_secondsPerXPixel) << endl; | 1352 << (xPixelCount * m_secondsPerXPixel) << ")" << endl; |
1345 #endif | 1353 #endif |
1346 } | 1354 } |
1347 } | 1355 } |
1348 | 1356 |
1349 void | 1357 void |