comparison 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
comparison
equal deleted inserted replaced
1120:65cdaf8d6b50 1121:d930ff725f64
161 * cache, it cannot have been rendered since the cache was 161 * cache, it cannot have been rendered since the cache was
162 * cleared). 162 * cleared).
163 * 163 *
164 * Returns an empty QRect if the cache is entirely valid. 164 * Returns an empty QRect if the cache is entirely valid.
165 */ 165 */
166 QRect getLargestUncachedRect(); 166 QRect getLargestUncachedRect(const LayerGeometryProvider *v);
167 167
168 /** 168 /**
169 * Return true if the rendering will be opaque. This may be used 169 * Return true if the rendering will be opaque. This may be used
170 * by the calling layer to determine whether it can scroll 170 * by the calling layer to determine whether it can scroll
171 * directly without regard to any other layers beneath. 171 * directly without regard to any other layers beneath.
182 // at view height (not model height) and is cleared and repainted 182 // at view height (not model height) and is cleared and repainted
183 // on each fragment render. The only reason it's stored as a data 183 // on each fragment render. The only reason it's stored as a data
184 // member is to avoid reallocation. 184 // member is to avoid reallocation.
185 QImage m_drawBuffer; 185 QImage m_drawBuffer;
186 186
187 // A temporary store of magnitude ranges per-column, used when
188 // rendering to the draw buffer. This always has the same length
189 // as the width of the draw buffer, and the x coordinates of the
190 // two containers are equivalent.
191 std::vector<MagnitudeRange> m_magRanges;
192
187 // The image cache is our persistent record of the visible 193 // The image cache is our persistent record of the visible
188 // area. It is always the same size as the view (i.e. the paint 194 // area. It is always the same size as the view (i.e. the paint
189 // size reported by the LayerGeometryProvider) and is scrolled and 195 // size reported by the LayerGeometryProvider) and is scrolled and
190 // partially repainted internally as appropriate. A render request 196 // partially repainted internally as appropriate. A render request
191 // is carried out by repainting to cache (via the draw buffer) any 197 // is carried out by repainting to cache (via the draw buffer) any
203 ScrollableMagRangeCache m_magCache; 209 ScrollableMagRangeCache m_magCache;
204 210
205 RenderResult render(const LayerGeometryProvider *v, 211 RenderResult render(const LayerGeometryProvider *v,
206 QPainter &paint, QRect rect, bool timeConstrained); 212 QPainter &paint, QRect rect, bool timeConstrained);
207 213
208 void renderDirectTranslucent(const LayerGeometryProvider *v, 214 MagnitudeRange renderDirectTranslucent(const LayerGeometryProvider *v,
209 QPainter &paint, QRect rect); 215 QPainter &paint, QRect rect);
210 216
211 void renderToCachePixelResolution(const LayerGeometryProvider *v, int x0, 217 void renderToCachePixelResolution(const LayerGeometryProvider *v, int x0,
212 int repaintWidth, bool rightToLeft, 218 int repaintWidth, bool rightToLeft,
213 bool timeConstrained); 219 bool timeConstrained);
214 220