QGIS API Documentation  3.14.0-Pi (9f7028fd23)
qgsrasterlayerrenderer.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsrasterlayerrenderer.h
3  --------------------------------------
4  Date : December 2013
5  Copyright : (C) 2013 by Martin Dobias
6  Email : wonder dot sk at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSRASTERLAYERRENDERER_H
17 #define QGSRASTERLAYERRENDERER_H
18 
19 #define SIP_NO_FILE
20 
21 #include "qgsmaplayerrenderer.h"
22 #include "qgsrasterdataprovider.h"
23 
24 class QPainter;
25 
26 class QgsMapToPixel;
27 class QgsRasterLayer;
28 class QgsRasterPipe;
29 struct QgsRasterViewPort;
30 class QgsRenderContext;
31 
33 
34 #include "qgsrasterinterface.h"
35 
37 
44 class CORE_EXPORT QgsRasterLayerRendererFeedback : public QgsRasterBlockFeedback
45 {
46  Q_OBJECT
47 
48  public:
50  explicit QgsRasterLayerRendererFeedback( QgsRasterLayerRenderer *r );
51 
53  void onNewData() override;
54  private:
55  QgsRasterLayerRenderer *mR = nullptr;
56  int mMinimalPreviewInterval;
57  QTime mLastPreview;
58 };
59 
61 
69 class CORE_EXPORT QgsRasterLayerRenderer : public QgsMapLayerRenderer
70 {
71  public:
72  QgsRasterLayerRenderer( QgsRasterLayer *layer, QgsRenderContext &rendererContext );
73  ~QgsRasterLayerRenderer() override;
74 
75  bool render() override;
76  QgsFeedback *feedback() const override;
77 
78  private:
79 
80  QgsRasterViewPort *mRasterViewPort = nullptr;
81 
82  QgsRasterPipe *mPipe = nullptr;
83 
84  QgsRasterDataProvider::Capability mProviderCapabilities;
85 
87  QgsRasterLayerRendererFeedback *mFeedback = nullptr;
88 
89  friend class QgsRasterLayerRendererFeedback;
90 };
91 
92 
93 #endif // QGSRASTERLAYERRENDERER_H
QgsRasterPipe
Definition: qgsrasterpipe.h:46
QgsRenderContext
Definition: qgsrendercontext.h:57
QgsRasterViewPort
Definition: qgsrasterviewport.h:34
QgsMapLayerRenderer
Definition: qgsmaplayerrenderer.h:50
qgsrasterinterface.h
QgsFeedback
Definition: qgsfeedback.h:43
QgsMapLayerRenderer::feedback
virtual QgsFeedback * feedback() const
Access to feedback object of the layer renderer (may be nullptr)
Definition: qgsmaplayerrenderer.h:71
qgsmaplayerrenderer.h
QgsRasterBlockFeedback::onNewData
virtual void onNewData()
May be emitted by raster data provider to indicate that some partial data are available and a new pre...
Definition: qgsrasterinterface.h:65
QgsRasterLayer
Definition: qgsrasterlayer.h:72
QgsRasterLayerRenderer
Definition: qgsrasterlayerrenderer.h:69
QgsMapToPixel
Definition: qgsmaptopixel.h:37
QgsRasterInterface::Capability
Capability
If you add to this, please also add to capabilitiesString()
Definition: qgsrasterinterface.h:183
QgsRasterBlockFeedback
Definition: qgsrasterinterface.h:40
QgsMapLayerRenderer::render
virtual bool render()=0
Do the rendering (based on data stored in the class)
qgsrasterdataprovider.h