QGIS API Documentation
3.20.0-Odense (decaadbb31)
|
Render job implementation that renders maps in stages, allowing different stages (e.g. More...
#include <qgsmaprendererstagedrenderjob.h>
Public Types | |
enum | Flag { RenderLabelsByMapLayer = 0x01 } |
Flags which control the staged render job behavior. More... | |
enum | RenderStage { Symbology , Labels , Finished } |
Represents the stages of a rendering job. More... | |
Public Types inherited from QgsMapRendererJob | |
typedef QList< QgsMapRendererJob::Error > | Errors |
Public Member Functions | |
QgsMapRendererStagedRenderJob (const QgsMapSettings &settings, Flags flags=Flags()) | |
Constructor for QgsMapRendererStagedRenderJob, using the given map settings. More... | |
~QgsMapRendererStagedRenderJob () 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... | |
QPainter::CompositionMode | currentLayerCompositionMode () const |
Returns the composition mode for the current layer about to be rendered in the next render operation. More... | |
QString | currentLayerId () const |
Returns the ID of the current layer about to be rendered in the next render operation. More... | |
double | currentLayerOpacity () const |
Returns the opacity for the current layer about to be rendered in the next render operation. More... | |
RenderStage | currentStage () const |
Returns the current stage which will be rendered in the next render operation. More... | |
bool | isActive () const override |
Tell whether the rendering job is currently running in background. More... | |
bool | isFinished () const |
Returns true if the job is finished, and nothing remains to render. More... | |
bool | nextPart () |
Iterates to the next part to render. More... | |
bool | renderCurrentPart (QPainter *painter) |
Renders the current part of the map to the specified painter. 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 QgsMapRendererAbstractCustomPainterJob | |
QgsMapRendererAbstractCustomPainterJob (const QgsMapSettings &settings) | |
Constructor for QgsMapRendererAbstractCustomPainterJob, using the given map settings. More... | |
Public Member Functions inherited from QgsMapRendererJob | |
QgsMapRendererJob (const QgsMapSettings &settings) | |
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... | |
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 | 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... | |
Additional Inherited Members | |
Signals inherited from QgsMapRendererJob | |
void | finished () |
emitted when asynchronous rendering is finished (or canceled). 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( "Map/logCanvasRefreshEvent" ), QgsSettings::NoSection, false ) |
Settings entry log canvas refresh event. More... | |
Protected Member Functions inherited from QgsMapRendererAbstractCustomPainterJob | |
void | preparePainter (QPainter *painter, const QColor &backgroundColor=Qt::transparent) |
Prepares the given painter ready for a map render. More... | |
Protected Member Functions inherited from QgsMapRendererJob | |
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 | cleanupSecondPassJobs (LayerRenderJobs &jobs) |
void | logRenderingTime (const LayerRenderJobs &jobs, const LayerRenderJobs &secondPassJobs, const LabelRenderJob &labelJob) |
LayerRenderJobs | 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... | |
LayerRenderJobs | prepareSecondPassJobs (LayerRenderJobs &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 LayerRenderJobs &jobs, const LabelRenderJob &labelJob, const QgsMapRendererCache *cache=nullptr) |
static void | composeSecondPass (LayerRenderJobs &secondPassJobs, LabelRenderJob &labelJob) |
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... | |
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... | |
QElapsedTimer | mRenderingStart |
int | mRenderingTime = 0 |
QgsMapSettings | mSettings |
Render job implementation that renders maps in stages, allowing different stages (e.g.
individual map layers) to be rendered to different paint devices.
Definition at line 32 of file qgsmaprendererstagedrenderjob.h.
Flags which control the staged render job behavior.
Definition at line 40 of file qgsmaprendererstagedrenderjob.h.
Represents the stages of a rendering job.
Enumerator | |
---|---|
Symbology | Rendering layer symbology. |
Labels | Rendering labels. |
Finished | Rendering is finished. |
Definition at line 49 of file qgsmaprendererstagedrenderjob.h.
QgsMapRendererStagedRenderJob::QgsMapRendererStagedRenderJob | ( | const QgsMapSettings & | settings, |
Flags | flags = Flags() |
||
) |
Constructor for QgsMapRendererStagedRenderJob, using the given map settings.
The optional flags argument can be used to control the staged render job behavior.
Definition at line 25 of file qgsmaprendererstagedrenderjob.cpp.
|
override |
Definition at line 31 of file qgsmaprendererstagedrenderjob.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 65 of file qgsmaprendererstagedrenderjob.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 69 of file qgsmaprendererstagedrenderjob.cpp.
QPainter::CompositionMode QgsMapRendererStagedRenderJob::currentLayerCompositionMode | ( | ) | const |
Returns the composition mode for the current layer about to be rendered in the next render operation.
Definition at line 250 of file qgsmaprendererstagedrenderjob.cpp.
QString QgsMapRendererStagedRenderJob::currentLayerId | ( | ) | const |
Returns the ID of the current layer about to be rendered in the next render operation.
Definition at line 225 of file qgsmaprendererstagedrenderjob.cpp.
double QgsMapRendererStagedRenderJob::currentLayerOpacity | ( | ) | const |
Returns the opacity for the current layer about to be rendered in the next render operation.
Definition at line 240 of file qgsmaprendererstagedrenderjob.cpp.
QgsMapRendererStagedRenderJob::RenderStage QgsMapRendererStagedRenderJob::currentStage | ( | ) | const |
Returns the current stage which will be rendered in the next render operation.
Definition at line 260 of file qgsmaprendererstagedrenderjob.cpp.
|
overridevirtual |
Tell whether the rendering job is currently running in background.
Implements QgsMapRendererJob.
Definition at line 77 of file qgsmaprendererstagedrenderjob.cpp.
bool QgsMapRendererStagedRenderJob::isFinished | ( | ) | const |
Returns true
if the job is finished, and nothing remains to render.
Definition at line 220 of file qgsmaprendererstagedrenderjob.cpp.
bool QgsMapRendererStagedRenderJob::nextPart | ( | ) |
Iterates to the next part to render.
Returns true
if another part exists to render, or false
if all parts have been rendered and nothing remains.
Definition at line 163 of file qgsmaprendererstagedrenderjob.cpp.
bool QgsMapRendererStagedRenderJob::renderCurrentPart | ( | QPainter * | painter | ) |
Renders the current part of the map to the specified painter.
Returns true
if a part was rendered or false
if nothing was rendered.
Definition at line 95 of file qgsmaprendererstagedrenderjob.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 87 of file qgsmaprendererstagedrenderjob.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 82 of file qgsmaprendererstagedrenderjob.cpp.
|
overridevirtual |
Block until the job has finished.
Implements QgsMapRendererJob.
Definition at line 73 of file qgsmaprendererstagedrenderjob.cpp.