[Qt] Added {Map,GLContext,Constrain}Mode settings

This commit is contained in:
Bruno de Oliveira Abinader
2015-12-18 12:10:41 -08:00
committed by Thiago Marcos P. Santos
parent 41dd14d208
commit 7d863d259a
2 changed files with 67 additions and 4 deletions

View File

@@ -19,6 +19,30 @@ class Q_DECL_EXPORT QMapboxGLSettings
public:
QMapboxGLSettings();
enum MapMode {
ContinuousMap = 0,
StillMap
};
enum GLContextMode {
UniqueGLContext = 0,
SharedGLContext
};
enum ConstrainMode {
ConstrainHeightOnly = 0,
ConstrainWidthAndHeight
};
MapMode mapMode() const;
void setMapMode(MapMode);
GLContextMode contextMode() const;
void setContextMode(GLContextMode);
ConstrainMode constrainMode() const;
void setConstrainMode(ConstrainMode);
unsigned cacheDatabaseMaximumSize() const;
void setCacheDatabaseMaximumSize(unsigned);
@@ -32,6 +56,10 @@ public:
void setAccessToken(const QString &);
private:
MapMode m_mapMode;
GLContextMode m_contextMode;
ConstrainMode m_constrainMode;
unsigned m_cacheMaximumSize;
QString m_cacheDatabasePath;
QString m_assetPath;

View File

@@ -18,12 +18,45 @@
#include <memory>
QMapboxGLSettings::QMapboxGLSettings()
: m_cacheMaximumSize(mbgl::util::DEFAULT_MAX_CACHE_SIZE)
: m_mapMode(QMapboxGLSettings::ContinuousMap)
, m_contextMode(QMapboxGLSettings::UniqueGLContext)
, m_constrainMode(QMapboxGLSettings::ConstrainHeightOnly)
, m_cacheMaximumSize(mbgl::util::DEFAULT_MAX_CACHE_SIZE)
, m_cacheDatabasePath(":memory:")
, m_assetPath(QCoreApplication::applicationDirPath())
{
}
QMapboxGLSettings::MapMode QMapboxGLSettings::mapMode() const
{
return m_mapMode;
}
void QMapboxGLSettings::setMapMode(MapMode mode)
{
m_mapMode = mode;
}
QMapboxGLSettings::GLContextMode QMapboxGLSettings::contextMode() const
{
return m_contextMode;
}
void QMapboxGLSettings::setContextMode(GLContextMode mode)
{
m_contextMode = mode;
}
QMapboxGLSettings::ConstrainMode QMapboxGLSettings::constrainMode() const
{
return m_constrainMode;
}
void QMapboxGLSettings::setConstrainMode(ConstrainMode mode)
{
m_constrainMode = mode;
}
unsigned QMapboxGLSettings::cacheDatabaseMaximumSize() const
{
return m_cacheMaximumSize;
@@ -67,10 +100,12 @@ QMapboxGL::QMapboxGL(QObject *parent_, const QMapboxGLSettings &settings)
: QObject(parent_)
, d_ptr(new QMapboxGLPrivate(this, settings))
{
d_ptr->fileSourceObj->setAccessToken(settings.accessToken().toStdString());
mbgl::MapMode mapMode = static_cast<mbgl::MapMode>(settings.mapMode());
mbgl::GLContextMode contextMode = static_cast<mbgl::GLContextMode>(settings.contextMode());
mbgl::ConstrainMode constrainMode = static_cast<mbgl::ConstrainMode>(settings.constrainMode());
d_ptr->mapObj = std::make_unique<mbgl::Map>(*d_ptr, *d_ptr->fileSourceObj,
mbgl::MapMode::Continuous, mbgl::GLContextMode::Shared);
d_ptr->fileSourceObj->setAccessToken(settings.accessToken().toStdString());
d_ptr->mapObj = std::make_unique<mbgl::Map>(*d_ptr, *d_ptr->fileSourceObj, mapMode, contextMode, constrainMode);
}
QMapboxGL::~QMapboxGL()