QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsmaplayerrenderer.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmaplayerrenderer.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 QGSMAPLAYERRENDERER_H
17 #define QGSMAPLAYERRENDERER_H
18 
19 #include <QStringList>
20 
21 #include "qgis_core.h"
22 #include "qgis_sip.h"
23 
24 class QgsFeedback;
25 class QgsRenderContext;
27 
54 class CORE_EXPORT QgsMapLayerRenderer
55 {
56  public:
57 
61  QgsMapLayerRenderer( const QString &layerID, QgsRenderContext *context = nullptr )
62  : mLayerID( layerID )
63  , mContext( context )
64  {}
65 
66  virtual ~QgsMapLayerRenderer();
67 
74  virtual bool render() = 0;
75 
92  virtual bool forceRasterRender() const { return false; }
93 
98  virtual QgsFeedback *feedback() const { return nullptr; }
99 
101  QStringList errors() const { return mErrors; }
102 
104  QString layerId() const { return mLayerID; }
105 
111  QgsRenderContext *renderContext() { return mContext; }
112 
119  const QgsRenderContext *renderContext() const SIP_SKIP { return mContext; }
120 
127  bool isReadyToCompose() const { return mReadyToCompose; }
128 
139  virtual void setLayerRenderingTimeHint( int time ) SIP_SKIP { Q_UNUSED( time ) }
140 
149  QList< QgsRenderedItemDetails * > takeRenderedItemDetails() SIP_TRANSFERBACK;
150 
151  protected:
152  QStringList mErrors;
153  QString mLayerID;
154 
155  // TODO QGIS 4.0 - make false as default
156 
171  bool mReadyToCompose = true;
172 
181  static constexpr int MAX_TIME_TO_USE_CACHED_PREVIEW_IMAGE = 3000 SIP_SKIP;
182 
193  void appendRenderedItemDetails( QgsRenderedItemDetails *details SIP_TRANSFER );
194 
195  private:
196 
197  // TODO QGIS 4.0 - make reference instead of pointer!
198 
204  QgsRenderContext *mContext = nullptr;
205 
206  QList<QgsRenderedItemDetails *> mRenderedItemDetails;
207 };
208 
209 #endif // QGSMAPLAYERRENDERER_H
QgsMapLayerRenderer::QgsMapLayerRenderer
QgsMapLayerRenderer(const QString &layerID, QgsRenderContext *context=nullptr)
Constructor for QgsMapLayerRenderer, with the associated layerID and render context.
Definition: qgsmaplayerrenderer.h:61
QgsMapLayerRenderer::renderContext
const QgsRenderContext * renderContext() const
Returns the render context associated with the renderer.
Definition: qgsmaplayerrenderer.h:119
QgsMapLayerRenderer::errors
QStringList errors() const
Returns list of errors (problems) that happened during the rendering.
Definition: qgsmaplayerrenderer.h:101
QgsMapLayerRenderer::isReadyToCompose
bool isReadyToCompose() const
Returns whether the renderer has already drawn (at least partially) some data.
Definition: qgsmaplayerrenderer.h:127
QgsRenderContext
Contains information about the context of a rendering operation.
Definition: qgsrendercontext.h:59
QgsMapLayerRenderer::renderContext
QgsRenderContext * renderContext()
Returns the render context associated with the renderer.
Definition: qgsmaplayerrenderer.h:111
SIP_TRANSFERBACK
#define SIP_TRANSFERBACK
Definition: qgis_sip.h:48
QgsMapLayerRenderer
Base class for utility classes that encapsulate information necessary for rendering of map layers.
Definition: qgsmaplayerrenderer.h:54
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsMapLayerRenderer::layerId
QString layerId() const
Gets access to the ID of the layer rendered by this class.
Definition: qgsmaplayerrenderer.h:104
QgsRenderedItemDetails
Base class for detailed information about a rendered item.
Definition: qgsrendereditemdetails.h:36
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:44
QgsMapLayerRenderer::feedback
virtual QgsFeedback * feedback() const
Access to feedback object of the layer renderer (may be nullptr)
Definition: qgsmaplayerrenderer.h:98
qgis_sip.h
SIP_TRANSFER
#define SIP_TRANSFER
Definition: qgis_sip.h:36
QgsMapLayerRenderer::setLayerRenderingTimeHint
virtual void setLayerRenderingTimeHint(int time)
Sets approximate render time (in ms) for the layer to render.
Definition: qgsmaplayerrenderer.h:139
QgsMapLayerRenderer::forceRasterRender
virtual bool forceRasterRender() const
Returns true if the renderer must be rendered to a raster paint device (e.g.
Definition: qgsmaplayerrenderer.h:92