QgsRenderContext QgsPointMarkerItem::renderContext( QPainter* painter ) { QgsExpressionContext context; context << QgsExpressionContextUtils::globalScope() << QgsExpressionContextUtils::projectScope() << QgsExpressionContextUtils::atlasScope( nullptr ); if ( mMapCanvas ) { context << QgsExpressionContextUtils::mapSettingsScope( mMapCanvas->mapSettings() ) << new QgsExpressionContextScope( mMapCanvas->expressionContextScope() ); } else { context << QgsExpressionContextUtils::mapSettingsScope( QgsMapSettings() ); } //context << QgsExpressionContextUtils::layerScope( mLayer ); context.setFeature( mFeature ); //setup render context QgsMapSettings ms = mMapCanvas->mapSettings(); ms.setExpressionContext( context ); QgsRenderContext rc = QgsRenderContext::fromMapSettings( ms ); rc.setPainter( painter ); return rc; }