mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
|
|
/**
|
|
* This class is responsible for keeping cache of rendered images of individual layers.
|
|
*
|
|
* Once a layer has rendered image stored in the cache (using setCacheImage(...)),
|
|
* the cache listens to repaintRequested() signals from layer. If triggered, the cache
|
|
* removes the rendered image (and disconnects from the layer).
|
|
*
|
|
* The class is thread-safe (multiple classes can access the same instance safely).
|
|
*
|
|
* @note added in 2.4
|
|
*/
|
|
class QgsMapRendererCache : QObject
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsmaprenderercache.h>
|
|
%End
|
|
|
|
public:
|
|
|
|
QgsMapRendererCache();
|
|
|
|
//! invalidate the cache contents
|
|
void clear();
|
|
|
|
//! initialize cache: set new parameters and erase cache if parameters have changed
|
|
//! @return flag whether the parameters are the same as last time
|
|
bool init( QgsRectangle extent, double scale );
|
|
|
|
//! set cached image for the specified layer ID
|
|
void setCacheImage( QString layerId, const QImage& img );
|
|
|
|
//! get cached image for the specified layer ID. Returns null image if it is not cached.
|
|
QImage cacheImage( QString layerId );
|
|
|
|
//! remove layer from the cache
|
|
void clearCacheImage( QString layerId );
|
|
|
|
protected slots:
|
|
//! remove layer (that emitted the signal) from the cache
|
|
void layerRequestedRepaint();
|
|
|
|
protected:
|
|
//! invalidate cache contents (without locking)
|
|
void clearInternal();
|
|
};
|