QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
Abstract base class for map rendering implementations. More...
#include <qgsmaprendererjob.h>
Classes | |
struct | Error |
Public Types | |
typedef QList< QgsMapRendererJob::Error > | Errors |
Signals | |
void | finished () |
emitted when asynchronous rendering is finished (or canceled). More... | |
void | renderingLayersFinished () |
Emitted when the layers are rendered. More... | |
Public Member Functions | |
QgsMapRendererJob (const QgsMapSettings &settings) | |
virtual void | cancel ()=0 |
Stop the rendering job - does not return until the job has terminated. More... | |
virtual void | cancelWithoutBlocking ()=0 |
Triggers cancellation of the rendering job without blocking. More... | |
Errors | errors () const |
List of errors that happened during the rendering job - available when the rendering has been finished. More... | |
const QgsFeatureFilterProvider * | featureFilterProvider () const |
Returns the feature filter provider used by the QgsRenderContext of each LayerRenderJob. More... | |
virtual bool | isActive () const =0 |
Tell whether the rendering job is currently running in background. More... | |
const QgsMapSettings & | mapSettings () const |
Returns map settings with which this job was started. More... | |
QHash< QgsMapLayer *, int > | perLayerRenderingTime () const |
Returns the render time (in ms) per layer. More... | |
int | renderingTime () const |
Returns the total time it took to finish the job (in milliseconds). More... | |
void | setCache (QgsMapRendererCache *cache) |
Assign a cache to be used for reading and storing rendered images of individual layers. More... | |
void | setFeatureFilterProvider (const QgsFeatureFilterProvider *f) |
Set the feature filter provider used by the QgsRenderContext of each LayerRenderJob. More... | |
virtual void | start ()=0 |
Start the rendering job and immediately return. More... | |
virtual QgsLabelingResults * | takeLabelingResults ()=0 |
Gets pointer to internal labeling engine (in order to get access to the results). More... | |
virtual bool | usedCachedLabels () const =0 |
Returns true if the render job was able to use a cached labeling solution. More... | |
virtual void | waitForFinished ()=0 |
Block until the job has finished. More... | |
Static Public Attributes | |
static const QString | LABEL_CACHE_ID |
QgsMapRendererCache ID string for cached label image. More... | |
Protected Member Functions | |
void | cleanupJobs (LayerRenderJobs &jobs) |
void | cleanupLabelJob (LabelRenderJob &job) |
Handles clean up tasks for a label job, including deletion of images and storing cached label results. More... | |
void | logRenderingTime (const LayerRenderJobs &jobs, const LabelRenderJob &labelJob) |
LayerRenderJobs | prepareJobs (QPainter *painter, QgsLabelingEngine *labelingEngine2) |
bool | prepareLabelCache () const |
Prepares the cache for storing the result of labeling. More... | |
LabelRenderJob | prepareLabelingJob (QPainter *painter, QgsLabelingEngine *labelingEngine2, bool canUseLabelCache=true) |
Prepares a labeling job. More... | |
Static Protected Member Functions | |
static QImage | composeImage (const QgsMapSettings &settings, const LayerRenderJobs &jobs, const LabelRenderJob &labelJob) |
static Q_DECL_DEPRECATED void | drawLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsLabelingEngine *labelingEngine2, QPainter *painter) |
static void | drawLabeling (QgsRenderContext &renderContext, QgsLabelingEngine *labelingEngine2, QPainter *painter) |
Protected Attributes | |
QgsMapRendererCache * | mCache = nullptr |
Errors | mErrors |
QHash< QgsWeakMapLayerPointer, int > | mPerLayerRenderingTime |
Render time (in ms) per layer, by layer ID. More... | |
QTime | mRenderingStart |
int | mRenderingTime = 0 |
QgsMapSettings | mSettings |
Abstract base class for map rendering implementations.
The API is designed in a way that rendering is done asynchronously, therefore the caller is not blocked while the rendering is in progress. Non-blocking operation is quite important because the rendering can take considerable amount of time.
Common use case: 0. prepare QgsMapSettings with rendering configuration (extent, layer, map size, ...)
It is possible to cancel the rendering job while it is active by calling cancel() function.
The following subclasses are available:
Definition at line 122 of file qgsmaprendererjob.h.
typedef QList<QgsMapRendererJob::Error> QgsMapRendererJob::Errors |
Definition at line 197 of file qgsmaprendererjob.h.
QgsMapRendererJob::QgsMapRendererJob | ( | const QgsMapSettings & | settings | ) |
|
pure virtual |
Stop the rendering job - does not return until the job has terminated.
Does nothing if the rendering is not active.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
pure virtual |
Triggers cancellation of the rendering job without blocking.
The render job will continue to operate until it is able to cancel, at which stage the finished() signal will be emitted. Does nothing if the rendering is not active.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
|
protected |
Handles clean up tasks for a label job, including deletion of images and storing cached label results.
|
staticprotected |
|
staticprotected |
Definition at line 341 of file qgsmaprenderercustompainterjob.cpp.
|
staticprotected |
Definition at line 321 of file qgsmaprenderercustompainterjob.cpp.
Errors QgsMapRendererJob::errors | ( | ) | const |
List of errors that happened during the rendering job - available when the rendering has been finished.
|
inline |
Returns the feature filter provider used by the QgsRenderContext of each LayerRenderJob.
Definition at line 184 of file qgsmaprendererjob.h.
|
signal |
emitted when asynchronous rendering is finished (or canceled).
|
pure virtual |
Tell whether the rendering job is currently running in background.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
const QgsMapSettings& QgsMapRendererJob::mapSettings | ( | ) | const |
Returns map settings with which this job was started.
QHash< QgsMapLayer *, int > QgsMapRendererJob::perLayerRenderingTime | ( | ) | const |
Returns the render time (in ms) per layer.
|
protected |
|
protected |
Prepares the cache for storing the result of labeling.
Returns false
if the render cannot use cached labels and should not cache the result.
|
protected |
Prepares a labeling job.
|
signal |
Emitted when the layers are rendered.
Rendering labels is not yet done. If the fully rendered layer including labels is required use finished() instead.
|
inline |
Returns the total time it took to finish the job (in milliseconds).
Definition at line 213 of file qgsmaprendererjob.h.
void QgsMapRendererJob::setCache | ( | QgsMapRendererCache * | cache | ) |
Assign a cache to be used for reading and storing rendered images of individual layers.
Does not take ownership of the object.
|
inline |
Set the feature filter provider used by the QgsRenderContext of each LayerRenderJob.
Ownership is not transferred and the provider must not be deleted before the render job.
Definition at line 177 of file qgsmaprendererjob.h.
|
pure virtual |
Start the rendering job and immediately return.
Does nothing if the rendering is already in progress.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
pure virtual |
Gets pointer to internal labeling engine (in order to get access to the results).
This should not be used if cached labeling was redrawn - see usedCachedLabels().
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
pure virtual |
Returns true
if the render job was able to use a cached labeling solution.
If so, any previously stored labeling results (see takeLabelingResults()) should be retained.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
pure virtual |
Block until the job has finished.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
static |
QgsMapRendererCache ID string for cached label image.
Definition at line 233 of file qgsmaprendererjob.h.
|
protected |
Definition at line 255 of file qgsmaprendererjob.h.
|
protected |
Definition at line 253 of file qgsmaprendererjob.h.
|
protected |
Render time (in ms) per layer, by layer ID.
Definition at line 260 of file qgsmaprendererjob.h.
|
protected |
Definition at line 252 of file qgsmaprendererjob.h.
|
protected |
Definition at line 257 of file qgsmaprendererjob.h.
|
protected |
Definition at line 251 of file qgsmaprendererjob.h.