Skip to content

Commit

Permalink
Record whether each individual layer render job was completed success…
Browse files Browse the repository at this point in the history
…fully

Allows us to retrieve at a later stage whether or not the individual
job was aborted early, or if it had already fully completed before the overall render
operation was canceled.
  • Loading branch information
nyalldawson committed Jan 28, 2021
1 parent a138921 commit 2657da8
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 4 deletions.
4 changes: 2 additions & 2 deletions src/core/qgsmaprenderercustompainterjob.cpp
Expand Up @@ -314,7 +314,7 @@ void QgsMapRendererCustomPainterJob::doRender()
job.imageInitialized = true;
}

job.renderer->render();
job.completed = job.renderer->render();

job.renderingTime += layerTime.elapsed();
}
Expand Down Expand Up @@ -385,7 +385,7 @@ void QgsMapRendererCustomPainterJob::doRender()
job.imageInitialized = true;
}

job.renderer->render();
job.completed = job.renderer->render();

job.renderingTime += layerTime.elapsed();
}
Expand Down
10 changes: 10 additions & 0 deletions src/core/qgsmaprendererjob.h
Expand Up @@ -59,11 +59,21 @@ struct LayerRenderJob
bool imageCanBeComposed() const;

QgsMapLayerRenderer *renderer; // must be deleted

QPainter::CompositionMode blendMode;
double opacity;
//! If TRUE, img already contains cached image from previous rendering
bool cached;
QgsWeakMapLayerPointer layer;

/**
* TRUE if the render job was successfully completed in its entirety (i.e. it was
* not canceled or aborted early).
*
* \since QGIS 3.18
*/
bool completed = false;

int renderingTime; //!< Time it took to render the layer in ms (it is -1 if not rendered or still rendering)

/**
Expand Down
2 changes: 1 addition & 1 deletion src/core/qgsmaprendererparalleljob.cpp
Expand Up @@ -359,7 +359,7 @@ void QgsMapRendererParallelJob::renderLayerStatic( LayerRenderJob &job )
#ifdef SIMULATE_SLOW_RENDERER
QThread::sleep( 1 );
#endif
job.renderer->render();
job.completed = job.renderer->render();
}
catch ( QgsException &e )
{
Expand Down
2 changes: 1 addition & 1 deletion src/core/qgsmaprendererstagedrenderjob.cpp
Expand Up @@ -117,7 +117,7 @@ bool QgsMapRendererStagedRenderJob::renderCurrentPart( QPainter *painter )
job.imageInitialized = true;
}

job.renderer->render();
job.completed = job.renderer->render();

if ( job.img )
{
Expand Down

0 comments on commit 2657da8

Please sign in to comment.