diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-06-28 16:32:00 -0700 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2017-07-18 10:45:12 +0200 |
commit | ee205ca9ca3f808fa2cc16295ebde0a7c3867381 (patch) | |
tree | f66be15105c449570eebe846723596a5dbaf9d99 /platform/qt/src/qmapboxgl.cpp | |
parent | 2e9fb06941720f7cc22fa8d8d54aa2d0b3fd71c0 (diff) | |
download | qtlocation-mapboxgl-ee205ca9ca3f808fa2cc16295ebde0a7c3867381.tar.gz |
[qt] rendering interface changes
Diffstat (limited to 'platform/qt/src/qmapboxgl.cpp')
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index ee08ba5730..aa02900c95 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -1,5 +1,6 @@ #include "qmapboxgl.hpp" #include "qmapboxgl_p.hpp" +#include "qmapboxgl_renderer_frontend_p.hpp" #include "qt_conversion.hpp" #include "qt_geojson.hpp" @@ -17,6 +18,7 @@ #include <mbgl/style/sources/geojson_source.hpp> #include <mbgl/style/transition_options.hpp> #include <mbgl/style/image.hpp> +#include <mbgl/renderer/renderer.hpp> #include <mbgl/storage/network_status.hpp> #include <mbgl/util/color.hpp> #include <mbgl/util/constants.hpp> @@ -1448,7 +1450,7 @@ void QMapboxGL::render() mbgl::BackendScope scope { *d_ptr, mbgl::BackendScope::ScopeType::Implicit }; d_ptr->dirty = false; - d_ptr->mapObj->render(*d_ptr); + d_ptr->render(); } /*! @@ -1487,6 +1489,8 @@ void QMapboxGL::connectionEstablished() \a copyrightsHtml is a string with a HTML snippet. */ +class QMapboxGLRendererFrontend; + QMapboxGLPrivate::QMapboxGLPrivate(QMapboxGL *q, const QMapboxGLSettings &settings, const QSize &size_, qreal pixelRatio) : QObject(q) , size(size_) @@ -1497,11 +1501,18 @@ QMapboxGLPrivate::QMapboxGLPrivate(QMapboxGL *q, const QMapboxGLSettings &settin settings.cacheDatabaseMaximumSize())) , threadPool(mbgl::sharedThreadPool()) { + // Setup and connect the renderer frontend + frontend = std::make_unique<QMapboxGLRendererFrontend>( + std::make_unique<mbgl::Renderer>(*this, pixelRatio, *fileSourceObj, *threadPool, + static_cast<mbgl::GLContextMode>(settings.contextMode())), + *this); + connect(frontend.get(), SIGNAL(updated()), this, SLOT(invalidate())); + mapObj = std::make_unique<mbgl::Map>( - *this, *this, sanitizedSize(size), + *frontend, + *this, sanitizedSize(size), pixelRatio, *fileSourceObj, *threadPool, mbgl::MapMode::Continuous, - static_cast<mbgl::GLContextMode>(settings.contextMode()), static_cast<mbgl::ConstrainMode>(settings.constrainMode()), static_cast<mbgl::ViewportMode>(settings.viewportMode())); @@ -1541,6 +1552,11 @@ void QMapboxGLPrivate::invalidate() } } +void QMapboxGLPrivate::render() +{ + frontend->render(); +} + void QMapboxGLPrivate::onCameraWillChange(mbgl::MapObserver::CameraChangeMode mode) { if (mode == mbgl::MapObserver::CameraChangeMode::Immediate) { |