Skip to content

Commit

Permalink
Include job preparation time in layer rendering timer
Browse files Browse the repository at this point in the history
This prevents layers which are slow to prepare from rendering
in map preview jobs
  • Loading branch information
nyalldawson committed Feb 9, 2018
1 parent 2e5d538 commit 50a8813
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/core/qgsmaprenderercustompainterjob.cpp
Expand Up @@ -264,7 +264,7 @@ void QgsMapRendererCustomPainterJob::doRender()

job.renderer->render();

job.renderingTime = layerTime.elapsed();
job.renderingTime += layerTime.elapsed();
}

if ( job.img )
Expand Down
3 changes: 3 additions & 0 deletions src/core/qgsmaprendererjob.cpp
Expand Up @@ -343,7 +343,10 @@ LayerRenderJobs QgsMapRendererJob::prepareJobs( QPainter *painter, QgsLabelingEn
if ( hasStyleOverride )
ml->styleManager()->setOverrideStyle( mSettings.layerStyleOverrides().value( ml->id() ) );

QTime layerTime;
layerTime.start();
job.renderer = ml->createMapRenderer( job.context );
job.renderingTime = layerTime.elapsed(); // include job preparation time in layer rendering time

if ( hasStyleOverride )
ml->styleManager()->restoreOverrideStyle();
Expand Down
2 changes: 1 addition & 1 deletion src/core/qgsmaprendererparalleljob.cpp
Expand Up @@ -269,7 +269,7 @@ void QgsMapRendererParallelJob::renderLayerStatic( LayerRenderJob &job )
{
QgsDebugMsg( "Caught unhandled unknown exception" );
}
job.renderingTime = t.elapsed();
job.renderingTime += t.elapsed();
QgsDebugMsgLevel( QString( "job %1 end [%2 ms] (layer %3)" ).arg( reinterpret_cast< quint64 >( &job ), 0, 16 ).arg( job.renderingTime ).arg( job.layer ? job.layer->id() : QString() ), 2 );
}

Expand Down

0 comments on commit 50a8813

Please sign in to comment.