Mercurial > hg > svgui
comparison layer/Colour3DPlotRenderer.h @ 1221:eaab8bab3522
Measure time taken to render per pixel, and use the time last time around to decide whether to be time constrained this time around
| author | Chris Cannam |
|---|---|
| date | Thu, 26 Jan 2017 11:55:11 +0000 |
| parents | 34df6ff25472 |
| children | fc40742bb911 |
comparison
equal
deleted
inserted
replaced
| 1220:2954e9952b78 | 1221:eaab8bab3522 |
|---|---|
| 30 class LayerGeometryProvider; | 30 class LayerGeometryProvider; |
| 31 class VerticalBinLayer; | 31 class VerticalBinLayer; |
| 32 class DenseThreeDimensionalModel; | 32 class DenseThreeDimensionalModel; |
| 33 class Dense3DModelPeakCache; | 33 class Dense3DModelPeakCache; |
| 34 class FFTModel; | 34 class FFTModel; |
| 35 class RenderTimer; | |
| 35 | 36 |
| 36 enum class BinDisplay { | 37 enum class BinDisplay { |
| 37 AllBins, | 38 AllBins, |
| 38 PeakBins, | 39 PeakBins, |
| 39 PeakFrequencies | 40 PeakFrequencies |
| 109 int colourRotation; | 110 int colourRotation; |
| 110 }; | 111 }; |
| 111 | 112 |
| 112 Colour3DPlotRenderer(Sources sources, Parameters parameters) : | 113 Colour3DPlotRenderer(Sources sources, Parameters parameters) : |
| 113 m_sources(sources), | 114 m_sources(sources), |
| 114 m_params(parameters) | 115 m_params(parameters), |
| 116 m_secondsPerXPixel(0.0), | |
| 117 m_secondsPerXPixelValid(false) | |
| 115 { } | 118 { } |
| 116 | 119 |
| 117 struct RenderResult { | 120 struct RenderResult { |
| 118 /** | 121 /** |
| 119 * The rect that was actually rendered. May be equal to the | 122 * The rect that was actually rendered. May be equal to the |
| 261 // indices match up across both. Our cache update mechanism | 264 // indices match up across both. Our cache update mechanism |
| 262 // guarantees that every valid column in the image cache has a | 265 // guarantees that every valid column in the image cache has a |
| 263 // valid range in the magnitude cache, but not necessarily vice | 266 // valid range in the magnitude cache, but not necessarily vice |
| 264 // versa (as the image cache is limited to contiguous ranges). | 267 // versa (as the image cache is limited to contiguous ranges). |
| 265 ScrollableMagRangeCache m_magCache; | 268 ScrollableMagRangeCache m_magCache; |
| 269 | |
| 270 double m_secondsPerXPixel; | |
| 271 bool m_secondsPerXPixelValid; | |
| 266 | 272 |
| 267 RenderResult render(const LayerGeometryProvider *v, | 273 RenderResult render(const LayerGeometryProvider *v, |
| 268 QPainter &paint, QRect rect, bool timeConstrained); | 274 QPainter &paint, QRect rect, bool timeConstrained); |
| 269 | 275 |
| 270 MagnitudeRange renderDirectTranslucent(const LayerGeometryProvider *v, | 276 MagnitudeRange renderDirectTranslucent(const LayerGeometryProvider *v, |
| 308 ColumnOp::Column getColumn(int sx, int minbin, int nbins, | 314 ColumnOp::Column getColumn(int sx, int minbin, int nbins, |
| 309 int peakCacheIndex) const; // -1 => don't use cache | 315 int peakCacheIndex) const; // -1 => don't use cache |
| 310 | 316 |
| 311 void getPreferredPeakCache(const LayerGeometryProvider *, | 317 void getPreferredPeakCache(const LayerGeometryProvider *, |
| 312 int &peakCacheIndex, int &binsPerPeak) const; | 318 int &peakCacheIndex, int &binsPerPeak) const; |
| 319 | |
| 320 void updateTimings(const RenderTimer &timer, int xPixelCount); | |
| 313 }; | 321 }; |
| 314 | 322 |
| 315 #endif | 323 #endif |
| 316 | 324 |
