Skip to content

Commit 22e4124

Browse files
committed
Fix broken prefetch capabilities for raster layers
We had a mismatch between QgsRasterDataProvider::providerCapabilities vs comparing to flags from QgsRasterInterface::capabilities. This was allowed because both are old style int enums, and really need to be upgraded to enum classes!
1 parent 2621d95 commit 22e4124

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

src/core/raster/qgsrasterlayerrenderer.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ QgsRasterLayerRenderer::QgsRasterLayerRenderer( QgsRasterLayer *layer, QgsRender
8585
, mLayerName( layer->name() )
8686
, mLayerOpacity( layer->opacity() )
8787
, mProviderCapabilities( layer->dataProvider()->providerCapabilities() )
88+
, mInterfaceCapabilities( layer->dataProvider()->capabilities() )
8889
, mFeedback( new QgsRasterLayerRendererFeedback( this ) )
8990
, mEnableProfile( rendererContext.flags() & Qgis::RenderContextFlag::RecordProfile )
9091
{
@@ -450,7 +451,7 @@ bool QgsRasterLayerRenderer::render()
450451

451452
// Skip rendering of out of view tiles (xyz)
452453
if ( !mRasterViewPort || ( renderContext()->testFlag( Qgis::RenderContextFlag::RenderPreviewJob ) &&
453-
!( mProviderCapabilities &
454+
!( mInterfaceCapabilities &
454455
QgsRasterInterface::Capability::Prefetch ) ) )
455456
return true;
456457

src/core/raster/qgsrasterlayerrenderer.h

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class CORE_EXPORT QgsRasterLayerRenderer : public QgsMapLayerRenderer
8484
std::unique_ptr<QgsRasterPipe> mPipe;
8585

8686
QgsRasterDataProvider::ProviderCapabilities mProviderCapabilities;
87+
int mInterfaceCapabilities = 0;
8788

8889
//! feedback class for cancellation and preview generation
8990
QgsRasterLayerRendererFeedback *mFeedback = nullptr;

0 commit comments

Comments
 (0)