diff options
author | ExMix <rahuba.youri@mapswithme.com> | 2015-02-16 15:51:26 +0300 |
---|---|---|
committer | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2015-11-30 16:04:03 +0300 |
commit | a404130ec315d3da5d01d201e9d5a742fbac5bfa (patch) | |
tree | 7ab448d81ca24f05a3cf201b941cdad9d34bcfbd /drape_head | |
parent | f32047a95b937ef37d04b9a64bdaddd9d0f44f5d (diff) |
[drape] testing engine fixes
Diffstat (limited to 'drape_head')
-rw-r--r-- | drape_head/drape_surface.cpp | 112 | ||||
-rw-r--r-- | drape_head/drape_surface.hpp | 30 | ||||
-rw-r--r-- | drape_head/testing_engine.cpp | 6 | ||||
-rw-r--r-- | drape_head/testing_engine.hpp | 6 |
4 files changed, 4 insertions, 150 deletions
diff --git a/drape_head/drape_surface.cpp b/drape_head/drape_surface.cpp index 8888c8672b..28a553e57f 100644 --- a/drape_head/drape_surface.cpp +++ b/drape_head/drape_surface.cpp @@ -1,39 +1,16 @@ #include "drape_head/drape_surface.hpp" #include "drape_frontend/viewport.hpp" -#include "drape_frontend/map_data_provider.hpp" -#include "platform/platform.hpp" - -#include "drape/shader_def.hpp" - -#include "base/stl_add.hpp" #include "base/logging.hpp" -#include "std/bind.hpp" -#include "std/cmath.hpp" - -#include <QtGui/QMouseEvent> - - DrapeSurface::DrapeSurface() - : m_dragState(false) - , m_contextFactory(nullptr) + : m_contextFactory(nullptr) { setSurfaceType(QSurface::OpenGLSurface); QObject::connect(this, SIGNAL(heightChanged(int)), this, SLOT(sizeChanged(int))); QObject::connect(this, SIGNAL(widthChanged(int)), this, SLOT(sizeChanged(int))); - - ///{ Temporary initialization - m_model.InitClassificator(); - // Platform::FilesList maps; - // Platform & pl = GetPlatform(); - // pl.GetFilesByExt(pl.WritableDir(), DATA_FILE_EXTENSION, maps); - - // for_each(maps.begin(), maps.end(), bind(&model::FeaturesFetcher::RegisterMap, &m_model, _1)); - // ///} - // /// } DrapeSurface::~DrapeSurface() @@ -50,95 +27,20 @@ void DrapeSurface::exposeEvent(QExposeEvent *e) { if (m_contextFactory.IsNull()) { - dp::ThreadSafeFactory * factory = new dp::ThreadSafeFactory(new QtOGLContextFactory(this)); + dp::ThreadSafeFactory * factory = new dp::ThreadSafeFactory(new QtOGLContextFactory(this), false); m_contextFactory = dp::MasterPointer<dp::OGLContextFactory>(factory); CreateEngine(); - UpdateCoverage(); } } } -void DrapeSurface::mousePressEvent(QMouseEvent * e) -{ - QWindow::mousePressEvent(e); - if (!isExposed()) - return; - - if (e->button() == Qt::LeftButton) - { - m2::PointF p = GetDevicePosition(e->pos()); - m_navigator.StartDrag(p, 0); - UpdateCoverage(); - m_dragState = true; - } -} - -void DrapeSurface::mouseMoveEvent(QMouseEvent * e) -{ - QWindow::mouseMoveEvent(e); - if (!isExposed()) - return; - - if (m_dragState) - { - m2::PointF p = GetDevicePosition(e->pos()); - m_navigator.DoDrag(p, 0); - UpdateCoverage(); - } -} - -void DrapeSurface::mouseReleaseEvent(QMouseEvent * e) -{ - QWindow::mouseReleaseEvent(e); - if (!isExposed()) - return; - - if (m_dragState) - { - m2::PointF p = GetDevicePosition(e->pos()); - m_navigator.StopDrag(p, 0, false); - UpdateCoverage(); - m_dragState = false; - } -} - -void DrapeSurface::wheelEvent(QWheelEvent * e) -{ - if (!m_dragState) - { - m_navigator.ScaleToPoint(GetDevicePosition(e->pos()), exp(e->delta() / 360.0), 0); - UpdateCoverage(); - } -} - void DrapeSurface::CreateEngine() { dp::RefPointer<dp::OGLContextFactory> f(m_contextFactory.GetRefPointer()); float pixelRatio = devicePixelRatio(); - typedef df::MapDataProvider::TReadIDsFn TReadIDsFn; - typedef df::MapDataProvider::TReadFeaturesFn TReadFeaturesFn; - typedef df::MapDataProvider::TReadIdCallback TReadIdCallback; - typedef df::MapDataProvider::TReadFeatureCallback TReadFeatureCallback; - - TReadIDsFn idReadFn = [this](TReadIdCallback const & fn, m2::RectD const & r, int scale) - { - m_model.ForEachFeatureID(r, fn, scale); - }; - - TReadFeaturesFn featureReadFn = [this](TReadFeatureCallback const & fn, vector<FeatureID> const & ids) - { - m_model.ReadFeatures(fn, ids); - }; - - m_drapeEngine = TEnginePrt(new df::DrapeEngine(f, df::Viewport(0, 0, pixelRatio * width(), pixelRatio * height()), - df::MapDataProvider(idReadFn, featureReadFn), pixelRatio)); -} - -void DrapeSurface::UpdateCoverage() -{ - m_drapeEngine->UpdateCoverage(m_navigator.Screen()); + m_drapeEngine = TEnginePrt(new df::TestingEngine(f, df::Viewport(0, 0, pixelRatio * width(), pixelRatio * height()), pixelRatio)); } void DrapeSurface::sizeChanged(int) @@ -148,14 +50,6 @@ void DrapeSurface::sizeChanged(int) float vs = devicePixelRatio(); int w = width() * vs; int h = height() * vs; - m_navigator.OnSize(0, 0, w, h); m_drapeEngine->Resize(w, h); - UpdateCoverage(); } } - -m2::PointF DrapeSurface::GetDevicePosition(QPoint const & p) -{ - qreal const ratio = devicePixelRatio(); - return m2::PointF(p.x() * ratio, p.y() * ratio); -} diff --git a/drape_head/drape_surface.hpp b/drape_head/drape_surface.hpp index 44857c3fcc..8f705c586e 100644 --- a/drape_head/drape_surface.hpp +++ b/drape_head/drape_surface.hpp @@ -1,24 +1,9 @@ #pragma once #include "drape_head/qtoglcontextfactory.hpp" - -#include "map/feature_vec_model.hpp" -#include "map/navigator.hpp" - -#include "drape/batcher.hpp" -#include "drape/gpu_program_manager.hpp" -#include "drape/uniform_values_storage.hpp" - -#define USE_TESTING_ENGINE -#if defined(USE_TESTING_ENGINE) #include "drape_head/testing_engine.hpp" -#define DrapeEngine TestingEngine -#else -#include "drape_frontend/drape_engine.hpp" -#endif #include <QtGui/QWindow> -#include <QtCore/QTimerEvent> class DrapeSurface : public QWindow { @@ -30,28 +15,15 @@ public: protected: void exposeEvent(QExposeEvent * e); - void mousePressEvent(QMouseEvent * e); - void mouseMoveEvent(QMouseEvent * e); - void mouseReleaseEvent(QMouseEvent * e); - void wheelEvent(QWheelEvent * e); private: void CreateEngine(); - void UpdateCoverage(); Q_SLOT void sizeChanged(int); private: - m2::PointF GetDevicePosition(QPoint const & p); - - bool m_dragState; - - model::FeaturesFetcher m_model; - Navigator m_navigator; - -private: typedef dp::MasterPointer<dp::OGLContextFactory> TContextFactoryPtr; - typedef dp::MasterPointer<df::DrapeEngine> TEnginePrt; + typedef dp::MasterPointer<df::TestingEngine> TEnginePrt; TContextFactoryPtr m_contextFactory; TEnginePrt m_drapeEngine; }; diff --git a/drape_head/testing_engine.cpp b/drape_head/testing_engine.cpp index 0aa1b55f01..46032037dc 100644 --- a/drape_head/testing_engine.cpp +++ b/drape_head/testing_engine.cpp @@ -252,7 +252,6 @@ private: TestingEngine::TestingEngine(dp::RefPointer<dp::OGLContextFactory> oglcontextfactory, Viewport const & viewport, - MapDataProvider const & model, double vs) : m_contextFactory(oglcontextfactory) , m_viewport(viewport) @@ -352,11 +351,6 @@ void TestingEngine::Resize(int w, int h) Draw(); } -void TestingEngine::DragStarted(m2::PointF const & p) {} -void TestingEngine::Drag(m2::PointF const & p) {} -void TestingEngine::DragEnded(m2::PointF const & p) {} -void TestingEngine::Scale(m2::PointF const & p, double factor) {} - void TestingEngine::timerEvent(QTimerEvent * e) { if (e->timerId() == m_timerId) diff --git a/drape_head/testing_engine.hpp b/drape_head/testing_engine.hpp index 5d046cb7ec..2bf5a56451 100644 --- a/drape_head/testing_engine.hpp +++ b/drape_head/testing_engine.hpp @@ -23,17 +23,11 @@ class TestingEngine : public QObject public: TestingEngine(dp::RefPointer<dp::OGLContextFactory> oglcontextfactory, Viewport const & viewport, - MapDataProvider const & model, double vs); ~TestingEngine(); void Draw(); void Resize(int w, int h); - void DragStarted(m2::PointF const & p); - void Drag(m2::PointF const & p); - void DragEnded(m2::PointF const & p); - void Scale(m2::PointF const & p, double factor); - void UpdateCoverage(ScreenBase const & s){}; protected: void timerEvent(QTimerEvent * e); |