QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
maprenderer
qgsmaprendererparalleljob.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsmaprendererparalleljob.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 QGSMAPRENDERERPARALLELJOB_H
17
#define QGSMAPRENDERERPARALLELJOB_H
18
19
#include "qgis_core.h"
20
#include "
qgis_sip.h
"
21
#include "
qgsmaprendererjob.h
"
22
31
class
CORE_EXPORT
QgsMapRendererParallelJob
:
public
QgsMapRendererQImageJob
32
{
33
Q_OBJECT
34
public
:
35
QgsMapRendererParallelJob
(
const
QgsMapSettings
&settings );
36
~QgsMapRendererParallelJob
()
override
;
37
38
void
cancel
()
override
;
39
void
cancelWithoutBlocking
()
override
;
40
void
waitForFinished
()
override
;
41
bool
isActive
()
const override
;
42
43
bool
usedCachedLabels
()
const override
;
44
QgsLabelingResults
*
takeLabelingResults
()
SIP_TRANSFER
override
;
45
46
// from QgsMapRendererJobWithPreview
47
QImage
renderedImage
()
override
;
48
49
private
slots:
51
void
renderLayersFinished();
53
void
renderLayersSecondPassFinished();
55
void
renderingFinished();
56
57
private
:
59
static
void
renderLayerStatic( LayerRenderJob &job )
SIP_SKIP
;
61
static
void
renderLabelsStatic(
QgsMapRendererParallelJob
*self )
SIP_SKIP
;
62
63
void
startPrivate()
override
;
64
65
QImage mFinalImage;
66
68
enum
69
{
70
Idle,
71
RenderingLayers,
72
RenderingSecondPass,
73
RenderingLabels
74
} mStatus
75
= Idle
SIP_SKIP
;
76
77
QFuture<void> mFuture;
78
QFutureWatcher<void> mFutureWatcher;
79
80
std::vector< LayerRenderJob > mLayerJobs;
81
LabelRenderJob mLabelJob;
82
83
std::vector< LayerRenderJob > mSecondPassLayerJobs;
84
QFuture<void> mSecondPassFuture;
85
QFutureWatcher<void> mSecondPassFutureWatcher;
86
88
std::unique_ptr< QgsLabelingEngine > mLabelingEngineV2;
89
QFuture<void> mLabelingFuture;
90
QFutureWatcher<void> mLabelingFutureWatcher;
91
};
92
93
94
#endif
// QGSMAPRENDERERPARALLELJOB_H
QgsLabelingResults
Stores computed placement from labeling engine.
Definition
qgslabelingresults.h:44
QgsMapRendererJob::waitForFinished
virtual void waitForFinished()=0
Block until the job has finished.
QgsMapRendererJob::usedCachedLabels
virtual bool usedCachedLabels() const =0
Returns true if the render job was able to use a cached labeling solution.
QgsMapRendererJob::isActive
virtual bool isActive() const =0
Tell whether the rendering job is currently running in background.
QgsMapRendererJob::takeLabelingResults
virtual QgsLabelingResults * takeLabelingResults()=0
Gets pointer to internal labeling engine (in order to get access to the results).
QgsMapRendererJob::cancel
virtual void cancel()=0
Stop the rendering job - does not return until the job has terminated.
QgsMapRendererJob::cancelWithoutBlocking
virtual void cancelWithoutBlocking()=0
Triggers cancellation of the rendering job without blocking.
QgsMapRendererParallelJob::QgsMapRendererParallelJob
QgsMapRendererParallelJob(const QgsMapSettings &settings)
Definition
qgsmaprendererparalleljob.cpp:37
QgsMapRendererQImageJob::QgsMapRendererQImageJob
QgsMapRendererQImageJob(const QgsMapSettings &settings)
QgsMapRendererQImageJob::renderedImage
virtual QImage renderedImage()=0
Gets a preview/resulting image.
QgsMapSettings
Contains configuration for rendering maps.
Definition
qgsmapsettings.h:91
qgis_sip.h
SIP_SKIP
#define SIP_SKIP
Definition
qgis_sip.h:138
SIP_TRANSFER
#define SIP_TRANSFER
Definition
qgis_sip.h:35
qgsmaprendererjob.h
Generated on
for QGIS API Documentation by
1.17.0