QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
|
Job implementation that renders all layers in parallel. More...
#include <qgsmaprendererparalleljob.h>
Public Member Functions | |
QgsMapRendererParallelJob (const QgsMapSettings &settings) | |
~QgsMapRendererParallelJob () override | |
void | cancel () override |
Stop the rendering job - does not return until the job has terminated. More... | |
void | cancelWithoutBlocking () override |
Triggers cancellation of the rendering job without blocking. More... | |
bool | isActive () const override |
Tell whether the rendering job is currently running in background. More... | |
QImage | renderedImage () override |
Gets a preview/resulting image. More... | |
QgsLabelingResults * | takeLabelingResults () override |
Gets pointer to internal labeling engine (in order to get access to the results). More... | |
bool | usedCachedLabels () const override |
Returns true if the render job was able to use a cached labeling solution. More... | |
void | waitForFinished () override |
Block until the job has finished. More... | |
Public Member Functions inherited from QgsMapRendererQImageJob | |
QgsMapRendererQImageJob (const QgsMapSettings &settings) | |
virtual QImage | renderedImage ()=0 |
Gets a preview/resulting image. More... | |
Public Member Functions inherited from QgsMapRendererJob | |
QgsMapRendererJob (const QgsMapSettings &settings) | |
~QgsMapRendererJob () override | |
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... | |
QgsLabelingEngineFeedback * | labelingEngineFeedback () |
Returns the associated labeling engine feedback object. More... | |
QgsLabelSink * | labelSink () const |
Returns the label sink associated to this rendering job. More... | |
QStringList | layersRedrawnFromCache () const |
Returns a list of the layer IDs for all layers which were redrawn from cached images. 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... | |
void | setLabelSink (QgsLabelSink *sink) |
Assigns the label sink which will take over responsibility for handling labels during the rendering job. More... | |
void | setLayerRenderingTimeHints (const QHash< QString, int > &hints) |
Sets approximate render times (in ms) for map layers. More... | |
void | start () |
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... | |
QgsRenderedItemResults * | takeRenderedItemResults () |
Takes the rendered item results from the map render job and returns them. 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... | |
Additional Inherited Members | |
Public Types inherited from QgsMapRendererJob | |
typedef QList< QgsMapRendererJob::Error > | Errors |
Signals inherited from QgsMapRendererJob | |
void | finished () |
emitted when asynchronous rendering is finished (or canceled). More... | |
void | layerRendered (const QString &layerId) |
Emitted when a layer has completed rendering. More... | |
void | layerRenderingStarted (const QString &layerId) |
Emitted just before rendering starts for a particular layer. More... | |
void | renderingLayersFinished () |
Emitted when the layers are rendered. More... | |
Static Public Attributes inherited from QgsMapRendererJob | |
static const QString | LABEL_CACHE_ID |
QgsMapRendererCache ID string for cached label image. More... | |
static const QString | LABEL_PREVIEW_CACHE_ID |
QgsMapRendererCache ID string for cached label image during preview compositions only. More... | |
static const QgsSettingsEntryBool | settingsLogCanvasRefreshEvent = QgsSettingsEntryBool( QStringLiteral( "logCanvasRefreshEvent" ), QgsSettings::Prefix::MAP, false ) |
Settings entry log canvas refresh event. More... | |
Protected Member Functions inherited from QgsMapRendererJob | |
void | cleanupJobs (std::vector< LayerRenderJob > &jobs) |
void | cleanupLabelJob (LabelRenderJob &job) |
Handles clean up tasks for a label job, including deletion of images and storing cached label results. More... | |
void | cleanupSecondPassJobs (std::vector< LayerRenderJob > &jobs) |
void | initSecondPassJobs (std::vector< LayerRenderJob > &secondPassJobs, LabelRenderJob &labelJob) const |
Initialize secondPassJobs according to what have been rendered (mask clipping path e.g.) in first pass jobs and labelJob. More... | |
void | logRenderingTime (const std::vector< LayerRenderJob > &jobs, const std::vector< LayerRenderJob > &secondPassJobs, const LabelRenderJob &labelJob) |
std::vector< LayerRenderJob > | prepareJobs (QPainter *painter, QgsLabelingEngine *labelingEngine2, bool deferredPainterSet=false) |
Creates a list of layer rendering jobs and prepares them for later render. More... | |
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... | |
std::vector< LayerRenderJob > | prepareSecondPassJobs (std::vector< LayerRenderJob > &firstPassJobs, LabelRenderJob &labelJob) |
Prepares jobs for a second pass, if selective masks exist (from labels or symbol layers). More... | |
Static Protected Member Functions inherited from QgsMapRendererJob | |
static QImage | composeImage (const QgsMapSettings &settings, const std::vector< LayerRenderJob > &jobs, const LabelRenderJob &labelJob, const QgsMapRendererCache *cache=nullptr) |
static void | composeSecondPass (std::vector< LayerRenderJob > &secondPassJobs, LabelRenderJob &labelJob, bool forceVector=false) |
Compose second pass images into first pass images. More... | |
static Q_DECL_DEPRECATED void | drawLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsLabelingEngine *labelingEngine2, QPainter *painter) |
static void | drawLabeling (QgsRenderContext &renderContext, QgsLabelingEngine *labelingEngine2, QPainter *painter) |
static QImage | layerImageToBeComposed (const QgsMapSettings &settings, const LayerRenderJob &job, const QgsMapRendererCache *cache) |
Protected Attributes inherited from QgsMapRendererJob | |
QgsMapRendererCache * | mCache = nullptr |
Errors | mErrors |
QHash< QString, int > | mLayerRenderingTimeHints |
Approximate expected layer rendering time per layer, by layer ID. More... | |
QStringList | mLayersRedrawnFromCache |
QHash< QgsWeakMapLayerPointer, int > | mPerLayerRenderingTime |
Render time (in ms) per layer, by layer ID. More... | |
bool | mRecordRenderingTime = true |
true if layer rendering time should be recorded. More... | |
std::unique_ptr< QgsRenderedItemResults > | mRenderedItemResults |
QElapsedTimer | mRenderingStart |
int | mRenderingTime = 0 |
QgsMapSettings | mSettings |
Job implementation that renders all layers in parallel.
The resulting map image can be retrieved with renderedImage() function. It is safe to call that function while rendering is active to see preview of the map.
Definition at line 32 of file qgsmaprendererparalleljob.h.
QgsMapRendererParallelJob::QgsMapRendererParallelJob | ( | const QgsMapSettings & | settings | ) |
Definition at line 29 of file qgsmaprendererparalleljob.cpp.
|
override |
Definition at line 40 of file qgsmaprendererparalleljob.cpp.
|
overridevirtual |
Stop the rendering job - does not return until the job has terminated.
Does nothing if the rendering is not active.
Implements QgsMapRendererJob.
Definition at line 80 of file qgsmaprendererparalleljob.cpp.
|
overridevirtual |
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.
Implements QgsMapRendererJob.
Definition at line 125 of file qgsmaprendererparalleljob.cpp.
|
overridevirtual |
Tell whether the rendering job is currently running in background.
Implements QgsMapRendererJob.
Definition at line 197 of file qgsmaprendererparalleljob.cpp.
|
overridevirtual |
Gets a preview/resulting image.
Implements QgsMapRendererQImageJob.
Definition at line 215 of file qgsmaprendererparalleljob.cpp.
|
overridevirtual |
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().
Implements QgsMapRendererJob.
Definition at line 207 of file qgsmaprendererparalleljob.cpp.
|
overridevirtual |
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.
Implements QgsMapRendererJob.
Definition at line 202 of file qgsmaprendererparalleljob.cpp.
|
overridevirtual |
Block until the job has finished.
Implements QgsMapRendererJob.
Definition at line 147 of file qgsmaprendererparalleljob.cpp.