mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-24 11:45:53 +01:00
Make caching work for both IMG and GMAP maps
This commit is contained in:
parent
dde8903013
commit
378fa8dc0e
@ -1,10 +1,8 @@
|
|||||||
#include <QMap>
|
#include <QMap>
|
||||||
#include <QtEndian>
|
#include <QtEndian>
|
||||||
|
|
||||||
#include "vectortile.h"
|
#include "vectortile.h"
|
||||||
#include "img.h"
|
#include "img.h"
|
||||||
|
|
||||||
#define CACHED_SUBDIVS_COUNT 2048 // ~32MB
|
|
||||||
|
|
||||||
typedef QMap<QByteArray, VectorTile*> TileMap;
|
typedef QMap<QByteArray, VectorTile*> TileMap;
|
||||||
|
|
||||||
@ -63,9 +61,6 @@ IMG::IMG(const QString &fileName) : _file(fileName)
|
|||||||
_name = QString::fromLatin1(nba.constData(), nba.size()-1).trimmed();
|
_name = QString::fromLatin1(nba.constData(), nba.size()-1).trimmed();
|
||||||
_blockSize = 1 << (e1 + e2);
|
_blockSize = 1 << (e1 + e2);
|
||||||
|
|
||||||
_polyCache.setMaxCost(CACHED_SUBDIVS_COUNT);
|
|
||||||
_pointCache.setMaxCost(CACHED_SUBDIVS_COUNT);
|
|
||||||
|
|
||||||
// Read the FAT table
|
// Read the FAT table
|
||||||
quint8 flag;
|
quint8 flag;
|
||||||
quint64 offset = 0x200;
|
quint64 offset = 0x200;
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
#include "mapdata.h"
|
#include "mapdata.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define CACHED_SUBDIVS_COUNT 2048 // ~32MB for both caches together
|
||||||
|
|
||||||
struct PolyCTX
|
struct PolyCTX
|
||||||
{
|
{
|
||||||
PolyCTX(const RectC &rect, int bits, QList<MapData::Poly> *polygons,
|
PolyCTX(const RectC &rect, int bits, QList<MapData::Poly> *polygons,
|
||||||
@ -45,6 +47,12 @@ inline bool pointCb(VectorTile *tile, void *context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MapData::MapData() : _typ(0), _style(0), _valid(false)
|
||||||
|
{
|
||||||
|
_polyCache.setMaxCost(CACHED_SUBDIVS_COUNT);
|
||||||
|
_pointCache.setMaxCost(CACHED_SUBDIVS_COUNT);
|
||||||
|
}
|
||||||
|
|
||||||
MapData::~MapData()
|
MapData::~MapData()
|
||||||
{
|
{
|
||||||
TileTree::Iterator it;
|
TileTree::Iterator it;
|
||||||
|
@ -53,7 +53,7 @@ public:
|
|||||||
QList<Poly> lines;
|
QList<Poly> lines;
|
||||||
};
|
};
|
||||||
|
|
||||||
MapData() : _typ(0), _style(0), _valid(false) {}
|
MapData();
|
||||||
virtual ~MapData();
|
virtual ~MapData();
|
||||||
|
|
||||||
const QString &name() const {return _name;}
|
const QString &name() const {return _name;}
|
||||||
@ -78,13 +78,14 @@ protected:
|
|||||||
RectC _bounds;
|
RectC _bounds;
|
||||||
SubFile *_typ;
|
SubFile *_typ;
|
||||||
Style *_style;
|
Style *_style;
|
||||||
|
|
||||||
TileTree _tileTree;
|
TileTree _tileTree;
|
||||||
QCache<const SubDiv*, Polys> _polyCache;
|
|
||||||
QCache<const SubDiv*, QList<Point> > _pointCache;
|
|
||||||
|
|
||||||
bool _valid;
|
bool _valid;
|
||||||
QString _errorString;
|
QString _errorString;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QCache<const SubDiv*, Polys> _polyCache;
|
||||||
|
QCache<const SubDiv*, QList<Point> > _pointCache;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef QT_NO_DEBUG
|
#ifndef QT_NO_DEBUG
|
||||||
|
Loading…
Reference in New Issue
Block a user