Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/build.gradle2
-rw-r--r--android/jni/Android.mk33
-rw-r--r--android/jni/com/mapswithme/core/jni_helper.cpp2
-rw-r--r--android/jni/com/mapswithme/maps/Framework.cpp1039
-rw-r--r--android/jni/com/mapswithme/maps/Framework.hpp31
-rw-r--r--android/jni/com/mapswithme/maps/LocationState.cpp27
-rw-r--r--android/jni/com/mapswithme/maps/MapFragment.cpp19
-rw-r--r--android/jni/com/mapswithme/maps/MwmApplication.cpp3
-rw-r--r--android/jni/com/mapswithme/maps/RenderActivity.cpp46
-rw-r--r--android/jni/com/mapswithme/maps/bookmarks/data/BookmarkCategory.cpp10
-rw-r--r--android/jni/com/mapswithme/opengl/android_gl_utils.hpp43
-rw-r--r--android/jni/com/mapswithme/opengl/androidoglcontext.cpp58
-rw-r--r--android/jni/com/mapswithme/opengl/androidoglcontext.hpp32
-rw-r--r--android/jni/com/mapswithme/opengl/androidoglcontextfactory.cpp215
-rw-r--r--android/jni/com/mapswithme/opengl/androidoglcontextfactory.hpp48
-rw-r--r--android/jni/com/mapswithme/platform/Platform.cpp5
-rw-r--r--android/src/com/mapswithme/country/DownloadActivity.java1
-rw-r--r--android/src/com/mapswithme/maps/MwmActivity.java19
-rw-r--r--android/src/com/mapswithme/maps/RenderActivity.java122
-rw-r--r--common.pri6
-rw-r--r--data/Onmac.kml135
-rw-r--r--drape/color.hpp13
-rw-r--r--drape/drape_common.pri6
-rw-r--r--drape/glIncludes.hpp5
-rw-r--r--drape/glfunctions.cpp39
-rw-r--r--drape/glfunctions.hpp9
-rw-r--r--drape/glyph_manager.cpp4
-rw-r--r--drape/utils/projection.cpp23
-rw-r--r--drape/utils/projection.hpp11
-rw-r--r--drape_frontend/apply_feature_functors.cpp5
-rw-r--r--drape_frontend/frontend_renderer.cpp24
-rw-r--r--drape_frontend/text_layout.cpp9
-rw-r--r--drape_frontend/text_shape.cpp6
-rw-r--r--drape_head/drape_surface.cpp3
-rw-r--r--drape_head/drape_surface.hpp3
-rw-r--r--drape_head/mainwindow.cpp2
-rw-r--r--drape_head/testing_engine.cpp32
-rw-r--r--iphone/Maps/Bookmarks/BookmarksVC.mm5
-rw-r--r--iphone/Maps/Classes/EAGLView.h37
-rw-r--r--iphone/Maps/Classes/EAGLView.mm165
-rw-r--r--iphone/Maps/Classes/LocationPredictor.mm19
-rw-r--r--iphone/Maps/Classes/MapViewController.mm132
-rw-r--r--iphone/Maps/Maps.xcodeproj/project.pbxproj590
-rw-r--r--iphone/Maps/Settings/SettingsViewController.mm3
-rw-r--r--map/address_finder.cpp3
-rw-r--r--map/alfa_animation_task.cpp6
-rw-r--r--map/anim_phase_chain.cpp3
-rw-r--r--map/bookmark.cpp55
-rw-r--r--map/bookmark.hpp3
-rw-r--r--map/bookmark_manager.cpp193
-rw-r--r--map/bookmark_manager.hpp6
-rw-r--r--map/compass_arrow.cpp176
-rw-r--r--map/compass_arrow.hpp27
-rw-r--r--map/country_status_display.hpp48
-rw-r--r--map/framework.cpp861
-rw-r--r--map/framework.hpp94
-rw-r--r--map/information_display.cpp270
-rw-r--r--map/information_display.hpp33
-rw-r--r--map/location_state.cpp229
-rw-r--r--map/location_state.hpp33
-rw-r--r--map/map_tests/bookmarks_test.cpp10
-rw-r--r--map/map_tests/map_tests.pro2
-rw-r--r--map/map_tests/mwm_url_tests.cpp3
-rw-r--r--map/map_tests/navigator_test.cpp6
-rw-r--r--map/mwm_url.cpp8
-rw-r--r--map/mwm_url.hpp2
-rw-r--r--map/navigator.cpp39
-rw-r--r--map/navigator.hpp8
-rw-r--r--map/pin_click_manager.cpp17
-rw-r--r--map/pin_click_manager.hpp3
-rw-r--r--map/rotate_screen_task.cpp6
-rw-r--r--map/ruler.cpp490
-rw-r--r--map/ruler.hpp26
-rw-r--r--map/track.cpp73
-rw-r--r--map/track.hpp28
-rw-r--r--map/user_mark.hpp8
-rw-r--r--map/user_mark_container.cpp145
-rw-r--r--map/user_mark_container.hpp8
-rw-r--r--map/user_mark_dl_cache.cpp156
-rw-r--r--map/user_mark_dl_cache.hpp25
-rw-r--r--omim.pro41
-rw-r--r--platform/platform.pro8
-rw-r--r--platform/platform_tests/platform_tests.pro1
-rw-r--r--qt/draw_widget.cpp318
-rw-r--r--qt/draw_widget.hpp64
-rw-r--r--qt/mainwindow.cpp43
-rw-r--r--qt/mainwindow.hpp10
-rw-r--r--qt/qt.pro17
-rw-r--r--qt/qtoglcontextfactory.cpp8
-rw-r--r--qt_tstfrm/qt_tstfrm.pro5
-rw-r--r--render/events.hpp36
-rwxr-xr-xtools/autobuild/android.sh2
92 files changed, 2926 insertions, 3771 deletions
diff --git a/android/build.gradle b/android/build.gradle
index 092624c03d..1cbaa9e5fb 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -256,7 +256,7 @@ android {
// We don't compress these extensions in assets/ because our random FileReader can't read zip-compressed files from apk
aaptOptions {
- noCompress 'txt', 'bin', 'skn', 'html', 'png', 'json', 'mwm', 'ttf'
+ noCompress 'txt', 'bin', 'skn', 'html', 'png', 'json', 'mwm', 'ttf', 'sdf'
ignoreAssetsPattern "!.svn:!.git:!.DS_Store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"
}
diff --git a/android/jni/Android.mk b/android/jni/Android.mk
index 67ec496d72..5a15218cb7 100644
--- a/android/jni/Android.mk
+++ b/android/jni/Android.mk
@@ -13,7 +13,7 @@ endif
# List all static libraries which are built using our own scripts in tools/android #
####################################################################################
-MY_PREBUILT_LIBS_PATH := ../../../omim-android-$(OMIM_CONFIG)-$(TARGET_ARCH_ABI)/out/$(OMIM_CONFIG)
+MY_PREBUILT_LIBS_PATH := ../../../omim-android-drape-$(OMIM_CONFIG)-$(TARGET_ARCH_ABI)/out/$(OMIM_CONFIG)
# Avoid clean errors due to missing external static libs
ifneq ($(MAKECMDGOALS),clean)
@@ -25,7 +25,7 @@ define add_prebuild_static_lib
include $(PREBUILT_STATIC_LIBRARY)
endef
-prebuild_static_libs := osrm protobuf tomcrypt jansson minizip fribidi freetype expat base coding geometry anim platform graphics indexer storage search routing gui render map stats_client succinct opening_hours
+prebuild_static_libs := osrm protobuf tomcrypt jansson minizip fribidi freetype expat base coding geometry anim platform drape indexer storage search routing drape_frontend map stats_client succinct opening_hours
$(foreach item,$(prebuild_static_libs),$(eval $(call add_prebuild_static_lib,$(item))))
@@ -60,21 +60,17 @@ LOCAL_HEADER_FILES := \
../../private.h \
com/mapswithme/core/jni_helper.hpp \
com/mapswithme/core/logging.hpp \
- com/mapswithme/core/render_context.hpp \
com/mapswithme/maps/Framework.hpp \
com/mapswithme/maps/MapStorage.hpp \
com/mapswithme/platform/Platform.hpp \
com/mapswithme/platform/http_thread_android.hpp \
- nv_thread/nv_thread.hpp \
- nv_event/nv_event_queue.hpp \
- nv_event/nv_event.hpp \
- nv_event/nv_keycode_mapping.hpp \
- nv_event/scoped_profiler.hpp
+ com/mapswithme/opengl/android_gl_utils.hpp \
+ com/mapswithme/opengl/androidoglcontext.hpp \
+ com/mapswithme/opengl/androidoglcontextfactory.hpp \
LOCAL_SRC_FILES := \
com/mapswithme/core/jni_helper.cpp \
com/mapswithme/core/logging.cpp \
- com/mapswithme/core/render_context.cpp \
com/mapswithme/country/country_helper.cpp \
com/mapswithme/country/CountryTree.cpp \
com/mapswithme/country/ActiveCountryTree.cpp \
@@ -83,10 +79,9 @@ LOCAL_SRC_FILES := \
com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp \
com/mapswithme/maps/bookmarks/data/BookmarkCategory.cpp \
com/mapswithme/maps/sound/tts.cpp \
- com/mapswithme/maps/VideoTimer.cpp \
com/mapswithme/maps/MapFragment.cpp \
- com/mapswithme/maps/MwmApplication.cpp \
- com/mapswithme/maps/Lifecycle.cpp \
+ com/mapswithme/maps/RenderActivity.cpp \
+ com/mapswithme/maps/MWMApplication.cpp \
com/mapswithme/maps/LocationState.cpp \
com/mapswithme/maps/MapStorage.cpp \
com/mapswithme/maps/DownloadResourcesActivity.cpp \
@@ -98,14 +93,12 @@ LOCAL_SRC_FILES := \
com/mapswithme/platform/HttpThread.cpp \
com/mapswithme/platform/Language.cpp \
com/mapswithme/platform/PThreadImpl.cpp \
- com/mapswithme/util/StringUtils.cpp \
- com/mapswithme/util/Config.cpp \
- nv_thread/nv_thread.cpp \
- nv_event/nv_event_queue.cpp \
- nv_event/nv_event.cpp \
- nv_time/nv_time.cpp \
-
-LOCAL_LDLIBS := -llog -lGLESv2 -latomic -lz
+ com/mapswithme/utils/StringUtils.cpp \
+ com/mapswithme/util/Config.cpp \
+ com/mapswithme/opengl/androidoglcontext.cpp \
+ com/mapswithme/opengl/androidoglcontextfactory.cpp \
+
+LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2 -latomic -lz
LOCAL_LDLIBS += -Wl,--gc-sections
diff --git a/android/jni/com/mapswithme/core/jni_helper.cpp b/android/jni/com/mapswithme/core/jni_helper.cpp
index 70b2db95cd..904b49224b 100644
--- a/android/jni/com/mapswithme/core/jni_helper.cpp
+++ b/android/jni/com/mapswithme/core/jni_helper.cpp
@@ -30,8 +30,6 @@ extern "C"
g_jvm = jvm;
jni::InitSystemLog();
jni::InitAssertLog();
- // @TODO remove line below after refactoring
- InitNVEvent(jvm);
JNIEnv * env = jni::GetEnv();
// TODO
diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp
index 14515c25aa..985e57ad4c 100644
--- a/android/jni/com/mapswithme/maps/Framework.cpp
+++ b/android/jni/com/mapswithme/maps/Framework.cpp
@@ -1,9 +1,7 @@
#include "Framework.hpp"
-#include "VideoTimer.hpp"
#include "MapStorage.hpp"
#include "../core/jni_helper.hpp"
-#include "../core/render_context.hpp"
#include "../country/country_helper.hpp"
@@ -12,10 +10,7 @@
#include "map/information_display.hpp"
#include "map/user_mark.hpp"
-#include "gui/controller.hpp"
-
-#include "graphics/opengl/framebuffer.hpp"
-#include "graphics/opengl/opengl.hpp"
+#include "drape_frontend/visual_params.hpp"
#include "coding/file_container.hpp"
#include "coding/file_name_utils.hpp"
@@ -61,681 +56,655 @@ namespace
namespace android
{
- void Framework::CallRepaint() {}
-
- Framework::Framework()
- : m_mask(0),
- m_isCleanSingleClick(false),
- m_doLoadState(true),
- m_lastCompass(0.0),
- m_wasLongClick(false),
- m_densityDpi(0),
- m_screenWidth(0),
- m_screenHeight(0),
- m_currentSlotID(0)
- {
- ASSERT_EQUAL ( g_framework, 0, () );
- g_framework = this;
- m_videoTimer = new VideoTimer(bind(&Framework::CallRepaint, this));
- m_activeMapsConnectionID = m_work.GetCountryTree().GetActiveMapLayout().AddListener(this);
- }
-
- Framework::~Framework()
- {
- m_work.GetCountryTree().GetActiveMapLayout().RemoveListener(m_activeMapsConnectionID);
- delete m_videoTimer;
- }
+enum MultiTouchAction
+{
+ MULTITOUCH_UP = 0x00000001,
+ MULTITOUCH_DOWN = 0x00000002,
+ MULTITOUCH_MOVE = 0x00000003,
+ MULTITOUCH_CANCEL = 0x00000004,
+ MULTITOUCH_POINTER_MASK = 0x0000ff00,
+ MULTITOUCH_POINTER_SHIFT = 0x00000008,
+ MULTITOUCH_ACTION_MASK = 0x000000ff,
+ MULTITOUCH_FORCE_32BITS = 0x7fffffff
+};
+
+void ShowAllSearchResultsImpl()
+{
+ frm()->ShowAllSearchResults();
+}
- void Framework::OnLocationError(int errorCode)
- {
- m_work.OnLocationError(static_cast<location::TLocationError>(errorCode));
- }
+Framework::Framework()
+ : m_mask(0),
+ m_isCleanSingleClick(false),
+ m_doLoadState(true),
+ m_lastCompass(0.0),
+ m_wasLongClick(false)
+{
+ ASSERT_EQUAL ( g_framework, 0, () );
+ g_framework = this;
+ m_activeMapsConnectionID = m_work.GetCountryTree().GetActiveMapLayout().AddListener(this);
+}
- void Framework::OnLocationUpdated(location::GpsInfo const & info)
- {
- Platform::RunOnGuiThreadImpl(bind(&::Framework::OnLocationUpdate, ref(m_work), info));
- }
+Framework::~Framework()
+{
+ m_work.GetCountryTree().GetActiveMapLayout().RemoveListener(m_activeMapsConnectionID);
+}
- void Framework::OnCompassUpdated(location::CompassInfo const & info, bool force)
- {
- static double const COMPASS_THRESHOLD = my::DegToRad(1.0);
+void Framework::OnLocationError(int errorCode)
+{
+ m_work.OnLocationError(static_cast<location::TLocationError>(errorCode));
+}
- /// @todo Do not emit compass bearing too often while we are passing it through nv-queue.
- /// Need to make more experiments in future.
- if (force || fabs(ang::GetShortestDistance(m_lastCompass, info.m_bearing)) >= COMPASS_THRESHOLD)
- {
- m_lastCompass = info.m_bearing;
- Platform::RunOnGuiThreadImpl(bind(&::Framework::OnCompassUpdate, ref(m_work), info));
- }
- }
+void Framework::OnLocationUpdated(location::GpsInfo const & info)
+{
+ Platform::RunOnGuiThreadImpl(bind(&::Framework::OnLocationUpdate, ref(m_work), info));
+}
- void Framework::UpdateCompassSensor(int ind, float * arr)
- {
- m_sensors[ind].Next(arr);
- }
+void Framework::OnCompassUpdated(location::CompassInfo const & info)
+{
+ static double const COMPASS_THRASHOLD = my::DegToRad(1.0);
- void Framework::DeleteRenderPolicy()
+ /// @todo Do not emit compass bearing too often while we are passing it through nv-queue.
+ /// Need to make more experiments in future.
+ if (fabs(ang::GetShortestDistance(m_lastCompass, info.m_bearing)) >= COMPASS_THRASHOLD)
{
- m_work.SaveState();
- LOG(LINFO, ("Clearing current render policy."));
- m_work.SetRenderPolicy(nullptr);
- m_work.EnterBackground();
+ m_lastCompass = info.m_bearing;
+ Platform::RunOnGuiThreadImpl(bind(&::Framework::OnCompassUpdate, ref(m_work), info));
}
+}
- void Framework::SetBestDensity(int densityDpi, RenderPolicy::Params & params)
- {
- typedef pair<int, graphics::EDensity> P;
- P dens[] = {
- P(120, graphics::EDensityLDPI),
- P(160, graphics::EDensityMDPI),
- P(240, graphics::EDensityHDPI),
- P(320, graphics::EDensityXHDPI),
- P(480, graphics::EDensityXXHDPI)
- };
+void Framework::UpdateCompassSensor(int ind, float * arr)
+{
+ m_sensors[ind].Next(arr);
+}
- int prevRange = numeric_limits<int>::max();
- int bestRangeIndex = 0;
- for (int i = 0; i < ARRAY_SIZE(dens); i++)
+float Framework::GetBestDensity(int densityDpi)
+{
+ typedef pair<int, float> P;
+ P dens[] = {
+ P(120, 0.75f),
+ P(160, 1.0f),
+ P(240, 1.5f),
+ P(320, 2.0f),
+ P(480, 3.0f)
+ };
+
+ int prevRange = numeric_limits<int>::max();
+ int bestRangeIndex = 0;
+ for (int i = 0; i < ARRAY_SIZE(dens); i++)
+ {
+ int currRange = abs(densityDpi - dens[i].first);
+ if (currRange <= prevRange)
{
- int currRange = abs(densityDpi - dens[i].first);
- if (currRange <= prevRange)
- {
- // it is better, take index
- bestRangeIndex = i;
- prevRange = currRange;
- }
- else
- break;
+ // it is better, take index
+ bestRangeIndex = i;
+ prevRange = currRange;
}
-
- params.m_density = dens[bestRangeIndex].second;
- params.m_exactDensityDPI = densityDpi;
+ else
+ break;
}
- bool Framework::InitRenderPolicyImpl(int densityDpi, int screenWidth, int screenHeight)
- {
- graphics::ResourceManager::Params rmParams;
+ return dens[bestRangeIndex].second;
+}
- rmParams.m_videoMemoryLimit = 30 * 1024 * 1024;
- rmParams.m_texFormat = graphics::Data4Bpp;
- rmParams.m_exactDensityDPI = densityDpi;
+bool Framework::CreateDrapeEngine(JNIEnv * env, jobject jSurface, int densityDpi)
+{
+ m_contextFactory.Reset(new AndroidOGLContextFactory(env, jSurface));
+ if (!m_contextFactory->IsValid())
+ return false;
- RenderPolicy::Params rpParams;
+ float visualScale = GetBestDensity(densityDpi);
+ m_work.CreateDrapeEngine(m_contextFactory.GetRefPointer(), visualScale, m_contextFactory->GetWidth(), m_contextFactory->GetHeight());
+ m_work.SetUpdatesEnabled(true);
+ m_work.EnterForeground();
- rpParams.m_videoTimer = m_videoTimer;
- rpParams.m_useDefaultFB = true;
- rpParams.m_rmParams = rmParams;
- rpParams.m_primaryRC = make_shared<android::RenderContext>();
+ return true;
+}
- SetBestDensity(densityDpi, rpParams);
+void Framework::DeleteDrapeEngine()
+{
+ m_work.DestroyDrapeEngine();
+}
- rpParams.m_skinName = "basic.skn";
- LOG(LINFO, ("Using", graphics::convert(rpParams.m_density), "resources"));
+void Framework::Resize(int w, int h)
+{
+ m_contextFactory->UpdateSurfaceSize();
+ m_work.OnSize(w, h);
+}
- rpParams.m_screenWidth = screenWidth;
- rpParams.m_screenHeight = screenHeight;
+void Framework::SetMapStyle(MapStyle mapStyle)
+{
+ //@TODO UVR
+}
- try
- {
- m_work.SetRenderPolicy(CreateRenderPolicy(rpParams));
- m_work.InitGuiSubsystem();
- }
- catch (graphics::gl::platform_unsupported const & e)
- {
- LOG(LINFO, ("This android platform is unsupported, reason:", e.what()));
- return false;
- }
+Storage & Framework::Storage()
+{
+ return m_work.Storage();
+}
- return true;
- }
+void Framework::ShowCountry(TIndex const & idx, bool zoomToDownloadButton)
+{
+ m_doLoadState = false;
- bool Framework::InitRenderPolicy(int densityDpi, int screenWidth, int screenHeight)
+ if (zoomToDownloadButton)
{
- if (!InitRenderPolicyImpl(densityDpi, screenWidth, screenHeight))
- return false;
-
- if (m_doLoadState)
- LoadState();
- else
- m_doLoadState = true;
-
- m_work.SetUpdatesEnabled(true);
- m_work.EnterForeground();
-
- m_densityDpi = densityDpi;
- m_screenWidth = screenWidth;
- m_screenHeight = screenHeight;
-
- return true;
+ m2::RectD const rect = m_work.GetCountryBounds(idx);
+ double const lon = MercatorBounds::XToLon(rect.Center().x);
+ double const lat = MercatorBounds::YToLat(rect.Center().y);
+ m_work.ShowRect(lat, lon, 10);
}
+ else
+ m_work.ShowCountry(idx);
+}
- void Framework::SetMapStyle(MapStyle mapStyle)
- {
- if (m_work.GetMapStyle() == mapStyle)
- return;
-
- bool const hasRenderPolicy = (nullptr != m_work.GetRenderPolicy());
-
- if (hasRenderPolicy)
- {
- // Drop old render policy.
- m_work.SetRenderPolicy(nullptr);
-
- m_work.SetMapStyle(mapStyle);
-
- // Construct new render policy.
- if (!InitRenderPolicyImpl(m_densityDpi, m_screenWidth, m_screenHeight))
- return;
-
- m_work.SetUpdatesEnabled(true);
- }
- else
- {
- // Just set the flag, a new render policy will be initialized with this flag.
- m_work.SetMapStyle(mapStyle);
- }
- }
+TStatus Framework::GetCountryStatus(TIndex const & idx) const
+{
+ return m_work.GetCountryStatus(idx);
+}
- MapStyle Framework::GetMapStyle() const
+void Framework::Move(int mode, double x, double y)
+{
+ DragEvent e(x, y);
+ switch (mode)
{
- return m_work.GetMapStyle();
+ case 0: m_work.StartDrag(e); break;
+ case 1: m_work.DoDrag(e); break;
+ case 2: m_work.StopDrag(e); break;
}
+}
- Storage & Framework::Storage()
+void Framework::Zoom(int mode, double x1, double y1, double x2, double y2)
+{
+ ScaleEvent e(x1, y1, x2, y2);
+ switch (mode)
{
- return m_work.Storage();
+ case 0: m_work.StartScale(e); break;
+ case 1: m_work.DoScale(e); break;
+ case 2: m_work.StopScale(e); break;
}
+}
- CountryStatusDisplay * Framework::GetCountryStatusDisplay()
- {
- return m_work.GetCountryStatusDisplay();
- }
+void Framework::StartTouchTask(double x, double y, unsigned ms)
+{
+ KillTouchTask();
+ m_deferredTask.reset(new DeferredTask(
+ bind(&android::Framework::OnProcessTouchTask, this, x, y, ms), milliseconds(ms)));
+}
- void Framework::ShowCountry(TIndex const & idx, bool zoomToDownloadButton)
- {
- m_doLoadState = false;
+void Framework::KillTouchTask() { m_deferredTask.reset(); }
- if (zoomToDownloadButton)
- {
- m2::RectD const rect = m_work.GetCountryBounds(idx);
- double const lon = MercatorBounds::XToLon(rect.Center().x);
- double const lat = MercatorBounds::YToLat(rect.Center().y);
- m_work.ShowRect(lat, lon, 10);
- }
- else
- m_work.ShowCountry(idx);
- }
+/// @param[in] mask Active pointers bits : 0x0 - no, 0x1 - (x1, y1), 0x2 - (x2, y2), 0x3 - (x1, y1)(x2, y2).
+void Framework::Touch(int action, int mask, double x1, double y1, double x2, double y2)
+{
+ MultiTouchAction eventType = static_cast<MultiTouchAction>(action);
- TStatus Framework::GetCountryStatus(TIndex const & idx) const
+ // Check if we touch is canceled or we get coordinates NOT from the first pointer.
+ if ((mask != 0x1) || (eventType == MULTITOUCH_CANCEL))
{
- return m_work.GetCountryStatus(idx);
- }
+ ///@TODO UVR
+ //if (mask == 0x1)
+ // m_work.GetGuiController()->OnTapCancelled(m2::PointD(x1, y1));
- void Framework::Resize(int w, int h)
- {
- m_work.OnSize(w, h);
+ m_isCleanSingleClick = false;
+ KillTouchTask();
}
-
- void Framework::DrawFrame()
+ else
{
- if (m_work.NeedRedraw())
- {
- m_work.SetNeedRedraw(false);
+ ASSERT_EQUAL(mask, 0x1, ());
- shared_ptr<PaintEvent> paintEvent(new PaintEvent(m_work.GetRenderPolicy()->GetDrawer().get()));
+ if (eventType == MULTITOUCH_DOWN)
+ {
+ KillTouchTask();
- m_work.BeginPaint(paintEvent);
- m_work.DoPaint(paintEvent);
+ m_wasLongClick = false;
+ m_isCleanSingleClick = true;
+ m_lastX1 = x1;
+ m_lastY1 = y1;
- NVEventSwapBuffersEGL();
+ ///@TODO UVR
+ //if (m_work.GetGuiController()->OnTapStarted(m2::PointD(x1, y1)))
+ // return;
- m_work.EndPaint(paintEvent);
+ StartTouchTask(x1, y1, LONG_TOUCH_MS);
}
- }
- void Framework::Move(int mode, double x, double y)
- {
- DragEvent e(x, y);
- switch (mode)
+ if (eventType == MULTITOUCH_MOVE)
{
- case 0: m_work.StartDrag(e); break;
- case 1: m_work.DoDrag(e); break;
- case 2: m_work.StopDrag(e); break;
+ double const minDist = df::VisualParams::Instance().GetVisualScale() * 10.0;
+ if ((fabs(x1 - m_lastX1) > minDist) || (fabs(y1 - m_lastY1) > minDist))
+ {
+ m_isCleanSingleClick = false;
+ KillTouchTask();
+ }
+
+ ///@TODO UVR
+ //if (m_work.GetGuiController()->OnTapMoved(m2::PointD(x1, y1)))
+ // return;
}
- }
- void Framework::Zoom(int mode, double x1, double y1, double x2, double y2)
- {
- ScaleEvent e(x1, y1, x2, y2);
- switch (mode)
+ if (eventType == MULTITOUCH_UP)
{
- case 0: m_work.StartScale(e); break;
- case 1: m_work.DoScale(e); break;
- case 2: m_work.StopScale(e); break;
- }
- }
+ KillTouchTask();
- void Framework::StartTouchTask(double x, double y, unsigned ms)
- {
- KillTouchTask();
- m_deferredTask.reset(new DeferredTask(
- bind(&android::Framework::OnProcessTouchTask, this, x, y, ms), milliseconds(ms)));
- }
+ ///@TODO UVR
+ //if (m_work.GetGuiController()->OnTapEnded(m2::PointD(x1, y1)))
+ // return;
- void Framework::KillTouchTask() { m_deferredTask.reset(); }
+ if (!m_wasLongClick && m_isCleanSingleClick)
+ {
+ if (m_doubleClickTimer.ElapsedSeconds() <= DOUBLE_TOUCH_S)
+ {
+ // performing double-click
+ m_work.ScaleToPoint(ScaleToPointEvent(x1, y1, 1.5));
+ }
+ else
+ {
+ // starting single touch task
+ StartTouchTask(x1, y1, SHORT_TOUCH_MS);
- /// @param[in] mask Active pointers bits : 0x0 - no, 0x1 - (x1, y1), 0x2 - (x2, y2), 0x3 - (x1, y1)(x2, y2).
- void Framework::Touch(int action, int mask, double x1, double y1, double x2, double y2)
- {
- NVMultiTouchEventType eventType = static_cast<NVMultiTouchEventType>(action);
+ // starting double click
+ m_doubleClickTimer.Reset();
+ }
+ }
+ else
+ m_wasLongClick = false;
+ }
+ }
- // Check if we touch is canceled or we get coordinates NOT from the first pointer.
- if ((mask != 0x1) || (eventType == NV_MULTITOUCH_CANCEL))
+ // general case processing
+ if (m_mask != mask)
+ {
+ if (m_mask == 0x0)
{
if (mask == 0x1)
- m_work.GetGuiController()->OnTapCancelled(m2::PointD(x1, y1));
+ m_work.StartDrag(DragEvent(x1, y1));
- m_isCleanSingleClick = false;
- KillTouchTask();
+ if (mask == 0x2)
+ m_work.StartDrag(DragEvent(x2, y2));
+
+ if (mask == 0x3)
+ m_work.StartScale(ScaleEvent(x1, y1, x2, y2));
}
- else
+
+ if (m_mask == 0x1)
{
- ASSERT_EQUAL(mask, 0x1, ());
+ m_work.StopDrag(DragEvent(x1, y1));
- if (eventType == NV_MULTITOUCH_DOWN)
+ if (mask == 0x0)
{
- KillTouchTask();
+ if ((eventType != MULTITOUCH_UP) && (eventType != MULTITOUCH_CANCEL))
+ LOG(LWARNING, ("should be MULTITOUCH_UP or MULTITOUCH_CANCEL"));
+ }
- m_wasLongClick = false;
- m_isCleanSingleClick = true;
- m_lastX1 = x1;
- m_lastY1 = y1;
+ if (m_mask == 0x2)
+ m_work.StartDrag(DragEvent(x2, y2));
- if (m_work.GetGuiController()->OnTapStarted(m2::PointD(x1, y1)))
- return;
+ if (mask == 0x3)
+ m_work.StartScale(ScaleEvent(x1, y1, x2, y2));
+ }
- StartTouchTask(x1, y1, LONG_TOUCH_MS);
- }
+ if (m_mask == 0x2)
+ {
+ m_work.StopDrag(DragEvent(x2, y2));
- if (eventType == NV_MULTITOUCH_MOVE)
+ if (mask == 0x0)
{
- double const minDist = m_work.GetVisualScale() * 10.0;
- if ((fabs(x1 - m_lastX1) > minDist) || (fabs(y1 - m_lastY1) > minDist))
- {
- m_isCleanSingleClick = false;
- KillTouchTask();
- }
-
- if (m_work.GetGuiController()->OnTapMoved(m2::PointD(x1, y1)))
- return;
+ if ((eventType != MULTITOUCH_UP) && (eventType != MULTITOUCH_CANCEL))
+ LOG(LWARNING, ("should be MULTITOUCH_UP or MULTITOUCH_CANCEL"));
}
- if (eventType == NV_MULTITOUCH_UP)
- {
- KillTouchTask();
-
- if (m_work.GetGuiController()->OnTapEnded(m2::PointD(x1, y1)))
- return;
+ if (mask == 0x1)
+ m_work.StartDrag(DragEvent(x1, y1));
- if (!m_wasLongClick && m_isCleanSingleClick)
- {
- if (m_doubleClickTimer.ElapsedSeconds() <= DOUBLE_TOUCH_S)
- {
- // performing double-click
- m_work.ScaleToPoint(ScaleToPointEvent(x1, y1, 1.5));
- }
- else
- {
- // starting single touch task
- StartTouchTask(x1, y1, SHORT_TOUCH_MS);
-
- // starting double click
- m_doubleClickTimer.Reset();
- }
- }
- else
- m_wasLongClick = false;
- }
+ if (mask == 0x3)
+ m_work.StartScale(ScaleEvent(x1, y1, x2, y2));
}
- // general case processing
- if (m_mask != mask)
+ if (m_mask == 0x3)
{
- if (m_mask == 0x0)
+ m_work.StopScale(ScaleEvent(m_x1, m_y1, m_x2, m_y2));
+
+ if (eventType == MULTITOUCH_MOVE)
{
if (mask == 0x1)
m_work.StartDrag(DragEvent(x1, y1));
if (mask == 0x2)
m_work.StartDrag(DragEvent(x2, y2));
-
- if (mask == 0x3)
- m_work.StartScale(ScaleEvent(x1, y1, x2, y2));
}
+ else
+ mask = 0;
+ }
+ }
+ else
+ {
+ if (eventType == MULTITOUCH_MOVE)
+ {
+ if (m_mask == 0x1)
+ m_work.DoDrag(DragEvent(x1, y1));
+ if (m_mask == 0x2)
+ m_work.DoDrag(DragEvent(x2, y2));
+ if (m_mask == 0x3)
+ m_work.DoScale(ScaleEvent(x1, y1, x2, y2));
+ }
+ if ((eventType == MULTITOUCH_CANCEL) || (eventType == MULTITOUCH_UP))
+ {
if (m_mask == 0x1)
- {
m_work.StopDrag(DragEvent(x1, y1));
-
- if (mask == 0x0)
- {
- if ((eventType != NV_MULTITOUCH_UP) && (eventType != NV_MULTITOUCH_CANCEL))
- LOG(LWARNING, ("should be NV_MULTITOUCH_UP or NV_MULTITOUCH_CANCEL"));
- }
-
- if (m_mask == 0x2)
- m_work.StartDrag(DragEvent(x2, y2));
-
- if (mask == 0x3)
- m_work.StartScale(ScaleEvent(x1, y1, x2, y2));
- }
-
if (m_mask == 0x2)
- {
m_work.StopDrag(DragEvent(x2, y2));
+ if (m_mask == 0x3)
+ m_work.StopScale(ScaleEvent(m_x1, m_y1, m_x2, m_y2));
+ mask = 0;
+ }
+ }
- if (mask == 0x0)
- {
- if ((eventType != NV_MULTITOUCH_UP) && (eventType != NV_MULTITOUCH_CANCEL))
- LOG(LWARNING, ("should be NV_MULTITOUCH_UP or NV_MULTITOUCH_CANCEL"));
- }
+ m_x1 = x1;
+ m_y1 = y1;
+ m_x2 = x2;
+ m_y2 = y2;
+ m_mask = mask;
+}
- if (mask == 0x1)
- m_work.StartDrag(DragEvent(x1, y1));
+void Framework::ShowSearchResult(search::Result const & r)
+{
+ m_doLoadState = false;
+ m_work.ShowSearchResult(r);
+}
- if (mask == 0x3)
- m_work.StartScale(ScaleEvent(x1, y1, x2, y2));
- }
+void Framework::ShowAllSearchResults()
+{
+ m_doLoadState = false;
+ Platform::RunOnGuiThreadImpl(bind(&ShowAllSearchResultsImpl));
+}
- if (m_mask == 0x3)
- {
- m_work.StopScale(ScaleEvent(m_x1, m_y1, m_x2, m_y2));
+bool Framework::Search(search::SearchParams const & params)
+{
+ m_searchQuery = params.m_query;
+ return m_work.Search(params);
+}
- if (eventType == NV_MULTITOUCH_MOVE)
- {
- if (mask == 0x1)
- m_work.StartDrag(DragEvent(x1, y1));
+void Framework::LoadState()
+{
+ if (!m_work.LoadState())
+ m_work.ShowAll();
+}
- if (mask == 0x2)
- m_work.StartDrag(DragEvent(x2, y2));
- }
- else
- mask = 0;
- }
- }
- else
- {
- if (eventType == NV_MULTITOUCH_MOVE)
- {
- if (m_mask == 0x1)
- m_work.DoDrag(DragEvent(x1, y1));
- if (m_mask == 0x2)
- m_work.DoDrag(DragEvent(x2, y2));
- if (m_mask == 0x3)
- m_work.DoScale(ScaleEvent(x1, y1, x2, y2));
- }
+void Framework::SaveState()
+{
+ m_work.SaveState();
+}
- if ((eventType == NV_MULTITOUCH_CANCEL) || (eventType == NV_MULTITOUCH_UP))
- {
- if (m_mask == 0x1)
- m_work.StopDrag(DragEvent(x1, y1));
- if (m_mask == 0x2)
- m_work.StopDrag(DragEvent(x2, y2));
- if (m_mask == 0x3)
- m_work.StopScale(ScaleEvent(m_x1, m_y1, m_x2, m_y2));
- mask = 0;
- }
- }
+void Framework::Invalidate()
+{
+ ///@TODO UVR
+ //m_work.Invalidate();
+}
- m_x1 = x1;
- m_y1 = y1;
- m_x2 = x2;
- m_y2 = y2;
- m_mask = mask;
- }
+void Framework::SetupMeasurementSystem()
+{
+ m_work.SetupMeasurementSystem();
+}
- void Framework::LoadState()
- {
- if (!m_work.LoadState())
- m_work.ShowAll();
- }
+void Framework::AddLocalMaps()
+{
+ m_work.RegisterAllMaps();
+}
- void Framework::SaveState()
- {
- m_work.SaveState();
- }
+void Framework::RemoveLocalMaps()
+{
+ m_work.DeregisterAllMaps();
+}
- void Framework::Invalidate()
- {
- m_work.Invalidate();
- }
+void Framework::GetMapsWithoutSearch(vector<string> & out) const
+{
+ // Actually, this routing is obsolete and comes from ancient times
+ // when mwm was without search index.
+ if (!Settings::IsFirstLaunchForDate(150101))
+ return;
- void Framework::SetupMeasurementSystem()
- {
- m_work.SetupMeasurementSystem();
- }
+ ASSERT(out.empty(), ());
- void Framework::AddLocalMaps()
- {
- m_work.RegisterAllMaps();
- }
+ ::Platform const & pl = GetPlatform();
- void Framework::RemoveLocalMaps()
- {
- m_work.DeregisterAllMaps();
- }
+ vector<LocalCountryFile> localFiles;
+ platform::FindAllLocalMaps(localFiles);
- TIndex Framework::GetCountryIndex(double lat, double lon) const
+ for (LocalCountryFile const & localFile : localFiles)
{
- return m_work.GetCountryIndex(MercatorBounds::FromLatLon(lat, lon));
+ CountryFile const countryFile = localFile.GetCountryFile();
+ // skip World and WorldCoast
+ if (countryFile.GetNameWithoutExt() == WORLD_FILE_NAME ||
+ countryFile.GetNameWithoutExt() == WORLD_COASTS_FILE_NAME)
+ {
+ continue;
+ }
+ try
+ {
+ FilesContainerR cont(platform::GetCountryReader(localFile, MapOptions::Map));
+ if (!cont.IsExist(SEARCH_INDEX_FILE_TAG))
+ out.push_back(countryFile.GetNameWithoutExt());
+ }
+ catch (RootException const & ex)
+ {
+ // sdcard can contain dummy _*.mwm files. Suppress these errors.
+ LOG(LWARNING, ("Bad mwm file:", countryFile.GetNameWithoutExt(), "Error:", ex.Msg()));
+ }
}
+}
- string Framework::GetCountryCode(double lat, double lon) const
- {
- return m_work.GetCountryCode(MercatorBounds::FromLatLon(lat, lon));
- }
+TIndex Framework::GetCountryIndex(double lat, double lon) const
+{
+ return m_work.GetCountryIndex(MercatorBounds::FromLatLon(lat, lon));
+}
- string Framework::GetCountryNameIfAbsent(m2::PointD const & pt) const
- {
- TIndex const idx = m_work.GetCountryIndex(pt);
- TStatus const status = m_work.GetCountryStatus(idx);
- if (status != TStatus::EOnDisk && status != TStatus::EOnDiskOutOfDate)
- return m_work.GetCountryName(idx);
- else
- return string();
- }
+string Framework::GetCountryCode(double lat, double lon) const
+{
+ return m_work.GetCountryCode(MercatorBounds::FromLatLon(lat, lon));
+}
- m2::PointD Framework::GetViewportCenter() const
- {
- return m_work.GetViewportCenter();
- }
+string Framework::GetCountryNameIfAbsent(m2::PointD const & pt) const
+{
+ TIndex const idx = m_work.GetCountryIndex(pt);
+ TStatus const status = m_work.GetCountryStatus(idx);
+ if (status != TStatus::EOnDisk && status != TStatus::EOnDiskOutOfDate)
+ return m_work.GetCountryName(idx);
+ else
+ return string();
+}
- void Framework::AddString(string const & name, string const & value)
- {
- m_work.AddString(name, value);
- }
+m2::PointD Framework::GetViewportCenter() const
+{
+ return m_work.GetViewportCenter();
+}
- void Framework::Scale(double k)
- {
- m_work.Scale(k);
- }
+void Framework::AddString(string const & name, string const & value)
+{
+ m_work.AddString(name, value);
+}
- ::Framework * Framework::NativeFramework()
- {
- return &m_work;
- }
+void Framework::Scale(double k)
+{
+ m_work.Scale(k);
+}
- void Framework::OnProcessTouchTask(double x, double y, unsigned ms)
- {
- m_wasLongClick = (ms == LONG_TOUCH_MS);
- GetPinClickManager().OnShowMark(m_work.GetUserMark(m2::PointD(x, y), m_wasLongClick));
- }
+::Framework * Framework::NativeFramework()
+{
+ return &m_work;
+}
- BookmarkAndCategory Framework::AddBookmark(size_t cat, m2::PointD const & pt, BookmarkData & bm)
- {
- return BookmarkAndCategory(cat, m_work.AddBookmark(cat, pt, bm));
- }
+void Framework::OnProcessTouchTask(double x, double y, unsigned ms)
+{
+ m_wasLongClick = (ms == LONG_TOUCH_MS);
+ GetPinClickManager().OnShowMark(m_work.GetUserMark(m2::PointD(x, y), m_wasLongClick));
+}
- void Framework::ReplaceBookmark(BookmarkAndCategory const & ind, BookmarkData & bm)
- {
- m_work.ReplaceBookmark(ind.first, ind.second, bm);
- }
+BookmarkAndCategory Framework::AddBookmark(size_t cat, m2::PointD const & pt, BookmarkData & bm)
+{
+ return BookmarkAndCategory(cat, m_work.AddBookmark(cat, pt, bm));
+}
- size_t Framework::ChangeBookmarkCategory(BookmarkAndCategory const & ind, size_t newCat)
- {
- BookmarkCategory * pOld = m_work.GetBmCategory(ind.first);
- Bookmark const * oldBm = pOld->GetBookmark(ind.second);
- m2::PointD pt = oldBm->GetOrg();
- BookmarkData bm(oldBm->GetName(), oldBm->GetType(), oldBm->GetDescription(),
- oldBm->GetScale(), oldBm->GetTimeStamp());
+void Framework::ReplaceBookmark(BookmarkAndCategory const & ind, BookmarkData & bm)
+{
+ m_work.ReplaceBookmark(ind.first, ind.second, bm);
+}
- pOld->DeleteBookmark(ind.second);
- pOld->SaveToKMLFile();
+size_t Framework::ChangeBookmarkCategory(BookmarkAndCategory const & ind, size_t newCat)
+{
+ BookmarkCategory * pOld = m_work.GetBmCategory(ind.first);
+ Bookmark const * oldBm = pOld->GetBookmark(ind.second);
+ m2::PointD pt = oldBm->GetOrg();
+ BookmarkData bm(oldBm->GetName(), oldBm->GetType(), oldBm->GetDescription(),
+ oldBm->GetScale(), oldBm->GetTimeStamp());
- return AddBookmark(newCat, pt, bm).second;
- }
+ pOld->DeleteBookmark(ind.second);
+ pOld->SaveToKMLFile();
- bool Framework::ShowMapForURL(string const & url)
- {
- /// @todo this is weird hack, we should reconsider Android lifecycle handling design
- m_doLoadState = false;
+ return AddBookmark(newCat, pt, bm).second;
+}
- return m_work.ShowMapForURL(url);
- }
+bool Framework::ShowMapForURL(string const & url)
+{
+ /// @todo this is weird hack, we should reconsider Android lifecycle handling design
+ m_doLoadState = false;
- void Framework::DeactivatePopup()
- {
- GetPinClickManager().RemovePin();
- }
+ return m_work.ShowMapForURL(url);
+}
- string Framework::GetOutdatedCountriesString()
- {
- vector<Country const *> countries;
- Storage().GetOutdatedCountries(countries);
+void Framework::DeactivatePopup()
+{
+ GetPinClickManager().RemovePin();
+}
- string res;
- for (size_t i = 0; i < countries.size(); ++i)
- {
- res += countries[i]->Name();
- if (i < countries.size() - 1)
- res += ", ";
- }
- return res;
- }
+string Framework::GetOutdatedCountriesString()
+{
+ vector<Country const *> countries;
+ Storage().GetOutdatedCountries(countries);
- void Framework::ShowTrack(int category, int track)
+ string res;
+ for (size_t i = 0; i < countries.size(); ++i)
{
- Track const * nTrack = NativeFramework()->GetBmCategory(category)->GetTrack(track);
- m_doLoadState = false;
- NativeFramework()->ShowTrack(*nTrack);
+ res += countries[i]->Name();
+ if (i < countries.size() - 1)
+ res += ", ";
}
+ return res;
+}
- void Framework::SetCountryTreeListener(shared_ptr<jobject> objPtr)
- {
- m_javaCountryListener = objPtr;
- m_work.GetCountryTree().SetListener(this);
- }
+void Framework::ShowTrack(int category, int track)
+{
+ Track const * nTrack = NativeFramework()->GetBmCategory(category)->GetTrack(track);
+ m_doLoadState = false;
+ NativeFramework()->ShowTrack(*nTrack);
+}
- void Framework::ResetCountryTreeListener()
- {
- m_work.GetCountryTree().ResetListener();
- m_javaCountryListener.reset();
- }
+void Framework::SetCountryTreeListener(shared_ptr<jobject> objPtr)
+{
+ m_javaCountryListener = objPtr;
+ m_work.GetCountryTree().SetListener(this);
+}
- int Framework::AddActiveMapsListener(shared_ptr<jobject> obj)
- {
- m_javaActiveMapListeners[m_currentSlotID] = obj;
- return m_currentSlotID++;
- }
+void Framework::ResetCountryTreeListener()
+{
+ m_work.GetCountryTree().ResetListener();
+ m_javaCountryListener.reset();
+}
- void Framework::RemoveActiveMapsListener(int slotID)
- {
- m_javaActiveMapListeners.erase(slotID);
- }
- //////////////////////////////////////////////////////////////////////////////////////////
- void Framework::ItemStatusChanged(int childPosition)
- {
- if (m_javaCountryListener == NULL)
- return;
+int Framework::AddActiveMapsListener(shared_ptr<jobject> obj)
+{
+ m_javaActiveMapListeners[m_currentSlotID] = obj;
+ return m_currentSlotID++;
+}
- JNIEnv * env = jni::GetEnv();
- jmethodID const methodID = jni::GetJavaMethodID(env,
- *m_javaCountryListener,
- "onItemStatusChanged",
- "(I)V");
- ASSERT ( methodID, () );
+void Framework::RemoveActiveMapsListener(int slotID)
+{
+ m_javaActiveMapListeners.erase(slotID);
+}
- env->CallVoidMethod(*m_javaCountryListener, methodID, childPosition);
- }
+//////////////////////////////////////////////////////////////////////////////////////////
+void Framework::ItemStatusChanged(int childPosition)
+{
+ if (m_javaCountryListener == NULL)
+ return;
- void Framework::ItemProgressChanged(int childPosition, LocalAndRemoteSizeT const & sizes)
- {
- if (m_javaCountryListener == NULL)
- return;
+ JNIEnv * env = jni::GetEnv();
+ static jmethodID const methodID = jni::GetJavaMethodID(env,
+ *m_javaCountryListener,
+ "onItemStatusChanged",
+ "(I)V");
+ ASSERT ( methodID, () );
- JNIEnv * env = jni::GetEnv();
- jmethodID const methodID = jni::GetJavaMethodID(env,
- *m_javaCountryListener,
- "onItemProgressChanged",
- "(I[J)V");
- ASSERT ( methodID, () );
+ env->CallVoidMethod(*m_javaCountryListener, methodID, childPosition);
+}
- env->CallVoidMethod(*m_javaCountryListener, methodID, childPosition, storage_utils::ToArray(env, sizes));
- }
+void Framework::ItemProgressChanged(int childPosition, LocalAndRemoteSizeT const & sizes)
+{
+ if (m_javaCountryListener == NULL)
+ return;
- void Framework::CountryGroupChanged(ActiveMapsLayout::TGroup const & oldGroup, int oldPosition,
- ActiveMapsLayout::TGroup const & newGroup, int newPosition)
+ JNIEnv * env = jni::GetEnv();
+ static jmethodID const methodID = jni::GetJavaMethodID(env,
+ *m_javaCountryListener,
+ "onItemProgressChanged",
+ "(I[J)V");
+ ASSERT ( methodID, () );
+
+ env->CallVoidMethod(*m_javaCountryListener, methodID, childPosition, storage_utils::ToArray(env, sizes));
+}
+
+void Framework::CountryGroupChanged(ActiveMapsLayout::TGroup const & oldGroup, int oldPosition,
+ ActiveMapsLayout::TGroup const & newGroup, int newPosition)
+{
+ JNIEnv * env = jni::GetEnv();
+ for (TListenerMap::const_iterator it = m_javaActiveMapListeners.begin(); it != m_javaActiveMapListeners.end(); ++it)
{
- JNIEnv * env = jni::GetEnv();
- for (TListenerMap::const_iterator it = m_javaActiveMapListeners.begin(); it != m_javaActiveMapListeners.end(); ++it)
- {
- jmethodID const methodID = jni::GetJavaMethodID(env, *(it->second), "onCountryGroupChanged", "(IIII)V");
- ASSERT ( methodID, () );
+ jmethodID const methodID = jni::GetJavaMethodID(env, *(it->second), "onCountryGroupChanged", "(IIII)V");
+ ASSERT ( methodID, () );
- env->CallVoidMethod(*(it->second), methodID, oldGroup, oldPosition, newGroup, newPosition);
- }
+ env->CallVoidMethod(*(it->second), methodID, oldGroup, oldPosition, newGroup, newPosition);
}
+}
- void Framework::CountryStatusChanged(ActiveMapsLayout::TGroup const & group, int position,
- TStatus const & oldStatus, TStatus const & newStatus)
+void Framework::CountryStatusChanged(ActiveMapsLayout::TGroup const & group, int position,
+ TStatus const & oldStatus, TStatus const & newStatus)
+{
+ JNIEnv * env = jni::GetEnv();
+ for (TListenerMap::const_iterator it = m_javaActiveMapListeners.begin(); it != m_javaActiveMapListeners.end(); ++it)
{
- JNIEnv * env = jni::GetEnv();
- for (TListenerMap::const_iterator it = m_javaActiveMapListeners.begin(); it != m_javaActiveMapListeners.end(); ++it)
- {
- jmethodID const methodID = jni::GetJavaMethodID(env, *(it->second), "onCountryStatusChanged", "(IIII)V");
- ASSERT ( methodID, () );
+ jmethodID const methodID = jni::GetJavaMethodID(env, *(it->second), "onCountryStatusChanged", "(IIII)V");
+ ASSERT ( methodID, () );
- env->CallVoidMethod(*(it->second), methodID, group, position,
- static_cast<jint>(oldStatus), static_cast<jint>(newStatus));
- }
+ env->CallVoidMethod(*(it->second), methodID, group, position,
+ static_cast<jint>(oldStatus), static_cast<jint>(newStatus));
}
+}
- void Framework::CountryOptionsChanged(ActiveMapsLayout::TGroup const & group, int position,
- MapOptions const & oldOpt, MapOptions const & newOpt)
+void Framework::CountryOptionsChanged(ActiveMapsLayout::TGroup const & group, int position,
+ MapOptions const & oldOpt, MapOptions const & newOpt)
+{
+ JNIEnv * env = jni::GetEnv();
+ for (TListenerMap::const_iterator it = m_javaActiveMapListeners.begin(); it != m_javaActiveMapListeners.end(); ++it)
{
- JNIEnv * env = jni::GetEnv();
- for (TListenerMap::const_iterator it = m_javaActiveMapListeners.begin(); it != m_javaActiveMapListeners.end(); ++it)
- {
- jmethodID const methodID = jni::GetJavaMethodID(env, *(it->second), "onCountryOptionsChanged", "(IIII)V");
- ASSERT ( methodID, () );
+ jmethodID const methodID = jni::GetJavaMethodID(env, *(it->second), "onCountryOptionsChanged", "(IIII)V");
+ ASSERT ( methodID, () );
- env->CallVoidMethod(*(it->second), methodID, group, position,
- static_cast<jint>(oldOpt), static_cast<jint>(newOpt));
- }
+ env->CallVoidMethod(*(it->second), methodID, group, position,
+ static_cast<jint>(oldOpt), static_cast<jint>(newOpt));
}
+}
- void Framework::DownloadingProgressUpdate(ActiveMapsLayout::TGroup const & group, int position,
- LocalAndRemoteSizeT const & progress)
+void Framework::DownloadingProgressUpdate(ActiveMapsLayout::TGroup const & group, int position,
+ LocalAndRemoteSizeT const & progress)
+{
+ JNIEnv * env = jni::GetEnv();
+ for (TListenerMap::const_iterator it = m_javaActiveMapListeners.begin(); it != m_javaActiveMapListeners.end(); ++it)
{
- JNIEnv * env = jni::GetEnv();
- for (TListenerMap::const_iterator it = m_javaActiveMapListeners.begin(); it != m_javaActiveMapListeners.end(); ++it)
- {
- jmethodID const methodID = jni::GetJavaMethodID(env, *(it->second), "onCountryProgressChanged", "(II[J)V");
- ASSERT ( methodID, () );
+ jmethodID const methodID = jni::GetJavaMethodID(env, *(it->second), "onCountryProgressChanged", "(II[J)V");
+ ASSERT ( methodID, () );
- env->CallVoidMethod(*(it->second), methodID, group, position, storage_utils::ToArray(env, progress));
- }
+ env->CallVoidMethod(*(it->second), methodID, group, position, storage_utils::ToArray(env, progress));
}
// Fills mapobject's metadata from UserMark
diff --git a/android/jni/com/mapswithme/maps/Framework.hpp b/android/jni/com/mapswithme/maps/Framework.hpp
index 2e0d1d4df9..8fdf99bf8b 100644
--- a/android/jni/com/mapswithme/maps/Framework.hpp
+++ b/android/jni/com/mapswithme/maps/Framework.hpp
@@ -2,6 +2,10 @@
#include <jni.h>
+#include "opengl/androidoglcontextfactory.hpp"
+
+#include "drape/pointers.hpp"
+
#include "map/framework.hpp"
#include "search/result.hpp"
@@ -19,19 +23,14 @@
#include "std/shared_ptr.hpp"
#include "std/unique_ptr.hpp"
-#include "../../../nv_event/nv_event.hpp"
-
-
-class CountryStatusDisplay;
-
namespace android
{
class Framework : public storage::CountryTree::CountryTreeListener,
public storage::ActiveMapsLayout::ActiveMapsListener
{
private:
+ dp::MasterPointer<AndroidOGLContextFactory> m_contextFactory;
::Framework m_work;
- VideoTimer * m_videoTimer;
typedef shared_ptr<jobject> TJobject;
@@ -42,8 +41,6 @@ namespace android
int m_activeMapsConnectionID;
- void CallRepaint();
-
double m_x1;
double m_y1;
double m_x2;
@@ -76,7 +73,7 @@ namespace android
string m_searchQuery;
- void SetBestDensity(int densityDpi, RenderPolicy::Params & params);
+ float GetBestDensity(int densityDpi);
bool InitRenderPolicyImpl(int densityDpi, int screenWidth, int screenHeight);
@@ -85,7 +82,6 @@ namespace android
~Framework();
storage::Storage & Storage();
- CountryStatusDisplay * GetCountryStatusDisplay();
void DontLoadState() { m_doLoadState = false; }
@@ -99,8 +95,8 @@ namespace android
void Invalidate();
- bool InitRenderPolicy(int densityDpi, int screenWidth, int screenHeight);
- void DeleteRenderPolicy();
+ bool CreateDrapeEngine(JNIEnv * env, jobject jSurface, int densityDpi);
+ void DeleteDrapeEngine();
void SetMapStyle(MapStyle mapStyle);
MapStyle GetMapStyle() const;
@@ -111,12 +107,19 @@ namespace android
void Resize(int w, int h);
- void DrawFrame();
-
void Move(int mode, double x, double y);
void Zoom(int mode, double x1, double y1, double x2, double y2);
void Touch(int action, int mask, double x1, double y1, double x2, double y2);
+ /// Show rect from another activity. Ensure that no LoadState will be called,
+ /// when main map activity will become active.
+ void ShowSearchResult(search::Result const & r);
+ void ShowAllSearchResults();
+
+ bool Search(search::SearchParams const & params);
+ string GetLastSearchQuery() { return m_searchQuery; }
+ void ClearLastSearchQuery() { m_searchQuery.clear(); }
+
void LoadState();
void SaveState();
diff --git a/android/jni/com/mapswithme/maps/LocationState.cpp b/android/jni/com/mapswithme/maps/LocationState.cpp
index 5dca30f266..50b198880e 100644
--- a/android/jni/com/mapswithme/maps/LocationState.cpp
+++ b/android/jni/com/mapswithme/maps/LocationState.cpp
@@ -5,23 +5,26 @@
#include "../platform/Platform.hpp"
-location::State * GetLocationState()
-{
- return g_framework->NativeFramework()->GetLocationState().get();
-}
+///@TODO UVR
+//location::State * GetLocationState()
+//{
+// return g_framework->NativeFramework()->GetLocationState().get();
+//}
extern "C"
{
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_LocationState_switchToNextMode(JNIEnv * env, jobject thiz)
{
- android::Platform::RunOnGuiThreadImpl(bind(&location::State::SwitchToNextMode, GetLocationState()), false);
+ ///@TODO UVR
+ //android::Platform::RunOnGuiThreadImpl(bind(&location::State::SwitchToNextMode, GetLocationState()), false);
}
JNIEXPORT jint JNICALL
Java_com_mapswithme_maps_LocationState_getLocationStateMode(JNIEnv * env, jobject thiz)
{
- return GetLocationState()->GetMode();
+ ///@TODO UVR
+ return 0;//GetLocationState()->GetMode();
}
void LocationStateModeChanged(location::State::Mode mode, shared_ptr<jobject> const & obj)
@@ -33,24 +36,28 @@ extern "C"
JNIEXPORT jint JNICALL
Java_com_mapswithme_maps_LocationState_addLocationStateModeListener(JNIEnv * env, jobject thiz, jobject obj)
{
- return GetLocationState()->AddStateModeListener(bind(&LocationStateModeChanged, _1, jni::make_global_ref(obj)));
+ ///@TODO UVR
+ return 0;//GetLocationState()->AddStateModeListener(bind(&LocationStateModeChanged, _1, jni::make_global_ref(obj)));
}
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_LocationState_removeLocationStateModeListener(JNIEnv * env, jobject thiz, jint slotID)
{
- GetLocationState()->RemoveStateModeListener(slotID);
+ ///@TODO UVR
+ //GetLocationState()->RemoveStateModeListener(slotID);
}
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_LocationState_turnOff(JNIEnv * env, jobject thiz)
{
- GetLocationState()->TurnOff();
+ ///@TODO UVR
+ //GetLocationState()->TurnOff();
}
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_LocationState_invalidatePosition(JNIEnv * env, jobject thiz)
{
- android::Platform::RunOnGuiThreadImpl(bind(&location::State::InvalidatePosition, GetLocationState()), false);
+ ///@TODO UVR
+ //android::Platform::RunOnGuiThreadImpl(bind(&location::State::InvalidatePosition, GetLocationState()), false);
}
}
diff --git a/android/jni/com/mapswithme/maps/MapFragment.cpp b/android/jni/com/mapswithme/maps/MapFragment.cpp
index 420aea8dbd..d69a30e048 100644
--- a/android/jni/com/mapswithme/maps/MapFragment.cpp
+++ b/android/jni/com/mapswithme/maps/MapFragment.cpp
@@ -7,10 +7,6 @@
#include "../platform/Platform.hpp"
-#include "../../../nv_event/nv_event.hpp"
-
-#include "map/country_status_display.hpp"
-
#include "storage/index.hpp"
#include "base/logging.hpp"
@@ -105,15 +101,16 @@ extern "C"
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_MapFragment_nativeConnectDownloadButton(JNIEnv * env, jobject thiz)
{
- CountryStatusDisplay * display = g_framework->GetCountryStatusDisplay();
+ ///@TODO UVR
+ //CountryStatusDisplay * display = g_framework->GetCountryStatusDisplay();
- jmethodID methodID = jni::GetJavaMethodID(env, thiz, "OnDownloadCountryClicked", "(IIII)V");
+ //jmethodID methodID = jni::GetJavaMethodID(env, thiz, "OnDownloadCountryClicked", "(IIII)V");
- display->SetDownloadCountryListener(bind(&CallOnDownloadCountryClicked,
- jni::make_global_ref(thiz),
- _1,
- _2,
- methodID));
+ //display->SetDownloadCountryListener(bind(&CallOnDownloadCountryClicked,
+ // jni::make_global_ref(thiz),
+ // _1,
+ // _2,
+ // methodID));
}
JNIEXPORT void JNICALL
diff --git a/android/jni/com/mapswithme/maps/MwmApplication.cpp b/android/jni/com/mapswithme/maps/MwmApplication.cpp
index 8436ec1c9d..40491c6c7b 100644
--- a/android/jni/com/mapswithme/maps/MwmApplication.cpp
+++ b/android/jni/com/mapswithme/maps/MwmApplication.cpp
@@ -30,7 +30,8 @@ extern "C"
JNIEXPORT jboolean JNICALL
Java_com_mapswithme_maps_MwmApplication_nativeIsBenchmarking(JNIEnv * env, jobject thiz)
{
- return static_cast<jboolean>(g_framework->NativeFramework()->IsBenchmarking());
+ ///@TODO UVR
+ return JNI_FALSE; //static_cast<jboolean>(g_framework->NativeFramework()->IsBenchmarking());
}
JNIEXPORT jboolean JNICALL
diff --git a/android/jni/com/mapswithme/maps/RenderActivity.cpp b/android/jni/com/mapswithme/maps/RenderActivity.cpp
new file mode 100644
index 0000000000..7c2738e17c
--- /dev/null
+++ b/android/jni/com/mapswithme/maps/RenderActivity.cpp
@@ -0,0 +1,46 @@
+#include "Framework.hpp"
+
+#include "../core/jni_helper.hpp"
+
+extern "C"
+{
+
+JNIEXPORT jboolean JNICALL
+Java_com_mapswithme_maps_RenderActivity_CreateEngine(JNIEnv * env, jobject thiz, jobject surface, jint destiny)
+{
+ return static_cast<jboolean>(g_framework->CreateDrapeEngine(env, surface, static_cast<int>(destiny)));
+}
+
+JNIEXPORT void JNICALL
+Java_com_mapswithme_maps_RenderActivity_SurfaceResized(JNIEnv * env, jobject thiz, jint w, jint h)
+{
+ g_framework->Resize(static_cast<int>(w), static_cast<int>(h));
+}
+
+JNIEXPORT void JNICALL
+Java_com_mapswithme_maps_RenderActivity_DestroyEngine(JNIEnv * env, jobject thiz)
+{
+ g_framework->DeleteDrapeEngine();
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_mapswithme_maps_RenderActivity_OnTouch(JNIEnv * env, jobject thiz, jint action, jboolean hasFirst, jboolean hasSecond,
+ jfloat x1, jfloat y1, jfloat x2, jfloat y2)
+{
+ int mask = 0;
+ if (hasFirst == JNI_TRUE)
+ mask |= 0x1;
+ if (hasSecond == JNI_TRUE)
+ mask |= 0x2;
+
+ g_framework->Touch(static_cast<int>(action), mask,
+ static_cast<double>(x1),
+ static_cast<double>(y1),
+ static_cast<double>(x2),
+ static_cast<double>(y2));
+
+ return JNI_TRUE;
+}
+
+
+} \ No newline at end of file
diff --git a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkCategory.cpp b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkCategory.cpp
index 4421543bdc..d886b23073 100644
--- a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkCategory.cpp
+++ b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkCategory.cpp
@@ -111,12 +111,12 @@ extern "C"
string formattedLenght;
MeasurementUtils::FormatDistance(nTrack->GetLengthMeters(), formattedLenght);
- graphics::Color nColor = nTrack->GetMainColor();
+ dp::Color nColor = nTrack->GetMainColor();
- jint androidColor = shift(nColor.a, 24) +
- shift(nColor.r, 16) +
- shift(nColor.g, 8) +
- nColor.b;
+ jint androidColor = shift(nColor.GetAlfa(), 24) +
+ shift(nColor.GetRed(), 16) +
+ shift(nColor.GetGreen(), 8) +
+ nColor.GetBlue();
return env->NewObject(trackClazz, cId,
index, id, jni::ToJavaString(env, nTrack->GetName()),
diff --git a/android/jni/com/mapswithme/opengl/android_gl_utils.hpp b/android/jni/com/mapswithme/opengl/android_gl_utils.hpp
new file mode 100644
index 0000000000..17c910c53f
--- /dev/null
+++ b/android/jni/com/mapswithme/opengl/android_gl_utils.hpp
@@ -0,0 +1,43 @@
+#pragma once
+
+#include <EGL/egl.h>
+#include <GLES2/gl2.h>
+
+namespace android
+{
+
+class ConfigComparator
+{
+public:
+ ConfigComparator(EGLDisplay display)
+ : m_display(display)
+ {}
+
+ int operator()(EGLConfig const & l, EGLConfig const & r) const
+ {
+ return configWeight(l) - configWeight(r);
+ }
+
+ int configWeight(EGLConfig const & config) const
+ {
+ int val = -1;
+ eglGetConfigAttrib(m_display, config, EGL_CONFIG_CAVEAT, &val);
+
+ switch (val)
+ {
+ case EGL_NONE:
+ return 0;
+ case EGL_SLOW_CONFIG:
+ return 1;
+ case EGL_NON_CONFORMANT_CONFIG:
+ return 2;
+ default:
+ return 0;
+ }
+ }
+
+private:
+ EGLDisplay m_display;
+};
+
+} // namespace android
diff --git a/android/jni/com/mapswithme/opengl/androidoglcontext.cpp b/android/jni/com/mapswithme/opengl/androidoglcontext.cpp
new file mode 100644
index 0000000000..01331fd278
--- /dev/null
+++ b/android/jni/com/mapswithme/opengl/androidoglcontext.cpp
@@ -0,0 +1,58 @@
+#include "androidoglcontext.hpp"
+#include "../../../base/assert.hpp"
+#include "../../../base/logging.hpp"
+
+namespace android
+{
+
+static EGLint * getContextAttributesList()
+{
+ static EGLint contextAttrList[] = {
+ EGL_CONTEXT_CLIENT_VERSION, 2,
+ EGL_NONE
+ };
+ return contextAttrList;
+}
+
+AndroidOGLContext::AndroidOGLContext(EGLDisplay display, EGLSurface surface, EGLConfig config, AndroidOGLContext * contextToShareWith)
+ : m_nativeContext(EGL_NO_CONTEXT)
+ , m_surface(surface)
+ , m_display(display)
+{
+ ASSERT(m_surface != EGL_NO_SURFACE, ());
+ ASSERT(m_display != EGL_NO_DISPLAY, ());
+
+ EGLContext sharedContext = (contextToShareWith == NULL) ? EGL_NO_CONTEXT : contextToShareWith->m_nativeContext;
+ m_nativeContext = eglCreateContext(m_display, config, sharedContext, getContextAttributesList());
+ LOG(LINFO, ("UVR : Context created = ", m_nativeContext));
+
+ CHECK(m_nativeContext != EGL_NO_CONTEXT, ());
+ LOG(LINFO, ("UVR : Present"));
+}
+
+AndroidOGLContext::~AndroidOGLContext()
+{
+ // Native context must exist
+ eglDestroyContext(m_display, m_nativeContext);
+}
+
+void AndroidOGLContext::setDefaultFramebuffer()
+{
+ glBindFramebuffer(GL_FRAMEBUFFER, 0);
+}
+
+void AndroidOGLContext::makeCurrent()
+{
+ LOG(LINFO, ("UVR : Make current for context"));
+ if (eglMakeCurrent(m_display, m_surface, m_surface, m_nativeContext) != EGL_TRUE)
+ LOG(LINFO, ("Failed to set current context:", eglGetError()));
+}
+
+void AndroidOGLContext::present()
+{
+ LOG(LINFO, ("UVR : Present"));
+ if(eglSwapBuffers(m_display, m_surface) != EGL_TRUE)
+ LOG(LINFO, ("Failed to swap buffers:", eglGetError()));
+}
+
+} // namespace android \ No newline at end of file
diff --git a/android/jni/com/mapswithme/opengl/androidoglcontext.hpp b/android/jni/com/mapswithme/opengl/androidoglcontext.hpp
new file mode 100644
index 0000000000..07752452fc
--- /dev/null
+++ b/android/jni/com/mapswithme/opengl/androidoglcontext.hpp
@@ -0,0 +1,32 @@
+#pragma once
+
+#include "../../../drape/oglcontext.hpp"
+
+#include <GLES2/gl2.h>
+#include <EGL/egl.h>
+
+namespace android
+{
+
+class AndroidOGLContext : public dp::OGLContext
+{
+public:
+ AndroidOGLContext(EGLDisplay display, EGLSurface surface, EGLConfig config, AndroidOGLContext * contextToShareWith);
+ ~AndroidOGLContext();
+
+ virtual void makeCurrent();
+ virtual void present();
+ virtual void setDefaultFramebuffer();
+
+private:
+ // {@ Owned by Context
+ EGLContext m_nativeContext;
+ // @}
+
+ // {@ Owned by Factory
+ EGLSurface m_surface;
+ EGLDisplay m_display;
+ // @}
+};
+
+} // namespace android
diff --git a/android/jni/com/mapswithme/opengl/androidoglcontextfactory.cpp b/android/jni/com/mapswithme/opengl/androidoglcontextfactory.cpp
new file mode 100644
index 0000000000..d5c79d6aef
--- /dev/null
+++ b/android/jni/com/mapswithme/opengl/androidoglcontextfactory.cpp
@@ -0,0 +1,215 @@
+#include "androidoglcontextfactory.hpp"
+#include "android_gl_utils.hpp"
+
+#include "../../../../../base/assert.hpp"
+#include "../../../../../base/logging.hpp"
+
+#include "../../../../../std/algorithm.hpp"
+
+#include <EGL/egl.h>
+#include <android/native_window_jni.h>
+
+namespace android
+{
+
+static EGLint * getConfigAttributesList()
+{
+ static EGLint attr_list[] = {
+ EGL_RED_SIZE, 5,
+ EGL_GREEN_SIZE, 6,
+ EGL_BLUE_SIZE, 5,
+ EGL_STENCIL_SIZE, 0,
+ EGL_DEPTH_SIZE, 16,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_SURFACE_TYPE, EGL_PBUFFER_BIT | EGL_WINDOW_BIT,
+ EGL_NONE
+ };
+ return attr_list;
+}
+
+AndroidOGLContextFactory::AndroidOGLContextFactory(JNIEnv * env, jobject jsurface)
+ : m_drawContext(NULL)
+ , m_uploadContext(NULL)
+ , m_windowSurface(EGL_NO_SURFACE)
+ , m_pixelbufferSurface(EGL_NO_SURFACE)
+ , m_config(NULL)
+ , m_nativeWindow(NULL)
+ , m_display(EGL_NO_DISPLAY)
+ , m_surfaceWidth(0)
+ , m_surfaceHeight(0)
+ , m_valid(false)
+{
+ LOG(LINFO, ("UVR : Start create factory"));
+ if (!jsurface)
+ {
+ LOG(LINFO, ("Java surface incorrect"));
+ return;
+ }
+
+ m_nativeWindow = ANativeWindow_fromSurface(env, jsurface);
+ if (!m_nativeWindow)
+ {
+ LOG(LINFO, ("Can't get native window from Java surface"));
+ return;
+ }
+
+ m_display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+ if (m_display == EGL_NO_DISPLAY)
+ {
+ LOG(LINFO, ("Can't query default egl display. Error code = ", eglGetError()));
+ return;
+ }
+
+ EGLint version[2] = {0};
+ if (!eglInitialize(m_display, &version[0], &version[1]))
+ {
+ LOG(LINFO, ("EGL initialize failed. Error code = ", eglGetError()));
+ return;
+ }
+
+ if (!(createWindowSurface() && createPixelbufferSurface()))
+ {
+ eglTerminate(m_display);
+ return;
+ }
+
+ if (!QuerySurfaceSize())
+ return;
+
+ LOG(LINFO, ("UVR : Correct created factory"));
+ m_valid = true;
+}
+
+AndroidOGLContextFactory::~AndroidOGLContextFactory()
+{
+ if (IsValid())
+ {
+ delete m_drawContext;
+ delete m_uploadContext;
+
+ eglDestroySurface(m_display, m_windowSurface);
+ eglDestroySurface(m_display, m_pixelbufferSurface);
+ eglTerminate(m_display);
+
+ ANativeWindow_release(m_nativeWindow);
+ }
+}
+
+bool AndroidOGLContextFactory::IsValid() const
+{
+ return m_valid;
+}
+
+int AndroidOGLContextFactory::GetWidth() const
+{
+ ASSERT(IsValid(), ());
+ return m_surfaceWidth;
+}
+
+int AndroidOGLContextFactory::GetHeight() const
+{
+ ASSERT(IsValid(), ());
+ return m_surfaceHeight;
+}
+
+void AndroidOGLContextFactory::UpdateSurfaceSize()
+{
+ ASSERT(IsValid(), ());
+ VERIFY(QuerySurfaceSize(), ());
+}
+
+bool AndroidOGLContextFactory::QuerySurfaceSize()
+{
+ EGLint queryResult;
+ if (eglQuerySurface(m_display, m_windowSurface, EGL_WIDTH, &queryResult) == EGL_FALSE)
+ {
+ LOG(LINFO, ("Can't query surface width. Error code = ", eglGetError()));
+ return false;
+ }
+
+ m_surfaceWidth = static_cast<int>(queryResult);
+ if (eglQuerySurface(m_display, m_windowSurface, EGL_HEIGHT, &queryResult) == EGL_FALSE)
+ {
+ LOG(LINFO, ("Can't query surface height. Error code = ", eglGetError()));
+ return false;
+ }
+
+ m_surfaceHeight = static_cast<int>(queryResult);
+ return true;
+}
+
+dp::OGLContext * AndroidOGLContextFactory::getDrawContext()
+{
+ ASSERT(IsValid(), ());
+ ASSERT(m_windowSurface != EGL_NO_SURFACE, ());
+ if (m_drawContext == NULL)
+ m_drawContext = new AndroidOGLContext(m_display, m_windowSurface, m_config, m_uploadContext);
+ return m_drawContext;
+}
+
+dp::OGLContext * AndroidOGLContextFactory::getResourcesUploadContext()
+{
+ ASSERT(IsValid(), ());
+ ASSERT(m_pixelbufferSurface != EGL_NO_SURFACE, ());
+ if (m_uploadContext == NULL)
+ m_uploadContext = new AndroidOGLContext(m_display, m_pixelbufferSurface, m_config, m_drawContext);
+ return m_uploadContext;
+}
+
+bool AndroidOGLContextFactory::createWindowSurface()
+{
+ EGLConfig configs[40];
+ int count = 0;
+ VERIFY(eglChooseConfig(m_display, getConfigAttributesList(), configs, 40, &count) == EGL_TRUE, ());
+ ASSERT(count > 0, ("Didn't find any configs."));
+
+ sort(&configs[0], &configs[count], ConfigComparator(m_display));
+ for (int i = 0; i < count; ++i)
+ {
+ EGLConfig currentConfig = configs[i];
+ EGLint surfaceAttributes[] = { EGL_RENDER_BUFFER, EGL_BACK_BUFFER, EGL_NONE };
+ m_windowSurface = eglCreateWindowSurface(m_display, currentConfig, m_nativeWindow, surfaceAttributes);
+ if (m_windowSurface == EGL_NO_SURFACE)
+ continue;
+ else
+ m_config = currentConfig;
+
+ EGLint configId = 0;
+ eglGetConfigAttrib(m_display, m_config, EGL_CONFIG_ID, &configId);
+ LOG(LINFO, ("Choosen config id:", configId));
+
+ break;
+ }
+
+ if (m_windowSurface == EGL_NO_SURFACE)
+ {
+ LOG(LINFO, ("Can't create EGLWindowSurface. Error code = ", eglGetError()));
+ return false;
+ }
+
+ return true;
+}
+
+bool AndroidOGLContextFactory::createPixelbufferSurface()
+{
+ //ASSERT(m_config != NULL, ());
+
+ const GLuint size = 1; // yes, 1 is the correct size, we dont really draw on it
+ static EGLint surfaceConfig[] = {
+ EGL_WIDTH, size,
+ EGL_HEIGHT, size,
+ EGL_NONE
+ };
+
+ m_pixelbufferSurface = eglCreatePbufferSurface(m_display, m_config, surfaceConfig);
+
+ if (m_pixelbufferSurface == EGL_NO_SURFACE)
+ {
+ LOG(LINFO, ("Can't create buffer surface for UploadThread. Error code = ", eglGetError()));
+ return false;
+ }
+
+ return true;
+}
+
+} // namespace android
diff --git a/android/jni/com/mapswithme/opengl/androidoglcontextfactory.hpp b/android/jni/com/mapswithme/opengl/androidoglcontextfactory.hpp
new file mode 100644
index 0000000000..5f9a6ab0c1
--- /dev/null
+++ b/android/jni/com/mapswithme/opengl/androidoglcontextfactory.hpp
@@ -0,0 +1,48 @@
+#pragma once
+
+#include "../core/jni_helper.hpp"
+#include "androidoglcontext.hpp"
+#include "../../../drape/oglcontextfactory.hpp"
+
+namespace android
+{
+
+class AndroidOGLContextFactory : public dp::OGLContextFactory
+{
+public:
+ AndroidOGLContextFactory(JNIEnv * env, jobject jsurface);
+ ~AndroidOGLContextFactory();
+
+ bool IsValid() const;
+
+ virtual dp::OGLContext * getDrawContext();
+ virtual dp::OGLContext * getResourcesUploadContext();
+
+ int GetWidth() const;
+ int GetHeight() const;
+ void UpdateSurfaceSize();
+
+private:
+ bool QuerySurfaceSize();
+
+private:
+ bool createWindowSurface();
+ bool createPixelbufferSurface();
+
+ AndroidOGLContext * m_drawContext;
+ AndroidOGLContext * m_uploadContext;
+
+ EGLSurface m_windowSurface;
+ EGLSurface m_pixelbufferSurface;
+ EGLConfig m_config;
+
+ ANativeWindow * m_nativeWindow;
+ EGLDisplay m_display;
+
+ int m_surfaceWidth;
+ int m_surfaceHeight;
+
+ bool m_valid;
+};
+
+} // namespace android
diff --git a/android/jni/com/mapswithme/platform/Platform.cpp b/android/jni/com/mapswithme/platform/Platform.cpp
index 157823629e..7eb6b07da6 100644
--- a/android/jni/com/mapswithme/platform/Platform.cpp
+++ b/android/jni/com/mapswithme/platform/Platform.cpp
@@ -2,8 +2,6 @@
#include "../core/jni_helper.hpp"
-#include "../../../nv_event/nv_event.hpp"
-
#include "platform/settings.hpp"
#include "base/logging.hpp"
@@ -172,7 +170,8 @@ namespace android
void Platform::RunOnGuiThreadImpl(TFunctor const & fn, bool blocking)
{
- postMWMEvent(new TFunctor(fn), blocking);
+ ///@TODO
+ //postMWMEvent(new TFunctor(fn), blocking);
}
}
diff --git a/android/src/com/mapswithme/country/DownloadActivity.java b/android/src/com/mapswithme/country/DownloadActivity.java
index 8398c1c1b2..743400063d 100644
--- a/android/src/com/mapswithme/country/DownloadActivity.java
+++ b/android/src/com/mapswithme/country/DownloadActivity.java
@@ -3,6 +3,7 @@ package com.mapswithme.country;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
+import android.util.Log;
import com.mapswithme.maps.base.BaseMwmFragmentActivity;
diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java
index a26b08d76f..5e01617db2 100644
--- a/android/src/com/mapswithme/maps/MwmActivity.java
+++ b/android/src/com/mapswithme/maps/MwmActivity.java
@@ -15,6 +15,8 @@ import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AlertDialog;
import android.view.MotionEvent;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@@ -75,7 +77,6 @@ import com.mapswithme.util.statistics.Statistics;
import ru.mail.android.mytarget.nativeads.NativeAppwallAd;
import ru.mail.android.mytarget.nativeads.banners.NativeAppwallBanner;
-
public class MwmActivity extends BaseMwmFragmentActivity
implements LocationHelper.LocationListener,
OnBalloonListener,
@@ -297,6 +298,22 @@ public class MwmActivity extends BaseMwmFragmentActivity
@Override
public void onCreate(@Nullable Bundle savedInstanceState)
{
+ // Use full-screen on Kindle Fire only
+ // TODO UVR
+ /*
+ if (Utils.isAmazonDevice())
+ {
+ getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
+ }
+ setContentView(R.layout.map);
+
+ SurfaceView surface = (SurfaceView)findViewById(R.id.map_surfaceview);
+ surface.setOnTouchListener(this);
+ SurfaceHolder holder = surface.getHolder();
+ holder.setType(SurfaceHolder.SURFACE_TYPE_GPU);
+ holder.addCallback(this);
+ */
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
diff --git a/android/src/com/mapswithme/maps/RenderActivity.java b/android/src/com/mapswithme/maps/RenderActivity.java
new file mode 100644
index 0000000000..80fb726f20
--- /dev/null
+++ b/android/src/com/mapswithme/maps/RenderActivity.java
@@ -0,0 +1,122 @@
+package com.mapswithme.maps;
+
+import android.os.Bundle;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.MotionEvent;
+import android.view.Surface;
+import android.view.SurfaceHolder;
+import android.view.View;
+
+import com.mapswithme.maps.base.MWMFragmentActivity;
+
+public abstract class RenderActivity extends MWMFragmentActivity
+ implements View.OnTouchListener,
+ SurfaceHolder.Callback
+{
+ private int mLastPointerId = 0;
+ private SurfaceHolder mSurfaceHolder = null;
+ private int m_displayDensity = 0;
+
+ @Override
+ public void surfaceCreated(SurfaceHolder surfaceHolder)
+ {
+ Log.i("UVR", "Surface created");
+ mSurfaceHolder = surfaceHolder;
+ InitEngine();
+ }
+
+ @Override
+ public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int w, int h)
+ {
+ SurfaceResized(w, h);
+ }
+
+ @Override
+ public void surfaceDestroyed(SurfaceHolder surfaceHolder)
+ {
+ mSurfaceHolder = null;
+ DestroyEngine();
+ }
+
+ @Override
+ protected void onCreate(Bundle b)
+ {
+ Log.i("UVR", "onCreate");
+ final DisplayMetrics metrics = new DisplayMetrics();
+ getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ m_displayDensity = metrics.densityDpi;
+ super.onCreate(b);
+ }
+
+ @Override
+ protected void onResume()
+ {
+ Log.i("UVR", "onResume");
+ InitEngine();
+ super.onResume();
+ }
+
+ @Override
+ protected void onStop()
+ {
+ super.onStop();
+ DestroyEngine();
+ }
+
+ @Override
+ public boolean onTouch(View view, MotionEvent event)
+ {
+ final int count = event.getPointerCount();
+
+ if (count == 0)
+ return super.onTouchEvent(event);
+
+ switch (count)
+ {
+ case 1:
+ {
+ mLastPointerId = event.getPointerId(0);
+
+ final float x0 = event.getX();
+ final float y0 = event.getY();
+
+ return OnTouch(event.getAction(), true, false, x0, y0, 0, 0);
+ }
+ default:
+ {
+ final float x0 = event.getX(0);
+ final float y0 = event.getY(0);
+
+ final float x1 = event.getX(1);
+ final float y1 = event.getY(1);
+
+ if (event.getPointerId(0) == mLastPointerId)
+ return OnTouch(event.getAction(), true, true, x0, y0, x1, y1);
+ else
+ return OnTouch(event.getAction(), true, true, x1, y1, x0, y0);
+ }
+ }
+ }
+
+ private void InitEngine()
+ {
+ Log.i("UVR", "Init engine");
+ if (mSurfaceHolder != null)
+ {
+ Log.i("UVR", "CreateEngine");
+ if (CreateEngine(mSurfaceHolder.getSurface(), m_displayDensity))
+ OnRenderingInitialized();
+ else
+ ReportUnsupported();
+ }
+ }
+
+ abstract public void OnRenderingInitialized();
+ abstract public void ReportUnsupported();
+
+ private native boolean CreateEngine(Surface surface, int density);
+ private native void SurfaceResized(int w, int h);
+ private native void DestroyEngine();
+ private native boolean OnTouch(int actionType, boolean hasFirst, boolean hasSecond, float x1, float y1, float x2, float y2);
+}
diff --git a/common.pri b/common.pri
index c643eed621..305b420302 100644
--- a/common.pri
+++ b/common.pri
@@ -3,12 +3,6 @@
# To use it, define ROOT_DIR variable and include($$ROOT_DIR/common.pri)
-#CONFIG *= drape
-
-drape {
- DEFINES *= USE_DRAPE
-}
-
CONFIG(map_designer) {
DEFINES *= STANDALONE_APP
DEFINES *= BUILD_DESIGNER
diff --git a/data/Onmac.kml b/data/Onmac.kml
new file mode 100644
index 0000000000..4a45d2cdef
--- /dev/null
+++ b/data/Onmac.kml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kml xmlns="http://earth.google.com/kml/2.2">
+<Document>
+ <Style id="placemark-blue">
+ <IconStyle>
+ <Icon>
+ <href>http://mapswith.me/placemarks/placemark-blue.png</href>
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="placemark-brown">
+ <IconStyle>
+ <Icon>
+ <href>http://mapswith.me/placemarks/placemark-brown.png</href>
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="placemark-green">
+ <IconStyle>
+ <Icon>
+ <href>http://mapswith.me/placemarks/placemark-green.png</href>
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="placemark-orange">
+ <IconStyle>
+ <Icon>
+ <href>http://mapswith.me/placemarks/placemark-orange.png</href>
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="placemark-pink">
+ <IconStyle>
+ <Icon>
+ <href>http://mapswith.me/placemarks/placemark-pink.png</href>
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="placemark-purple">
+ <IconStyle>
+ <Icon>
+ <href>http://mapswith.me/placemarks/placemark-purple.png</href>
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="placemark-red">
+ <IconStyle>
+ <Icon>
+ <href>http://mapswith.me/placemarks/placemark-red.png</href>
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="placemark-yellow">
+ <IconStyle>
+ <Icon>
+ <href>http://mapswith.me/placemarks/placemark-yellow.png</href>
+ </Icon>
+ </IconStyle>
+ </Style>
+ <name>Onmac</name>
+ <visibility>1</visibility>
+ <Placemark>
+ <name>Великие Жуховичи</name>
+ <TimeStamp><when>2015-01-20T15:12:27Z</when></TimeStamp>
+ <styleUrl>#placemark-red</styleUrl>
+ <Point><coordinates>26.317522,53.405017</coordinates></Point>
+ <ExtendedData xmlns:mwm="http://mapswith.me">
+ <mwm:scale>17</mwm:scale>
+ </ExtendedData>
+ </Placemark>
+ <Placemark>
+ <name>Piaseczno</name>
+ <TimeStamp><when>2015-01-20T17:34:01Z</when></TimeStamp>
+ <styleUrl>#placemark-red</styleUrl>
+ <Point><coordinates>21.027084,52.07475</coordinates></Point>
+ <ExtendedData xmlns:mwm="http://mapswith.me">
+ <mwm:scale>9</mwm:scale>
+ </ExtendedData>
+ </Placemark>
+ <Placemark>
+ <name>Великие Жуховичи</name>
+ <TimeStamp><when>2015-01-23T09:45:58Z</when></TimeStamp>
+ <styleUrl>#placemark-blue</styleUrl>
+ <Point><coordinates>26.317823,53.40317</coordinates></Point>
+ <ExtendedData xmlns:mwm="http://mapswith.me">
+ <mwm:scale>16</mwm:scale>
+ </ExtendedData>
+ </Placemark>
+ <Placemark>
+ <name>Великие Жуховичи</name>
+ <TimeStamp><when>2015-01-23T09:46:05Z</when></TimeStamp>
+ <styleUrl>#placemark-green</styleUrl>
+ <Point><coordinates>26.321484,53.402534</coordinates></Point>
+ <ExtendedData xmlns:mwm="http://mapswith.me">
+ <mwm:scale>16</mwm:scale>
+ </ExtendedData>
+ </Placemark>
+ <Placemark>
+ <name>Великие Жуховичи</name>
+ <TimeStamp><when>2015-01-23T09:46:10Z</when></TimeStamp>
+ <styleUrl>#placemark-yellow</styleUrl>
+ <Point><coordinates>26.31886,53.401137</coordinates></Point>
+ <ExtendedData xmlns:mwm="http://mapswith.me">
+ <mwm:scale>16</mwm:scale>
+ </ExtendedData>
+ </Placemark>
+ <Placemark>
+ <name>Великие Жуховичи</name>
+ <TimeStamp><when>2015-01-23T09:46:16Z</when></TimeStamp>
+ <styleUrl>#placemark-purple</styleUrl>
+ <Point><coordinates>26.320134,53.403815</coordinates></Point>
+ <ExtendedData xmlns:mwm="http://mapswith.me">
+ <mwm:scale>16</mwm:scale>
+ </ExtendedData>
+ </Placemark>
+ <Placemark>
+ <name>Великие Жуховичи</name>
+ <TimeStamp><when>2015-01-23T09:46:22Z</when></TimeStamp>
+ <styleUrl>#placemark-orange</styleUrl>
+ <Point><coordinates>26.319229,53.402365</coordinates></Point>
+ <ExtendedData xmlns:mwm="http://mapswith.me">
+ <mwm:scale>16</mwm:scale>
+ </ExtendedData>
+ </Placemark>
+ <Placemark>
+ <name>Великие Жуховичи</name>
+ <TimeStamp><when>2015-01-23T09:46:28Z</when></TimeStamp>
+ <styleUrl>#placemark-brown</styleUrl>
+ <Point><coordinates>26.317524,53.402399</coordinates></Point>
+ <ExtendedData xmlns:mwm="http://mapswith.me">
+ <mwm:scale>16</mwm:scale>
+ </ExtendedData>
+ </Placemark>
+</Document>
+</kml>
diff --git a/drape/color.hpp b/drape/color.hpp
index 16e7c7bac9..071ad118ed 100644
--- a/drape/color.hpp
+++ b/drape/color.hpp
@@ -1,6 +1,8 @@
#pragma once
#include "std/cstdint.hpp"
+#include "std/sstream.hpp"
+#include "std/string.hpp"
namespace dp
{
@@ -15,6 +17,7 @@ struct Color
uint8_t GetBlue() const;
uint8_t GetAlfa() const;
+ bool operator==(Color const & other) const { return m_rgba == other.m_rgba; }
bool operator< (Color const & other) const { return m_rgba < other.m_rgba; }
static Color Black() { return Color(0, 0, 0, 255); }
@@ -34,4 +37,14 @@ inline uint8_t ExtractAlfa(uint32_t argb);
Color Extract(uint32_t argb);
Color Extract(uint32_t xrgb, uint8_t a);
+inline string DebugPrint(Color const & c)
+{
+ ostringstream out;
+ out << "R = " << c.GetRed()
+ << "G = " << c.GetGreen()
+ << "B = " << c.GetBlue()
+ << "A = " << c.GetAlfa();
+ return out.str();
+}
+
}
diff --git a/drape/drape_common.pri b/drape/drape_common.pri
index 304a0173ad..3a036a878a 100644
--- a/drape/drape_common.pri
+++ b/drape/drape_common.pri
@@ -40,7 +40,8 @@ SOURCES += \
$$DRAPE_DIR/stipple_pen_resource.cpp \
$$DRAPE_DIR/texture_of_colors.cpp \
$$DRAPE_DIR/glyph_manager.cpp \
- $$DRAPE_DIR/utils/vertex_decl.cpp
+ $$DRAPE_DIR/utils/vertex_decl.cpp \
+ $$DRAPE_DIR/utils/projection.cpp \
HEADERS += \
$$ROOT_DIR/3party/sdf_image/sdf_image.h \
@@ -87,4 +88,5 @@ HEADERS += \
$$DRAPE_DIR/glsl_types.hpp \
$$DRAPE_DIR/glsl_func.hpp \
$$DRAPE_DIR/glyph_manager.hpp \
- $$DRAPE_DIR/utils/vertex_decl.hpp
+ $$DRAPE_DIR/utils/vertex_decl.hpp \
+ $$DRAPE_DIR/utils/projection.hpp \
diff --git a/drape/glIncludes.hpp b/drape/glIncludes.hpp
index 3dd15129b9..70378f0454 100644
--- a/drape/glIncludes.hpp
+++ b/drape/glIncludes.hpp
@@ -14,6 +14,11 @@
#define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
#include "../3party/GL/glext.h"
+#elif defined(OMIM_OS_ANDROID)
+ #include <EGL/egl.h>
+ #include <GLES2/gl2.h>
+ #define GL_GLEXT_PROTOTYPES
+ #include <GLES2/gl2ext.h>
#else
#define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
diff --git a/drape/glfunctions.cpp b/drape/glfunctions.cpp
index 759bfaf039..613b2e64f5 100644
--- a/drape/glfunctions.cpp
+++ b/drape/glfunctions.cpp
@@ -12,7 +12,11 @@
#include "std/cstring.hpp"
-#ifndef OMIM_OS_WINDOWS
+#if defined(OMIM_OS_WINDOWS)
+#define APIENTRY __stdcall
+#elif defined(OMIM_OS_ANDROID)
+#define APIENTRY __NDK_FPABI__
+#else
#define APIENTRY
#endif
@@ -74,21 +78,21 @@ namespace
void (APIENTRY *glEnableVertexAttributeFn)(GLuint location) = NULL;
void (APIENTRY *glVertexAttributePointerFn)(GLuint index,
- GLint count,
- GLenum type,
- GLboolean normalize,
- GLsizei stride,
- GLvoid const * p) = NULL;
+ GLint count,
+ GLenum type,
+ GLboolean normalize,
+ GLsizei stride,
+ GLvoid const * p) = NULL;
GLint (APIENTRY *glGetUniformLocationFn)(GLuint programID, GLchar const * name) = NULL;
void (APIENTRY *glGetActiveUniformFn)(GLuint programID,
- GLuint uniformIndex,
- GLsizei bufSize,
- GLsizei * length,
- GLint * size,
- GLenum * type,
- GLchar * name) = NULL;
+ GLuint uniformIndex,
+ GLsizei bufSize,
+ GLsizei * length,
+ GLint * size,
+ GLenum * type,
+ GLchar * name) = NULL;
void (APIENTRY *glUniform1iFn)(GLint location, GLint value) = NULL;
void (APIENTRY *glUniform2iFn)(GLint location, GLint v1, GLint v2) = NULL;
@@ -123,6 +127,15 @@ void GLFunctions::Init()
glDeleteVertexArrayFn = &::glDeleteVertexArrays;
glMapBufferFn = &::glMapBuffer; // I don't know correct name for linux!
glUnmapBufferFn = &::glUnmapBuffer; // I don't know correct name for linux!
+#elif defined(OMIM_OS_ANDROID)
+ typedef void (APIENTRY *glGenVertexArraysType)(GLsizei n, GLuint * arrays);
+ typedef void (APIENTRY *glBindVertexArrayType)(GLuint array);
+ typedef void (APIENTRY *glDeleteVertexArrayType)(GLsizei n, GLuint const * ids);
+ glGenVertexArraysFn = (glGenVertexArraysType)eglGetProcAddress("glGenVertexArraysOES");
+ glBindVertexArrayFn = (glBindVertexArrayType)eglGetProcAddress("glBindVertexArrayOES");
+ glDeleteVertexArrayFn = (glDeleteVertexArrayType)eglGetProcAddress("glDeleteVertexArraysOES");
+ glMapBufferFn = &::glMapBufferOES;
+ glUnmapBufferFn = &::glUnmapBufferOES;
#elif defined(OMIM_OS_MOBILE)
glGenVertexArraysFn = &glGenVertexArraysOES;
glBindVertexArrayFn = &glBindVertexArrayOES;
@@ -257,7 +270,7 @@ void GLFunctions::glDisable(glConst mode)
void GLFunctions::glClearDepthValue(double depth)
{
-#ifdef OMIM_OS_IPHONE
+#if defined(OMIM_OS_IPHONE) || defined(OMIM_OS_ANDROID)
GLCHECK(::glClearDepthf(static_cast<GLclampf>(depth)));
#else
GLCHECK(::glClearDepth(depth));
diff --git a/drape/glfunctions.hpp b/drape/glfunctions.hpp
index 5dbc544a30..1028a72476 100644
--- a/drape/glfunctions.hpp
+++ b/drape/glfunctions.hpp
@@ -116,5 +116,10 @@ public:
void CheckGLError();
-#define GLCHECK(x) do { (x); CheckGLError(); } while (false)
-#define GLCHECKCALL() do { CheckGLError(); } while (false)
+#ifdef DEBUG
+ #define GLCHECK(x) do { (x); CheckGLError(); } while (false)
+ #define GLCHECKCALL() do { CheckGLError(); } while (false)
+#else
+ #define GLCHECK(x) (x)
+ #define GLCHECKCALL()
+#endif
diff --git a/drape/glyph_manager.cpp b/drape/glyph_manager.cpp
index d1640318bf..3ab6f7fd62 100644
--- a/drape/glyph_manager.cpp
+++ b/drape/glyph_manager.cpp
@@ -26,7 +26,9 @@
{
int m_code;
char const * m_message;
- } g_FT_Errors[]
+ };
+
+ FreetypeError g_FT_Errors[] =
#include FT_ERRORS_H
#define FREETYPE_CHECK(x) \
diff --git a/drape/utils/projection.cpp b/drape/utils/projection.cpp
new file mode 100644
index 0000000000..ba7c30c11a
--- /dev/null
+++ b/drape/utils/projection.cpp
@@ -0,0 +1,23 @@
+#include "projection.hpp"
+
+namespace dp
+{
+
+void MakeProjection(array<float, 16> & result, float left, float right, float bottom, float top)
+{
+ result.fill(0.0f);
+
+ float width = right - left;
+ float height = top - bottom;
+ float depth = maxDepth - minDepth;
+
+ result[0] = 2.0f / width;
+ result[3] = -(right + left) / width;
+ result[5] = 2.0f / height;
+ result[7] = -(top + bottom) / height;
+ result[10] = -2.0f / depth;
+ result[11] = -(maxDepth + minDepth) / depth;
+ result[15] = 1.0;
+}
+
+} // namespace dp
diff --git a/drape/utils/projection.hpp b/drape/utils/projection.hpp
new file mode 100644
index 0000000000..cee2b20c96
--- /dev/null
+++ b/drape/utils/projection.hpp
@@ -0,0 +1,11 @@
+#pragma once
+
+#include "../../std/array.hpp"
+
+namespace dp
+{
+ static float const minDepth = -20000.0f;
+ static float const maxDepth = 20000.0f;
+
+ void MakeProjection(array<float, 16> & result, float left, float right, float bottom, float top);
+} // namespace dp
diff --git a/drape_frontend/apply_feature_functors.cpp b/drape_frontend/apply_feature_functors.cpp
index 2a85a282be..83e315085d 100644
--- a/drape_frontend/apply_feature_functors.cpp
+++ b/drape_frontend/apply_feature_functors.cpp
@@ -16,6 +16,7 @@
#include "drape/color.hpp"
#include "drape/stipple_pen_resource.hpp"
+#include "drape/utils/projection.hpp"
#include "graphics/defines.hpp"
@@ -146,8 +147,8 @@ ApplyPointFeature::ApplyPointFeature(EngineContext & context, TileKey tileKey,
FeatureID const & id, CaptionDescription const & captions)
: TBase(context, tileKey, id, captions)
, m_hasPoint(false)
- , m_symbolDepth(graphics::minDepth)
- , m_circleDepth(graphics::minDepth)
+ , m_symbolDepth(dp::minDepth)
+ , m_circleDepth(dp::minDepth)
, m_symbolRule(NULL)
, m_circleRule(NULL)
{
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp
index 13218f7249..8d0c1ccb27 100644
--- a/drape_frontend/frontend_renderer.cpp
+++ b/drape_frontend/frontend_renderer.cpp
@@ -2,12 +2,14 @@
#include "drape_frontend/message_subclasses.hpp"
#include "drape_frontend/visual_params.hpp"
+#include "drape/utils/projection.hpp"
+
+#include "geometry/any_rect2d.hpp"
+
#include "base/timer.hpp"
#include "base/assert.hpp"
#include "base/stl_add.hpp"
-#include "geometry/any_rect2d.hpp"
-
#include "std/bind.hpp"
#include "std/cmath.hpp"
@@ -25,18 +27,6 @@ const double VSyncInterval = 0.014;
//const double InitAvarageTimePerMessage = 0.001;
#endif
-void OrthoMatrix(float * m, float left, float right, float bottom, float top, float nearClip, float farClip)
-{
- memset(m, 0, 16 * sizeof(float));
- m[0] = 2.0f / (right - left);
- m[3] = - (right + left) / (right - left);
- m[5] = 2.0f / (top - bottom);
- m[7] = - (top + bottom) / (top - bottom);
- m[10] = -2.0f / (farClip - nearClip);
- m[11] = - (farClip + nearClip) / (farClip - nearClip);
- m[15] = 1.0;
-}
-
} // namespace
FrontendRenderer::FrontendRenderer(dp::RefPointer<ThreadsCommutator> commutator,
@@ -230,10 +220,10 @@ void FrontendRenderer::RenderScene()
void FrontendRenderer::RefreshProjection()
{
- float m[4*4];
+ array<float, 16> m;
- OrthoMatrix(m, 0.0f, m_viewport.GetWidth(), m_viewport.GetHeight(), 0.0f, -20000.0f, 20000.0f);
- m_generalUniforms.SetMatrix4x4Value("projection", m);
+ dp::MakeProjection(m, 0.0f, m_viewport.GetWidth(), m_viewport.GetHeight(), 0.0f);
+ m_generalUniforms.SetMatrix4x4Value("projection", m.data());
}
void FrontendRenderer::RefreshModelView()
diff --git a/drape_frontend/text_layout.cpp b/drape_frontend/text_layout.cpp
index 2dd0b13cf4..97cc20d928 100644
--- a/drape_frontend/text_layout.cpp
+++ b/drape_frontend/text_layout.cpp
@@ -71,6 +71,8 @@ public:
void operator()(dp::TextureManager::GlyphRegion const & glyph)
{
+ if (!glyph.IsValid())
+ return;
m2::PointF pixelSize = m2::PointF(glyph.GetPixelSize()) * m_textRatio;
float const xOffset = glyph.GetOffsetX() * m_textRatio;
@@ -223,9 +225,12 @@ void CalculateOffsets(dp::Anchor anchor,
ASSERT_NOT_EQUAL(start, end, ());
lengthAndHeight.push_back(TLengthAndHeight(0, 0));
TLengthAndHeight & node = lengthAndHeight.back();
- for (size_t glyphIndex = start; glyphIndex < end; ++glyphIndex)
+ for (size_t glyphIndex = start; glyphIndex < end && glyphIndex < glyphs.size(); ++glyphIndex)
{
dp::TextureManager::GlyphRegion const & glyph = glyphs[glyphIndex];
+ if (!glyph.IsValid())
+ continue;
+
node.first += (glyph.GetAdvanceX() * textRatio);
node.second = max(node.second, (glyph.GetPixelHeight() + glyph.GetAdvanceY()) * textRatio);
}
@@ -313,7 +318,7 @@ void StraightTextLayout::Cache(glm::vec3 const & pivot, glm::vec2 const & pixelO
size_t endOffset = node.first;
StraigthTextGeometryGenerator generator(pivot, pixelOffset + node.second, m_textSizeRatio,
colorRegion, outlineRegion, staticBuffer, dynamicBuffer);
- for (size_t index = beginOffset; index < endOffset; ++index)
+ for (size_t index = beginOffset; index < endOffset && index < m_metrics.size(); ++index)
generator(m_metrics[index]);
beginOffset = endOffset;
diff --git a/drape_frontend/text_shape.cpp b/drape_frontend/text_shape.cpp
index 1ee4643f5b..2da4abf3e5 100644
--- a/drape_frontend/text_shape.cpp
+++ b/drape_frontend/text_shape.cpp
@@ -105,10 +105,12 @@ void TextShape::Draw(dp::RefPointer<dp::Batcher> batcher, dp::RefPointer<dp::Tex
secondaryOffset += glsl::vec2(0.0, secondaryLayout.GetPixelSize().y / 2.0f);
}
- DrawSubString(secondaryLayout, m_params.m_secondaryTextFont, secondaryOffset, batcher, textures);
+ if (secondaryLayout.GetGlyphCount() > 0)
+ DrawSubString(secondaryLayout, m_params.m_secondaryTextFont, secondaryOffset, batcher, textures);
}
- DrawSubString(primaryLayout, m_params.m_primaryTextFont, primaryOffset, batcher, textures);
+ if (primaryLayout.GetGlyphCount() > 0)
+ DrawSubString(primaryLayout, m_params.m_primaryTextFont, primaryOffset, batcher, textures);
}
void TextShape::DrawSubString(StraightTextLayout const & layout,
diff --git a/drape_head/drape_surface.cpp b/drape_head/drape_surface.cpp
index c1c431ebfa..2f3fa956ba 100644
--- a/drape_head/drape_surface.cpp
+++ b/drape_head/drape_surface.cpp
@@ -18,8 +18,7 @@
DrapeSurface::DrapeSurface()
: m_dragState(false)
- , m_navigator(m_scales)
- , m_contextFactory(NULL)
+ , m_contextFactory(nullptr)
{
setSurfaceType(QSurface::OpenGLSurface);
diff --git a/drape_head/drape_surface.hpp b/drape_head/drape_surface.hpp
index 7bf939fcb2..0c2e371f8e 100644
--- a/drape_head/drape_surface.hpp
+++ b/drape_head/drape_surface.hpp
@@ -5,8 +5,6 @@
#include "map/feature_vec_model.hpp"
#include "map/navigator.hpp"
-#include "render/scales_processor.hpp"
-
#include "drape/batcher.hpp"
#include "drape/gpu_program_manager.hpp"
#include "drape/uniform_values_storage.hpp"
@@ -48,7 +46,6 @@ private:
bool m_dragState;
- ScalesProcessor m_scales;
model::FeaturesFetcher m_model;
Navigator m_navigator;
diff --git a/drape_head/mainwindow.cpp b/drape_head/mainwindow.cpp
index 96e56f479b..dace369169 100644
--- a/drape_head/mainwindow.cpp
+++ b/drape_head/mainwindow.cpp
@@ -6,7 +6,7 @@
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
- , m_surface(NULL)
+ , m_surface(nullptr)
{
resize(1200, 800);
diff --git a/drape_head/testing_engine.cpp b/drape_head/testing_engine.cpp
index 49676a8b88..17e89f10c5 100644
--- a/drape_head/testing_engine.cpp
+++ b/drape_head/testing_engine.cpp
@@ -3,13 +3,6 @@
#include "coding/file_reader.hpp"
#include "platform/platform.hpp"
-#include "drape/utils/vertex_decl.hpp"
-#include "drape/glsl_types.hpp"
-#include "drape/vertex_array_buffer.hpp"
-#include "drape/shader_def.hpp"
-#include "drape/overlay_tree.hpp"
-#include "drape/stipple_pen_resource.hpp"
-
#include "drape_frontend/visual_params.hpp"
#include "drape_frontend/line_shape.hpp"
#include "drape_frontend/text_shape.hpp"
@@ -18,6 +11,14 @@
#include "drape_frontend/area_shape.hpp"
#include "drape_frontend/circle_shape.hpp"
+#include "drape/utils/vertex_decl.hpp"
+#include "drape/glsl_types.hpp"
+#include "drape/vertex_array_buffer.hpp"
+#include "drape/shader_def.hpp"
+#include "drape/overlay_tree.hpp"
+#include "drape/stipple_pen_resource.hpp"
+#include "drape/utils/projection.hpp"
+
#include "geometry/transformations.hpp"
#include "base/stl_add.hpp"
@@ -495,19 +496,10 @@ void TestingEngine::ProjectionInit()
float const right = left + m_viewport.GetWidth();
float const bottom = m_viewport.GetY0() + m_viewport.GetHeight();
float const top = m_viewport.GetY0();
- float const nearClip = -20000.0f;
- float const farClip = 20000.0f;
-
- float m[4 * 4] = {0.};
- m[0] = 2.0f / (right - left);
- m[3] = - (right + left) / (right - left);
- m[5] = 2.0f / (top - bottom);
- m[7] = - (top + bottom) / (top - bottom);
- m[10] = -2.0f / (farClip - nearClip);
- m[11] = - (farClip + nearClip) / (farClip - nearClip);
- m[15] = 1.0;
-
- m_generalUniforms.SetMatrix4x4Value("projection", m);
+
+ array<float, 16> m;
+ dp::MakeProjection(m, left, right, bottom, top);
+ m_generalUniforms.SetMatrix4x4Value("projection", m.data());
}
void TestingEngine::OnFlushData(dp::GLState const & state, dp::TransferPointer<dp::RenderBucket> vao)
diff --git a/iphone/Maps/Bookmarks/BookmarksVC.mm b/iphone/Maps/Bookmarks/BookmarksVC.mm
index a7c1f68340..6c162e37d8 100644
--- a/iphone/Maps/Bookmarks/BookmarksVC.mm
+++ b/iphone/Maps/Bookmarks/BookmarksVC.mm
@@ -166,8 +166,9 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ %@", L(@"length"), [NSString stringWithUTF8String:dist.c_str()]];
else
cell.detailTextLabel.text = nil;
- const graphics::Color c = tr->GetMainColor();
- cell.imageView.image = [CircleView createCircleImageWith:PINDIAMETER andColor:[UIColor colorWithRed:c.r/255.f green:c.g/255.f blue:c.b/255.f alpha:1.f]];
+ const dp::Color c = tr->GetMainColor();
+ cell.imageView.image = [CircleView createCircleImageWith:PINDIAMETER andColor:[UIColor colorWithRed:c.GetRed()/255.f green:c.GetGreen()/255.f
+ blue:c.GetBlue()/255.f alpha:1.f]];
}
// Contains bookmarks list
else if (indexPath.section == m_bookmarkSection)
diff --git a/iphone/Maps/Classes/EAGLView.h b/iphone/Maps/Classes/EAGLView.h
index 04c7e16a6f..c8adc52353 100644
--- a/iphone/Maps/Classes/EAGLView.h
+++ b/iphone/Maps/Classes/EAGLView.h
@@ -1,52 +1,21 @@
#import <UIKit/UIKit.h>
-#include "std/shared_ptr.hpp"
-#include "indexer/map_style.hpp"
+#include "../../std/shared_ptr.hpp"
+#include "../../indexer/map_style.hpp"
+#include "../../drape/pointers.hpp"
-#ifndef USE_DRAPE
-
-class VideoTimer;
-class RenderPolicy;
-
-namespace iphone
-{
- class RenderContext;
- class RenderBuffer;
-}
-
-namespace graphics
-{
- namespace gl
- {
- class FrameBuffer;
- }
-}
-
-#else
-
-#include "drape/pointers.hpp"
namespace dp
{
class OGLContextFactory;
}
-#endif
-
// This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass.
// The view content is basically an EAGL surface you render your OpenGL scene into.
// Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel.
@interface EAGLView : UIView
{
-#ifndef USE_DRAPE
- VideoTimer * videoTimer;
- shared_ptr<iphone::RenderContext> renderContext;
- shared_ptr<graphics::gl::FrameBuffer> frameBuffer;
- shared_ptr<iphone::RenderBuffer> renderBuffer;
- RenderPolicy * renderPolicy;
-#else
dp::MasterPointer<dp::OGLContextFactory> m_factory;
-#endif
// Do not call onSize from layoutSubViews when real size wasn't changed.
// It's possible when we add/remove subviews (bookmark balloons) and it hangs the map without this check
CGRect lastViewSize;
diff --git a/iphone/Maps/Classes/EAGLView.mm b/iphone/Maps/Classes/EAGLView.mm
index 0406a6d560..cef3ca5ef2 100644
--- a/iphone/Maps/Classes/EAGLView.mm
+++ b/iphone/Maps/Classes/EAGLView.mm
@@ -5,27 +5,14 @@
#import "MWMDirectionView.h"
#include "Framework.h"
-
-#ifndef USE_DRAPE
- #include "RenderBuffer.hpp"
- #include "RenderContext.hpp"
- #include "graphics/resource_manager.hpp"
- #include "graphics/opengl/opengl.hpp"
- #include "graphics/data_formats.hpp"
- #include "indexer/classificator_loader.hpp"
-#else
- #import "../Platform/opengl/iosOGLContextFactory.h"
-#endif
-
-#include "render/render_policy.hpp"
+#include "indexer/classificator_loader.hpp"
+#import "../Platform/opengl/iosOGLContextFactory.h"
#include "platform/platform.hpp"
-#include "platform/video_timer.hpp"
#include "std/bind.hpp"
#include "std/limits.hpp"
-
@implementation EAGLView
namespace
@@ -106,26 +93,8 @@ graphics::EDensity getDensityType(int exactDensityDPI, double scale)
// Correct retina display support in opengl renderbuffer
self.contentScaleFactor = [self correctContentScale];
-#ifndef USE_DRAPE
- renderContext = shared_ptr<iphone::RenderContext>(new iphone::RenderContext());
-
- if (!renderContext.get())
- {
- NSLog(@"EAGLView initWithCoder Error");
- return nil;
- }
-
- renderContext->makeCurrent();
-
- typedef void (*drawFrameFn)(id, SEL);
- SEL drawFrameSel = @selector(drawFrame);
- drawFrameFn drawFrameImpl = (drawFrameFn)[self methodForSelector:drawFrameSel];
-
- videoTimer = CreateIOSVideoTimer(bind(drawFrameImpl, self, drawFrameSel));
-#else
dp::ThreadSafeFactory * factory = new dp::ThreadSafeFactory(new iosOGLContextFactory(eaglLayer));
m_factory.Reset(factory);
-#endif
}
NSLog(@"EAGLView initWithCoder Ended");
@@ -135,50 +104,9 @@ graphics::EDensity getDensityType(int exactDensityDPI, double scale)
- (void)initRenderPolicy
{
NSLog(@"EAGLView initRenderPolicy Started");
-
-#ifndef USE_DRAPE
- int const dpi = static_cast<int>(getExactDPI());
-
- graphics::ResourceManager::Params rmParams;
- rmParams.m_videoMemoryLimit = GetPlatform().VideoMemoryLimit();
- rmParams.m_texFormat = graphics::Data4Bpp;
- rmParams.m_exactDensityDPI = dpi;
-
- RenderPolicy::Params rpParams;
- UIScreen * screen = [UIScreen mainScreen];
- CGRect screenRect = screen.bounds;
-
- double vs = self.contentScaleFactor;
-
- rpParams.m_screenWidth = screenRect.size.width * vs;
- rpParams.m_screenHeight = screenRect.size.height * vs;
- rpParams.m_skinName = "basic.skn";
- rpParams.m_density = getDensityType(dpi, vs);
- rpParams.m_exactDensityDPI = dpi;
- rpParams.m_videoTimer = videoTimer;
- rpParams.m_useDefaultFB = false;
- rpParams.m_rmParams = rmParams;
- rpParams.m_primaryRC = renderContext;
-
- try
- {
- renderPolicy = CreateRenderPolicy(rpParams);
- }
- catch (graphics::gl::platform_unsupported const & )
- {
- /// terminate program (though this situation is unreal :) )
- }
-
- frameBuffer = renderPolicy->GetDrawer()->Screen()->frameBuffer();
-
- Framework & f = GetFramework();
- f.SetRenderPolicy(renderPolicy);
- f.InitGuiSubsystem();
-#else
CGRect frameRect = [UIScreen mainScreen].applicationFrame;
GetFramework().CreateDrapeEngine(m_factory.GetRefPointer(), self.contentScaleFactor, frameRect.size.width, frameRect.size.height);
-#endif
NSLog(@"EAGLView initRenderPolicy Ended");
}
@@ -198,67 +126,12 @@ graphics::EDensity getDensityType(int exactDensityDPI, double scale)
- (void)setMapStyle:(MapStyle)mapStyle
{
- Framework & f = GetFramework();
-
- if (f.GetMapStyle() == mapStyle)
- return;
-
- NSLog(@"EAGLView setMapStyle Started");
-
- renderContext->makeCurrent();
-
- /// drop old render policy
- f.SetRenderPolicy(nullptr);
- frameBuffer.reset();
-
- f.SetMapStyle(mapStyle);
-
- /// init new render policy
- [self initRenderPolicy];
-
- /// restore render policy screen
- CGFloat const scale = self.contentScaleFactor;
- CGSize const s = self.bounds.size;
- [self onSize:s.width * scale withHeight:s.height * scale];
-
- /// update framework
- f.SetUpdatesEnabled(true);
-
- NSLog(@"EAGLView setMapStyle Ended");
+ //@TODO UVR
}
- (void)onSize:(int)width withHeight:(int)height
{
-#ifndef USE_DRAPE
- frameBuffer->onSize(width, height);
-
- graphics::Screen * screen = renderPolicy->GetDrawer()->Screen();
-
- /// free old render buffer, as we would not create a new one.
- screen->resetRenderTarget();
- screen->resetDepthBuffer();
- renderBuffer.reset();
-
- /// detaching of old render target will occur inside beginFrame
- screen->beginFrame();
- screen->endFrame();
-
- /// allocate the new one
- renderBuffer.reset();
- renderBuffer.reset(new iphone::RenderBuffer(renderContext, (CAEAGLLayer*)self.layer));
-
- screen->setRenderTarget(renderBuffer);
- screen->setDepthBuffer(make_shared<graphics::gl::RenderBuffer>(width, height, true));
-#endif
-
GetFramework().OnSize(width, height);
-
-#ifndef USE_DRAPE
- screen->beginFrame();
- screen->clear(graphics::Screen::s_bgColor);
- screen->endFrame();
- GetFramework().SetNeedRedraw(true);
-#endif
}
- (double)correctContentScale
@@ -270,52 +143,20 @@ graphics::EDensity getDensityType(int exactDensityDPI, double scale)
return uiScreen.nativeScale;
}
-#ifndef USE_DRAPE
-- (void)drawFrame
-{
- shared_ptr<PaintEvent> pe(new PaintEvent(renderPolicy->GetDrawer().get()));
-
- Framework & f = GetFramework();
- if (f.NeedRedraw())
- {
- // Workaround. iOS Voice recognition creates own OGL-context, so here we must set ours
- // (http://discuss.cocos2d-x.org/t/engine-crash-on-ios7/9129/6)
- [EAGLContext setCurrentContext:renderContext->getEAGLContext()];
-
- f.SetNeedRedraw(false);
- f.BeginPaint(pe);
- f.DoPaint(pe);
- renderBuffer->present();
- f.EndPaint(pe);
- }
-}
-#endif
-
- (void)layoutSubviews
{
if (!CGRectEqualToRect(lastViewSize, self.frame))
{
lastViewSize = self.frame;
-#ifndef USE_DRAPE
- CGFloat const scale = self.contentScaleFactor;
- CGSize const s = self.bounds.size;
- [self onSize:s.width * scale withHeight:s.height * scale];
-#else
CGSize const s = self.bounds.size;
[self onSize:s.width withHeight:s.height];
-#endif
}
}
- (void)dealloc
{
-#ifndef USE_DRAPE
- delete videoTimer;
- [EAGLContext setCurrentContext:nil];
-#else
GetFramework().PrepareToShutdown();
m_factory.Destroy();
-#endif
}
- (CGPoint)viewPoint2GlobalPoint:(CGPoint)pt
diff --git a/iphone/Maps/Classes/LocationPredictor.mm b/iphone/Maps/Classes/LocationPredictor.mm
index 2fed7c2f83..38a210fcb6 100644
--- a/iphone/Maps/Classes/LocationPredictor.mm
+++ b/iphone/Maps/Classes/LocationPredictor.mm
@@ -34,14 +34,15 @@ namespace
m_gpsInfoIsValid = false;
m_generatePredictions = false;
- m_connectionSlot = GetFramework().GetLocationState()->AddStateModeListener([self](location::State::Mode mode)
- {
- m_generatePredictions = (mode == location::State::RotateAndFollow);
- if (mode < location::State::NotFollow)
- m_gpsInfoIsValid = false;
-
- [self resetTimer];
- });
+ //@TODO UVR
+ //m_connectionSlot = GetFramework().GetLocationState()->AddStateModeListener([self](location::State::Mode mode)
+ //{
+ // m_generatePredictions = (mode == location::State::RotateAndFollow);
+ // if (mode < location::State::NotFollow)
+ // m_gpsInfoIsValid = false;
+
+ // [self resetTimer];
+ //});
}
return self;
@@ -49,7 +50,7 @@ namespace
-(void)dealloc
{
- GetFramework().GetLocationState()->RemoveStateModeListener(m_connectionSlot);
+ //GetFramework().GetLocationState()->RemoveStateModeListener(m_connectionSlot);
}
-(void)reset:(location::GpsInfo const &)info
diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm
index 821d94dfb1..4fba52455b 100644
--- a/iphone/Maps/Classes/MapViewController.mm
+++ b/iphone/Maps/Classes/MapViewController.mm
@@ -18,10 +18,9 @@
#import "3party/Alohalytics/src/alohalytics_objc.h"
#include "Framework.h"
-#include "RenderContext.hpp"
#include "anim/controller.hpp"
-#include "gui/controller.hpp"
+#include "../Statistics/Statistics.h"
#include "map/country_status_display.hpp"
#include "map/user_mark.hpp"
@@ -323,8 +322,8 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
if ([event allTouches].count == 1)
{
- if (f.GetGuiController()->OnTapStarted(m_Pt1))
- return;
+ //if (f.GetGuiController()->OnTapStarted(m_Pt1))
+ // return;
self.userTouchesAction = UserTouchesActionDrag;
// Start long-tap timer
@@ -363,8 +362,9 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
Framework & f = GetFramework();
- if (f.GetGuiController()->OnTapMoved(m_Pt1))
- return;
+ ///@TODO UVR
+// if (f.GetGuiController()->OnTapMoved(m_Pt1))
+// return;
if (m_isSticking)
{
@@ -424,8 +424,9 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
// TapCount could be zero if it was a single long (or moving) tap.
if (tapCount < 2)
{
- if (f.GetGuiController()->OnTapEnded(m_Pt1))
- return;
+ ///@TODO UVR
+// if (f.GetGuiController()->OnTapEnded(m_Pt1))
+// return;
}
if (tapCount == 1)
@@ -649,8 +650,8 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
SEL locationStateModeSelector = @selector(onLocationStateModeChanged:);
LocationStateModeFnT locationStateModeFn = (LocationStateModeFnT)[self methodForSelector:locationStateModeSelector];
- f.GetLocationState()->AddStateModeListener(bind(locationStateModeFn, self, locationStateModeSelector, _1));
-
+ ///@TODO UVR
+// f.GetLocationState()->AddStateModeListener(bind(locationStateModeFn, self, locationStateModeSelector, _1));
m_predictor = [[LocationPredictor alloc] initWithObserver:self];
m_StickyThreshold = 10;
@@ -663,10 +664,12 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
if (!f.LoadState())
f.SetMaxWorldRect();
- f.Invalidate();
+ ///@TODO UVR
+ //f.Invalidate();
f.LoadBookmarks();
- f.GetCountryStatusDisplay()->SetDownloadCountryListener([self, &f](storage::TIndex const & idx, int opt)
+ ///@TODO UVR
+ //f.GetCountryStatusDisplay()->SetDownloadCountryListener([self, &f](storage::TIndex const & idx, int opt)
{
ActiveMapsLayout & layout = f.GetCountryTree().GetActiveMapLayout();
if (opt == -1)
@@ -702,7 +705,7 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
layout.DownloadMap(idx, static_cast<MapOptions>(opt));
}
- });
+ });*/
f.SetRouteBuildingListener([self, &f](routing::IRouter::ResultCode code, vector<storage::TIndex> const & absentCountries, vector<storage::TIndex> const & absentRoutes)
{
@@ -876,6 +879,102 @@ typedef NS_ENUM(NSUInteger, UserTouchesAction)
return _alertController;
}
+#pragma mark - Map state
+
+- (void)checkCurrentLocationMap
+{
+ Framework & f = GetFramework();
+ ActiveMapsLayout & activeMapLayout = f.GetCountryTree().GetActiveMapLayout();
+ int const mapsCount = activeMapLayout.GetCountInGroup(ActiveMapsLayout::TGroup::EOutOfDate) + activeMapLayout.GetCountInGroup(ActiveMapsLayout::TGroup::EUpToDate);
+ self.haveMap = mapsCount > 0;
+}
+
+#pragma mark - SearchViewDelegate
+
+- (void)searchViewWillEnterState:(SearchViewState)state
+{
+ [self checkCurrentLocationMap];
+ switch (state)
+ {
+ case SearchViewStateHidden:
+ self.controlsManager.hidden = NO;
+ break;
+ case SearchViewStateResults:
+ self.controlsManager.hidden = NO;
+ break;
+ case SearchViewStateAlpha:
+ self.controlsManager.hidden = NO;
+ break;
+ case SearchViewStateFullscreen:
+ self.controlsManager.hidden = YES;
+ GetFramework().ActivateUserMark(NULL);
+ break;
+ }
+}
+
+- (void)searchViewDidEnterState:(SearchViewState)state
+{
+ switch (state)
+ {
+ case SearchViewStateResults:
+ [self setMapInfoViewFlag:MapInfoViewSearch];
+ break;
+ case SearchViewStateHidden:
+ case SearchViewStateAlpha:
+ case SearchViewStateFullscreen:
+ [self clearMapInfoViewFlag:MapInfoViewSearch];
+ break;
+ }
+ [self updateStatusBarStyle];
+}
+
+#pragma mark - MWMNavigationDelegate
+
+- (void)pushDownloadMaps
+{
+ [Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"downloader"];
+ CountryTreeVC * vc = [[CountryTreeVC alloc] initWithNodePosition:-1];
+ [self.navigationController pushViewController:vc animated:YES];
+}
+
+#pragma mark - MWMPlacePageViewManagerDelegate
+
+- (void)addPlacePageViews:(NSArray *)views
+{
+ [views enumerateObjectsUsingBlock:^(UIView * view, NSUInteger idx, BOOL *stop)
+ {
+ if ([self.view.subviews containsObject:view])
+ return;
+ [self.view insertSubview:view belowSubview:self.searchView];
+ }];
+}
+
+#pragma mark - ActiveMapsObserverProtocol
+
+- (void)countryStatusChangedAtPosition:(int)position inGroup:(ActiveMapsLayout::TGroup const &)group
+{
+ auto const status = GetFramework().GetCountryTree().GetActiveMapLayout().GetCountryStatus(group, position);
+ if (status == TStatus::EDownloadFailed)
+ {
+ [self.searchView downloadFailed];
+ }
+ else if (status == TStatus::EOnDisk)
+ {
+ [self checkCurrentLocationMap];
+ [self.searchView downloadComplete];
+ }
+}
+
+- (void)countryDownloadingProgressChanged:(LocalAndRemoteSizeT const &)progress atPosition:(int)position inGroup:(ActiveMapsLayout::TGroup const &)group
+{
+ //if (self.searchView.state != SearchViewStateFullscreen)
+ // return;
+ //CGFloat const normProgress = (CGFloat)progress.first / (CGFloat)progress.second;
+ //ActiveMapsLayout & activeMapLayout = GetFramework().GetCountryTree().GetActiveMapLayout();
+ //NSString * countryName = [NSString stringWithUTF8String:activeMapLayout.GetFormatedCountryName(activeMapLayout.GetCoreIndex(group, position)).c_str()];
+ //[self.searchView downloadProgress:normProgress countryName:countryName];
+}
+
#pragma mark - Public methods
- (void)setupMeasurementSystem
@@ -892,9 +991,10 @@ NSInteger compareAddress(id l, id r, void * context)
- (void)invalidate
{
- Framework & f = GetFramework();
- if (!f.SetUpdatesEnabled(true))
- f.Invalidate();
+ ///@TODO UVR
+// Framework & f = GetFramework();
+// if (!f.SetUpdatesEnabled(true))
+// f.Invalidate();
}
- (void)destroyPopover
diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj
index a83b338ed1..ce4f98d189 100644
--- a/iphone/Maps/Maps.xcodeproj/project.pbxproj
+++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj
@@ -622,8 +622,6 @@
EE026F0611D6AC0D00645242 /* classificator.txt in Resources */ = {isa = PBXBuildFile; fileRef = EE026F0511D6AC0D00645242 /* classificator.txt */; };
EE164811135CEE4A003B8A3E /* 06_code2000.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EE164810135CEE49003B8A3E /* 06_code2000.ttf */; };
EE583CBB12F773F00042CBE3 /* unicode_blocks.txt in Resources */ = {isa = PBXBuildFile; fileRef = EE583CBA12F773F00042CBE3 /* unicode_blocks.txt */; };
- EE7F29811219ECA300EB67A9 /* RenderBuffer.mm in Sources */ = {isa = PBXBuildFile; fileRef = EE7F297D1219ECA300EB67A9 /* RenderBuffer.mm */; };
- EE7F29821219ECA300EB67A9 /* RenderContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = EE7F297E1219ECA300EB67A9 /* RenderContext.mm */; };
EEA61601134C496A003A9827 /* 01_dejavusans.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EEA615E5134C4968003A9827 /* 01_dejavusans.ttf */; };
EEA61603134C496A003A9827 /* 03_jomolhari-id-a3d.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EEA615E7134C4968003A9827 /* 03_jomolhari-id-a3d.ttf */; };
EEA61604134C496A003A9827 /* 04_padauk.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EEA615E8134C4968003A9827 /* 04_padauk.ttf */; };
@@ -1167,12 +1165,17 @@
ED48BBB817C2B1E2003E7E92 /* CircleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleView.h; sourceTree = "<group>"; };
ED48BBB917C2B1E2003E7E92 /* CircleView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CircleView.mm; sourceTree = "<group>"; };
EE026F0511D6AC0D00645242 /* classificator.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = classificator.txt; path = ../../data/classificator.txt; sourceTree = SOURCE_ROOT; };
- EE16192B126E374500622BD0 /* RenderContext.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; name = RenderContext.hpp; path = Classes/RenderContext.hpp; sourceTree = SOURCE_ROOT; };
+ EE1201FF11CD464100ABDD5D /* libbase.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libbase.a; sourceTree = SOURCE_ROOT; };
+ EE12020011CD464100ABDD5D /* libcoding.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcoding.a; sourceTree = SOURCE_ROOT; };
+ EE12020211CD464100ABDD5D /* libexpat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libexpat.a; sourceTree = SOURCE_ROOT; };
+ EE12020311CD464100ABDD5D /* libfreetype.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libfreetype.a; sourceTree = SOURCE_ROOT; };
+ EE12020411CD464100ABDD5D /* libgeometry.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgeometry.a; sourceTree = SOURCE_ROOT; };
+ EE12020511CD464100ABDD5D /* libindexer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libindexer.a; sourceTree = SOURCE_ROOT; };
+ EE12020611CD464100ABDD5D /* libmap.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libmap.a; sourceTree = SOURCE_ROOT; };
+ EE12020811CD464100ABDD5D /* libgraphics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgraphics.a; sourceTree = SOURCE_ROOT; };
EE164810135CEE49003B8A3E /* 06_code2000.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = 06_code2000.ttf; path = ../../data/06_code2000.ttf; sourceTree = SOURCE_ROOT; };
EE583CBA12F773F00042CBE3 /* unicode_blocks.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = unicode_blocks.txt; path = ../../data/unicode_blocks.txt; sourceTree = "<group>"; };
- EE7F297C1219ECA300EB67A9 /* RenderBuffer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; name = RenderBuffer.hpp; path = Classes/RenderBuffer.hpp; sourceTree = SOURCE_ROOT; };
- EE7F297D1219ECA300EB67A9 /* RenderBuffer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; name = RenderBuffer.mm; path = Classes/RenderBuffer.mm; sourceTree = SOURCE_ROOT; };
- EE7F297E1219ECA300EB67A9 /* RenderContext.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; name = RenderContext.mm; path = Classes/RenderContext.mm; sourceTree = SOURCE_ROOT; };
+ EE5A34E5156FCB9500E34FFE /* libgui.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgui.a; sourceTree = SOURCE_ROOT; };
EEA615E5134C4968003A9827 /* 01_dejavusans.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = 01_dejavusans.ttf; path = ../../data/01_dejavusans.ttf; sourceTree = SOURCE_ROOT; };
EEA615E7134C4968003A9827 /* 03_jomolhari-id-a3d.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "03_jomolhari-id-a3d.ttf"; path = "../../data/03_jomolhari-id-a3d.ttf"; sourceTree = SOURCE_ROOT; };
EEA615E8134C4968003A9827 /* 04_padauk.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = 04_padauk.ttf; path = ../../data/04_padauk.ttf; sourceTree = SOURCE_ROOT; };
@@ -1592,10 +1595,6 @@
B0FBFA2A1A515B4C0086819E /* TableViewController.mm */,
978F9251183BD530000D6C7C /* NavigationController.h */,
978F9252183BD530000D6C7C /* NavigationController.mm */,
- EE7F297C1219ECA300EB67A9 /* RenderBuffer.hpp */,
- EE7F297D1219ECA300EB67A9 /* RenderBuffer.mm */,
- EE16192B126E374500622BD0 /* RenderContext.hpp */,
- EE7F297E1219ECA300EB67A9 /* RenderContext.mm */,
46F26CD610F623BA00ECCA39 /* EAGLView.h */,
46F26CD710F623BA00ECCA39 /* EAGLView.mm */,
1D3623240D0F684500981E51 /* MapsAppDelegate.h */,
@@ -1680,7 +1679,6 @@
34921F691BFA0CDC00737D6E /* MyTargetSDKCorp.framework */,
6741AAA21BF356B9002C974C /* libagg.a */,
6741AAA31BF356B9002C974C /* libalohalitics.a */,
- 6741AAA41BF356B9002C974C /* libanim.a */,
6741AAA51BF356B9002C974C /* libapi.a */,
6741AAA61BF356B9002C974C /* libbase.a */,
6741AAA71BF356B9002C974C /* libcoding.a */,
@@ -1688,8 +1686,6 @@
6741AAA91BF356B9002C974C /* libfreetype.a */,
6741AAAA1BF356B9002C974C /* libfribidi.a */,
6741AAAB1BF356B9002C974C /* libgeometry.a */,
- 6741AAAC1BF356B9002C974C /* libgraphics.a */,
- 6741AAAD1BF356B9002C974C /* libgui.a */,
6741AAAE1BF356B9002C974C /* libindexer.a */,
6741AAAF1BF356B9002C974C /* libjansson.a */,
6741AAB01BF356B9002C974C /* liblodepng.a */,
@@ -1699,7 +1695,6 @@
6741AAB41BF356B9002C974C /* libosrm.a */,
6741AAB51BF356B9002C974C /* libplatform.a */,
6741AAB61BF356BA002C974C /* libprotobuf.a */,
- 6741AAB71BF356BA002C974C /* librender.a */,
6741AAB81BF356BA002C974C /* librouting.a */,
6741AAB91BF356BA002C974C /* libsearch.a */,
6741AABA1BF356BA002C974C /* libstorage.a */,
@@ -3401,7 +3396,6 @@
F61579341AC2CE9A0032D8E9 /* MWMRateAlert.mm in Sources */,
F6BB6CC61BB18C0900DF1DF2 /* MWMRoutePointCell.m in Sources */,
A3CC2CD41A1C723900B832E1 /* LocationPredictor.mm in Sources */,
- EE7F29811219ECA300EB67A9 /* RenderBuffer.mm in Sources */,
6C93FAEC1AD8063900A2C4AE /* MWMWatchNotification.mm in Sources */,
F62404FB1AAF3DB200B58DB6 /* UILabel+RuntimeAttributes.mm in Sources */,
34CC4C0E1B82069C00E44C1F /* MWMSearchTabbedCollectionViewCell.mm in Sources */,
@@ -3422,6 +3416,7 @@
34CFFE8B1B7DE6FD009D0C9F /* MWMSearchManager.mm in Sources */,
F6BBF2C61B4FFB72000CF8E2 /* MWMLocationAlert.mm in Sources */,
F66A8FB01B09F268001B9C97 /* MWMPlacePage.mm in Sources */,
+ 34BC72251B0DECAE0012A34B /* MWMSideMenuButton.mm in Sources */,
EE7F29821219ECA300EB67A9 /* RenderContext.mm in Sources */,
F6ED13911B1EF96B0095C6DE /* MWMBookmarkDescriptionViewController.mm in Sources */,
349A35851B53E967009677EE /* MWMDownloadMapRequestView.mm in Sources */,
@@ -3963,43 +3958,6 @@
};
name = Debug;
};
- 6741A8E61BF3407C002C974C /* Drape Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_ENABLE_MODULES = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IBSC_MODULE = maps_me_beta_WatchKit_Extension;
- INFOPLIST_FILE = "$(SRCROOT)/maps.me WatchKit App/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.2;
- MTL_ENABLE_DEBUG_INFO = NO;
- PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).watchkitapp";
- PRODUCT_NAME = "$(TARGET_NAME)";
- SKIP_INSTALL = YES;
- TARGETED_DEVICE_FAMILY = 4;
- "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
- };
- name = "Drape Debug";
- };
6741A8E71BF3407C002C974C /* AdHoc */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4075,43 +4033,6 @@
};
name = Release;
};
- 6741A8E91BF3407C002C974C /* Drape Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_ENABLE_MODULES = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IBSC_MODULE = maps_me_beta_WatchKit_Extension;
- INFOPLIST_FILE = "$(SRCROOT)/maps.me WatchKit App/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.2;
- MTL_ENABLE_DEBUG_INFO = NO;
- PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).watchkitapp";
- PRODUCT_NAME = "$(TARGET_NAME)";
- SKIP_INSTALL = YES;
- TARGETED_DEVICE_FAMILY = 4;
- "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
- };
- name = "Drape Release";
- };
6741A8EA1BF3407C002C974C /* Production Full */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4201,23 +4122,6 @@
};
name = Debug;
};
- 6741A9361BF340D1002C974C /* Drape Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_ENTITLEMENTS = "maps.me WatchKit Extension/Entitlements/me.maps.watchkitextension.entitlements";
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- INFOPLIST_FILE = "$(SRCROOT)/maps.me WatchKit Extension/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.2;
- LIBRARY_SEARCH_PATHS = "";
- OTHER_LDFLAGS = "";
- PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).watchkitextension";
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- SKIP_INSTALL = YES;
- };
- name = "Drape Debug";
- };
6741A9371BF340D1002C974C /* AdHoc */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4253,23 +4157,6 @@
};
name = Release;
};
- 6741A9391BF340D1002C974C /* Drape Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_ENTITLEMENTS = "maps.me WatchKit Extension/Entitlements/me.maps.watchkitextension.entitlements";
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- INFOPLIST_FILE = "$(SRCROOT)/maps.me WatchKit Extension/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.2;
- LIBRARY_SEARCH_PATHS = "";
- OTHER_LDFLAGS = "";
- PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).watchkitextension";
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- SKIP_INSTALL = YES;
- };
- name = "Drape Release";
- };
6741A93A1BF340D1002C974C /* Production Full */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4383,38 +4270,6 @@
};
name = Debug;
};
- 6741AA581BF340DE002C974C /* Drape Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CODE_SIGN_ENTITLEMENTS = Entitlements/me.maps.entitlements;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/PushNotifications",
- "$(PROJECT_DIR)/Statistics",
- "$(PROJECT_DIR)",
- );
- HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = "$(SRCROOT)/MAPSME.plist";
- LIBRARY_SEARCH_PATHS = (
- "$(PROJECT_DIR)/MyTracker",
- "$(PROJECT_DIR)/Statistics",
- );
- OTHER_CFLAGS = (
- "-Wall",
- "-Wno-unused-local-typedef",
- "-Wimplicit-retain-self",
- );
- OTHER_LDFLAGS = "";
- PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- };
- name = "Drape Debug";
- };
6741AA591BF340DE002C974C /* AdHoc */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4479,38 +4334,6 @@
};
name = Release;
};
- 6741AA5B1BF340DE002C974C /* Drape Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CODE_SIGN_ENTITLEMENTS = Entitlements/me.maps.entitlements;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/PushNotifications",
- "$(PROJECT_DIR)/Statistics",
- "$(PROJECT_DIR)",
- );
- HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = "$(SRCROOT)/MAPSME.plist";
- LIBRARY_SEARCH_PATHS = (
- "$(PROJECT_DIR)/MyTracker",
- "$(PROJECT_DIR)/Statistics",
- );
- OTHER_CFLAGS = (
- "-Wall",
- "-Wno-unused-local-typedef",
- "-Wimplicit-retain-self",
- );
- OTHER_LDFLAGS = "";
- PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- };
- name = "Drape Release";
- };
6741AA5C1BF340DE002C974C /* Production Full */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4543,257 +4366,6 @@
};
name = "Production Full";
};
- A32B6D4E1A14A7B700E54A65 /* Drape Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- BUNDLE_IDENTIFIER = com.mapswithme.full.release;
- CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 5.2;
- ENABLE_BITCODE = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/Statistics";
- GCC_ENABLE_PASCAL_STRINGS = NO;
- GCC_FAST_MATH = YES;
- GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
- GCC_OPTIMIZATION_LEVEL = 3;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = Maps_Prefix.pch;
- GCC_PREPROCESSOR_DEFINITIONS = (
- NDEBUG,
- RELEASE,
- _RELEASE,
- TARGET_OS_IPHONE,
- "NS_BLOCK_ASSERTIONS=1",
- );
- GCC_SYMBOLS_PRIVATE_EXTERN = YES;
- GCC_UNROLL_LOOPS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_LABEL = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = (
- ../../3party/boost,
- ../../,
- );
- IPHONEOS_DEPLOYMENT_TARGET = 7.0;
- LIBRARY_SEARCH_PATHS = (
- "\"$(SRCROOT)/../../../omim-iphone-release-drape-$(CURRENT_ARCH)/out/release\"",
- "$(PROJECT_DIR)/MyTracker",
- "$(PROJECT_DIR)/Statistics",
- );
- OTHER_CFLAGS = (
- "-Wall",
- "-Wno-unused-local-typedef",
- );
- OTHER_CPLUSPLUSFLAGS = (
- "$(OTHER_CFLAGS)",
- "-DUSE_DRAPE",
- );
- OTHER_LDFLAGS = (
- "-lstats_client",
- "-lmap",
- "-lrender",
- "-lsearch",
- "-lgui",
- "-ldrape_frontend",
- "-ldrape",
- "-lgraphics",
- "-lstorage",
- "-lrouting",
- "-lindexer",
- "-lanim",
- "-lplatform",
- "-lgeometry",
- "-lcoding",
- "-lbase",
- "-lfreetype",
- "-lfribidi",
- "-lminizip",
- "-ljansson",
- "-ltomcrypt",
- "-lexpat",
- "-lprotobuf",
- "-losrm",
- "-lsuccinct",
- "-ObjC",
- "-lopening_hours",
- );
- PRODUCT_NAME = "maps.me drape rel";
- SDKROOT = iphoneos;
- STRIP_INSTALLED_PRODUCT = NO;
- TARGETED_DEVICE_FAMILY = "1,2";
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = "Drape Release";
- };
- A32B6D4F1A14A7B700E54A65 /* Drape Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CODE_SIGN_ENTITLEMENTS = Entitlements/me.maps.entitlements;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/PushNotifications",
- "$(PROJECT_DIR)/Statistics",
- "$(PROJECT_DIR)",
- );
- INFOPLIST_FILE = MAPSME.plist;
- OTHER_CFLAGS = (
- "-Wall",
- "-Wno-unused-local-typedef",
- "-Wimplicit-retain-self",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER}";
- PROVISIONING_PROFILE = "";
- };
- name = "Drape Release";
- };
- A32B6D5F1A14C16500E54A65 /* Drape Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- BUNDLE_IDENTIFIER = com.mapswithme.full.debug;
- CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 5.2;
- ENABLE_BITCODE = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/Statistics";
- GCC_ENABLE_PASCAL_STRINGS = NO;
- GCC_FAST_MATH = YES;
- GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = Maps_Prefix.pch;
- GCC_PREPROCESSOR_DEFINITIONS = (
- DEBUG,
- _DEBUG,
- TARGET_OS_IPHONE,
- );
- GCC_SYMBOLS_PRIVATE_EXTERN = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_LABEL = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = (
- ../../3party/boost,
- ../../,
- );
- IPHONEOS_DEPLOYMENT_TARGET = 7.0;
- LIBRARY_SEARCH_PATHS = (
- "\"$(SRCROOT)/../../../omim-iphone-debug-drape-$(CURRENT_ARCH)/out/debug\"",
- "$(PROJECT_DIR)/MyTracker",
- "$(PROJECT_DIR)/Statistics",
- );
- ONLY_ACTIVE_ARCH = YES;
- OTHER_CFLAGS = (
- "-Wall",
- "-Wno-unused-local-typedef",
- );
- OTHER_CPLUSPLUSFLAGS = (
- "$(OTHER_CFLAGS)",
- "-DUSE_DRAPE",
- );
- OTHER_LDFLAGS = (
- "-lstats_client",
- "-lmap",
- "-lrender",
- "-ldrape_frontend",
- "-ldrape",
- "-lsearch",
- "-lgui",
- "-lgraphics",
- "-lstorage",
- "-lrouting",
- "-lindexer",
- "-lanim",
- "-lplatform",
- "-lgeometry",
- "-lcoding",
- "-lbase",
- "-lfreetype",
- "-lfribidi",
- "-lminizip",
- "-ljansson",
- "-ltomcrypt",
- "-lexpat",
- "-lprotobuf",
- "-losrm",
- "-lsuccinct",
- "-ObjC",
- "-lopening_hours",
- );
- PRODUCT_NAME = "maps.me drape dbg";
- SDKROOT = iphoneos;
- STRIP_INSTALLED_PRODUCT = NO;
- TARGETED_DEVICE_FAMILY = "1,2";
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = "Drape Debug";
- };
- A32B6D601A14C16500E54A65 /* Drape Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CODE_SIGN_ENTITLEMENTS = Entitlements/me.maps.entitlements;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/PushNotifications",
- "$(PROJECT_DIR)/Statistics",
- "$(PROJECT_DIR)",
- );
- INFOPLIST_FILE = MAPSME.plist;
- OTHER_CFLAGS = (
- "-Wall",
- "-Wno-unused-local-typedef",
- "-Wimplicit-retain-self",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER}";
- PROVISIONING_PROFILE = "";
- };
- name = "Drape Debug";
- };
F6D434601AD2AB97007C7728 /* Simulator */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4839,21 +4411,6 @@
};
name = Debug;
};
- F6D434631AD2AB97007C7728 /* Drape Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_ENTITLEMENTS = "maps.me WatchKit Extension/Entitlements/me.maps.watchkitextension.entitlements";
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- INFOPLIST_FILE = "$(SRCROOT)/maps.me WatchKit Extension/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.2;
- PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).watchkitextension";
- PRODUCT_NAME = "$(TARGET_NAME) WatchKit Extension";
- PROVISIONING_PROFILE = "";
- SKIP_INSTALL = YES;
- };
- name = "Drape Debug";
- };
F6D434641AD2AB97007C7728 /* AdHoc */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -4884,21 +4441,6 @@
};
name = Release;
};
- F6D434661AD2AB97007C7728 /* Drape Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_ENTITLEMENTS = "maps.me WatchKit Extension/Entitlements/me.maps.watchkitextension.entitlements";
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- INFOPLIST_FILE = "$(SRCROOT)/maps.me WatchKit Extension/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.2;
- PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).watchkitextension";
- PRODUCT_NAME = "$(TARGET_NAME) WatchKit Extension";
- PROVISIONING_PROFILE = "";
- SKIP_INSTALL = YES;
- };
- name = "Drape Release";
- };
F6D434671AD2AB97007C7728 /* Production Full */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -5030,42 +4572,6 @@
};
name = Debug;
};
- F6D4346B1AD2AB97007C7728 /* Drape Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_ENABLE_MODULES = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IBSC_MODULE = maps_me_beta_WatchKit_Extension;
- INFOPLIST_FILE = "$(SRCROOT)/maps.me WatchKit App/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.2;
- MTL_ENABLE_DEBUG_INFO = NO;
- PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER}.watchkitapp";
- PRODUCT_NAME = "$(TARGET_NAME)";
- SKIP_INSTALL = YES;
- TARGETED_DEVICE_FAMILY = 4;
- "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
- };
- name = "Drape Debug";
- };
F6D4346C1AD2AB97007C7728 /* AdHoc */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -5138,42 +4644,6 @@
};
name = Release;
};
- F6D4346E1AD2AB97007C7728 /* Drape Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_ENABLE_MODULES = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IBSC_MODULE = maps_me_beta_WatchKit_Extension;
- INFOPLIST_FILE = "$(SRCROOT)/maps.me WatchKit App/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 8.2;
- MTL_ENABLE_DEBUG_INFO = NO;
- PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER}.watchkitapp";
- PRODUCT_NAME = "$(TARGET_NAME)";
- SKIP_INSTALL = YES;
- TARGETED_DEVICE_FAMILY = 4;
- "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
- };
- name = "Drape Release";
- };
F6D4346F1AD2AB97007C7728 /* Production Full */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -5271,10 +4741,9 @@
OTHER_LDFLAGS = (
"-lstats_client",
"-lmap",
- "-lrender",
"-lsearch",
- "-lgui",
- "-lgraphics",
+ "-ldrape_frontend",
+ "-ldrape",
"-lstorage",
"-lrouting",
"-lindexer",
@@ -5392,10 +4861,9 @@
OTHER_LDFLAGS = (
"-lstats_client",
"-lmap",
- "-lrender",
"-lsearch",
- "-lgui",
- "-lgraphics",
+ "-ldrape_frontend",
+ "-ldrape",
"-lstorage",
"-lrouting",
"-lindexer",
@@ -5515,10 +4983,9 @@
OTHER_LDFLAGS = (
"-lstats_client",
"-lmap",
- "-lrender",
"-lsearch",
- "-lgui",
- "-lgraphics",
+ "-ldrape_frontend",
+ "-ldrape",
"-lstorage",
"-lrouting",
"-lindexer",
@@ -5639,10 +5106,9 @@
OTHER_LDFLAGS = (
"-lstats_client",
"-lmap",
- "-lrender",
"-lsearch",
- "-lgui",
- "-lgraphics",
+ "-ldrape_frontend",
+ "-ldrape",
"-lstorage",
"-lrouting",
"-lindexer",
@@ -5762,10 +5228,9 @@
OTHER_LDFLAGS = (
"-lstats_client",
"-lmap",
- "-lrender",
"-lsearch",
- "-lgui",
- "-lgraphics",
+ "-ldrape_frontend",
+ "-ldrape",
"-lstorage",
"-lrouting",
"-lindexer",
@@ -5883,10 +5348,9 @@
OTHER_LDFLAGS = (
"-lstats_client",
"-lmap",
- "-lrender",
"-lsearch",
- "-lgui",
- "-lgraphics",
+ "-ldrape_frontend",
+ "-ldrape",
"-lstorage",
"-lrouting",
"-lindexer",
@@ -5950,10 +5414,8 @@
FAAB411A149BA83500C245B1 /* Simulator */,
FACFE54515F8F35600CE8B20 /* Simulator Release */,
FAAB411C149BA84700C245B1 /* Debug */,
- A32B6D601A14C16500E54A65 /* Drape Debug */,
FAAB411E149BA85500C245B1 /* AdHoc */,
FABB561F149CD957006969C0 /* Release */,
- A32B6D4F1A14A7B700E54A65 /* Drape Release */,
FAAB4120149BA86000C245B1 /* Production Full */,
);
defaultConfigurationIsVisible = 0;
@@ -5965,10 +5427,8 @@
6741A8E31BF3407C002C974C /* Simulator */,
6741A8E41BF3407C002C974C /* Simulator Release */,
6741A8E51BF3407C002C974C /* Debug */,
- 6741A8E61BF3407C002C974C /* Drape Debug */,
6741A8E71BF3407C002C974C /* AdHoc */,
6741A8E81BF3407C002C974C /* Release */,
- 6741A8E91BF3407C002C974C /* Drape Release */,
6741A8EA1BF3407C002C974C /* Production Full */,
);
defaultConfigurationIsVisible = 0;
@@ -5980,10 +5440,8 @@
6741A9331BF340D1002C974C /* Simulator */,
6741A9341BF340D1002C974C /* Simulator Release */,
6741A9351BF340D1002C974C /* Debug */,
- 6741A9361BF340D1002C974C /* Drape Debug */,
6741A9371BF340D1002C974C /* AdHoc */,
6741A9381BF340D1002C974C /* Release */,
- 6741A9391BF340D1002C974C /* Drape Release */,
6741A93A1BF340D1002C974C /* Production Full */,
);
defaultConfigurationIsVisible = 0;
@@ -5995,10 +5453,8 @@
6741AA551BF340DE002C974C /* Simulator */,
6741AA561BF340DE002C974C /* Simulator Release */,
6741AA571BF340DE002C974C /* Debug */,
- 6741AA581BF340DE002C974C /* Drape Debug */,
6741AA591BF340DE002C974C /* AdHoc */,
6741AA5A1BF340DE002C974C /* Release */,
- 6741AA5B1BF340DE002C974C /* Drape Release */,
6741AA5C1BF340DE002C974C /* Production Full */,
);
defaultConfigurationIsVisible = 0;
@@ -6010,10 +5466,8 @@
FAAB4119149BA83500C245B1 /* Simulator */,
FACFE54415F8F35600CE8B20 /* Simulator Release */,
FAAB411B149BA84700C245B1 /* Debug */,
- A32B6D5F1A14C16500E54A65 /* Drape Debug */,
FAAB411D149BA85500C245B1 /* AdHoc */,
FABB561E149CD957006969C0 /* Release */,
- A32B6D4E1A14A7B700E54A65 /* Drape Release */,
FAAB411F149BA86000C245B1 /* Production Full */,
);
defaultConfigurationIsVisible = 0;
diff --git a/iphone/Maps/Settings/SettingsViewController.mm b/iphone/Maps/Settings/SettingsViewController.mm
index 7195f90460..5ab3f65882 100644
--- a/iphone/Maps/Settings/SettingsViewController.mm
+++ b/iphone/Maps/Settings/SettingsViewController.mm
@@ -62,7 +62,8 @@ typedef NS_ENUM(NSUInteger, Section)
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
- GetFramework().Invalidate(true);
+ ///@TODO UVR
+ //GetFramework().Invalidate(true);
}
#pragma mark - Table view data source
diff --git a/map/address_finder.cpp b/map/address_finder.cpp
index 07c6950292..8d340122c6 100644
--- a/map/address_finder.cpp
+++ b/map/address_finder.cpp
@@ -1,6 +1,7 @@
#include "map/framework.hpp"
#include "search/result.hpp"
+#include "drape_frontend/visual_params.hpp"
#include "indexer/classificator.hpp"
#include "indexer/feature_visibility.hpp"
@@ -164,7 +165,7 @@ namespace
void Framework::GetFeatureTypes(m2::PointD const & pxPoint, vector<string> & types) const
{
m2::AnyRectD rect;
- m_navigator.GetTouchRect(pxPoint, TOUCH_PIXEL_RADIUS * GetVisualScale(), rect);
+ m_navigator.GetTouchRect(pxPoint, TOUCH_PIXEL_RADIUS * df::VisualParams::Instance().GetVisualScale(), rect);
// This scale should fit in geometry scales range.
int const scale = min(GetDrawScale(), scales::GetUpperScale());
diff --git a/map/alfa_animation_task.cpp b/map/alfa_animation_task.cpp
index 5a65277a7b..b9450f06b0 100644
--- a/map/alfa_animation_task.cpp
+++ b/map/alfa_animation_task.cpp
@@ -28,7 +28,8 @@ void AlfaAnimationTask::OnStart(double ts)
{
m_timeStart = ts;
BaseT::OnStart(ts);
- m_f->Invalidate();
+ ///@TODO UVR
+ //m_f->Invalidate();
}
void AlfaAnimationTask::OnStep(double ts)
@@ -48,5 +49,6 @@ void AlfaAnimationTask::OnStep(double ts)
m_current = m_start + t * (m_end - m_start);
}
- m_f->Invalidate();
+ ///@TODO UVR
+ //m_f->Invalidate();
}
diff --git a/map/anim_phase_chain.cpp b/map/anim_phase_chain.cpp
index 5915ce82cf..a6b6661d53 100644
--- a/map/anim_phase_chain.cpp
+++ b/map/anim_phase_chain.cpp
@@ -49,7 +49,8 @@ void AnimPhaseChain::OnStep(double ts)
double t = elapsedTime / phase->m_timeInterval;
m_scale = m_startScale + t * (phase->m_endScale - m_startScale);
- m_f.Invalidate();
+ ///@TODO UVR
+ //m_f.Invalidate();
}
void InitDefaultPinAnim(AnimPhaseChain * chain)
diff --git a/map/bookmark.cpp b/map/bookmark.cpp
index ca2395f4c9..d635db1570 100644
--- a/map/bookmark.cpp
+++ b/map/bookmark.cpp
@@ -8,6 +8,7 @@
#include "base/scope_guard.hpp"
+
#include "graphics/depth_constants.hpp"
#include "indexer/mercator.hpp"
@@ -17,6 +18,9 @@
#include "coding/internal/file_data.hpp"
#include "coding/hex.hpp"
+#include "drape/drape_global.hpp"
+#include "drape/color.hpp"
+
#include "platform/platform.hpp"
#include "base/stl_add.hpp"
@@ -31,6 +35,23 @@ unique_ptr<UserMarkCopy> Bookmark::Copy() const
return unique_ptr<UserMarkCopy>(new UserMarkCopy(this, false));
}
+///@TODO UVR
+//graphics::DisplayList * Bookmark::GetDisplayList(UserMarkDLCache * cache) const
+//{
+// return cache->FindUserMark(UserMarkDLCache::Key(GetType(), dp::Bottom, GetContainer()->GetDepth()));
+//}
+
+double Bookmark::GetAnimScaleFactor() const
+{
+ return m_animScaleFactor;
+}
+
+m2::PointD const & Bookmark::GetPixelOffset() const
+{
+ static m2::PointD s_offset(0.0, 3.0);
+ return s_offset;
+}
+
shared_ptr<anim::Task> Bookmark::CreateAnimTask(Framework & fm)
{
m_animScaleFactor = 0.0;
@@ -73,7 +94,7 @@ void BookmarkCategory::ReplaceBookmark(size_t index, BookmarkData const & bm)
}
BookmarkCategory::BookmarkCategory(const string & name, Framework & framework)
- : base_t(graphics::bookmarkDepth, framework)
+ : base_t(0.0/*graphics::bookmarkDepth*/, framework)
, m_name(name)
, m_blockAnimation(false)
{
@@ -166,14 +187,14 @@ size_t BookmarkCategory::FindBookmark(Bookmark const * bookmark) const
namespace
{
-string const kPlacemark = "Placemark";
-string const kStyle = "Style";
-string const kDocument = "Document";
-string const kStyleMap = "StyleMap";
-string const kStyleUrl = "styleUrl";
-string const kPair = "Pair";
+ string const kPlacemark = "Placemark";
+ string const kStyle = "Style";
+ string const kDocument = "Document";
+ string const kStyleMap = "StyleMap";
+ string const kStyleUrl = "styleUrl";
+ string const kPair = "Pair";
-graphics::Color const kDefaultTrackColor = graphics::Color::fromARGB(0xFF33CCFF);
+ dp::Color const kDefaultTrackColor = dp::Extract(0xFF33CCFF);
string PointToString(m2::PointD const & org)
{
@@ -210,12 +231,12 @@ graphics::Color const kDefaultTrackColor = graphics::Color::fromARGB(0xFF33CCFF)
vector<string> m_tags;
GeometryType m_geometryType;
m2::PolylineD m_points;
- graphics::Color m_trackColor;
+ dp::Color m_trackColor;
string m_styleId;
string m_mapStyleId;
string m_styleUrlKey;
- map<string, graphics::Color> m_styleUrl2Color;
+ map<string, dp::Color> m_styleUrl2Color;
map<string, string> m_mapStyle2Style;
string m_name;
@@ -322,10 +343,10 @@ graphics::Color const kDefaultTrackColor = graphics::Color::fromARGB(0xFF33CCFF)
string fromHex = FromHex(value);
ASSERT(fromHex.size() == 4, ("Invalid color passed"));
// Color positions in HEX – aabbggrr
- m_trackColor = graphics::Color(fromHex[3], fromHex[2], fromHex[1], fromHex[0]);
+ m_trackColor = dp::Color(fromHex[3], fromHex[2], fromHex[1], fromHex[0]);
}
- bool GetColorForStyle(string const & styleUrl, graphics::Color & color)
+ bool GetColorForStyle(string const & styleUrl, dp::Color & color)
{
if (styleUrl.empty())
return false;
@@ -751,12 +772,12 @@ void BookmarkCategory::SaveToKML(ostream & s)
s << "</name>\n";
s << "<Style><LineStyle>";
- graphics::Color const & col = track->GetMainColor();
+ dp::Color const & col = track->GetMainColor();
s << "<color>"
- << NumToHex(col.a)
- << NumToHex(col.b)
- << NumToHex(col.g)
- << NumToHex(col.r);
+ << NumToHex(col.GetAlfa())
+ << NumToHex(col.GetBlue())
+ << NumToHex(col.GetGreen())
+ << NumToHex(col.GetRed());
s << "</color>\n";
s << "<width>"
diff --git a/map/bookmark.hpp b/map/bookmark.hpp
index e5e08afb21..fab0f6e4a9 100644
--- a/map/bookmark.hpp
+++ b/map/bookmark.hpp
@@ -110,6 +110,9 @@ public:
unique_ptr<UserMarkCopy> Copy() const override;
+ //virtual graphics::DisplayList * GetDisplayList(UserMarkDLCache * cache) const;
+ virtual double GetAnimScaleFactor() const;
+ virtual m2::PointD const & GetPixelOffset() const;
shared_ptr<anim::Task> CreateAnimTask(Framework & fm);
// StyledPoint overrides:
diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp
index 398198564f..d86f9091dd 100644
--- a/map/bookmark_manager.cpp
+++ b/map/bookmark_manager.cpp
@@ -19,19 +19,18 @@
#include "std/target_os.hpp"
#include "std/vector.hpp"
-
BookmarkManager::BookmarkManager(Framework & f)
: m_framework(f)
- , m_bmScreen(0)
, m_lastScale(1.0)
, m_cache(NULL)
, m_selection(f)
, m_routeRenderer(new rg::RouteRenderer())
{
m_userMarkLayers.reserve(3);
- m_userMarkLayers.push_back(new SearchUserMarkContainer(graphics::activePinDepth, m_framework));
- m_userMarkLayers.push_back(new ApiUserMarkContainer(graphics::activePinDepth, m_framework));
- m_userMarkLayers.push_back(new DebugUserMarkContainer(graphics::debugDepth, m_framework));
+ ///@TODO UVR
+ m_userMarkLayers.push_back(new SearchUserMarkContainer(0.0/*graphics::activePinDepth*/, m_framework));
+ m_userMarkLayers.push_back(new ApiUserMarkContainer(0.0/*graphics::activePinDepth*/, m_framework));
+ //m_userMarkLayers.push_back(new DebugUserMarkContainer(graphics::debugDepth, m_framework));
UserMarkContainer::InitStaticMarks(FindUserMarksContainer(UserMarkContainer::SEARCH_MARK));
}
@@ -137,29 +136,30 @@ void BookmarkManager::PrepareToShutdown()
void BookmarkManager::DrawCategory(BookmarkCategory const * cat, PaintOverlayEvent const & e) const
{
-#ifndef USE_DRAPE
- /// TODO cutomize draw in UserMarkContainer for user Draw method
- ASSERT(cat, ());
- if (!cat->IsVisible())
- return;
-
- Navigator const & navigator = m_framework.GetNavigator();
- ScreenBase const & screen = navigator.Screen();
+///@TODO UVR
+//#ifndef USE_DRAPE
+// /// TODO cutomize draw in UserMarkContainer for user Draw method
+// ASSERT(cat, ());
+// if (!cat->IsVisible())
+// return;
+// Navigator const & navigator = m_framework.GetNavigator();
+// ScreenBase const & screen = navigator.Screen();
- graphics::Screen * pScreen = GPUDrawer::GetScreen(e.GetDrawer());
+// Drawer * pDrawer = e.GetDrawer();
+// graphics::Screen * pScreen = pDrawer->screen();
- LazyMatrixCalc matrix(screen, m_lastScale);
+// LazyMatrixCalc matrix(screen, m_lastScale);
- // Draw tracks.
- for (size_t i = 0; i < cat->GetTracksCount(); ++i)
- {
- Track const * track = cat->GetTrack(i);
- if (track->HasDisplayLists())
- track->Draw(pScreen, matrix.GetFinalG2P());
- }
+// // Draw tracks.
+// for (size_t i = 0; i < cat->GetTracksCount(); ++i)
+// {
+// Track const * track = cat->GetTrack(i);
+// if (track->HasDisplayList())
+// track->Draw(pScreen, matrix.GetFinalG2P());
+// }
- cat->Draw(e, m_cache);
-#endif // USE_DRAPE
+// cat->Draw(e, m_cache);
+//#endif // USE_DRAPE
}
void BookmarkManager::ClearItems()
@@ -262,62 +262,60 @@ size_t BookmarkManager::CreateBmCategory(string const & name)
void BookmarkManager::DrawItems(Drawer * drawer) const
{
-#ifndef USE_DRAPE
- ASSERT(m_cache != NULL, ());
- ASSERT(m_framework.GetLocationState(), ());
-
- ScreenBase const & screen = m_framework.GetNavigator().Screen();
- m2::RectD const limitRect = screen.ClipRect();
-
- LazyMatrixCalc matrix(screen, m_lastScale);
-
- double const drawScale = m_framework.GetDrawScale();
- double const visualScale = m_framework.GetVisualScale();
- location::RouteMatchingInfo const & matchingInfo = m_framework.GetLocationState()->GetRouteMatchingInfo();
-
- auto trackUpdateFn = [&](Track const * track)
- {
- ASSERT(track, ());
- if (limitRect.IsIntersect(track->GetLimitRect()))
- track->CreateDisplayList(m_bmScreen, matrix.GetScaleG2P(), matrix.IsScaleChanged(), drawScale, visualScale, matchingInfo);
- else
- track->CleanUp();
- };
-
- auto dlUpdateFn = [&trackUpdateFn] (BookmarkCategory const * cat)
- {
- bool const isVisible = cat->IsVisible();
- for (size_t j = 0; j < cat->GetTracksCount(); ++j)
- {
- Track const * track = cat->GetTrack(j);
- ASSERT(track, ());
- if (isVisible)
- trackUpdateFn(track);
- else
- track->CleanUp();
- }
- };
+ //@TODO UVR
+ //ASSERT(m_cache != NULL, ());
+ //ASSERT(m_framework.GetLocationState(), ());
+
+ //ScreenBase const & screen = m_framework.GetNavigator().Screen();
+ //m2::RectD const limitRect = screen.ClipRect();
+
+ //LazyMatrixCalc matrix(screen, m_lastScale);
+
+ //double const drawScale = m_framework.GetDrawScale();
+ //double const visualScale = m_framework.GetVisualScale();
+ //location::RouteMatchingInfo const & matchingInfo = m_framework.GetLocationState()->GetRouteMatchingInfo();
+
+ //auto trackUpdateFn = [&](Track const * track)
+ //{
+ // ASSERT(track, ());
+ // if (limitRect.IsIntersect(track->GetLimitRect()))
+ // track->CreateDisplayList(m_bmScreen, matrix.GetScaleG2P(), matrix.IsScaleChanged(), drawScale, visualScale, matchingInfo);
+ // else
+ // track->CleanUp();
+ //};
+
+ //auto dlUpdateFn = [&trackUpdateFn] (BookmarkCategory const * cat)
+ //{
+ // bool const isVisible = cat->IsVisible();
+ // for (size_t j = 0; j < cat->GetTracksCount(); ++j)
+ // {
+ // Track const * track = cat->GetTrack(j);
+ // ASSERT(track, ());
+ // if (isVisible)
+ // trackUpdateFn(track);
+ // else
+ // track->CleanUp();
+ // }
+ //};
// Update track's display lists.
- for (size_t i = 0; i < m_categories.size(); ++i)
- {
- BookmarkCategory const * cat = m_categories[i];
- ASSERT(cat, ());
- dlUpdateFn(cat);
- }
-
- graphics::Screen * pScreen = GPUDrawer::GetScreen(drawer);
- pScreen->beginFrame();
-
- PaintOverlayEvent event(drawer, screen);
- for (auto const & layer : m_userMarkLayers)
- layer->Draw(event, m_cache);
- for (auto const & category : m_categories)
- DrawCategory(category, event);
- m_routeRenderer->Render(pScreen, screen);
- m_selection.Draw(event, m_cache);
-
- pScreen->endFrame();
+ //for (size_t i = 0; i < m_categories.size(); ++i)
+ //{
+ // BookmarkCategory const * cat = m_categories[i];
+ // ASSERT(cat, ());
+ // dlUpdateFn(cat);
+ //}
+
+ //graphics::Screen * pScreen = GPUDrawer::GetScreen(drawer);
+ //pScreen->beginFrame();
+
+ //PaintOverlayEvent event(drawer, screen);
+ //for_each(m_userMarkLayers.begin(), m_userMarkLayers.end(), bind(&UserMarkContainer::Draw, _1, event, m_cache));
+ //for_each(m_categories.begin(), m_categories.end(), bind(&BookmarkManager::DrawCategory, this, _1, event));
+ //m_routeRenderer->Render(pScreen, screen);
+ //m_selection.Draw(event, m_cache);
+
+ //pScreen->endFrame();
#endif // USE_DRAPE
}
@@ -444,30 +442,33 @@ UserMarkContainer::Controller & BookmarkManager::UserMarksGetController(UserMark
return FindUserMarksContainer(type)->GetController();
}
-void BookmarkManager::SetScreen(graphics::Screen * screen)
-{
- ResetScreen();
- m_bmScreen = screen;
- m_cache = new UserMarkDLCache(m_bmScreen);
-}
+///@TODO UVR
+//void BookmarkManager::SetScreen(graphics::Screen * screen)
+//{
+// ResetScreen();
+// m_bmScreen = screen;
+// m_cache = new UserMarkDLCache(m_bmScreen);
+//}
void BookmarkManager::ResetScreen()
{
- delete m_cache;
- m_cache = NULL;
+ ///@TODO UVR
+ //delete m_cache;
+ //m_cache = NULL;
- auto dlDeleteFn = [] (BookmarkCategory const * cat)
- {
- for (size_t j = 0; j < cat->GetTracksCount(); ++j)
- cat->GetTrack(j)->CleanUp();
- };
+ //auto dlDeleteFn = [] (BookmarkCategory const * cat)
+ //{
+ // for (size_t j = 0; j < cat->GetTracksCount(); ++j)
+ // cat->GetTrack(j)->CleanUp();
+ //};
- if (m_bmScreen)
- {
+ //if (m_bmScreen)
+ //{
// Delete display lists for all tracks
- for_each(m_categories.begin(), m_categories.end(), dlDeleteFn);
- m_bmScreen = 0;
- }
+ // for_each(m_categories.begin(), m_categories.end(), dlDeleteFn);
+ // m_routeRenderer->Clear();
+ // m_bmScreen = 0;
+ //}
}
void BookmarkManager::SetRouteTrack(m2::PolylineD const & routePolyline, vector<double> const & turns,
diff --git a/map/bookmark_manager.hpp b/map/bookmark_manager.hpp
index 58fe372815..9e4ceebe76 100644
--- a/map/bookmark_manager.hpp
+++ b/map/bookmark_manager.hpp
@@ -10,8 +10,6 @@
class Framework;
class PaintEvent;
-namespace graphics { class Screen; }
-namespace rg { class RouteRenderer; }
class BookmarkManager : private noncopyable
{
@@ -23,7 +21,6 @@ class BookmarkManager : private noncopyable
vector<UserMarkContainer * > m_userMarkLayers;
- graphics::Screen * m_bmScreen;
mutable double m_lastScale;
typedef vector<BookmarkCategory *>::iterator CategoryIter;
@@ -85,7 +82,8 @@ public:
void UserMarksClear(UserMarkContainer::Type type, size_t skipCount = 0);
UserMarkContainer::Controller & UserMarksGetController(UserMarkContainer::Type type);
- void SetScreen(graphics::Screen * screen);
+ ///@TODO UVR
+ //void SetScreen(graphics::Screen * screen);
void ResetScreen();
void SetRouteTrack(m2::PolylineD const & routePolyline, vector<double> const & turns,
diff --git a/map/compass_arrow.cpp b/map/compass_arrow.cpp
index d0beff1250..7f1ca34338 100644
--- a/map/compass_arrow.cpp
+++ b/map/compass_arrow.cpp
@@ -19,27 +19,27 @@ CompassArrow::Params::Params()
{}
CompassArrow::CompassArrow(Params const & p)
- : BaseT(p),
- m_pixelSize(-1, -1),
- m_angle(0),
+ : m_angle(0),
m_framework(p.m_framework)
{
}
void CompassArrow::AnimateShow()
{
- if (!isVisible())
- {
- setIsVisible(true);
- double startValue = m_animTask == nullptr ? 0.1 : GetCurrentAlfa();
- CreateAnim(startValue, 1.0, 0.2, 0.0, true);
- }
+ ///@TODO UVR
+// if (!isVisible())
+// {
+// setIsVisible(true);
+// double startValue = m_animTask == nullptr ? 0.1 : GetCurrentAlfa();
+// CreateAnim(startValue, 1.0, 0.2, 0.0, true);
+// }
}
void CompassArrow::AnimateHide()
{
- if (isBaseVisible() && (m_animTask == NULL || !IsHidingAnim()))
- CreateAnim(1.0, 0.0, 0.3, 0.0, false);
+ ///@TODO UVR
+// if (isBaseVisible() && (m_animTask == NULL || !IsHidingAnim()))
+// CreateAnim(1.0, 0.0, 0.3, 0.0, false);
}
void CompassArrow::SetAngle(double angle)
@@ -47,44 +47,26 @@ void CompassArrow::SetAngle(double angle)
m_angle = angle;
}
-m2::PointI CompassArrow::GetPixelSize() const
-{
- if (m_pixelSize == m2::PointI(-1, -1))
- {
- Resource const * res = GetCompassResource();
- m_pixelSize = m2::PointI(res->m_texRect.SizeX(), res->m_texRect.SizeY());
- }
- return m_pixelSize;
-}
+///@TODO UVR
+//void CompassArrow::draw(OverlayRenderer * r,
+// math::Matrix<double, 3, 3> const & m) const
+//{
+// if (isBaseVisible())
+// {
+// checkDirtyLayout();
-void CompassArrow::GetMiniBoundRects(RectsT & rects) const
-{
- double const halfW = m_pixelSize.x / 2.0;
- double const halfH = m_pixelSize.y / 2.0;
+// UniformsHolder holder;
+// holder.insertValue(ETransparency, GetCurrentAlfa());
- rects.push_back(m2::AnyRectD(pivot(), -math::pi / 2 + m_angle,
- m2::RectD(-halfW, -halfH, halfW, halfH)));
-}
+// math::Matrix<double, 3, 3> drawM = math::Shift(
+// math::Rotate(
+// math::Identity<double, 3>(),
+// m_angle),
+// pivot());
-void CompassArrow::draw(OverlayRenderer * r,
- math::Matrix<double, 3, 3> const & m) const
-{
- if (isBaseVisible())
- {
- checkDirtyLayout();
-
- UniformsHolder holder;
- holder.insertValue(ETransparency, GetCurrentAlfa());
-
- math::Matrix<double, 3, 3> drawM = math::Shift(
- math::Rotate(
- math::Identity<double, 3>(),
- m_angle),
- pivot());
-
- r->drawDisplayList(m_dl.get(), drawM * m, &holder);
- }
-}
+// r->drawDisplayList(m_dl.get(), drawM * m, &holder);
+// }
+//}
bool CompassArrow::isVisible() const
{
@@ -96,7 +78,8 @@ bool CompassArrow::isVisible() const
void CompassArrow::AlfaAnimEnded(bool isVisible)
{
- setIsVisible(isVisible);
+ ///@TODO UVR
+ //setIsVisible(isVisible);
m_animTask.reset();
}
@@ -131,84 +114,57 @@ void CompassArrow::CreateAnim(double startAlfa, double endAlfa, double timeInter
m_framework->GetAnimController()->AddTask(m_animTask);
}
-const Resource * CompassArrow::GetCompassResource() const
-{
- Screen * cacheScreen = m_controller->GetCacheScreen();
- Icon::Info icon("compass-image");
- Resource const * res = m_controller->GetCacheScreen()->fromID(cacheScreen->findInfo(icon));
- ASSERT(res, ("Commpass-image not founded"));
- return res;
-}
-
void CompassArrow::cache()
{
- Screen * cacheScreen = m_controller->GetCacheScreen();
+ ///@TODO UVR
+// Screen * cacheScreen = m_controller->GetCacheScreen();
- m_dl.reset();
- m_dl.reset(cacheScreen->createDisplayList());
+// m_dl.reset();
+// m_dl.reset(cacheScreen->createDisplayList());
- cacheScreen->beginFrame();
- cacheScreen->setDisplayList(m_dl.get());
- cacheScreen->applyVarAlfaStates();
+// cacheScreen->beginFrame();
+// cacheScreen->setDisplayList(m_dl.get());
+// cacheScreen->applyVarAlfaStates();
- Resource const * res = GetCompassResource();
- shared_ptr<gl::BaseTexture> texture = cacheScreen->pipeline(res->m_pipelineID).texture();
- m2::RectU rect = res->m_texRect;
- double halfW = rect.SizeX() / 2.0;
- double halfH = rect.SizeY() / 2.0;
+// Resource const * res = GetCompassResource();
+// shared_ptr<gl::BaseTexture> texture = cacheScreen->pipeline(res->m_pipelineID).texture();
+// m2::RectU rect = res->m_texRect;
+// double halfW = rect.SizeX() / 2.0;
+// double halfH = rect.SizeY() / 2.0;
- m2::PointD coords[] =
- {
- m2::PointD(-halfW, -halfH),
- m2::PointD(-halfW, halfH),
- m2::PointD(halfW, -halfH),
- m2::PointD(halfW, halfH),
- };
-
- m2::PointF normal(0.0, 0.0);
- m2::PointF texCoords[] =
- {
- texture->mapPixel(m2::PointF(rect.minX(), rect.minY())),
- texture->mapPixel(m2::PointF(rect.minX(), rect.maxY())),
- texture->mapPixel(m2::PointF(rect.maxX(), rect.minY())),
- texture->mapPixel(m2::PointF(rect.maxX(), rect.maxY())),
- };
+// m2::PointD coords[] =
+// {
+// m2::PointD(-halfW, -halfH),
+// m2::PointD(-halfW, halfH),
+// m2::PointD(halfW, -halfH),
+// m2::PointD(halfW, halfH),
+// };
+
+// m2::PointF normal(0.0, 0.0);
+// m2::PointF texCoords[] =
+// {
+// texture->mapPixel(m2::PointF(rect.minX(), rect.minY())),
+// texture->mapPixel(m2::PointF(rect.minX(), rect.maxY())),
+// texture->mapPixel(m2::PointF(rect.maxX(), rect.minY())),
+// texture->mapPixel(m2::PointF(rect.maxX(), rect.maxY())),
+// };
- cacheScreen->addTexturedStripStrided(coords, sizeof(m2::PointD),
- &normal, 0,
- texCoords, sizeof(m2::PointF),
- 4, depth(), res->m_pipelineID);
+// cacheScreen->addTexturedStripStrided(coords, sizeof(m2::PointD),
+// &normal, 0,
+// texCoords, sizeof(m2::PointF),
+// 4, depth(), res->m_pipelineID);
- cacheScreen->setDisplayList(0);
- cacheScreen->endFrame();
+// cacheScreen->setDisplayList(0);
+// cacheScreen->endFrame();
}
void CompassArrow::purge()
{
- m_dl.reset();
}
bool CompassArrow::isBaseVisible() const
{
- return BaseT::isVisible();
-}
-
-bool CompassArrow::onTapEnded(m2::PointD const & pt)
-{
- anim::Controller * animController = m_framework->GetAnimController();
- anim::Controller::Guard guard(animController);
-
- // switching off compass follow mode
- m_framework->GetLocationState()->OnCompassTaped();
- m_framework->Invalidate();
-
- return true;
-}
-
-bool CompassArrow::hitTest(m2::PointD const & pt) const
-{
- Resource const * res = GetCompassResource();
- double rad = 1.5 * max(res->m_texRect.SizeX() / 2.0, res->m_texRect.SizeY() / 2.0);
- return pt.Length(pivot()) < rad * visualScale();
+ ///@TODO UVR
+ return false;
}
diff --git a/map/compass_arrow.hpp b/map/compass_arrow.hpp
index fa9dd13adb..30bb787bbb 100644
--- a/map/compass_arrow.hpp
+++ b/map/compass_arrow.hpp
@@ -1,7 +1,5 @@
#pragma once
-#include "gui/element.hpp"
-
#include "std/shared_ptr.hpp"
#include "std/unique_ptr.hpp"
@@ -11,25 +9,13 @@ namespace anim
class Task;
}
-namespace graphics
-{
- class DisplayList;
- struct Resource;
-}
-
class Framework;
/// Compass Arrow, which shows up when the screen is rotated,
/// and rotates screen back to straight orientation when beeing pressed
-class CompassArrow : public gui::Element
+class CompassArrow
{
- typedef gui::Element BaseT;
-
- mutable m2::PointI m_pixelSize;
double m_angle;
-
- unique_ptr<graphics::DisplayList> m_dl;
-
shared_ptr<anim::Task> m_animTask;
void AlfaAnimEnded(bool isVisible);
@@ -38,12 +24,10 @@ class CompassArrow : public gui::Element
void CreateAnim(double startAlfa, double endAlfa, double timeInterval, double timeOffset, bool isVisibleAtEnd);
Framework * m_framework;
- graphics::Resource const * GetCompassResource() const;
-
bool isBaseVisible() const;
public:
- struct Params : public BaseT::Params
+ struct Params
{
Framework * m_framework;
Params();
@@ -55,19 +39,16 @@ public:
void AnimateHide();
void SetAngle(double angle);
- m2::PointI GetPixelSize() const;
/// @name Override from graphics::Overlayelement and gui::Element.
//@{
- virtual void GetMiniBoundRects(RectsT & rects) const;
- void draw(graphics::OverlayRenderer * r, math::Matrix<double, 3, 3> const & m) const;
bool isVisible() const;
- bool hitTest(m2::PointD const & pt) const;
+ //bool hitTest(m2::PointD const & pt) const;
void cache();
void purge();
- bool onTapEnded(m2::PointD const & pt);
+ //bool onTapEnded(m2::PointD const & pt);
//@}
};
diff --git a/map/country_status_display.hpp b/map/country_status_display.hpp
index 4047e9cc89..cfe993325e 100644
--- a/map/country_status_display.hpp
+++ b/map/country_status_display.hpp
@@ -2,34 +2,21 @@
#include "map/active_maps_layout.hpp"
-#include "gui/element.hpp"
-#include "platform/country_defines.hpp"
-
-#ifdef OMIM_OS_ANDROID
- #include "../base/mutex.hpp"
-#endif
+#include "storage/storage_defines.hpp"
#include "std/unique_ptr.hpp"
#include "std/target_os.hpp"
-namespace gui
-{
- class Button;
- class TextView;
-}
-
class Framework;
namespace storage { struct TIndex; }
/// This class is a composite GUI element to display
/// an on-screen GUI for the country, which is not downloaded yet.
-class CountryStatusDisplay : public gui::Element,
- public storage::ActiveMapsLayout::ActiveMapsListener
+class CountryStatusDisplay : public storage::ActiveMapsLayout::ActiveMapsListener
{
- typedef gui::Element TBase;
public:
- struct Params : public gui::Element::Params
+ struct Params
{
Params(storage::ActiveMapsLayout & activeMaps) : m_activeMaps(activeMaps) {}
@@ -48,20 +35,10 @@ public:
//@{
virtual void setIsVisible(bool isVisible) const;
virtual void setIsDirtyLayout(bool isDirty) const;
- virtual m2::RectD GetBoundRect() const;
-
- void draw(graphics::OverlayRenderer * r, math::Matrix<double, 3, 3> const & m) const;
void cache();
void purge();
void layout();
-
- void setController(gui::Controller * controller);
-
- bool onTapStarted(m2::PointD const & pt);
- bool onTapMoved(m2::PointD const & pt);
- bool onTapEnded(m2::PointD const & pt);
- bool onTapCancelled(m2::PointD const & pt);
//@}
private:
@@ -90,11 +67,10 @@ private:
void ComposeElementsForState();
- typedef function<bool (unique_ptr<gui::Button> const &, m2::PointD const &)> TTapActionFn;
- bool OnTapAction(TTapActionFn const & action, m2::PointD const & pt);
- void OnButtonClicked(Element const * button);
-
- void Repaint() const;
+ ///@TODO UVR
+ //typedef function<bool (unique_ptr<gui::Button> const &, m2::PointD const &)> TTapActionFn;
+ //bool OnTapAction(TTapActionFn const & action, m2::PointD const & pt);
+ //void OnButtonClicked(Element const * button);
bool IsStatusFailed() const;
@@ -102,20 +78,10 @@ private:
storage::ActiveMapsLayout & m_activeMaps;
int m_activeMapsSlotID = 0;
- unique_ptr<gui::TextView> m_label;
- unique_ptr<gui::Button> m_primaryButton;
- unique_ptr<gui::Button> m_secondaryButton;
-
string m_displayMapName;
mutable storage::TStatus m_countryStatus = storage::TStatus::EUnknown;
storage::TIndex m_countryIdx;
storage::LocalAndRemoteSizeT m_progressSize;
TDownloadCountryFn m_downloadCallback;
-
- void Lock() const;
- void Unlock() const;
-#ifdef OMIM_OS_ANDROID
- mutable threads::Mutex m_mutex;
-#endif
};
diff --git a/map/framework.cpp b/map/framework.cpp
index 9582660e09..f0a17707e9 100644
--- a/map/framework.cpp
+++ b/map/framework.cpp
@@ -1,20 +1,7 @@
-#include "framework.hpp"
-#include "benchmark_provider.hpp"
-#include "benchmark_engine.hpp"
-#include "geourl_process.hpp"
-#include "navigator_utils.hpp"
-#include "ge0_parser.hpp"
-
-#include "render/cpu_drawer.hpp"
-#include "render/gpu_drawer.hpp"
-
-#ifndef USE_DRAPE
- #include "render/feature_processor.hpp"
- #include "render/drawer.hpp"
- #include "render/proto_to_styles.hpp"
-#else
- #include "../drape_frontend/visual_params.hpp"
-#endif // USE_DRAPE
+#include "map/framework.hpp"
+
+#include "map/geourl_process.hpp"
+#include "map/ge0_parser.hpp"
#include "defines.hpp"
@@ -29,6 +16,8 @@
#include "search/search_engine.hpp"
#include "search/search_query_factory.hpp"
+#include "drape_frontend/visual_params.hpp"
+
#include "indexer/categories_holder.hpp"
#include "indexer/classificator_loader.hpp"
#include "indexer/feature.hpp"
@@ -45,8 +34,6 @@
#include "anim/controller.hpp"
-#include "gui/controller.hpp"
-
#include "platform/local_country_file_utils.hpp"
#include "platform/measurement_utils.hpp"
#include "platform/mwm_version.hpp"
@@ -63,8 +50,6 @@
#include "geometry/angles.hpp"
#include "geometry/distance_on_sphere.hpp"
-#include "graphics/depth_constants.hpp"
-
#include "base/math.hpp"
#include "base/timer.hpp"
#include "base/scope_guard.hpp"
@@ -143,13 +128,12 @@ void Framework::OnLocationUpdate(GpsInfo const & info)
double distanceFromBegin = 0.0;
MatchLocationToRoute(rInfo, routeMatchingInfo, hasDistanceFromBegin, distanceFromBegin);
- shared_ptr<State> const & state = GetLocationState();
- state->OnLocationUpdate(rInfo, m_routingSession.IsNavigable(), routeMatchingInfo);
-
- if (state->IsModeChangeViewport())
- UpdateUserViewportChanged();
+ ///@TODO UVR
+ //shared_ptr<State> const & state = GetLocationState();
+ //state->OnLocationUpdate(rInfo, m_routingSession.IsNavigable());
- m_bmManager.UpdateRouteDistanceFromBegin(hasDistanceFromBegin ? distanceFromBegin : 0.0);
+ //if (state->IsModeChangeViewport())
+ // UpdateUserViewportChanged();
}
void Framework::OnCompassUpdate(CompassInfo const & info)
@@ -161,12 +145,14 @@ void Framework::OnCompassUpdate(CompassInfo const & info)
CompassInfo const & rInfo = info;
#endif
- GetLocationState()->OnCompassUpdate(rInfo);
+ ///@TODO UVR
+ //GetLocationState()->OnCompassUpdate(rInfo);
}
void Framework::StopLocationFollow()
{
- GetLocationState()->StopLocationFollow();
+ ///@TODO UVR
+ //GetLocationState()->StopLocationFollow();
}
InformationDisplay & Framework::GetInformationDisplay()
@@ -190,16 +176,13 @@ m2::PointD Framework::GetWidgetSize(InformationDisplay::WidgetType widget) const
}
Framework::Framework()
- : m_navigator(m_scales),
- m_animator(this),
+ : m_animator(this),
m_queryMaxScaleMode(false),
m_width(0),
m_height(0),
m_countryTree(*this),
- m_guiController(new gui::Controller),
m_animController(new anim::Controller),
m_informationDisplay(this),
- m_benchmarkEngine(0),
m_bmManager(*this),
m_balloonManager(*this),
m_fixedSearchResults(0),
@@ -243,10 +226,9 @@ Framework::Framework()
m_stringsBundle.SetDefaultString("routing_failed_route_not_found", "There is no route found between the selected origin and destination.Please select a different start or end point.");
m_stringsBundle.SetDefaultString("routing_failed_internal_error", "Internal error occurred. Please try to delete and download the map again. If problem persist please contact us at support@maps.me.");
- m_guiController->SetStringsBundle(&m_stringsBundle);
-
// Init information display.
- m_informationDisplay.setController(m_guiController.get());
+ ///@TODO UVR
+ //m_informationDisplay.setController(m_guiController.get());
#ifdef DRAW_TOUCH_POINTS
m_informationDisplay.enableDebugPoints(true);
@@ -299,7 +281,6 @@ Framework::Framework()
Framework::~Framework()
{
- delete m_benchmarkEngine;
m_model.SetOnMapDeregisteredCallback(nullptr);
}
@@ -382,11 +363,6 @@ bool Framework::IsSingleFrameRendererInited() const
return m_cpuDrawer != nullptr;
}
-double Framework::GetVisualScale() const
-{
- return m_scales.GetVisualScale();
-}
-
void Framework::DeleteCountry(storage::TIndex const & index, MapOptions opt)
{
switch (opt)
@@ -401,7 +377,8 @@ void Framework::DeleteCountry(storage::TIndex const & index, MapOptions opt)
// OnMapDeregistered call.
if (m_model.DeregisterMap(countryFile))
{
- InvalidateRect(GetCountryBounds(countryFile.GetNameWithoutExt()), true /* doForceUpdate */);
+ ///@TODO UVR
+ //InvalidateRect(GetCountryBounds(countryFile.GetNameWithoutExt()), true /* doForceUpdate */);
}
return;
}
@@ -461,7 +438,7 @@ void Framework::UpdateLatestCountryFile(LocalCountryFile const & localFile)
auto p = m_model.RegisterMap(localFile);
MwmSet::MwmId const & id = p.first;
if (id.IsAlive())
- InvalidateRect(id.GetInfo()->m_limitRect, true /* doForceUpdate */);
+ //InvalidateRect(handle.GetInfo()->m_limitRect, true /* doForceUpdate */);
m_searchEngine->ClearViewportsCache();
}
@@ -566,7 +543,7 @@ void Framework::ShowBookmark(BookmarkAndCategory const & bnc)
if (scale == -1.0)
scale = scales::GetUpperComfortScale();
- ShowRectExVisibleScale(m_scales.GetRectForDrawScale(scale, bmk->GetOrg()));
+ ShowRectExVisibleScale(df::GetRectForDrawScale(scale, bmk->GetOrg()));
Bookmark * mark = GetBmCategory(bnc.first)->GetBookmark(bnc.second);
ActivateUserMark(mark);
m_balloonManager.OnShowMark(mark);
@@ -656,11 +633,7 @@ bool Framework::AddBookmarksFile(string const & filePath)
void Framework::PrepareToShutdown()
{
-#ifndef USE_DRAPE
- SetRenderPolicy(0);
-#else
- m_drapeEngine.Destroy();
-#endif // USE_DRAPE
+ DestroyDrapeEngine();
}
void Framework::SetMaxWorldRect()
@@ -668,46 +641,6 @@ void Framework::SetMaxWorldRect()
m_navigator.SetFromRect(m2::AnyRectD(m_model.GetWorldRect()));
}
-bool Framework::NeedRedraw() const
-{
- // Checking this here allows to avoid many dummy "IsInitialized" flags in client code.
-#ifndef USE_DRAPE
- return (m_renderPolicy && m_renderPolicy->NeedRedraw());
-#else
- return false;
-#endif // USE_DRAPE
-}
-
-void Framework::SetNeedRedraw(bool flag)
-{
-#ifndef USE_DRAPE
- m_renderPolicy->GetWindowHandle()->setNeedRedraw(flag);
- //if (!flag)
- // m_doForceUpdate = false;
-#endif // USE_DRAPE
-}
-
-void Framework::Invalidate(bool doForceUpdate)
-{
- InvalidateRect(MercatorBounds::FullRect(), doForceUpdate);
-}
-
-void Framework::InvalidateRect(m2::RectD const & rect, bool doForceUpdate)
-{
-#ifndef USE_DRAPE
- if (m_renderPolicy)
- {
- ASSERT ( rect.IsValid(), () );
- m_renderPolicy->SetForceUpdate(doForceUpdate);
- m_renderPolicy->SetInvalidRect(m2::AnyRectD(rect));
- m_renderPolicy->GetWindowHandle()->invalidate();
- }
-#else
- if (!m_drapeEngine.IsNull())
- m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif // USE_DRAPE
-}
-
void Framework::SaveState()
{
Settings::Set("ScreenClipRect", m_navigator.Screen().GlobalRect());
@@ -715,28 +648,11 @@ void Framework::SaveState()
bool Framework::LoadState()
{
- m2::AnyRectD rect;
- if (!Settings::Get("ScreenClipRect", rect))
- return false;
-
- // additional check for valid rect
- m2::RectD r = rect.GetGlobalRect();
- if (!m_scales.GetWorldRect().IsRectInside(r))
- return false;
-
- CheckMinMaxVisibleScale(r);
-
- double const dx = r.SizeX();
- double const dy = r.SizeY();
-
- m2::AnyRectD safeRect(r.Center(), rect.Angle(), m2::RectD(-dx/2, -dy/2, dx/2, dy/2));
- m_navigator.SetFromRect(safeRect);
-
-#ifdef USE_DRAPE
+ bool r = m_navigator.LoadState();
+ LOG(LINFO, ("Navigator state loaded = ", r, " Rect = ", m_navigator.Screen().ClipRect()));
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif
- return true;
+ return r;
}
//@}
@@ -746,41 +662,22 @@ void Framework::OnSize(int w, int h)
if (w < 2) w = 2;
if (h < 2) h = 2;
- m2::RectD oldPixelRect = m_navigator.Screen().PixelRect();
-
-#ifndef USE_DRAPE
- m_navigator.OnSize(0, 0, w, h);
- if (m_renderPolicy)
- {
- // if gui controller not initialized, than we work in mode "Without gui"
- // and no need to set gui layout. We will not render it.
- if (m_guiController->GetCacheScreen())
- m_informationDisplay.SetWidgetPivotsByDefault(w, h);
- m_renderPolicy->OnSize(w, h);
- }
-#else
if (!m_drapeEngine.IsNull())
{
double vs = df::VisualParams::Instance().GetVisualScale();
m_navigator.OnSize(0, 0, vs * w, vs * h);
- //m_navigator.OnSize(0, 0, w, h);
m_drapeEngine->Resize(w, h);
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
}
-#endif // USE_DRAPE
m_width = w;
m_height = h;
- GetLocationState()->OnSize(oldPixelRect);
+ ///@TODO UVR
+ //GetLocationState()->OnSize();
}
bool Framework::SetUpdatesEnabled(bool doEnable)
{
-#ifndef USE_DRAPE
- if (m_renderPolicy)
- return m_renderPolicy->GetWindowHandle()->setUpdatesEnabled(doEnable);
- else
-#endif // USE_DRAPE
return false;
}
@@ -789,48 +686,6 @@ int Framework::GetDrawScale() const
return m_navigator.GetDrawScale();
}
-#ifndef USE_DRAPE
-RenderPolicy::TRenderFn Framework::DrawModelFn()
-{
- bool const isTiling = m_renderPolicy->IsTiling();
- return bind(&Framework::DrawModel, this, _1, _2, _3, _4, isTiling);
-}
-
-void Framework::DrawModel(shared_ptr<PaintEvent> const & e,
- ScreenBase const & screen,
- m2::RectD const & renderRect,
- int baseScale, bool isTilingQuery)
-{
- m2::RectD selectRect;
- m2::RectD clipRect;
-
- double const inflationSize = m_scales.GetClipRectInflation();
- screen.PtoG(m2::Inflate(m2::RectD(renderRect), inflationSize, inflationSize), clipRect);
- screen.PtoG(m2::RectD(renderRect), selectRect);
-
- int drawScale = m_scales.GetDrawTileScale(baseScale);
- fwork::FeatureProcessor doDraw(clipRect, screen, e, drawScale);
- if (m_queryMaxScaleMode)
- drawScale = scales::GetUpperScale();
-
- try
- {
- int const upperScale = scales::GetUpperScale();
- if (isTilingQuery && drawScale <= upperScale)
- m_model.ForEachFeature_TileDrawing(selectRect, doDraw, drawScale);
- else
- m_model.ForEachFeature(selectRect, doDraw, min(upperScale, drawScale));
- }
- catch (redraw_operation_cancelled const &)
- {}
-
- e->setIsEmptyDrawing(doDraw.IsEmptyDrawing());
-
- if (m_navigator.Update(ElapsedSeconds()))
- Invalidate();
-}
-#endif // USE_DRAPE
-
bool Framework::IsCountryLoaded(m2::PointD const & pt) const
{
// TODO (@gorshenin, @govako): the method's name is quite
@@ -844,64 +699,41 @@ bool Framework::IsCountryLoaded(m2::PointD const & pt) const
return m_model.IsLoaded(fName);
}
-#ifndef USE_DRAPE
-void Framework::BeginPaint(shared_ptr<PaintEvent> const & e)
-{
- if (m_renderPolicy)
- m_renderPolicy->BeginFrame(e, m_navigator.Screen());
-}
+///@TODO UVR
+//void Framework::DrawAdditionalInfo(shared_ptr<PaintEvent> const & e)
+//{
+// // m_informationDisplay is set and drawn after the m_renderPolicy
+// ASSERT ( m_renderPolicy, () );
-void Framework::EndPaint(shared_ptr<PaintEvent> const & e)
-{
- if (m_renderPolicy)
- m_renderPolicy->EndFrame(e, m_navigator.Screen());
-}
+// Drawer * pDrawer = e->drawer();
+// graphics::Screen * pScreen = pDrawer->screen();
-void Framework::DrawAdditionalInfo(shared_ptr<PaintEvent> const & e)
-{
- // m_informationDisplay is set and drawn after the m_renderPolicy
- ASSERT ( m_renderPolicy, () );
+// pScreen->beginFrame();
- graphics::Screen * pScreen = GPUDrawer::GetScreen(e->drawer());
+// bool const isEmptyModel = m_renderPolicy->IsEmptyModel();
- pScreen->beginFrame();
+// if (isEmptyModel)
+// m_informationDisplay.setEmptyCountryIndex(GetCountryIndex(GetViewportCenter()));
+// else
+// m_informationDisplay.setEmptyCountryIndex(storage::TIndex());
- int const drawScale = GetDrawScale();
- bool const isEmptyModel = m_renderPolicy->IsEmptyModel();
+// bool const isCompassEnabled = my::Abs(ang::GetShortestDistance(m_navigator.Screen().GetAngle(), 0.0)) > my::DegToRad(3.0);
+// bool const isCompasActionEnabled = m_informationDisplay.isCompassArrowEnabled() && m_navigator.InAction();
- if (isEmptyModel)
- m_informationDisplay.setEmptyCountryIndex(GetCountryIndex(GetViewportCenter()));
- else
- m_informationDisplay.setEmptyCountryIndex(storage::TIndex());
-
- bool const isCompassEnabled = my::Abs(ang::GetShortestDistance(m_navigator.Screen().GetAngle(), 0.0)) > my::DegToRad(3.0);
- bool const isCompasActionEnabled = m_informationDisplay.isCompassArrowEnabled() && m_navigator.InAction();
+// m_informationDisplay.enableCompassArrow(isCompassEnabled || isCompasActionEnabled);
+// m_informationDisplay.setCompassArrowAngle(m_navigator.Screen().GetAngle());
- m_informationDisplay.enableCompassArrow(isCompassEnabled || isCompasActionEnabled);
- m_informationDisplay.setCompassArrowAngle(m_navigator.Screen().GetAngle());
+// int const drawScale = GetDrawScale();
+// m_informationDisplay.setDebugInfo(0, drawScale);
- m_informationDisplay.enableRuler(!m_isFullScreenMode && (drawScale > 4 && !m_informationDisplay.isCopyrightActive()));
+// m_informationDisplay.enableRuler(drawScale > 4 && !m_informationDisplay.isCopyrightActive());
- m_informationDisplay.setDebugInfo(0, drawScale);
- pScreen->endFrame();
+// pScreen->endFrame();
- m_bmManager.DrawItems(e->drawer());
- m_guiController->UpdateElements();
- m_guiController->DrawFrame(pScreen);
-}
-
-void Framework::DoPaint(shared_ptr<PaintEvent> const & e)
-{
- if (m_renderPolicy)
- {
- m_renderPolicy->DrawFrame(e, m_navigator.Screen());
-
- // Don't render additional elements if guiController wasn't initialized.
- if (m_guiController->GetCacheScreen() != NULL)
- DrawAdditionalInfo(e);
- }
-}
-#endif // USE_DRAPE
+// m_bmManager.DrawItems(e);
+// m_guiController->UpdateElements();
+// m_guiController->DrawFrame(pScreen);
+//}
m2::PointD const & Framework::GetViewportCenter() const
{
@@ -911,7 +743,8 @@ m2::PointD const & Framework::GetViewportCenter() const
void Framework::SetViewportCenter(m2::PointD const & pt)
{
m_navigator.CenterViewport(pt);
- Invalidate();
+ if (!m_drapeEngine.IsNull())
+ m_drapeEngine->UpdateCoverage(m_navigator.Screen());
}
shared_ptr<MoveScreenTask> Framework::SetViewportCenterAnimated(m2::PointD const & endPt)
@@ -923,7 +756,7 @@ shared_ptr<MoveScreenTask> Framework::SetViewportCenterAnimated(m2::PointD const
void Framework::CheckMinGlobalRect(m2::RectD & rect) const
{
- m2::RectD const minRect = m_scales.GetRectForDrawScale(scales::GetUpperStyleScale(), rect.Center());
+ m2::RectD const minRect = df::GetRectForDrawScale(scales::GetUpperStyleScale(), rect.Center());
if (minRect.IsRectInside(rect))
rect = minRect;
}
@@ -935,30 +768,25 @@ void Framework::CheckMinMaxVisibleScale(m2::RectD & rect, int maxScale/* = -1*/)
m2::PointD const c = rect.Center();
int const worldS = scales::GetUpperWorldScale();
- int scale = m_scales.GetDrawTileScale(rect);
+ int scale = df::GetDrawTileScale(rect);
if (scale > worldS && !IsCountryLoaded(c))
{
// country is not loaded - limit on world scale
- rect = m_scales.GetRectForDrawScale(worldS, c);
+ rect = df::GetRectForDrawScale(worldS, c);
scale = worldS;
}
if (maxScale != -1 && scale > maxScale)
{
// limit on passed maximal scale
- rect = m_scales.GetRectForDrawScale(maxScale, c);
+ rect = df::GetRectForDrawScale(maxScale, c);
}
}
void Framework::ShowRect(double lat, double lon, double zoom)
{
m2::PointD center(MercatorBounds::FromLatLon(lat, lon));
- ShowRect(center, zoom);
-}
-
-void Framework::ShowRect(m2::PointD const & pt, double zoom)
-{
- ShowRectEx(m_scales.GetRectForDrawScale(zoom, pt));
+ ShowRectEx(df::GetRectForDrawScale(zoom, center));
}
void Framework::ShowRect(m2::RectD rect)
@@ -966,7 +794,8 @@ void Framework::ShowRect(m2::RectD rect)
CheckMinGlobalRect(rect);
m_navigator.SetFromRect(m2::AnyRectD(rect));
- Invalidate();
+ ///@TODO UVR
+ //Invalidate();
}
void Framework::ShowRectEx(m2::RectD rect)
@@ -990,8 +819,16 @@ void Framework::ShowRectFixed(m2::RectD const & rect)
void Framework::ShowRectFixedAR(m2::AnyRectD const & rect)
{
- navi::SetRectFixedAR(rect, m_scales, m_navigator);
- Invalidate();
+ double const halfSize = df::VisualParams::Instance().GetTileSize() / 2.0;
+ m2::RectD etalonRect(-halfSize, -halfSize, halfSize, halfSize);
+
+ m2::PointD const pxCenter = m_navigator.Screen().PixelRect().Center();
+ etalonRect.Offset(pxCenter);
+
+ m_navigator.SetFromRects(rect, etalonRect);
+
+ ///@TODO UVR
+ //Invalidate();
}
void Framework::StartInteractiveSearch(search::SearchParams const & params)
@@ -1027,6 +864,17 @@ void Framework::UpdateSearchResults(search::Results const & results)
Invalidate();
}
+void Framework::OnSearchResultsCallbackUI(search::Results const & results)
+{
+ if (IsISActive())
+ {
+ FillSearchResultsMarks(results);
+
+ ///@TODO UVR
+ //Invalidate();
+ }
+}
+
void Framework::ClearAllCaches()
{
m_model.ClearCaches();
@@ -1063,7 +911,8 @@ void Framework::EnterForeground()
void Framework::ShowAll()
{
SetMaxWorldRect();
- Invalidate();
+ ///@TODO UVR
+ //Invalidate();
}
/// @name Drag implementation.
@@ -1076,90 +925,65 @@ m2::PointD Framework::GetPixelCenter() const
void Framework::StartDrag(DragEvent const & e)
{
m_navigator.StartDrag(m_navigator.ShiftPoint(e.Pos()), ElapsedSeconds());
- m_informationDisplay.locationState()->DragStarted();
+ ///@TODO UVR
+ //m_informationDisplay.locationState()->DragStarted();
-#ifndef USE_DRAPE
- if (m_renderPolicy)
- m_renderPolicy->StartDrag();
-#else
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif // USE_DRAPE
}
void Framework::DoDrag(DragEvent const & e)
{
m_navigator.DoDrag(m_navigator.ShiftPoint(e.Pos()), ElapsedSeconds());
-#ifndef USE_DRAPE
- if (m_renderPolicy)
- m_renderPolicy->DoDrag();
-#else
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif // USE_DRAPE
}
void Framework::StopDrag(DragEvent const & e)
{
m_navigator.StopDrag(m_navigator.ShiftPoint(e.Pos()), ElapsedSeconds(), true);
- m_informationDisplay.locationState()->DragEnded();
+ ///@TODO UVR
+ //m_informationDisplay.locationState()->DragEnded();
-#ifndef USE_DRAPE
- if (m_renderPolicy)
- {
- m_renderPolicy->StopDrag();
- UpdateUserViewportChanged();
- }
-#else
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif // USE_DRAPE
}
void Framework::StartRotate(RotateEvent const & e)
{
m_navigator.StartRotate(e.Angle(), ElapsedSeconds());
-#ifndef USE_DRAPE
- m_renderPolicy->StartRotate(e.Angle(), ElapsedSeconds());
-#else
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif // USE_DRAPE
- GetLocationState()->ScaleStarted();
+
+ ///@TODO UVR
+ //GetLocationState()->ScaleStarted();
}
void Framework::DoRotate(RotateEvent const & e)
{
m_navigator.DoRotate(e.Angle(), ElapsedSeconds());
-#ifndef USE_DRAPE
- m_renderPolicy->DoRotate(e.Angle(), ElapsedSeconds());
-#else
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif
}
void Framework::StopRotate(RotateEvent const & e)
{
m_navigator.StopRotate(e.Angle(), ElapsedSeconds());
- shared_ptr<State> const & state = GetLocationState();
- state->Rotated();
- state->ScaleEnded();
-#ifndef USE_DRAPE
- m_renderPolicy->StopRotate(e.Angle(), ElapsedSeconds());
-#else
+ ///@TODO UVR
+ //GetLocationState()->Rotated();
+ //GetLocationState()->ScaleEnded();
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif
+
UpdateUserViewportChanged();
}
void Framework::Move(double azDir, double factor)
{
m_navigator.Move(azDir, factor);
-
- Invalidate();
+ if (!m_drapeEngine.IsNull())
+ m_drapeEngine->UpdateCoverage(m_navigator.Screen());
}
//@}
@@ -1168,14 +992,17 @@ void Framework::Move(double azDir, double factor)
void Framework::ScaleToPoint(ScaleToPointEvent const & e, bool anim)
{
m2::PointD pt = m_navigator.ShiftPoint(e.Pt());
- GetLocationState()->CorrectScalePoint(pt);
+ ///@TODO UVR
+ //GetLocationState()->CorrectScalePoint(pt);
if (anim)
m_animController->AddTask(m_navigator.ScaleToPointAnim(pt, e.ScaleFactor(), 0.25));
else
m_navigator.ScaleToPoint(pt, e.ScaleFactor(), 0);
- Invalidate();
+ if (!m_drapeEngine.IsNull())
+ m_drapeEngine->UpdateCoverage(m_navigator.Screen());
+
UpdateUserViewportChanged();
}
@@ -1187,10 +1014,13 @@ void Framework::ScaleDefault(bool enlarge)
void Framework::Scale(double scale)
{
m2::PointD center = GetPixelCenter();
- GetLocationState()->CorrectScalePoint(center);
+ ///@TODO UVR
+ //GetLocationState()->CorrectScalePoint(center);
m_animController->AddTask(m_navigator.ScaleToPointAnim(center, scale, 0.25));
- Invalidate();
+ if (!m_drapeEngine.IsNull())
+ m_drapeEngine->UpdateCoverage(m_navigator.Screen());
+
UpdateUserViewportChanged();
}
@@ -1199,23 +1029,21 @@ void Framework::CalcScalePoints(ScaleEvent const & e, m2::PointD & pt1, m2::Poin
pt1 = m_navigator.ShiftPoint(e.Pt1());
pt2 = m_navigator.ShiftPoint(e.Pt2());
- m_informationDisplay.locationState()->CorrectScalePoint(pt1, pt2);
+ ///@TODO UVR
+ //m_informationDisplay.locationState()->CorrectScalePoint(pt1, pt2);
}
-
void Framework::StartScale(ScaleEvent const & e)
{
m2::PointD pt1, pt2;
CalcScalePoints(e, pt1, pt2);
- GetLocationState()->ScaleStarted();
+ ///@TODO UVR
+ //GetLocationState()->ScaleStarted();
m_navigator.StartScale(pt1, pt2, ElapsedSeconds());
-#ifndef USE_DRAPE
- if (m_renderPolicy)
- m_renderPolicy->StartScale();
-#else
+
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif // USE_DRAPE
+
}
void Framework::DoScale(ScaleEvent const & e)
@@ -1224,16 +1052,12 @@ void Framework::DoScale(ScaleEvent const & e)
CalcScalePoints(e, pt1, pt2);
m_navigator.DoScale(pt1, pt2, ElapsedSeconds());
-#ifndef USE_DRAPE
- if (m_renderPolicy)
- m_renderPolicy->DoScale();
-#else
if (!m_drapeEngine.IsNull())
m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif // USE_DRAPE
- if (m_navigator.IsRotatingDuringScale())
- GetLocationState()->Rotated();
+ ///@TODO UVR
+// if (m_navigator.IsRotatingDuringScale())
+// GetLocationState()->Rotated();
}
void Framework::StopScale(ScaleEvent const & e)
@@ -1243,18 +1067,14 @@ void Framework::StopScale(ScaleEvent const & e)
m_navigator.StopScale(pt1, pt2, ElapsedSeconds());
-#ifndef USE_DRAPE
- if (m_renderPolicy)
+ if (!m_drapeEngine.IsNull())
{
- m_renderPolicy->StopScale();
+ m_drapeEngine->UpdateCoverage(m_navigator.Screen());
UpdateUserViewportChanged();
}
-#else
- if (!m_drapeEngine.IsNull())
- m_drapeEngine->UpdateCoverage(m_navigator.Screen());
-#endif // USE_DRAPE
- GetLocationState()->ScaleEnded();
+ ///@TODO UVR
+ //GetLocationState()->ScaleEnded();
}
//@}
@@ -1333,16 +1153,17 @@ bool Framework::Search(search::SearchParams const & params)
bool Framework::GetCurrentPosition(double & lat, double & lon) const
{
- shared_ptr<State> const & locationState = m_informationDisplay.locationState();
-
- if (locationState->IsModeHasPosition())
- {
- m2::PointD const pos = locationState->Position();
- lat = MercatorBounds::YToLat(pos.y);
- lon = MercatorBounds::XToLon(pos.x);
- return true;
- }
- else
+ ///@TODO UVR
+ //shared_ptr<State> const & locationState = m_informationDisplay.locationState();
+
+// if (locationState->IsModeHasPosition())
+// {
+// m2::PointD const pos = locationState->Position();
+// lat = MercatorBounds::YToLat(pos.y);
+// lon = MercatorBounds::XToLon(pos.x);
+// return true;
+// }
+// else
return false;
}
@@ -1406,7 +1227,7 @@ void Framework::ShowSearchResult(search::Result const & res)
}
StopLocationFollow();
- ShowRectExVisibleScale(m_scales.GetRectForDrawScale(scale, center));
+ ShowRectExVisibleScale(df::GetRectForDrawScale(scale, center));
search::AddressInfo info;
info.MakeFrom(res);
@@ -1441,8 +1262,9 @@ size_t Framework::ShowAllSearchResults(search::Results const & results)
FillSearchResultsMarks(results);
m_fixedSearchResults = count;
- shared_ptr<State> state = GetLocationState();
- state->SetFixedZoom();
+ ///@TODO UVR
+ //shared_ptr<State> state = GetLocationState();
+ //state->SetFixedZoom();
// Setup viewport according to results.
m2::AnyRectD viewport = m_navigator.Screen().GlobalRect();
m2::PointD const center = viewport.Center();
@@ -1477,8 +1299,9 @@ size_t Framework::ShowAllSearchResults(search::Results const & results)
minInd = -1;
}
- if (minInd == -1)
- Invalidate();
+ if (minInd == -1);
+ ///@TODO UVR
+ //Invalidate();
return count;
}
@@ -1515,7 +1338,8 @@ void Framework::CancelInteractiveSearch()
m_fixedSearchResults = 0;
- Invalidate();
+ ///@TODO UVR
+ //Invalidate();
}
bool Framework::GetDistanceAndAzimut(m2::PointD const & point,
@@ -1553,71 +1377,6 @@ bool Framework::GetDistanceAndAzimut(m2::PointD const & point,
return (d < 25000.0);
}
-#ifndef USE_DRAPE
-void Framework::SetRenderPolicy(RenderPolicy * renderPolicy)
-{
- if (renderPolicy == nullptr)
- m_bmManager.PrepareToShutdown();
-
- m_bmManager.ResetScreen();
- m_guiController->ResetRenderParams();
- m_renderPolicy.reset();
- m_renderPolicy.reset(renderPolicy);
-
- if (m_renderPolicy)
- {
- m_renderPolicy->SetAnimController(m_animController.get());
-
- m_renderPolicy->SetRenderFn(DrawModelFn());
-
- m_scales.SetParams(m_renderPolicy->VisualScale(), m_renderPolicy->TileSize());
-
- if (m_benchmarkEngine)
- m_benchmarkEngine->Start();
- }
-}
-
-void Framework::InitGuiSubsystem()
-{
- if (m_renderPolicy)
- {
- gui::Controller::RenderParams rp(m_renderPolicy->Density(),
- m_renderPolicy->DensityExactDPI(),
- bind(&WindowHandle::invalidate,
- m_renderPolicy->GetWindowHandle().get()),
- m_renderPolicy->GetGlyphCache(),
- m_renderPolicy->GetCacheScreen().get());
-
- m_guiController->SetRenderParams(rp);
- m_informationDisplay.setVisualScale(m_renderPolicy->VisualScale());
- m_balloonManager.RenderPolicyCreated(m_renderPolicy->Density());
-
- if (m_width != 0 && m_height != 0)
- OnSize(m_width, m_height);
-
- // init Bookmark manager
- //@{
- graphics::Screen::Params pr;
- pr.m_resourceManager = m_renderPolicy->GetResourceManager();
- pr.m_threadSlot = m_renderPolicy->GetResourceManager()->guiThreadSlot();
- pr.m_renderContext = m_renderPolicy->GetRenderContext();
-
- pr.m_storageType = graphics::EMediumStorage;
- pr.m_textureType = graphics::ESmallTexture;
-
- m_bmManager.SetScreen(m_renderPolicy->GetCacheScreen().get());
- //@}
-
- // Do full invalidate instead of any "pending" stuff.
- Invalidate();
- }
-}
-
-RenderPolicy * Framework::GetRenderPolicy() const
-{
- return m_renderPolicy.get();
-}
-#else
void Framework::CreateDrapeEngine(dp::RefPointer<dp::OGLContextFactory> contextFactory, float vs, int w, int h)
{
typedef df::MapDataProvider::TReadIDsFn TReadIDsFn;
@@ -1638,7 +1397,11 @@ void Framework::CreateDrapeEngine(dp::RefPointer<dp::OGLContextFactory> contextF
m_drapeEngine.Reset(new df::DrapeEngine(contextFactory, df::Viewport(vs, 0, 0, w, h), df::MapDataProvider(idReadFn, featureReadFn)));
OnSize(w, h);
}
-#endif // USE_DRAPE
+
+void Framework::DestroyDrapeEngine()
+{
+ m_drapeEngine.Destroy();
+}
void Framework::SetMapStyle(MapStyle mapStyle)
{
@@ -1664,7 +1427,8 @@ void Framework::SetupMeasurementSystem()
m_routingSession.SetTurnNotificationsUnits(units);
m_informationDisplay.measurementSystemChanged();
- Invalidate();
+ ///@TODO UVR
+ //Invalidate();
}
string Framework::GetCountryCode(m2::PointD const & pt) const
@@ -1674,11 +1438,6 @@ string Framework::GetCountryCode(m2::PointD const & pt) const
return info.m_flag;
}
-gui::Controller * Framework::GetGuiController() const
-{
- return m_guiController.get();
-}
-
anim::Controller * Framework::GetAnimController() const
{
return m_animController.get();
@@ -1709,7 +1468,7 @@ bool Framework::ShowMapForURL(string const & url)
if (parser.Parse(url, pt, zoom))
{
point = MercatorBounds::FromLatLon(pt.m_lat, pt.m_lon);
- rect = m_scales.GetRectForDrawScale(zoom, point);
+ rect = df::GetRectForDrawScale(zoom, point);
name = pt.m_name;
result = NEED_CLICK;
}
@@ -1720,8 +1479,8 @@ bool Framework::ShowMapForURL(string const & url)
if (m_ParsedMapApi.SetUriAndParse(url))
{
- if (!m_ParsedMapApi.GetViewportRect(m_scales, rect))
- rect = ScalesProcessor::GetWorldRect();
+ if (!m_ParsedMapApi.GetViewportRect(rect))
+ rect = df::GetWorldRect();
if ((apiMark = m_ParsedMapApi.GetSinglePoint()))
result = NEED_CLICK;
@@ -1736,7 +1495,7 @@ bool Framework::ShowMapForURL(string const & url)
if (info.IsValid())
{
point = MercatorBounds::FromLatLon(info.m_lat, info.m_lon);
- rect = m_scales.GetRectForDrawScale(info.m_zoom, point);
+ rect = df::GetRectForDrawScale(info.m_zoom, point);
result = NEED_CLICK;
}
}
@@ -1792,7 +1551,8 @@ void Framework::DisconnectMyPositionUpdate()
{
if (m_locationChangedSlotID != -1)
{
- GetLocationState()->RemovePositionChangedListener(m_locationChangedSlotID);
+ ///@TODO UVR
+ //GetLocationState()->RemovePositionChangedListener(m_locationChangedSlotID);
m_locationChangedSlotID = -1;
}
}
@@ -1802,90 +1562,80 @@ m2::RectD Framework::GetCurrentViewport() const
return m_navigator.Screen().ClipRect();
}
-bool Framework::IsBenchmarking() const
-{
- return m_benchmarkEngine != 0;
-}
-
-#ifndef USE_DRAPE
namespace
{
-typedef shared_ptr<graphics::OverlayElement> OEPointerT;
-
-OEPointerT GetClosestToPivot(list<OEPointerT> const & l, m2::PointD const & pxPoint)
-{
- double dist = numeric_limits<double>::max();
- OEPointerT res;
+///@TODO UVR
+//OEPointerT GetClosestToPivot(list<OEPointerT> const & l, m2::PointD const & pxPoint)
+//{
+// double dist = numeric_limits<double>::max();
+// OEPointerT res;
- for (list<OEPointerT>::const_iterator it = l.begin(); it != l.end(); ++it)
- {
- double const curDist = pxPoint.SquareLength((*it)->pivot());
- if (curDist < dist)
- {
- dist = curDist;
- res = *it;
- }
- }
+// for (list<OEPointerT>::const_iterator it = l.begin(); it != l.end(); ++it)
+// {
+// double const curDist = pxPoint.SquareLength((*it)->pivot());
+// if (curDist < dist)
+// {
+// dist = curDist;
+// res = *it;
+// }
+// }
- return res;
-}
+// return res;
+//}
}
-#endif // USE_DRAPE
bool Framework::GetVisiblePOI(m2::PointD const & pxPoint, m2::PointD & pxPivot,
search::AddressInfo & info, feature::Metadata & metadata) const
{
-#ifndef USE_DRAPE
- ASSERT(m_renderPolicy, ());
- graphics::OverlayElement::UserInfo ui;
+///@TODO UVR
+// graphics::OverlayElement::UserInfo ui;
- {
- // It seems like we don't need to lock frame here.
- // Overlay locking and storing items as shared_ptr is enough here.
- //m_renderPolicy->FrameLock();
+// {
+// // It seems like we don't need to lock frame here.
+// // Overlay locking and storing items as shared_ptr is enough here.
+// //m_renderPolicy->FrameLock();
- m2::PointD const pt = m_navigator.ShiftPoint(pxPoint);
- double const halfSize = TOUCH_PIXEL_RADIUS * GetVisualScale();
+// m2::PointD const pt = m_navigator.ShiftPoint(pxPoint);
+// double const halfSize = TOUCH_PIXEL_RADIUS * GetVisualScale();
- list<OEPointerT> candidates;
- m2::RectD const rect(pt.x - halfSize, pt.y - halfSize,
- pt.x + halfSize, pt.y + halfSize);
+// list<OEPointerT> candidates;
+// m2::RectD const rect(pt.x - halfSize, pt.y - halfSize,
+// pt.x + halfSize, pt.y + halfSize);
- graphics::Overlay * frameOverlay = m_renderPolicy->FrameOverlay();
- frameOverlay->lock();
- frameOverlay->selectOverlayElements(rect, candidates);
- frameOverlay->unlock();
+// graphics::Overlay * frameOverlay = m_renderPolicy->FrameOverlay();
+// frameOverlay->lock();
+// frameOverlay->selectOverlayElements(rect, candidates);
+// frameOverlay->unlock();
- OEPointerT elem = GetClosestToPivot(candidates, pt);
+// OEPointerT elem = GetClosestToPivot(candidates, pt);
- if (elem)
- ui = elem->userInfo();
+// if (elem)
+// ui = elem->userInfo();
- //m_renderPolicy->FrameUnlock();
- }
+// //m_renderPolicy->FrameUnlock();
+// }
- if (ui.IsValid())
- {
- Index::FeaturesLoaderGuard guard(m_model.GetIndex(), ui.m_featureID.m_mwmId);
+ //if (ui.IsValid())
+ //{
+ //Index::FeaturesLoaderGuard guard(m_model.GetIndex(), ui.m_featureID.m_mwmId);
- FeatureType ft;
- guard.GetFeatureByIndex(ui.m_featureID.m_index, ft);
+ //FeatureType ft;
+ //guard.GetFeatureByIndex(ui.m_featureID.m_index, ft);
- ft.ParseMetadata();
- metadata = ft.GetMetadata();
+ //ft.ParseMetadata();
+ //metadata = ft.GetMetadata();
// @TODO experiment with other pivots
- ASSERT_NOT_EQUAL(ft.GetFeatureType(), feature::GEOM_LINE, ());
- m2::PointD const center = feature::GetCenter(ft);
+ //ASSERT_NOT_EQUAL(ft.GetFeatureType(), feature::GEOM_LINE, ());
+ //m2::PointD const center = feature::GetCenter(ft);
- GetAddressInfo(ft, center, info);
+// GetAddressInfo(ft, center, info);
- pxPivot = GtoP(center);
- return true;
- }
-#endif // USE_DRAPE
+// pxPivot = GtoP(center);
+// return true;
+// }
return false;
}
@@ -1958,10 +1708,10 @@ Navigator & Framework::GetNavigator()
return m_navigator;
}
-shared_ptr<State> const & Framework::GetLocationState() const
-{
- return m_informationDisplay.locationState();
-}
+//shared_ptr<State> const & Framework::GetLocationState() const
+//{
+// return m_informationDisplay.locationState();
+//}
void Framework::ActivateUserMark(UserMark const * mark, bool needAnim)
{
@@ -1992,27 +1742,29 @@ UserMark const * Framework::GetUserMarkWithoutLogging(m2::PointD const & pxPoint
{
DisconnectMyPositionUpdate();
m2::AnyRectD rect;
- m_navigator.GetTouchRect(pxPoint, TOUCH_PIXEL_RADIUS * GetVisualScale(), rect);
-
- shared_ptr<State> const & locationState = GetLocationState();
- if (locationState->IsModeHasPosition())
- {
- m2::PointD const & glPivot = locationState->Position();
- if (rect.IsPointInside(glPivot))
- {
- search::AddressInfo info;
- info.m_name = m_stringsBundle.GetString("my_position");
- MyPositionMarkPoint * myPostition = UserMarkContainer::UserMarkForMyPostion();
- m_locationChangedSlotID = locationState->AddPositionChangedListener(bind(&Framework::UpdateSelectedMyPosition, this, _1));
- myPostition->SetPtOrg(glPivot);
- myPostition->SetInfo(info);
- return myPostition;
- }
- }
+ double vs = df::VisualParams::Instance().GetVisualScale();
+ m_navigator.GetTouchRect(pxPoint, TOUCH_PIXEL_RADIUS * vs, rect);
+
+ ///@TODO UVR
+ //shared_ptr<State> const & locationState = GetLocationState();
+// if (locationState->IsModeHasPosition())
+// {
+// m2::PointD const & glPivot = locationState->Position();
+// if (rect.IsPointInside(glPivot))
+// {
+// search::AddressInfo info;
+// info.m_name = m_stringsBundle.GetString("my_position");
+// MyPositionMarkPoint * myPostition = UserMarkContainer::UserMarkForMyPostion();
+// m_locationChangedSlotID = locationState->AddPositionChangedListener(bind(&Framework::UpdateSelectedMyPosition, this, _1));
+// myPostition->SetPtOrg(glPivot);
+// myPostition->SetInfo(info);
+// return myPostition;
+// }
+// }
m2::AnyRectD bmSearchRect;
- double const pxWidth = TOUCH_PIXEL_RADIUS * GetVisualScale();
- double const pxHeight = (TOUCH_PIXEL_RADIUS + BM_TOUCH_PIXEL_INCREASE) * GetVisualScale();
+ double const pxWidth = TOUCH_PIXEL_RADIUS * vs;
+ double const pxHeight = (TOUCH_PIXEL_RADIUS + BM_TOUCH_PIXEL_INCREASE) * vs;
m_navigator.GetTouchRect(pxPoint + m2::PointD(0, BM_TOUCH_PIXEL_INCREASE), pxWidth, pxHeight, bmSearchRect);
UserMark const * mark = m_bmManager.FindNearestUserMark(
@@ -2158,48 +1910,56 @@ void Framework::UpdateSavedDataVersion()
void Framework::BuildRoute(m2::PointD const & start, m2::PointD const & finish, uint32_t timeoutSec)
{
- ASSERT_THREAD_CHECKER(m_threadChecker, ("BuildRoute"));
-
- if (IsRoutingActive())
- CloseRouting();
-
- SetLastUsedRouter(m_currentRouterType);
-
- auto readyCallback = [this](Route const & route, IRouter::ResultCode code)
- {
- ASSERT_THREAD_CHECKER(m_threadChecker, ("BuildRoute_ReadyCallback"));
-
- vector<storage::TIndex> absentCountries;
- vector<storage::TIndex> absentRoutingIndexes;
- if (code == IRouter::NoError)
- {
- InsertRoute(route);
- GetLocationState()->RouteBuilded();
- ShowRectExVisibleScale(route.GetPoly().GetLimitRect());
- }
- else
- {
- for (string const & name : route.GetAbsentCountries())
- {
- storage::TIndex fileIndex = m_storage.FindIndexByFile(name);
- if (m_storage.GetLatestLocalFile(fileIndex) && code != IRouter::FileTooOld)
- absentRoutingIndexes.push_back(fileIndex);
- else
- absentCountries.push_back(fileIndex);
- }
-
- if (code != IRouter::NeedMoreMaps)
- RemoveRoute();
- }
- CallRouteBuilded(code, absentCountries, absentRoutingIndexes);
- };
-
- m_routingSession.BuildRoute(start, finish,
- [readyCallback](Route const & route, IRouter::ResultCode code)
- {
- GetPlatform().RunOnGuiThread(bind(readyCallback, route, code));
- },
- m_progressCallback, timeoutSec);
+ //ASSERT_THREAD_CHECKER(m_threadChecker, ("BuildRoute"));
+
+ //shared_ptr<State> const & state = GetLocationState();
+ //if (!state->IsModeHasPosition())
+ //{
+ // CallRouteBuilded(IRouter::NoCurrentPosition, vector<storage::TIndex>(),
+ // vector<storage::TIndex>());
+ // return;
+ //}
+
+ //if (IsRoutingActive())
+ // CloseRouting();
+
+ //SetLastUsedRouter(m_currentRouterType);
+
+ //auto readyCallback = [this](Route const & route, IRouter::ResultCode code)
+ //{
+ // ASSERT_THREAD_CHECKER(m_threadChecker, ("BuildRoute_ReadyCallback"));
+
+ // vector<storage::TIndex> absentCountries;
+ // vector<storage::TIndex> absentRoutingIndexes;
+ // if (code == IRouter::NoError)
+ // {
+ // InsertRoute(route);
+ // GetLocationState()->RouteBuilded();
+ // ShowRectExVisibleScale(route.GetPoly().GetLimitRect());
+ // }
+ // else
+ // {
+ // for (string const & name : route.GetAbsentCountries())
+ // {
+ // storage::TIndex fileIndex = m_storage.FindIndexByFile(name);
+ // if (m_storage.GetLatestLocalFile(fileIndex) && code != IRouter::FileTooOld)
+ // absentRoutingIndexes.push_back(fileIndex);
+ // else
+ // absentCountries.push_back(fileIndex);
+ // }
+
+ // if (code != IRouter::NeedMoreMaps)
+ // RemoveRoute();
+ // }
+ // CallRouteBuilded(code, absentCountries, absentRoutingIndexes);
+ //};
+
+ //m_routingSession.BuildRoute(state->Position(), destination,
+ // [readyCallback](Route const & route, IRouter::ResultCode code)
+ // {
+ // GetPlatform().RunOnGuiThread(bind(readyCallback, route, code));
+ // },
+ // m_progressCallback, timeoutSec);
}
void Framework::SetRouter(RouterType type)
@@ -2277,10 +2037,12 @@ void Framework::CloseRouting()
{
ASSERT_THREAD_CHECKER(m_threadChecker, ("CloseRouting"));
- GetLocationState()->StopRoutingMode();
+ ///@TODO UVR
+ //GetLocationState()->StopRoutingMode();
m_routingSession.Reset();
RemoveRoute();
- Invalidate();
+ ///@TODO UVR
+ //Invalidate();
}
void Framework::InsertRoute(Route const & route)
@@ -2293,23 +2055,30 @@ void Framework::InsertRoute(Route const & route)
return;
}
- vector<double> turnsDistances;
- if (m_currentRouterType == RouterType::Vehicle)
- {
- route.GetTurnsDistances(turnsDistances);
- }
+ // @TODO UVR
+ //vector<double> turns;
+ //if (m_currentRouterType == RouterType::Vehicle)
+ //{
+ // turns::TTurnsGeom const & turnsGeom = route.GetTurnsGeometry();
+ // if (!turnsGeom.empty())
+ // {
+ // turns.reserve(turnsGeom.size());
+ // for (size_t i = 0; i < turnsGeom.size(); i++)
+ // turns.push_back(turnsGeom[i].m_mercatorDistance);
+ // }
+ //}
/// @todo Consider a style parameter for the route color.
- graphics::Color routeColor;
- if (m_currentRouterType == RouterType::Pedestrian)
- routeColor = graphics::Color(5, 105, 175, 204);
- else
- routeColor = graphics::Color(30, 150, 240, 204);
+ //graphics::Color routeColor;
+ //if (m_currentRouterType == RouterType::Pedestrian)
+ // routeColor = graphics::Color(5, 105, 175, 204);
+ //else
+ // routeColor = graphics::Color(30, 150, 240, 204);
- m_bmManager.SetRouteTrack(route.GetPoly(), turnsDistances, routeColor);
+ //m_bmManager.SetRouteTrack(route.GetPoly(), turns, routeColor);
- m_informationDisplay.ResetRouteMatchingInfo();
- Invalidate();
+ //m_informationDisplay.ResetRouteMatchingInfo();
+ //Invalidate();
}
void Framework::CheckLocationForRouting(GpsInfo const & info)
@@ -2317,18 +2086,18 @@ void Framework::CheckLocationForRouting(GpsInfo const & info)
if (!IsRoutingActive())
return;
- m2::PointD const & position = GetLocationState()->Position();
- if (m_routingSession.OnLocationPositionChanged(position, info, m_model.GetIndex()) == RoutingSession::RouteNeedRebuild)
- {
- auto readyCallback = [this](Route const & route, IRouter::ResultCode code)
- {
- if (code == IRouter::NoError)
- GetPlatform().RunOnGuiThread(bind(&Framework::InsertRoute, this, route));
- };
+ ///@TODO UVR
+ //m2::PointD const & position = GetLocationState()->Position();
+ //if (m_routingSession.OnLocationPositionChanged(position, info) == RoutingSession::RouteNeedRebuild)
+ //{
+ // auto readyCallback = [this](Route const & route, IRouter::ResultCode code)
+ // {
+ // if (code == IRouter::NoError)
+ // GetPlatform().RunOnGuiThread(bind(&Framework::InsertRoute, this, route));
+ // };
- m_routingSession.RebuildRoute(MercatorBounds::FromLatLon(info.m_latitude, info.m_longitude),
- readyCallback, m_progressCallback, 0 /* timeoutSec */);
- }
+ // m_routingSession.RebuildRoute(position, readyCallback, m_progressCallback, 0 /* timeoutSec */);
+ //}
}
void Framework::MatchLocationToRoute(location::GpsInfo & location, location::RouteMatchingInfo & routeMatchingInfo,
@@ -2416,10 +2185,10 @@ void Framework::SetLastUsedRouter(RouterType type)
void Framework::SetRouteStartPoint(m2::PointD const & pt, bool isValid)
{
- m_bmManager.SetRouteStartPoint(pt, isValid);
+ //m_bmManager.SetRouteStartPoint(pt);
}
void Framework::SetRouteFinishPoint(m2::PointD const & pt, bool isValid)
{
- m_bmManager.SetRouteFinishPoint(pt, isValid);
+ //m_bmManager.SetRouteFinishPoint(pt);
}
diff --git a/map/framework.hpp b/map/framework.hpp
index 3f0c957413..a5ae0cd690 100644
--- a/map/framework.hpp
+++ b/map/framework.hpp
@@ -1,5 +1,8 @@
#pragma once
+#include "map/events.hpp"
+#include "drape/oglcontextfactory.hpp"
+#include "drape_frontend/drape_engine.hpp"
#include "map/feature_vec_model.hpp"
#include "map/information_display.hpp"
#include "map/location_state.hpp"
@@ -17,18 +20,6 @@
#include "map/track.hpp"
#include "map/country_tree.hpp"
-#include "routing/routing_session.hpp"
-
-#include "render/events.hpp"
-#include "render/scales_processor.hpp"
-#ifndef USE_DRAPE
- #include "render/render_policy.hpp"
- #include "render/window_handle.hpp"
-#else
- #include "drape/oglcontextfactory.hpp"
- #include "drape_frontend/drape_engine.hpp"
-#endif // USE_DRAPE
-
#include "indexer/data_header.hpp"
#include "indexer/map_style.hpp"
@@ -40,12 +31,6 @@
#include "platform/country_defines.hpp"
#include "platform/location.hpp"
-#ifndef USE_DRAPE
- #include "graphics/defines.hpp"
- #include "graphics/screen.hpp"
- #include "graphics/color.hpp"
-#endif // USE_DRAPE
-
#include "geometry/rect2d.hpp"
#include "geometry/screenbase.hpp"
@@ -71,14 +56,10 @@ namespace storage
class CountryInfoGetter;
}
-namespace gui { class Controller; }
namespace anim { class Controller; }
namespace routing { namespace turns{ class Settings; } }
class CountryStatusDisplay;
-class BenchmarkEngine;
-struct FrameImage;
-class CPUDrawer;
/// Uncomment line to make fixed position settings and
/// build version for screenshots.
@@ -119,7 +100,6 @@ protected:
search::QuerySaver m_searchQuerySaver;
model::FeaturesFetcher m_model;
- ScalesProcessor m_scales;
Navigator m_navigator;
Animator m_animator;
@@ -127,13 +107,7 @@ protected:
typedef vector<BookmarkCategory *>::iterator CategoryIter;
-#ifndef USE_DRAPE
- unique_ptr<RenderPolicy> m_renderPolicy;
-#else
dp::MasterPointer<df::DrapeEngine> m_drapeEngine;
-#endif
-
- unique_ptr<CPUDrawer> m_cpuDrawer;
double m_startForegroundTime;
@@ -146,7 +120,6 @@ protected:
storage::Storage m_storage;
storage::CountryTree m_countryTree;
- unique_ptr<gui::Controller> m_guiController;
unique_ptr<anim::Controller> m_animController;
InformationDisplay m_informationDisplay;
@@ -166,11 +139,9 @@ protected:
//return m_timer.ElapsedSeconds();
return 0.0;
}
-#ifndef USE_DRAPE
- void DrawAdditionalInfo(shared_ptr<PaintEvent> const & e);
-#endif // USE_DRAPE
- BenchmarkEngine * m_benchmarkEngine;
+ ///@TODO UVR
+ ///void DrawAdditionalInfo(shared_ptr<PaintEvent> const & e);
BookmarkManager m_bmManager;
PinClickManager m_balloonManager;
@@ -277,13 +248,8 @@ public:
void OnCompassUpdate(location::CompassInfo const & info);
//@}
-#ifndef USE_DRAPE
- void SetRenderPolicy(RenderPolicy * renderPolicy);
- void InitGuiSubsystem();
- RenderPolicy * GetRenderPolicy() const;
-#else
void CreateDrapeEngine(dp::RefPointer<dp::OGLContextFactory> contextFactory, float vs, int w, int h);
-#endif // USE_DRAPE
+ void DestroyDrapeEngine();
void SetMapStyle(MapStyle mapStyle);
MapStyle GetMapStyle() const;
@@ -311,24 +277,10 @@ public:
void SetWidgetPivot(InformationDisplay::WidgetType widget, m2::PointD const & pivot);
m2::PointD GetWidgetSize(InformationDisplay::WidgetType widget) const;
- /// Safe function to get current visual scale.
- /// Call it when you need do calculate pixel rect (not matter if m_renderPolicy == 0).
- /// @return 1.0 if m_renderPolicy == 0 (possible for Android).
- double GetVisualScale() const;
-
void PrepareToShutdown();
void SetupMeasurementSystem();
-#ifndef USE_DRAPE
- RenderPolicy::TRenderFn DrawModelFn();
-
- void DrawModel(shared_ptr<PaintEvent> const & e,
- ScreenBase const & screen,
- m2::RectD const & renderRect,
- int baseScale, bool isTilingQuery);
-#endif // USE_DRAPE
-
private:
void InitCountryInfoGetter();
void InitSearchEngine();
@@ -389,9 +341,6 @@ public:
void SetMaxWorldRect();
- void Invalidate(bool doForceUpdate = false);
- void InvalidateRect(m2::RectD const & rect, bool doForceUpdate = false);
-
void SaveState();
bool LoadState();
@@ -409,21 +358,6 @@ public:
/// Set correct viewport, parse API, show balloon.
bool ShowMapForURL(string const & url);
- bool NeedRedraw() const;
- void SetNeedRedraw(bool flag);
-
- inline void XorQueryMaxScaleMode()
- {
- m_queryMaxScaleMode = !m_queryMaxScaleMode;
- Invalidate(true);
- }
-
- inline void SetQueryMaxScaleMode(bool mode)
- {
- m_queryMaxScaleMode = mode;
- Invalidate(true);
- }
-
/// Get classificator types for nearest features.
/// @param[in] pxPoint Current touch point in device pixel coordinates.
void GetFeatureTypes(m2::PointD const & pxPoint, vector<string> & types) const;
@@ -443,14 +377,6 @@ public:
bool GetVisiblePOI(m2::PointD const & pxPoint, m2::PointD & pxPivot, search::AddressInfo & info, feature::Metadata & metadata) const;
void FindClosestPOIMetadata(m2::PointD const & pt, feature::Metadata & metadata) const;
-#ifndef USE_DRAPE
- virtual void BeginPaint(shared_ptr<PaintEvent> const & e);
- /// Function for calling from platform dependent-paint function.
- virtual void DoPaint(shared_ptr<PaintEvent> const & e);
-
- virtual void EndPaint(shared_ptr<PaintEvent> const & e);
-#endif // USE_DRAPE
-
private:
/// Always check rect in public function for minimal draw scale.
void CheckMinGlobalRect(m2::RectD & rect) const;
@@ -501,7 +427,7 @@ public:
/// @name Scaling.
//@{
- void ScaleToPoint(ScaleToPointEvent const & e, bool anim = true);
+ void ScaleToPoint(ScaleToPointEvent const & e, bool anim = false);
void ScaleDefault(bool enlarge);
void Scale(double scale);
@@ -514,7 +440,6 @@ public:
void StopScale(ScaleEvent const & e);
//@}
- gui::Controller * GetGuiController() const;
anim::Controller * GetAnimController() const;
Animator & GetAnimator();
@@ -526,8 +451,6 @@ public:
m_stringsBundle.SetString(name, value);
}
- bool IsBenchmarking() const;
-
StringsBundle const & GetStringsBundle();
PinClickManager & GetBalloonManager() { return m_balloonManager; }
@@ -536,7 +459,8 @@ public:
/// the specified point is loaded
bool IsCountryLoaded(m2::PointD const & pt) const;
- shared_ptr<location::State> const & GetLocationState() const;
+ ///@TODO UVR
+ //shared_ptr<location::State> const & GetLocationState() const;
void ActivateUserMark(UserMark const * mark, bool needAnim = true);
bool HasActiveUserMark() const;
UserMark const * GetUserMarkWithoutLogging(m2::PointD const & pxPoint, bool isLongPress);
diff --git a/map/information_display.cpp b/map/information_display.cpp
index 33290a17b8..bebee28b39 100644
--- a/map/information_display.cpp
+++ b/map/information_display.cpp
@@ -5,26 +5,13 @@
#include "map/ruler.hpp"
#include "map/alfa_animation_task.hpp"
-#include "render/drawer.hpp"
-
#include "anim/task.hpp"
#include "anim/controller.hpp"
-#include "gui/controller.hpp"
-#include "gui/button.hpp"
-#include "gui/cached_text_view.hpp"
-
-#include "graphics/defines.hpp"
-#include "graphics/depth_constants.hpp"
-#include "graphics/display_list.hpp"
-
#include "platform/platform.hpp"
#include "geometry/transformations.hpp"
-
-using namespace graphics;
-
namespace
{
static int const RULLER_X_OFFSET = 6;
@@ -43,7 +30,8 @@ namespace
InformationDisplay::InformationDisplay(Framework * fw)
: m_framework(fw)
{
- m_fontDesc.m_color = Color(0x4D, 0x4D, 0x4D, 0xCC);
+ ///@TODO UVR
+ //m_fontDesc.m_color = Color(0x4D, 0x4D, 0x4D, 0xCC);
InitRuler(fw);
InitCountryStatusDisplay(fw);
@@ -61,143 +49,151 @@ InformationDisplay::InformationDisplay(Framework * fw)
void InformationDisplay::InitRuler(Framework * fw)
{
- Ruler::Params p;
+ ///@TODO UVR
+// Ruler::Params p;
- p.m_depth = rulerDepth;
- p.m_position = EPosAboveLeft;
- p.m_framework = fw;
+// p.m_depth = rulerDepth;
+// p.m_position = EPosAboveLeft;
+// p.m_framework = fw;
- m_ruler.reset(new Ruler(p));
- m_ruler->setIsVisible(false);
+// m_ruler.reset(new Ruler(p));
+// m_ruler->setIsVisible(false);
}
void InformationDisplay::InitCountryStatusDisplay(Framework * fw)
{
- CountryStatusDisplay::Params p(fw->GetCountryTree().GetActiveMapLayout());
+ ///@TODO UVR
+// CountryStatusDisplay::Params p(fw->GetCountryTree().GetActiveMapLayout());
- p.m_pivot = m2::PointD(0, 0);
- p.m_position = EPosCenter;
- p.m_depth = countryStatusDepth;
+// p.m_pivot = m2::PointD(0, 0);
+// p.m_position = EPosCenter;
+// p.m_depth = countryStatusDepth;
- m_countryStatusDisplay.reset(new CountryStatusDisplay(p));
+// m_countryStatusDisplay.reset(new CountryStatusDisplay(p));
}
void InformationDisplay::InitCopyright(Framework * fw)
{
- gui::CachedTextView::Params p;
+ ///@TODO UVR
+// gui::CachedTextView::Params p;
- p.m_depth = rulerDepth;
- p.m_position = EPosAboveLeft;
- p.m_pivot = m2::PointD(0, 0);
- p.m_text = "Map data © OpenStreetMap";
+// p.m_depth = rulerDepth;
+// p.m_position = EPosAboveLeft;
+// p.m_pivot = m2::PointD(0, 0);
+// p.m_text = "Map data © OpenStreetMap";
- m_copyrightLabel.reset(new gui::CachedTextView(p));
+// m_copyrightLabel.reset(new gui::CachedTextView(p));
}
void InformationDisplay::InitCompassArrow(Framework * fw)
{
- CompassArrow::Params p;
+ ///@TODO UVR
+// CompassArrow::Params p;
- p.m_position = EPosCenter;
- p.m_depth = compassDepth;
- p.m_pivot = m2::PointD(0, 0);
- p.m_framework = fw;
+// p.m_position = EPosCenter;
+// p.m_depth = compassDepth;
+// p.m_pivot = m2::PointD(0, 0);
+// p.m_framework = fw;
- m_compassArrow.reset(new CompassArrow(p));
- m_compassArrow->setIsVisible(false);
+// m_compassArrow.reset(new CompassArrow(p));
+// m_compassArrow->setIsVisible(false);
}
void InformationDisplay::InitLocationState(Framework * fw)
{
- location::State::Params p;
+ ///@TODO UVR
+// location::State::Params p;
- p.m_position = EPosCenter;
- p.m_depth = locationDepth;
- p.m_pivot = m2::PointD(0, 0);
- p.m_locationAreaColor = Color(30, 150, 240, 20);
- p.m_framework = fw;
+// p.m_position = EPosCenter;
+// p.m_depth = locationDepth;
+// p.m_pivot = m2::PointD(0, 0);
+// p.m_locationAreaColor = Color(0x51, 0xA3, 0xDC, 0x46);
+// p.m_framework = fw;
- m_locationState.reset(new location::State(p));
+// m_locationState.reset(new location::State(p));
}
void InformationDisplay::InitDebugLabel()
{
- gui::CachedTextView::Params p;
+ ///@TODO UVR
+// gui::CachedTextView::Params p;
- p.m_depth = debugDepth;
- p.m_position = EPosAboveRight;
- p.m_pivot = m2::PointD(0, 0);
+// p.m_depth = debugDepth;
+// p.m_position = EPosAboveRight;
+// p.m_pivot = m2::PointD(0, 0);
- m_debugLabel.reset(new gui::CachedTextView(p));
+// m_debugLabel.reset(new gui::CachedTextView(p));
}
-void InformationDisplay::setController(gui::Controller * controller)
-{
- m_controller = controller;
- m_controller->AddElement(m_countryStatusDisplay);
- m_controller->AddElement(m_compassArrow);
- m_controller->AddElement(m_locationState);
- m_controller->AddElement(m_ruler);
- m_controller->AddElement(m_debugLabel);
-
- m_controller->AddElement(m_copyrightLabel);
- shared_ptr<anim::Task> task(new AlfaAnimationTask(1.0, 0.0, 0.15, 3.0, m_framework));
- task->AddCallback(anim::Task::EEnded, [this] ()
- {
- m_controller->RemoveElement(m_copyrightLabel);
- m_copyrightLabel.reset();
- });
-
- m_copyrightLabel->setAnimated([task] ()
- {
- AlfaAnimationTask * t = static_cast<AlfaAnimationTask *>(task.get());
- return t->GetCurrentAlfa();
- });
-
- m_framework->GetAnimController()->AddTask(task);
-}
+ ///@TODO UVR
+//void InformationDisplay::setController(gui::Controller * controller)
+//{
+// m_controller = controller;
+// m_controller->AddElement(m_countryStatusDisplay);
+// m_controller->AddElement(m_compassArrow);
+// m_controller->AddElement(m_locationState);
+// m_controller->AddElement(m_ruler);
+// m_controller->AddElement(m_debugLabel);
+
+// m_controller->AddElement(m_copyrightLabel);
+// shared_ptr<anim::Task> task(new AlfaAnimationTask(1.0, 0.0, 0.15, 3.0, m_framework));
+// task->AddCallback(anim::Task::EEnded, [this] ()
+// {
+// m_controller->RemoveElement(m_copyrightLabel);
+// m_copyrightLabel.reset();
+// });
+
+// m_copyrightLabel->setAnimated([task] ()
+// {
+// AlfaAnimationTask * t = static_cast<AlfaAnimationTask *>(task.get());
+// return t->GetCurrentAlfa();
+// });
+
+// m_framework->GetAnimController()->AddTask(task);
+//}
void InformationDisplay::SetWidgetPivotsByDefault(int screenWidth, int screenHeight)
{
- double rulerOffsX = RULLER_X_OFFSET;
- double rulerOffsY = RULLER_Y_OFFSET;
- double compassOffsX = COMPASS_X_OFFSET;
- double compassOffsY = COMPASS_Y_OFFSET;
- m2::RectI const rect = m2::RectI(0, 0, screenWidth, screenHeight);
-
-#ifdef OMIM_OS_ANDROID
- if (GetPlatform().IsTablet())
- {
- rulerOffsX = RULLER_X_OFFSET_L;
- rulerOffsY = RULLER_Y_OFFSET_L;
- compassOffsX = COMPASS_X_OFFSET_L;
- compassOffsY = COMPASS_Y_OFFSET_L;
- }
-#endif
-
- double const vs = m_framework->GetVisualScale();
- m_countryStatusDisplay->setPivot(m2::PointD(rect.Center()));
-
- m2::PointD const size = m_compassArrow->GetPixelSize();
- m_compassArrow->setPivot(m2::PointD(compassOffsX * vs + size.x / 2.0,
- rect.maxY() - compassOffsY * vs - size.y / 2.0));
-
- m_ruler->setPivot(m2::PointD(rect.maxX() - rulerOffsX * vs,
- rect.maxY() - rulerOffsY * vs));
-
- if (m_copyrightLabel)
- {
- m_copyrightLabel->setPivot(m2::PointD(rect.maxX() - rulerOffsX * vs,
- rect.maxY() - rulerOffsY * vs));
- }
- m_debugLabel->setPivot(m2::PointD(rect.minX() + 10,
- rect.minY() + 50 + 5 * vs));
+ ///@TODO UVR
+// double rulerOffsX = RULLER_X_OFFSET;
+// double rulerOffsY = RULLER_Y_OFFSET;
+// double compassOffsX = COMPASS_X_OFFSET;
+// double compassOffsY = COMPASS_Y_OFFSET;
+//#ifdef OMIM_OS_ANDROID
+// if (GetPlatform().IsTablet())
+// {
+// rulerOffsX = RULLER_X_OFFSET_L;
+// rulerOffsY = RULLER_Y_OFFSET_L;
+// compassOffsX = COMPASS_X_OFFSET_L;
+// compassOffsY = COMPASS_Y_OFFSET_L;
+// }
+//#endif
+
+// double const vs = m_framework->GetVisualScale();
+// m_countryStatusDisplay->setPivot(m2::PointD(rect.Center()));
+
+// m2::PointD const size = m_compassArrow->GetPixelSize();
+// m_compassArrow->setPivot(m2::PointD(compassOffsX * vs + size.x / 2.0,
+// rect.maxY() - compassOffsY * vs - size.y / 2.0));
+
+// m_ruler->setPivot(m2::PointD(rect.maxX() - rulerOffsX * vs,
+// rect.maxY() - rulerOffsY * vs));
+
+// if (m_copyrightLabel)
+// {
+// m_copyrightLabel->setPivot(m2::PointD(rect.maxX() - rulerOffsX * vs,
+// rect.maxY() - rulerOffsY * vs));
+// }
+
+// m_debugLabel->setPivot(m2::PointD(rect.minX() + 10,
+// rect.minY() + 50 + 5 * vs));
}
bool InformationDisplay::isCopyrightActive() const
{
- return m_copyrightLabel != nullptr;
+ ///@TODO UVR
+ return false;//m_copyrightLabel != nullptr;
}
void InformationDisplay::enableCopyright(bool doEnable)
@@ -208,30 +204,34 @@ void InformationDisplay::enableCopyright(bool doEnable)
void InformationDisplay::enableRuler(bool doEnable)
{
- if (doEnable)
- m_ruler->AnimateShow();
- else
- m_ruler->AnimateHide();
+ ///@TODO UVR
+// if (doEnable)
+// m_ruler->AnimateShow();
+// else
+// m_ruler->AnimateHide();
}
bool InformationDisplay::isRulerEnabled() const
{
- return m_ruler->isVisible();
+ ///@TODO UVR
+ return false;//m_ruler->isVisible();
}
void InformationDisplay::setVisualScale(double visualScale)
{
- m_fontDesc.m_size = static_cast<uint32_t>(FONT_SIZE * visualScale);
+ ///@TODO UVR
+// m_fontDesc.m_size = static_cast<uint32_t>(FONT_SIZE * visualScale);
- m_ruler->setFont(gui::Element::EActive, m_fontDesc);
- m_debugLabel->setFont(gui::Element::EActive, m_fontDesc);
- if (m_copyrightLabel)
- m_copyrightLabel->setFont(gui::Element::EActive, m_fontDesc);
+// m_ruler->setFont(gui::Element::EActive, m_fontDesc);
+// m_debugLabel->setFont(gui::Element::EActive, m_fontDesc);
+// if (m_copyrightLabel)
+// m_copyrightLabel->setFont(gui::Element::EActive, m_fontDesc);
}
void InformationDisplay::enableDebugInfo(bool doEnable)
{
- m_debugLabel->setIsVisible(doEnable);
+ ///@TODO UVR
+ //m_debugLabel->setIsVisible(doEnable);
}
void InformationDisplay::setDebugInfo(double frameDuration, int currentScale)
@@ -239,45 +239,53 @@ void InformationDisplay::setDebugInfo(double frameDuration, int currentScale)
ostringstream out;
out << "Scale : " << currentScale;
- m_debugLabel->setText(out.str());
+ ///@TODO UVR
+ //m_debugLabel->setText(out.str());
}
void InformationDisplay::enableCompassArrow(bool doEnable)
{
- if (doEnable)
- m_compassArrow->AnimateShow();
- else
- m_compassArrow->AnimateHide();
+ ///@TODO UVR
+// if (doEnable)
+// m_compassArrow->AnimateShow();
+// else
+// m_compassArrow->AnimateHide();
}
bool InformationDisplay::isCompassArrowEnabled() const
{
- return m_compassArrow->isVisible();
+ ///@TODO UVR
+ return false;//m_compassArrow->isVisible();
}
void InformationDisplay::setCompassArrowAngle(double angle)
{
- m_compassArrow->SetAngle(angle);
+ ///@TODO UVR
+ //m_compassArrow->SetAngle(angle);
}
void InformationDisplay::setEmptyCountryIndex(storage::TIndex const & idx)
{
- m_countryStatusDisplay->SetCountryIndex(idx);
+ ///@TODO UVR
+ //m_countryStatusDisplay->SetCountryIndex(idx);
}
shared_ptr<CountryStatusDisplay> const & InformationDisplay::countryStatusDisplay() const
{
- return m_countryStatusDisplay;
+ ///@TODO UVR
+ return nullptr;//m_countryStatusDisplay;
}
shared_ptr<location::State> const & InformationDisplay::locationState() const
{
- return m_locationState;
+ ///@TODO UVR
+ return nullptr; //m_locationState;
}
void InformationDisplay::measurementSystemChanged()
{
- m_ruler->setIsDirtyLayout(true);
+ ///@TODO UVR
+ //m_ruler->setIsDirtyLayout(true);
}
void InformationDisplay::ResetRouteMatchingInfo()
diff --git a/map/information_display.hpp b/map/information_display.hpp
index da35f58fe3..da3ec8f20e 100644
--- a/map/information_display.hpp
+++ b/map/information_display.hpp
@@ -1,9 +1,5 @@
#pragma once
-#include "gui/button.hpp"
-
-#include "graphics/font_desc.hpp"
-
#include "storage/index.hpp"
#include "geometry/point2d.hpp"
@@ -19,15 +15,6 @@ namespace location
class State;
}
-class Drawer;
-
-namespace gui
-{
- class Button;
- class Controller;
- class CachedTextView;
-}
-
class Framework;
class CountryStatusDisplay;
class CompassArrow;
@@ -38,16 +25,19 @@ class Ruler;
class InformationDisplay
{
Framework * m_framework;
- graphics::FontDesc m_fontDesc;
+ ///@TODO UVR
+ //graphics::FontDesc m_fontDesc;
shared_ptr<Ruler> m_ruler;
- gui::Controller * m_controller;
+ ///@TODO UVR
+ //gui::Controller * m_controller;
shared_ptr<CountryStatusDisplay> m_countryStatusDisplay;
shared_ptr<CompassArrow> m_compassArrow;
shared_ptr<location::State> m_locationState;
- shared_ptr<gui::CachedTextView> m_debugLabel;
- shared_ptr<gui::CachedTextView> m_copyrightLabel;
+ ///@TODO UVR
+ //shared_ptr<gui::CachedTextView> m_debugLabel;
+ //shared_ptr<gui::CachedTextView> m_copyrightLabel;
void InitRuler(Framework * fw);
void InitDebugLabel();
@@ -67,14 +57,9 @@ public:
};
InformationDisplay(Framework * framework);
+ //void setController(gui::Controller * controller);
- void setController(gui::Controller * controller);
- /*!
- * \brief SetWidgetPivotsByDefault sets the default pivot points for all the widgets on the map.
- * The pivot points can be overridden by a call of SetWidgetPivot()
- * after Framework::OnSize() call.
- */
- void SetWidgetPivotsByDefault(int screenWidth, int screenHeight);
+ void setDisplayRect(m2::RectI const & rect);
void setVisualScale(double visualScale);
bool isCopyrightActive() const;
diff --git a/map/location_state.cpp b/map/location_state.cpp
index 00f7e333d3..00dce157e8 100644
--- a/map/location_state.cpp
+++ b/map/location_state.cpp
@@ -3,19 +3,11 @@
#include "map/framework.hpp"
#include "map/move_screen_task.hpp"
-#ifndef USE_DRAPE
-#include "graphics/display_list.hpp"
-#include "graphics/icon.hpp"
-#include "graphics/depth_constants.hpp"
-#endif // USE_DRAPE
-
#include "anim/controller.hpp"
#include "anim/task.hpp"
#include "anim/angle_interpolation.hpp"
#include "anim/segment_interpolation.hpp"
-#include "gui/controller.hpp"
-
#include "indexer/mercator.hpp"
#include "indexer/scales.hpp"
@@ -105,12 +97,14 @@ public:
{
m_hasPendingAnimation = false;
SetParams(m_pendingDstPos, m_pendingAngle);
- m_fw->Invalidate();
+ ///@TODO UVR
+ //m_fw->Invalidate();
}
else if (m_idleFrames > 0)
{
--m_idleFrames;
- m_fw->Invalidate();
+ ///@TODO UVR
+ //m_fw->Invalidate();
}
}
@@ -185,7 +179,8 @@ private:
m_fw->SetViewportCenter(currentPosition + rotateVector);
m_fw->GetNavigator().SetAngle(currentAngle);
- m_fw->Invalidate();
+ ///@TODO UVR
+ //m_fw->Invalidate();
}
void SetParams(m2::PointD const & dstPos, double dstAngle)
@@ -251,13 +246,11 @@ string const LocationStateMode = "LastLocationStateMode";
}
State::Params::Params()
- : m_locationAreaColor(0, 0, 0, 0),
- m_framework(0)
+ : m_framework(0)
{}
State::State(Params const & p)
- : TBase(p),
- m_modeInfo(Follow),
+ : m_modeInfo(Follow),
m_errorRadius(0),
m_position(0, 0),
m_drawDirection(0.0),
@@ -266,7 +259,6 @@ State::State(Params const & p)
m_routeMatchingInfo(),
m_currentSlotID(0)
{
- m_locationAreaColor = p.m_locationAreaColor;
m_framework = p.m_framework;
int mode = 0;
@@ -277,7 +269,8 @@ State::State(Params const & p)
if (Settings::Get("IsBenchmarking", isBench) && isBench)
m_modeInfo = UnknownPosition;
- setIsVisible(false);
+ ///@TODO UVR
+ //setIsVisible(false);
}
m2::PointD const & State::Position() const
@@ -393,8 +386,9 @@ void State::TurnOff()
{
StopLocationFollow();
SetModeInfo(UnknownPosition);
- setIsVisible(false);
- invalidate();
+ ///@TODO UVR
+ //setIsVisible(false);
+ //invalidate();
}
void State::OnLocationUpdate(location::GpsInfo const & info, bool isNavigable, location::RouteMatchingInfo const & routeMatchingInfo)
@@ -402,7 +396,8 @@ void State::OnLocationUpdate(location::GpsInfo const & info, bool isNavigable, l
Assign(info, isNavigable);
m_routeMatchingInfo = routeMatchingInfo;
- setIsVisible(true);
+ ///@TODO UVR
+ //setIsVisible(true);
if (GetMode() == PendingPosition)
{
@@ -413,7 +408,8 @@ void State::OnLocationUpdate(location::GpsInfo const & info, bool isNavigable, l
AnimateFollow();
CallPositionChangedListeners(m_position);
- invalidate();
+ ///@TODO UVR
+ //invalidate();
}
void State::OnCompassUpdate(location::CompassInfo const & info)
@@ -421,7 +417,8 @@ void State::OnCompassUpdate(location::CompassInfo const & info)
if (Assign(info))
{
AnimateFollow();
- invalidate();
+ ///@TODO UVR
+ //invalidate();
}
}
@@ -470,184 +467,41 @@ void State::InvalidatePosition()
SetModeInfo(ChangeMode(m_modeInfo, UnknownPosition));
SetModeInfo(ChangeMode(m_modeInfo, PendingPosition));
m_afterPendingMode = currentMode;
- setIsVisible(true);
+ ///@TODO UVR
+ //setIsVisible(true);
}
else if (currentMode == UnknownPosition)
{
m_afterPendingMode = Follow;
- setIsVisible(false);
+ ///@TODO UVR
+ //setIsVisible(false);
}
- invalidate();
+ ///@TODO UVR
+ //invalidate();
}
void State::cache()
{
-#ifndef USE_DRAPE
- CachePositionArrow();
- CacheRoutingArrow();
- CacheLocationMark();
-
- m_controller->GetCacheScreen()->completeCommands();
-#endif // USE_DRAPE
}
void State::purge()
{
-#ifndef USE_DRAPE
- m_positionArrow.reset();
- m_locationMarkDL.reset();
- m_positionMarkDL.reset();
- m_routingArrow.reset();
-#endif // USE_DRAPE
}
void State::update()
{
- if (isVisible() && IsModeHasPosition())
- {
- m2::PointD const pxPosition = m_framework->GetNavigator().GtoP(Position());
- setPivot(pxPosition, false);
+ ///@TODO UVR
+// if (isVisible() && IsModeHasPosition())
+// {
+// m2::PointD const pxPosition = m_framework->GetNavigator().GtoP(Position());
+// setPivot(pxPosition, false);
- if (m_animTask)
- static_cast<RotateAndFollowAnim *>(m_animTask.get())->Update();
- }
+// if (m_animTask)
+// static_cast<RotateAndFollowAnim *>(m_animTask.get())->Update();
+// }
}
-void State::draw(graphics::OverlayRenderer * r,
- math::Matrix<double, 3, 3> const & m) const
-{
-#ifndef USE_DRAPE
- if (!IsModeHasPosition() || !isVisible())
- return;
-
- checkDirtyLayout();
-
- m2::PointD const pxPosition = m_framework->GetNavigator().GtoP(Position());
- double const pxErrorRadius = pxPosition.Length(
- m_framework->GetNavigator().GtoP(Position() + m2::PointD(m_errorRadius, 0.0)));
-
- double const drawScale = pxErrorRadius / s_cacheRadius;
- m2::PointD const & pivotPosition = GetPositionForDraw();
-
- math::Matrix<double, 3, 3> locationDrawM = math::Shift(
- math::Scale(
- math::Identity<double, 3>(),
- drawScale,
- drawScale),
- pivotPosition);
-
- math::Matrix<double, 3, 3> const drawM = locationDrawM * m;
- // draw error sector
- r->drawDisplayList(m_locationMarkDL.get(), drawM);
-
- // if we know look direction than we draw arrow
- if (IsDirectionKnown())
- {
- double rotateAngle = m_drawDirection + GetModelView().GetAngle();
-
- math::Matrix<double, 3, 3> compassDrawM = math::Shift(
- math::Rotate(
- math::Identity<double, 3>(),
- rotateAngle),
- pivotPosition);
-
- if (!IsInRouting())
- r->drawDisplayList(m_positionArrow.get(), compassDrawM * m);
- else
- r->drawDisplayList(m_routingArrow.get(), compassDrawM * m);
- }
- else
- r->drawDisplayList(m_positionMarkDL.get(), drawM);
-#endif // USE_DRAPE
-}
-
-#ifndef USE_DRAPE
-void State::CachePositionArrow()
-{
- m_positionArrow.reset();
- m_positionArrow.reset(m_controller->GetCacheScreen()->createDisplayList());
- CacheArrow(m_positionArrow.get(), "current-position-compas");
-}
-
-void State::CacheRoutingArrow()
-{
- m_routingArrow.reset();
- m_routingArrow.reset(m_controller->GetCacheScreen()->createDisplayList());
- CacheArrow(m_routingArrow.get(), "current-routing-compas");
-}
-
-void State::CacheLocationMark()
-{
- graphics::Screen * cacheScreen = m_controller->GetCacheScreen();
-
- m_locationMarkDL.reset();
- m_locationMarkDL.reset(cacheScreen->createDisplayList());
-
- m_positionMarkDL.reset();
- m_positionMarkDL.reset(cacheScreen->createDisplayList());
-
- cacheScreen->beginFrame();
- cacheScreen->setDisplayList(m_locationMarkDL.get());
-
- cacheScreen->fillSector(m2::PointD(0, 0),
- 0, 2.0 * math::pi,
- s_cacheRadius,
- m_locationAreaColor,
- graphics::locationFaultDepth);
-
- cacheScreen->setDisplayList(m_positionMarkDL.get());
- cacheScreen->drawSymbol(m2::PointD(0, 0),
- "current-position",
- graphics::EPosCenter,
- graphics::locationDepth);
-
- cacheScreen->setDisplayList(0);
-
- cacheScreen->endFrame();
-}
-
-void State::CacheArrow(graphics::DisplayList * dl, const string & iconName)
-{
- graphics::Screen * cacheScreen = m_controller->GetCacheScreen();
- graphics::Icon::Info info(iconName);
-
- graphics::Resource const * res = cacheScreen->fromID(cacheScreen->findInfo(info));
- m2::RectU const rect = res->m_texRect;
- m2::PointD const halfArrowSize(rect.SizeX() / 2.0, rect.SizeY() / 2.0);
-
- cacheScreen->beginFrame();
- cacheScreen->setDisplayList(dl);
-
- m2::PointD coords[4] =
- {
- m2::PointD(-halfArrowSize.x, -halfArrowSize.y),
- m2::PointD(-halfArrowSize.x, halfArrowSize.y),
- m2::PointD( halfArrowSize.x, -halfArrowSize.y),
- m2::PointD( halfArrowSize.x, halfArrowSize.y)
- };
-
- m2::PointF const normal(0.0, 0.0);
- shared_ptr<graphics::gl::BaseTexture> texture = cacheScreen->pipeline(res->m_pipelineID).texture();
-
- m2::PointF texCoords[4] =
- {
- texture->mapPixel(m2::PointF(rect.minX(), rect.minY())),
- texture->mapPixel(m2::PointF(rect.minX(), rect.maxY())),
- texture->mapPixel(m2::PointF(rect.maxX(), rect.minY())),
- texture->mapPixel(m2::PointF(rect.maxX(), rect.maxY()))
- };
-
- cacheScreen->addTexturedStripStrided(coords, sizeof(m2::PointD),
- &normal, 0,
- texCoords, sizeof(m2::PointF),
- 4, graphics::locationDepth, res->m_pipelineID);
- cacheScreen->setDisplayList(0);
- cacheScreen->endFrame();
-}
-
-#endif // USE_DRAPE
-
bool State::IsRotationActive() const
{
return IsDirectionKnown();
@@ -725,7 +579,8 @@ void State::SetModeInfo(uint16_t modeInfo, bool callListeners)
CallStateModeListeners();
AnimateStateTransition(oldMode, newMode);
- invalidate();
+ ///@TODO UVR
+ //invalidate();
}
}
@@ -745,9 +600,11 @@ ScreenBase const & State::GetModelView() const
m2::PointD const State::GetRaFModeDefaultPxBind() const
{
- m2::RectD const & pixelRect = GetModelView().PixelRect();
- return m2::PointD(pixelRect.Center().x,
- pixelRect.maxY() - POSITION_Y_OFFSET * visualScale());
+ return m2::PointD();
+ ///@TODO UVR
+// m2::RectD const & pixelRect = GetModelView().PixelRect();
+// return m2::PointD(pixelRect.Center().x,
+// pixelRect.maxY() - POSITION_Y_OFFSET * visualScale());
}
void State::StopCompassFollowing()
@@ -851,7 +708,7 @@ void State::OnCompassTaped()
AnimateFollow();
}
-void State::OnSize(m2::RectD const & /*oldPixelRect*/)
+void State::OnSize()
{
if (GetMode() == RotateAndFollow)
{
@@ -955,7 +812,9 @@ m2::PointD const State::GetPositionForDraw() const
if (m_animTask != nullptr)
return m_framework->GtoP(static_cast<RotateAndFollowAnim *>(m_animTask.get())->GetPositionForDraw());
- return pivot();
+ return m2::PointD();
+ ///@TODO UVR
+ //return pivot();
}
}
diff --git a/map/location_state.hpp b/map/location_state.hpp
index 631acbf7b1..a62fde9772 100644
--- a/map/location_state.hpp
+++ b/map/location_state.hpp
@@ -1,7 +1,5 @@
#pragma once
-#include "gui/element.hpp"
-
#include "geometry/point2d.hpp"
#include "base/timer.hpp"
@@ -15,11 +13,9 @@
#include "std/unique_ptr.hpp"
#include "std/map.hpp"
-
class Framework;
class ScreenBase;
-namespace graphics { class DisplayList; }
namespace anim { class Task;}
namespace location
@@ -30,14 +26,14 @@ namespace location
// Class, that handles position and compass updates,
// centers, scales and rotates map according to this updates
// and draws location and compass marks.
- class State : public gui::Element
+ class State
{
- typedef gui::Element TBase;
public:
- struct Params : TBase::Params
+ struct Params
{
- graphics::Color m_locationAreaColor;
+ ///@TODO UVR
+ //graphics::Color m_locationAreaColor;
Framework * m_framework;
Params();
};
@@ -100,7 +96,7 @@ namespace location
void OnCompassTaped();
- void OnSize(m2::RectD const & oldPixelRect);
+ void OnSize();
/// @name GPS location updates routine.
//@{
@@ -114,9 +110,9 @@ namespace location
/// @name Override from graphics::OverlayElement and gui::Element.
//@{
- virtual m2::RectD GetBoundRect() const { return m2::RectD(); }
+ ///@TODO UVR
+ //virtual m2::RectD GetBoundRect() const { return m2::RectD(); }
- void draw(graphics::OverlayRenderer * r, math::Matrix<double, 3, 3> const & m) const;
bool hitTest(m2::PointD const & /*pt*/) const { return false; }
void cache();
@@ -133,14 +129,6 @@ namespace location
void CallPositionChangedListeners(m2::PointD const & pt);
void CallStateModeListeners();
-#ifndef USE_DRAPE
- void CachePositionArrow();
- void CacheRoutingArrow();
- void CacheLocationMark();
-
- void CacheArrow(graphics::DisplayList * dl, string const & iconName);
-#endif // USE_DRAPE
-
bool IsRotationActive() const;
bool IsInRouting() const;
bool IsRoutingFollowingDisabled() const;
@@ -192,13 +180,6 @@ namespace location
/// @name Compass Rendering Parameters
//@{
-#ifndef USE_DRAPE
- unique_ptr<graphics::DisplayList> m_positionArrow;
- unique_ptr<graphics::DisplayList> m_locationMarkDL;
- unique_ptr<graphics::DisplayList> m_positionMarkDL;
- unique_ptr<graphics::DisplayList> m_routingArrow;
-#endif // USE_DRAPE
- graphics::Color m_locationAreaColor;
//@}
/// @name Rotation mode animation
diff --git a/map/map_tests/bookmarks_test.cpp b/map/map_tests/bookmarks_test.cpp
index 38184fe6ac..c7b051c275 100644
--- a/map/map_tests/bookmarks_test.cpp
+++ b/map/map_tests/bookmarks_test.cpp
@@ -637,10 +637,10 @@ UNIT_TEST(TrackParsingTest_1)
TEST_EQUAL(cat->GetTracksCount(), 4, ());
string names[4] = { "Option1", "Pakkred1", "Pakkred2", "Pakkred3"};
- graphics::Color col[4] = {graphics::Color(230, 0, 0, 255),
- graphics::Color(171, 230, 0, 255),
- graphics::Color(0, 230, 117, 255),
- graphics::Color(0, 59, 230, 255)};
+ dp::Color col[4] = {dp::Color(230, 0, 0, 255),
+ dp::Color(171, 230, 0, 255),
+ dp::Color(0, 230, 117, 255),
+ dp::Color(0, 59, 230, 255)};
double length[4] = {3525.46839061, 27174.11393166, 27046.0456586, 23967.35765800};
for (size_t i = 0; i < ARRAY_SIZE(names); ++i)
@@ -662,6 +662,6 @@ UNIT_TEST(TrackParsingTest_2)
TEST_EQUAL(cat->GetTracksCount(), 1, ());
Track const * track = cat->GetTrack(0);
TEST_EQUAL(track->GetName(), "XY", ());
- TEST_EQUAL(track->GetMainColor(), graphics::Color(57, 255, 32, 255), ());
+ TEST_EQUAL(track->GetMainColor(), dp::Color(57, 255, 32, 255), ());
}
diff --git a/map/map_tests/map_tests.pro b/map/map_tests/map_tests.pro
index 57c4972ff2..713e978a5e 100644
--- a/map/map_tests/map_tests.pro
+++ b/map/map_tests/map_tests.pro
@@ -6,7 +6,7 @@ CONFIG -= app_bundle
TEMPLATE = app
ROOT_DIR = ../..
-DEPENDENCIES = map render gui routing search storage graphics indexer platform anim geometry coding base \
+DEPENDENCIES = map drape_frontend routing search storage drape indexer platform geometry coding base \
freetype fribidi expat protobuf tomcrypt jansson osrm stats_client minizip succinct
DEPENDENCIES *= opening_hours
diff --git a/map/map_tests/mwm_url_tests.cpp b/map/map_tests/mwm_url_tests.cpp
index 8f295fded1..5b6d5f26bd 100644
--- a/map/map_tests/mwm_url_tests.cpp
+++ b/map/map_tests/mwm_url_tests.cpp
@@ -35,8 +35,7 @@ namespace
m2::RectD GetViewport()
{
m2::RectD rect;
- ScalesProcessor scales;
- m_api.GetViewportRect(scales, rect);
+ m_api.GetViewportRect(rect);
return rect;
}
string const & GetAppTitle() { return m_api.GetAppTitle(); }
diff --git a/map/map_tests/navigator_test.cpp b/map/map_tests/navigator_test.cpp
index cadeccbcbf..d35c769a5a 100644
--- a/map/map_tests/navigator_test.cpp
+++ b/map/map_tests/navigator_test.cpp
@@ -30,8 +30,7 @@
UNIT_TEST(Navigator_Scale2Points)
{
- ScalesProcessor scales;
- Navigator navigator(scales);
+ Navigator navigator;
navigator.OnSize(0, 0, 200, 100);
navigator.SetFromRect(m2::AnyRectD(m2::RectD(0, 0, 8, 4)));
@@ -69,8 +68,7 @@ namespace
UNIT_TEST(Navigator_G2P_P2G)
{
- ScalesProcessor scales;
- Navigator navigator(scales);
+ Navigator navigator;
// Initialize.
navigator.OnSize(0, 0, 200, 100);
diff --git a/map/mwm_url.cpp b/map/mwm_url.cpp
index 8b2bc68f57..0f3479e2aa 100644
--- a/map/mwm_url.cpp
+++ b/map/mwm_url.cpp
@@ -1,6 +1,6 @@
-#include "mwm_url.hpp"
+#include "map/mwm_url.hpp"
-#include "render/scales_processor.hpp"
+#include "drape_frontend/visual_params.hpp"
#include "indexer/mercator.hpp"
#include "indexer/scales.hpp"
@@ -174,14 +174,14 @@ void ParsedMapApi::Reset()
m_goBackOnBalloonClick = false;
}
-bool ParsedMapApi::GetViewportRect(ScalesProcessor const & scales, m2::RectD & rect) const
+bool ParsedMapApi::GetViewportRect(m2::RectD & rect) const
{
ASSERT(m_controller != NULL, ());
size_t markCount = m_controller->GetUserMarkCount();
if (markCount == 1 && m_zoomLevel >= 1)
{
double zoom = min(static_cast<double>(scales::GetUpperComfortScale()), m_zoomLevel);
- rect = scales.GetRectForDrawScale(zoom, m_controller->GetUserMark(0)->GetOrg());
+ rect = df::GetRectForDrawScale(zoom, m_controller->GetUserMark(0)->GetOrg());
return true;
}
else
diff --git a/map/mwm_url.hpp b/map/mwm_url.hpp
index a0e71ee9dd..36495bc930 100644
--- a/map/mwm_url.hpp
+++ b/map/mwm_url.hpp
@@ -39,7 +39,7 @@ public:
bool GoBackOnBalloonClick() const { return m_goBackOnBalloonClick; }
/// @name Used in settings map viewport after invoking API.
- bool GetViewportRect(ScalesProcessor const & scales, m2::RectD & rect) const;
+ bool GetViewportRect(m2::RectD & rect) const;
UserMark const * GetSinglePoint() const;
private:
diff --git a/map/navigator.cpp b/map/navigator.cpp
index b32a723df6..ff46c54999 100644
--- a/map/navigator.cpp
+++ b/map/navigator.cpp
@@ -1,5 +1,7 @@
#include "map/navigator.hpp"
+#include "drape_frontend/visual_params.hpp"
+
#include "indexer/scales.hpp"
#include "platform/settings.hpp"
@@ -25,15 +27,14 @@ namespace
}
}
-Navigator::Navigator(ScalesProcessor const & scales)
- : m_scales(scales),
- m_InAction(false)
+Navigator::Navigator()
+ : m_InAction(false)
{
}
void Navigator::SetFromRects(m2::AnyRectD const & glbRect, m2::RectD const & pxRect)
{
- m2::RectD const & worldR = m_scales.GetWorldRect();
+ m2::RectD const & worldR = df::GetWorldRect();
m_Screen.SetFromRects(glbRect, pxRect);
m_Screen = ScaleInto(m_Screen, worldR);
@@ -47,7 +48,7 @@ void Navigator::SetFromRects(m2::AnyRectD const & glbRect, m2::RectD const & pxR
void Navigator::SetFromRect(m2::AnyRectD const & r)
{
- m2::RectD const & worldR = m_scales.GetWorldRect();
+ m2::RectD const & worldR = df::GetWorldRect();
m_Screen.SetFromRect(r);
m_Screen = ScaleInto(m_Screen, worldR);
@@ -81,7 +82,7 @@ double Navigator::ComputeMoveSpeed(m2::PointD const & /*p0*/, m2::PointD const &
void Navigator::OnSize(int x0, int y0, int w, int h)
{
- m2::RectD const & worldR = m_scales.GetWorldRect();
+ m2::RectD const & worldR = df::GetWorldRect();
m_Screen.OnSize(x0, y0, w, h);
m_Screen = ShrinkAndScaleInto(m_Screen, worldR);
@@ -123,8 +124,6 @@ ScreenBase const Navigator::ShrinkInto(ScreenBase const & screen, m2::RectD boun
{
ReduceRectHack(boundRect);
-// ASSERT ( CanShrinkInto(screen, boundRect), () );
-
ScreenBase res = screen;
m2::RectD clipRect = res.ClipRect();
@@ -144,18 +143,6 @@ ScreenBase const Navigator::ShrinkInto(ScreenBase const & screen, m2::RectD boun
return res;
}
-bool Navigator::CanRotateInto(ScreenBase const & screen, m2::RectD const & boundRect)
-{
- /// @todo
- return false;
-}
-
-ScreenBase const Navigator::RotateInto(ScreenBase const & screen, m2::RectD const & boundRect)
-{
- /// @todo
- return screen;
-}
-
ScreenBase const Navigator::ScaleInto(ScreenBase const & screen, m2::RectD boundRect)
{
ReduceRectHack(boundRect);
@@ -319,7 +306,7 @@ void Navigator::DoDrag(m2::PointD const & pt, double /*timeInSec*/)
if (m_LastPt1 == pt)
return;
- ScreenBase const s = ShrinkInto(m_StartScreen, m_scales.GetWorldRect());
+ ScreenBase const s = ShrinkInto(m_StartScreen, df::GetWorldRect());
double dx = pt.x - m_StartPt1.x;
double dy = pt.y - m_StartPt1.y;
@@ -487,20 +474,20 @@ shared_ptr<anim::Task> Navigator::ScaleToPointAnim(m2::PointD const & pt, double
bool Navigator::CheckMinScale(ScreenBase const & screen) const
{
m2::RectD const & r = screen.ClipRect();
- m2::RectD const & worldR = m_scales.GetWorldRect();
+ m2::RectD const & worldR = df::GetWorldRect();
return (r.SizeX() <= worldR.SizeX() || r.SizeY() <= worldR.SizeY());
}
bool Navigator::CheckMaxScale(ScreenBase const & screen) const
{
- return (m_scales.GetDrawTileScale(screen) <= scales::GetUpperStyleScale());
+ return (df::GetDrawTileScale(screen) <= scales::GetUpperStyleScale());
}
bool Navigator::CheckBorders(ScreenBase const & screen) const
{
m2::RectD const & r = screen.ClipRect();
- m2::RectD const & worldR = m_scales.GetWorldRect();
+ m2::RectD const & worldR = df::GetWorldRect();
return (r.IsRectInside(worldR) || worldR.IsRectInside(r));
}
@@ -521,7 +508,7 @@ bool Navigator::ScaleImpl(m2::PointD const & newPt1, m2::PointD const & newPt2,
if (!skipMinScaleAndBordersCheck && !CheckMinScale(tmp))
return false;
- m2::RectD const & worldR = m_scales.GetWorldRect();
+ m2::RectD const & worldR = df::GetWorldRect();
if (!skipMinScaleAndBordersCheck && !CheckBorders(tmp))
{
@@ -650,5 +637,5 @@ bool Navigator::Update(double timeInSec)
int Navigator::GetDrawScale() const
{
- return m_scales.GetDrawTileScale(m_Screen);
+ return df::GetDrawTileScale(m_Screen);
}
diff --git a/map/navigator.hpp b/map/navigator.hpp
index 7739c771c6..8c33800657 100644
--- a/map/navigator.hpp
+++ b/map/navigator.hpp
@@ -1,5 +1,4 @@
#pragma once
-#include "render/scales_processor.hpp"
#include "anim/task.hpp"
@@ -14,7 +13,7 @@
class Navigator
{
public:
- Navigator(ScalesProcessor const & scales);
+ Navigator();
void SetFromRect(m2::AnyRectD const & r);
void CenterViewport(m2::PointD const & p);
@@ -72,8 +71,6 @@ public:
int GetDrawScale() const;
private:
- ScalesProcessor const & m_scales;
-
bool CheckMinScale(ScreenBase const & screen) const;
bool CheckMaxScale(ScreenBase const & screen) const;
bool CheckBorders(ScreenBase const & screen) const;
@@ -81,9 +78,6 @@ private:
static bool CanShrinkInto(ScreenBase const & screen, m2::RectD const & boundRect);
static ScreenBase const ShrinkInto(ScreenBase const & screen, m2::RectD boundRect);
- static bool CanRotateInto(ScreenBase const & screen, m2::RectD const & boundRect);
- static ScreenBase const RotateInto(ScreenBase const & screen, m2::RectD const & boundRect);
-
static ScreenBase const ScaleInto(ScreenBase const & screen, m2::RectD boundRect);
static ScreenBase const ShrinkAndScaleInto(ScreenBase const & screen, m2::RectD boundRect);
diff --git a/map/pin_click_manager.cpp b/map/pin_click_manager.cpp
index 3bf184df56..733743d4b3 100644
--- a/map/pin_click_manager.cpp
+++ b/map/pin_click_manager.cpp
@@ -6,23 +6,16 @@
#include "anim/task.hpp"
#include "anim/controller.hpp"
-#include "graphics/depth_constants.hpp"
-#include "graphics/opengl/base_texture.hpp"
-#include "graphics/display_list.hpp"
-#include "graphics/icon.hpp"
-
#include "geometry/transformations.hpp"
-#include "gui/controller.hpp"
-
-
PinClickManager::PinClickManager(Framework & f)
: m_f(f)
{}
void PinClickManager::Hide()
{
- m_f.Invalidate();
+ ///@TODO UVR
+ //m_f.Invalidate();
}
void PinClickManager::OnShowMark(UserMark const * mark)
@@ -37,13 +30,15 @@ void PinClickManager::SetBalloonVisible(bool isVisible)
if (!isVisible && m_f.HasActiveUserMark())
OnDismiss();
- m_f.Invalidate();
+ ///@TODO UVR
+ //m_f.Invalidate();
}
void PinClickManager::RemovePin()
{
m_f.ActivateUserMark(NULL);
- m_f.Invalidate();
+ ///@TODO UVR
+ //m_f.Invalidate();
}
void PinClickManager::Dismiss()
diff --git a/map/pin_click_manager.hpp b/map/pin_click_manager.hpp
index 2750432607..ef307fbf68 100644
--- a/map/pin_click_manager.hpp
+++ b/map/pin_click_manager.hpp
@@ -1,8 +1,6 @@
#pragma once
#include "map/bookmark.hpp"
-#include "graphics/defines.hpp"
-
#include "geometry/point2d.hpp"
#include "std/function.hpp"
@@ -27,7 +25,6 @@ class PinClickManager
public:
PinClickManager(Framework & f);
- void RenderPolicyCreated(graphics::EDensity density) {}
void LocationChanged(location::GpsInfo const & info) {}
void OnShowMark(UserMark const * mark);
diff --git a/map/rotate_screen_task.cpp b/map/rotate_screen_task.cpp
index 3a8cb49ff8..65c59ef2ed 100644
--- a/map/rotate_screen_task.cpp
+++ b/map/rotate_screen_task.cpp
@@ -19,7 +19,8 @@ void RotateScreenTask::OnStep(double ts)
anim::AngleInterpolation::OnStep(ts);
Navigator & nav = m_framework->GetNavigator();
nav.SetAngle(nav.Screen().GetAngle() + m_outAngle - prevAngle);
- m_framework->Invalidate();
+ ///@TODO UVR
+ //m_framework->Invalidate();
}
void RotateScreenTask::OnEnd(double ts)
@@ -27,7 +28,8 @@ void RotateScreenTask::OnEnd(double ts)
anim::AngleInterpolation::OnEnd(ts);
Navigator & nav = m_framework->GetNavigator();
nav.SetAngle(m_outAngle);
- m_framework->Invalidate();
+ ///@TODO UVR
+ //m_framework->Invalidate();
}
bool RotateScreenTask::IsVisual() const
diff --git a/map/ruler.cpp b/map/ruler.cpp
index 7704db5a25..e539d3eb97 100644
--- a/map/ruler.cpp
+++ b/map/ruler.cpp
@@ -7,23 +7,12 @@
#include "platform/measurement_utils.hpp"
#include "platform/settings.hpp"
-#include "gui/controller.hpp"
-
-#include "graphics/glyph.hpp"
-#include "graphics/brush.hpp"
-#include "graphics/screen.hpp"
-#include "graphics/display_list.hpp"
-#include "graphics/uniforms_holder.hpp"
-
#include "indexer/mercator.hpp"
#include "geometry/transformations.hpp"
#include "base/string_utils.hpp"
-
-using namespace graphics;
-
namespace
{
static const int RulerHeight = 2;
@@ -104,7 +93,7 @@ Ruler::RulerFrame::RulerFrame(Framework & f, const Ruler::RulerFrame::frame_end_
Ruler::RulerFrame::RulerFrame(const Ruler::RulerFrame & other, const Ruler::RulerFrame::frame_end_fn & fn)
- : m_f(other.m_f), m_dl(other.m_dl), m_textDL(other.m_textDL)
+ : m_f(other.m_f)
{
m_textLengthInPx = other.m_textLengthInPx;
m_scale = other.m_scale;
@@ -128,140 +117,139 @@ Ruler::RulerFrame::~RulerFrame()
bool Ruler::RulerFrame::IsValid() const
{
- return m_dl != NULL && m_textDL != NULL;
-}
-
-void Ruler::RulerFrame::Cache(const string & text, FontDesc const & f)
-{
- gui::Controller * controller = m_f.GetGuiController();
- Screen * cs = controller->GetCacheScreen();
- double const k = m_f.GetVisualScale();
-
- // Create solid line DL.
- if (m_dl == NULL)
- {
- m_dl.reset(cs->createDisplayList());
-
- cs->beginFrame();
- cs->setDisplayList(m_dl.get());
- cs->applyVarAlfaStates();
-
- m2::PointD coords[] =
- {
- /* 3*/ m2::PointD(0.0, -RulerHeight * k),
- /* 4*/ m2::PointD(0.0, 0.0),
- /*14*/ m2::PointD(CacheLength, -RulerHeight * k),
- /*15*/ m2::PointD(CacheLength, 0.0 * k),
- };
-
- Brush::Info const brushInfo(f.m_color);
- Resource const * brushRes = cs->fromID(cs->mapInfo(brushInfo));
- m2::PointF const brushCenter = cs->pipeline(brushRes->m_pipelineID).texture()->mapPixel(brushRes->m_texRect.Center());
-
- m2::PointF normal(0.0, 0.0);
- cs->addTexturedStripStrided(coords , sizeof(m2::PointD),
- &normal, 0,
- &brushCenter, 0, ARRAY_SIZE(coords),
- m_depth, brushRes->m_pipelineID);
-
- cs->setDisplayList(0);
- cs->applyStates();
- cs->endFrame();
- }
-
- // Create text DL.
-
- ASSERT(!text.empty(), ());
-
- {
- m_textDL.reset();
- m_textDL.reset(cs->createDisplayList());
-
- cs->beginFrame();
- cs->setDisplayList(m_textDL.get());
- cs->applyVarAlfaStates();
-
- strings::UniString uniString = strings::MakeUniString(text);
- size_t length = uniString.size();
- buffer_vector<Glyph::Info, 8> infos(length, Glyph::Info());
- buffer_vector<Resource::Info const *, 8> resInfos(length, NULL);
- buffer_vector<uint32_t, 8> ids(length, 0);
- buffer_vector<Resource const *, 8> glyphRes(length, NULL);
-
- for (size_t i = 0; i < uniString.size(); ++i)
- {
- infos[i] = Glyph::Info(GlyphKey(uniString[i], f.m_size, false, f.m_color),
- controller->GetGlyphCache());
-
- resInfos[i] = &infos[i];
- }
-
- if (cs->mapInfo(resInfos.data(), ids.data(), infos.size()))
- {
- for (size_t i = 0; i < ids.size(); ++i)
- {
- Resource const * res = cs->fromID(ids[i]);
- glyphRes[i] = res;
- }
-
- int32_t pipelineID = glyphRes[0]->m_pipelineID;
- shared_ptr<gl::BaseTexture> texture = cs->pipeline(pipelineID).texture();
- double lengthFromStart = 0.0;
-
- buffer_vector<m2::PointF, 48> coords;
- buffer_vector<m2::PointF, 48> normals;
- buffer_vector<m2::PointF, 48> texCoords;
-
- for (size_t i = 0; i < uniString.size(); ++i)
- {
- double baseX = lengthFromStart;
- coords.push_back(m2::PointD(baseX, 0.0));
- coords.push_back(m2::PointD(baseX, 0.0));
- coords.push_back(m2::PointD(baseX, 0.0));
-
- coords.push_back(m2::PointD(baseX, 0.0));
- coords.push_back(m2::PointD(baseX, 0.0));
- coords.push_back(m2::PointD(baseX, 0.0));
-
- m2::RectI resourceRect(glyphRes[i]->m_texRect);
- resourceRect.Inflate(-1, -1);
- double w = resourceRect.SizeX();
- double h = resourceRect.SizeY();
- lengthFromStart += infos[i].m_metrics.m_xAdvance;
-
- normals.push_back(m2::PointF(0.0, 0.0));
- normals.push_back(m2::PointF(0.0, -h));
- normals.push_back(m2::PointF(w , 0.0));
-
- normals.push_back(m2::PointF(w , 0.0));
- normals.push_back(m2::PointF(0.0, -h));
- normals.push_back(m2::PointF(w , -h));
-
- texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.minX(), resourceRect.maxY())));
- texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.minX(), resourceRect.minY())));
- texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.maxX(), resourceRect.maxY())));
-
- texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.maxX(), resourceRect.maxY())));
- texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.minX(), resourceRect.minY())));
- texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.maxX(), resourceRect.minY())));
- }
-
- m_textLengthInPx = lengthFromStart;
- cs->addTexturedListStrided(coords.data(), sizeof(m2::PointF),
- normals.data(), sizeof(m2::PointF),
- texCoords.data(), sizeof(m2::PointF),
- coords.size(), m_depth, pipelineID);
- }
-
- cs->setDisplayList(0);
- cs->endFrame();
- }
-}
+ return false;
+}
+
+///@TODO UVR
+//void Ruler::RulerFrame::Cache(const string & text, FontDesc const & f)
+//{
+// gui::Controller * controller = m_f.GetGuiController();
+// Screen * cs = controller->GetCacheScreen();
+// double const k = m_f.GetVisualScale();
+
+// // Create solid line DL.
+// if (m_dl == NULL)
+// {
+// m_dl.reset(cs->createDisplayList());
+
+// cs->beginFrame();
+// cs->setDisplayList(m_dl.get());
+// cs->applyVarAlfaStates();
+
+// m2::PointD coords[] =
+// {
+// /* 3*/ m2::PointD(0.0, -RulerHeight * k),
+// /* 4*/ m2::PointD(0.0, 0.0),
+// /*14*/ m2::PointD(CacheLength, -RulerHeight * k),
+// /*15*/ m2::PointD(CacheLength, 0.0 * k),
+// };
+
+// Brush::Info const brushInfo(f.m_color);
+// Resource const * brushRes = cs->fromID(cs->mapInfo(brushInfo));
+// m2::PointF const brushCenter = cs->pipeline(brushRes->m_pipelineID).texture()->mapPixel(brushRes->m_texRect.Center());
+
+// m2::PointF normal(0.0, 0.0);
+// cs->addTexturedStripStrided(coords , sizeof(m2::PointD),
+// &normal, 0,
+// &brushCenter, 0, ARRAY_SIZE(coords),
+// m_depth, brushRes->m_pipelineID);
+
+// cs->setDisplayList(0);
+// cs->applyStates();
+// cs->endFrame();
+// }
+
+// // Create text DL.
+
+// ASSERT(!text.empty(), ());
+
+// {
+// m_textDL.reset();
+// m_textDL.reset(cs->createDisplayList());
+
+// cs->beginFrame();
+// cs->setDisplayList(m_textDL.get());
+// cs->applyVarAlfaStates();
+
+// strings::UniString uniString = strings::MakeUniString(text);
+// size_t length = uniString.size();
+// buffer_vector<Glyph::Info, 8> infos(length, Glyph::Info());
+// buffer_vector<Resource::Info const *, 8> resInfos(length, NULL);
+// buffer_vector<uint32_t, 8> ids(length, 0);
+// buffer_vector<Resource const *, 8> glyphRes(length, NULL);
+
+// for (size_t i = 0; i < uniString.size(); ++i)
+// {
+// infos[i] = Glyph::Info(GlyphKey(uniString[i], f.m_size, false, f.m_color),
+// controller->GetGlyphCache());
+
+// resInfos[i] = &infos[i];
+// }
+
+// if (cs->mapInfo(resInfos.data(), ids.data(), infos.size()))
+// {
+// for (size_t i = 0; i < ids.size(); ++i)
+// {
+// Resource const * res = cs->fromID(ids[i]);
+// glyphRes[i] = res;
+// }
+
+// int32_t pipelineID = glyphRes[0]->m_pipelineID;
+// shared_ptr<gl::BaseTexture> texture = cs->pipeline(pipelineID).texture();
+// double lengthFromStart = 0.0;
+
+// buffer_vector<m2::PointF, 48> coords;
+// buffer_vector<m2::PointF, 48> normals;
+// buffer_vector<m2::PointF, 48> texCoords;
+
+// for (size_t i = 0; i < uniString.size(); ++i)
+// {
+// double baseX = lengthFromStart;
+// coords.push_back(m2::PointD(baseX, 0.0));
+// coords.push_back(m2::PointD(baseX, 0.0));
+// coords.push_back(m2::PointD(baseX, 0.0));
+
+// coords.push_back(m2::PointD(baseX, 0.0));
+// coords.push_back(m2::PointD(baseX, 0.0));
+// coords.push_back(m2::PointD(baseX, 0.0));
+
+// m2::RectI resourceRect(glyphRes[i]->m_texRect);
+// resourceRect.Inflate(-1, -1);
+// double w = resourceRect.SizeX();
+// double h = resourceRect.SizeY();
+// lengthFromStart += infos[i].m_metrics.m_xAdvance;
+
+// normals.push_back(m2::PointF(0.0, 0.0));
+// normals.push_back(m2::PointF(0.0, -h));
+// normals.push_back(m2::PointF(w , 0.0));
+
+// normals.push_back(m2::PointF(w , 0.0));
+// normals.push_back(m2::PointF(0.0, -h));
+// normals.push_back(m2::PointF(w , -h));
+
+// texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.minX(), resourceRect.maxY())));
+// texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.minX(), resourceRect.minY())));
+// texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.maxX(), resourceRect.maxY())));
+
+// texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.maxX(), resourceRect.maxY())));
+// texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.minX(), resourceRect.minY())));
+// texCoords.push_back(texture->mapPixel(m2::PointF(resourceRect.maxX(), resourceRect.minY())));
+// }
+
+// m_textLengthInPx = lengthFromStart;
+// cs->addTexturedListStrided(coords.data(), sizeof(m2::PointF),
+// normals.data(), sizeof(m2::PointF),
+// texCoords.data(), sizeof(m2::PointF),
+// coords.size(), m_depth, pipelineID);
+// }
+
+// cs->setDisplayList(0);
+// cs->endFrame();
+// }
+//}
void Ruler::RulerFrame::Purge()
{
- m_dl.reset();
- m_textDL.reset();
}
bool Ruler::RulerFrame::IsHidingAnim() const
@@ -309,23 +297,24 @@ void Ruler::RulerFrame::HideAnimate(bool needPause)
CreateAnim(1.0, 0.0, timeInterval, offset, false);
}
-void Ruler::RulerFrame::Draw(OverlayRenderer * r, const math::Matrix<double, 3, 3> & m)
-{
- ASSERT(m_dl, ());
- ASSERT(m_textDL, ());
+///@TODO UVR
+//void Ruler::RulerFrame::Draw(OverlayRenderer * r, const math::Matrix<double, 3, 3> & m)
+//{
+// ASSERT(m_dl, ());
+// ASSERT(m_textDL, ());
- UniformsHolder holder;
- holder.insertValue(ETransparency, GetCurrentAlfa());
+// UniformsHolder holder;
+// holder.insertValue(ETransparency, GetCurrentAlfa());
- r->drawDisplayList(m_dl.get(), math::Shift(
- math::Scale(m, m2::PointD(m_scale, 1.0)),
- m_orgPt), &holder);
+// r->drawDisplayList(m_dl.get(), math::Shift(
+// math::Scale(m, m2::PointD(m_scale, 1.0)),
+// m_orgPt), &holder);
- double const yOffset = -(2 + TextOffsetFromRuler * m_f.GetVisualScale());
- r->drawDisplayList(m_textDL.get(),
- math::Shift(m, m_orgPt + m2::PointF(CacheLength * m_scale - m_textLengthInPx, yOffset)),
- &holder);
-}
+// double const yOffset = -(2 + TextOffsetFromRuler * m_f.GetVisualScale());
+// r->drawDisplayList(m_textDL.get(),
+// math::Shift(m, m_orgPt + m2::PointF(CacheLength * m_scale - m_textLengthInPx, yOffset)),
+// &holder);
+//}
void Ruler::RulerFrame::CreateAnim(double startAlfa, double endAlfa, double timeInterval, double timeOffset, bool isVisibleAtEnd)
{
@@ -421,38 +410,40 @@ Ruler::Params::Params()
{}
Ruler::Ruler(Params const & p)
- : BaseT(p),
- m_currentRangeIndex(InvalidUnitValue),
+ : m_currentRangeIndex(InvalidUnitValue),
m_currSystem(0),
m_framework(p.m_framework)
{
- setIsVisible(false);
+ ///@TODO UVR
+ //setIsVisible(false);
}
void Ruler::AnimateShow()
{
- RulerFrame * frame = GetMainFrame();
- if (!isVisible() && (!frame->IsAnimActive() || frame->IsHidingAnim()))
- {
- setIsVisible(true);
- frame->ShowAnimate(false);
- m_framework->Invalidate();
- }
- else if (isVisible() && (frame->IsAnimActive() && frame->IsHidingAnim()))
- {
- frame->ShowAnimate(false);
- m_framework->Invalidate();
- }
+ ///@TODO UVR
+// RulerFrame * frame = GetMainFrame();
+// if (!isVisible() && (!frame->IsAnimActive() || frame->IsHidingAnim()))
+// {
+// setIsVisible(true);
+// frame->ShowAnimate(false);
+// m_framework->Invalidate();
+// }
+// else if (isVisible() && (frame->IsAnimActive() && frame->IsHidingAnim()))
+// {
+// frame->ShowAnimate(false);
+// m_framework->Invalidate();
+// }
}
void Ruler::AnimateHide()
{
- RulerFrame * frame = GetMainFrame();
- if (isVisible() && (!frame->IsAnimActive() || !frame->IsHidingAnim()))
- {
- frame->HideAnimate(true);
- m_framework->Invalidate();
- }
+ ///@TODO UVR
+// RulerFrame * frame = GetMainFrame();
+// if (isVisible() && (!frame->IsAnimActive() || !frame->IsHidingAnim()))
+// {
+// frame->HideAnimate(true);
+// m_framework->Invalidate();
+// }
}
void Ruler::layout()
@@ -480,22 +471,24 @@ void Ruler::layout()
void Ruler::UpdateText(const string & text)
{
- RulerFrame * frame = GetMainFrame();
- if (frame->IsAnimActive() && frame->IsHidingAnim())
- return;
+ ///@TODO UVR
+// RulerFrame * frame = GetMainFrame();
+// if (frame->IsAnimActive() && frame->IsHidingAnim())
+// return;
- if (frame->IsValid())
- m_animFrame.reset(new RulerFrame(*frame, bind(&Ruler::AnimFrameAnimEnded, this, _1, _2)));
+// if (frame->IsValid())
+// m_animFrame.reset(new RulerFrame(*frame, bind(&Ruler::AnimFrameAnimEnded, this, _1, _2)));
- frame->Cache(text, font(EActive));
- if (isVisible())
- frame->ShowAnimate(true);
+// frame->Cache(text, font(EActive));
+// if (isVisible())
+// frame->ShowAnimate(true);
}
void Ruler::MainFrameAnimEnded(bool isVisible, RulerFrame * frame)
{
- setIsVisible(isVisible);
- ASSERT(GetMainFrame() == frame, ());
+ ///@TODO UVR
+// setIsVisible(isVisible);
+// ASSERT(GetMainFrame() == frame, ());
}
void Ruler::AnimFrameAnimEnded(bool /*isVisible*/, RulerFrame * frame)
@@ -506,9 +499,11 @@ void Ruler::AnimFrameAnimEnded(bool /*isVisible*/, RulerFrame * frame)
Ruler::RulerFrame * Ruler::GetMainFrame()
{
- if (!m_mainFrame)
- m_mainFrame.reset(new RulerFrame(*m_framework, bind(&Ruler::MainFrameAnimEnded, this, _1, _2), depth()));
- return m_mainFrame.get();
+ ///@TODO UVR
+// if (!m_mainFrame)
+// m_mainFrame.reset(new RulerFrame(*m_framework, bind(&Ruler::MainFrameAnimEnded, this, _1, _2), depth()));
+// return m_mainFrame.get();
+ return nullptr;
}
Ruler::RulerFrame * Ruler::GetMainFrame() const
@@ -524,74 +519,78 @@ void Ruler::purge()
m_mainFrame.reset();
m_animFrame.reset();
- setIsVisible(false);
+ ///@TODO UVR
+ //setIsVisible(false);
}
void Ruler::update()
{
- double const k = visualScale();
+ ///@TODO UVR
+// double const k = visualScale();
- ScreenBase const & screen = m_framework->GetNavigator().Screen();
+// ScreenBase const & screen = m_framework->GetNavigator().Screen();
- int const rulerHeight = my::rounds(RulerHeight * k);
- int const minPxWidth = my::rounds(MinPixelWidth * k);
+// int const rulerHeight = my::rounds(RulerHeight * k);
+// int const minPxWidth = my::rounds(MinPixelWidth * k);
- // pivot() here is the down right point of the ruler.
- // Get global points of ruler and distance according to minPxWidth.
+// // pivot() here is the down right point of the ruler.
+// // Get global points of ruler and distance according to minPxWidth.
- m2::PointD pt1 = screen.PtoG(pivot());
- m2::PointD pt0 = screen.PtoG(pivot() - m2::PointD(minPxWidth, 0));
+// m2::PointD pt1 = screen.PtoG(pivot());
+// m2::PointD pt0 = screen.PtoG(pivot() - m2::PointD(minPxWidth, 0));
- double const distanceInMetres = MercatorBounds::DistanceOnEarth(pt0, pt1);
+// double const distanceInMetres = MercatorBounds::DistanceOnEarth(pt0, pt1);
- // convert metres to units for calculating m_metresDiff
- double metersDiff = CalcMetresDiff(distanceInMetres);
+// // convert metres to units for calculating m_metresDiff
+// double metersDiff = CalcMetresDiff(distanceInMetres);
- bool const higherThanMax = metersDiff > MaxMetersWidth;
- bool const lessThanMin = metersDiff < MinMetersWidth;
+// bool const higherThanMax = metersDiff > MaxMetersWidth;
+// bool const lessThanMin = metersDiff < MinMetersWidth;
- // Calculate width of the ruler in pixels.
- double scalerWidthInPx = minPxWidth;
+// // Calculate width of the ruler in pixels.
+// double scalerWidthInPx = minPxWidth;
- if (higherThanMax)
- scalerWidthInPx = minPxWidth * 3 / 2;
- else if (!lessThanMin)
- {
- // Here we need to convert metres to pixels according to angle
- // (in global coordinates) of the ruler.
+// if (higherThanMax)
+// scalerWidthInPx = minPxWidth * 3 / 2;
+// else if (!lessThanMin)
+// {
+// // Here we need to convert metres to pixels according to angle
+// // (in global coordinates) of the ruler.
- double const a = ang::AngleTo(pt1, pt0);
- pt0 = MercatorBounds::GetSmPoint(pt1, cos(a) * metersDiff, sin(a) * metersDiff);
+// double const a = ang::AngleTo(pt1, pt0);
+// pt0 = MercatorBounds::GetSmPoint(pt1, cos(a) * metersDiff, sin(a) * metersDiff);
- scalerWidthInPx = my::rounds(pivot().Length(screen.GtoP(pt0)));
- }
+// scalerWidthInPx = my::rounds(pivot().Length(screen.GtoP(pt0)));
+// }
- m2::PointD orgPt = pivot() + m2::PointD(-scalerWidthInPx / 2, rulerHeight / 2);
+// m2::PointD orgPt = pivot() + m2::PointD(-scalerWidthInPx / 2, rulerHeight / 2);
- if (position() & EPosLeft)
- orgPt.x -= scalerWidthInPx / 2;
+// if (position() & EPosLeft)
+// orgPt.x -= scalerWidthInPx / 2;
- if (position() & EPosRight)
- orgPt.x += scalerWidthInPx / 2;
+// if (position() & EPosRight)
+// orgPt.x += scalerWidthInPx / 2;
- if (position() & EPosAbove)
- orgPt.y -= rulerHeight / 2;
+// if (position() & EPosAbove)
+// orgPt.y -= rulerHeight / 2;
- if (position() & EPosUnder)
- orgPt.y += rulerHeight / 2;
+// if (position() & EPosUnder)
+// orgPt.y += rulerHeight / 2;
- RulerFrame * frame = GetMainFrame();
- frame->SetScale(scalerWidthInPx / CacheLength);
- frame->SetOrgPoint(orgPt);
+// RulerFrame * frame = GetMainFrame();
+// frame->SetScale(scalerWidthInPx / CacheLength);
+// frame->SetOrgPoint(orgPt);
}
m2::RectD Ruler::GetBoundRect() const
{
- FontDesc const & f = font(EActive);
- RulerFrame * frame = GetMainFrame();
- m2::PointD const org = frame->GetOrgPoint();
- m2::PointD const size = m2::PointD(CacheLength * frame->GetScale(), f.m_size * 2);
- return m2::RectD(org - m2::PointD(size.x, 0.0), org + m2::PointD(0.0, size.y));
+ ///@TODO UVR
+// FontDesc const & f = font(EActive);
+// RulerFrame * frame = GetMainFrame();
+// m2::PointD const org = frame->GetOrgPoint();
+// m2::PointD const size = m2::PointD(CacheLength * frame->GetScale(), f.m_size * 2);
+// return m2::RectD(org - m2::PointD(size.x, 0.0), org + m2::PointD(0.0, size.y));
+ return m2::RectD();
}
void Ruler::cache()
@@ -600,18 +599,19 @@ void Ruler::cache()
update();
}
-void Ruler::draw(OverlayRenderer * s, math::Matrix<double, 3, 3> const & m) const
-{
- if (isVisible())
- {
- checkDirtyLayout();
+///@TODO UVR
+//void Ruler::draw(OverlayRenderer * s, math::Matrix<double, 3, 3> const & m) const
+//{
+// if (isVisible())
+// {
+// checkDirtyLayout();
- RulerFrame * frame = GetMainFrame();
- frame->Draw(s, m);
- if (m_animFrame)
- m_animFrame->Draw(s, m);
- }
-}
+// RulerFrame * frame = GetMainFrame();
+// frame->Draw(s, m);
+// if (m_animFrame)
+// m_animFrame->Draw(s, m);
+// }
+//}
int Ruler::GetTextOffsetFromLine() const
{
diff --git a/map/ruler.hpp b/map/ruler.hpp
index 41e9fdc7fc..8881e0a0f9 100644
--- a/map/ruler.hpp
+++ b/map/ruler.hpp
@@ -1,6 +1,7 @@
#pragma once
-#include "gui/element.hpp"
+#include "geometry/point2d.hpp"
+#include "geometry/rect2d.hpp"
#include "std/shared_ptr.hpp"
#include "std/unique_ptr.hpp"
@@ -12,23 +13,11 @@ namespace anim
class Task;
}
-namespace graphics
-{
- class DisplayList;
-
- namespace gl
- {
- class OverlayRenderer;
- }
-}
-
class Framework;
-class Ruler : public gui::Element
+class Ruler
{
- typedef gui::Element BaseT;
-
class RulerFrame
{
public:
@@ -43,7 +32,6 @@ class Ruler : public gui::Element
bool IsValid() const;
- void Cache(const string & text, const graphics::FontDesc & f);
void Purge();
bool IsHidingAnim() const;
bool IsAnimActive() const;
@@ -54,7 +42,6 @@ class Ruler : public gui::Element
void ShowAnimate(bool needPause);
void HideAnimate(bool needPause);
- void Draw(graphics::OverlayRenderer * r, math::Matrix<double, 3, 3> const & m);
private:
void CreateAnim(double startAlfa, double endAlfa,
@@ -66,9 +53,6 @@ class Ruler : public gui::Element
private:
Framework & m_f;
- shared_ptr<graphics::DisplayList> m_dl;
- shared_ptr<graphics::DisplayList> m_textDL;
-
int m_textLengthInPx;
double m_scale;
double m_depth;
@@ -97,7 +81,7 @@ private:
public:
- struct Params : public Element::Params
+ struct Params
{
Framework * m_framework;
Params();
@@ -112,8 +96,6 @@ public:
//@{
virtual m2::RectD GetBoundRect() const;
- void draw(graphics::OverlayRenderer * r, math::Matrix<double, 3, 3> const & m) const;
-
void update();
void layout();
void cache();
diff --git a/map/track.cpp b/map/track.cpp
index 6eadcdbac6..b2ded1d4a2 100644
--- a/map/track.cpp
+++ b/map/track.cpp
@@ -2,11 +2,8 @@
#include "indexer/mercator.hpp"
-#include "graphics/screen.hpp"
-#include "graphics/pen.hpp"
-#include "graphics/depth_constants.hpp"
-#include "graphics/display_list.hpp"
-#include "graphics/defines.hpp"
+#include "drape/color.hpp"
+#include "drape/drape_global.hpp"
#include "geometry/distance.hpp"
#include "geometry/simplification.hpp"
@@ -20,7 +17,8 @@
Track::~Track()
{
- DeleteDisplayList();
+ ///@TODO UVR
+ //DeleteDisplayList();
}
Track * Track::CreatePersistent()
@@ -36,17 +34,21 @@ float Track::GetMainWidth() const
return m_outlines.back().m_lineWidth;
}
-const graphics::Color & Track::GetMainColor() const
+dp::Color const & Track::GetMainColor() const
{
ASSERT(!m_outlines.empty(), ());
return m_outlines.back().m_color;
}
-void Track::DeleteDisplayList() const
-{
- delete m_dList;
- m_dList = nullptr;
-}
+///@TODO UVR
+//void Track::DeleteDisplayList() const
+//{
+// if (m_dList)
+// {
+// delete m_dList;
+// m_dList = nullptr;
+// }
+//}
void Track::AddOutline(TrackOutline const * outline, size_t arraySize)
{
@@ -58,10 +60,11 @@ void Track::AddOutline(TrackOutline const * outline, size_t arraySize)
});
}
-void Track::Draw(graphics::Screen * pScreen, MatrixT const & matrix) const
-{
- pScreen->drawDisplayList(m_dList, matrix);
-}
+///@TODO UVR
+//void Track::Draw(graphics::Screen * pScreen, MatrixT const & matrix) const
+//{
+// pScreen->drawDisplayList(m_dList, matrix);
+//}
void Track::CreateDisplayListPolyline(graphics::Screen * dlScreen, PointContainerT const & pts) const
{
@@ -75,25 +78,26 @@ void Track::CreateDisplayListPolyline(graphics::Screen * dlScreen, PointContaine
}
}
+///@TODO UVR
void Track::CreateDisplayList(graphics::Screen * dlScreen, MatrixT const & matrix, bool isScaleChanged,
int, double, location::RouteMatchingInfo const &) const
{
if (HasDisplayLists() && !isScaleChanged)
return;
- DeleteDisplayList();
+// DeleteDisplayList();
- m_dList = dlScreen->createDisplayList();
- dlScreen->beginFrame();
- dlScreen->setDisplayList(m_dList);
+// m_dList = dlScreen->createDisplayList();
+// dlScreen->beginFrame();
+// dlScreen->setDisplayList(m_dList);
- PointContainerT pts;
- pts.reserve(m_polyline.GetSize());
- TransformAndSymplifyPolyline(m_polyline, matrix, GetMainWidth(), pts);
- CreateDisplayListPolyline(dlScreen, pts);
+// PointContainerT pts;
+// pts.reserve(m_polyline.GetSize());
+// TransformAndSymplifyPolyline(m_polyline, matrix, GetMainWidth(), pts);
+// CreateDisplayListPolyline(dlScreen, pts);
- dlScreen->setDisplayList(0);
- dlScreen->endFrame();
+// dlScreen->setDisplayList(0);
+// dlScreen->endFrame();
}
double Track::GetLengthMeters() const
@@ -117,13 +121,14 @@ double Track::GetLengthMeters() const
void Track::Swap(Track & rhs)
{
- swap(m_rect, rhs.m_rect);
- swap(m_outlines, rhs.m_outlines);
- m_name.swap(rhs.m_name);
- m_polyline.Swap(rhs.m_polyline);
-
- DeleteDisplayList();
- rhs.DeleteDisplayList();
+ ///@TODO UVR
+ //swap(m_rect, rhs.m_rect);
+ //swap(m_outlines, rhs.m_outlines);
+ //m_name.swap(rhs.m_name);
+ //m_polyline.Swap(rhs.m_polyline);
+
+ //DeleteDisplayList();
+ //rhs.DeleteDisplayList();
}
void Track::CleanUp() const
@@ -149,5 +154,3 @@ void TransformAndSymplifyPolyline(Track::PolylineD const & polyline, MatrixT con
SimplifyDP(pts1.begin(), pts1.end(), width,
m2::DistanceToLineSquare<m2::PointD>(), MakeBackInsertFunctor(pts));
}
-
-
diff --git a/map/track.hpp b/map/track.hpp
index a13dcb9c93..e9429af82d 100644
--- a/map/track.hpp
+++ b/map/track.hpp
@@ -1,22 +1,17 @@
#pragma once
+#include "drape/drape_global.hpp"
+#include "drape/color.hpp"
+
#include "geometry/polyline2d.hpp"
#include "geometry/screenbase.hpp"
-#include "graphics/color.hpp"
-#include "graphics/defines.hpp"
-
#include "std/noncopyable.hpp"
#include "base/buffer_vector.hpp"
class Navigator;
-namespace graphics
-{
- class Screen;
- class DisplayList;
-}
namespace location
{
class RouteMatchingInfo;
@@ -52,13 +47,15 @@ public:
/// @note Move semantics is used here.
virtual Track * CreatePersistent();
float GetMainWidth() const;
- graphics::Color const & GetMainColor() const;
+ dp::Color const & GetMainColor() const;
+
- virtual void Draw(graphics::Screen * pScreen, MatrixT const & matrix) const;
- virtual void CreateDisplayList(graphics::Screen * dlScreen, MatrixT const & matrix, bool isScaleChanged,
+ /// @TODO UVR
+ //virtual void Draw(graphics::Screen * pScreen, MatrixT const & matrix) const;
+ //virtual void CreateDisplayList(graphics::Screen * dlScreen, MatrixT const & matrix, bool isScaleChanged,
int, double, location::RouteMatchingInfo const &) const;
- virtual void CleanUp() const;
- virtual bool HasDisplayLists() const;
+ //virtual void CleanUp() const;
+ //virtual bool HasDisplayLists() const;
/// @name Simple Getters-Setter
//@{
@@ -66,7 +63,7 @@ public:
struct TrackOutline
{
float m_lineWidth;
- graphics::Color m_color;
+ dp::Color m_color;
};
void AddOutline(TrackOutline const * outline, size_t arraySize);
@@ -93,7 +90,8 @@ private:
PolylineD m_polyline;
m2::RectD m_rect;
- mutable graphics::DisplayList * m_dList = nullptr;
+ ///@TODO UVR
+ //mutable graphics::DisplayList * m_dList = nullptr;
};
void TransformPolyline(Track::PolylineD const & polyline, MatrixT const & matrix, PointContainerT & pts);
diff --git a/map/user_mark.hpp b/map/user_mark.hpp
index 73420bc00d..7ec98cc8f1 100644
--- a/map/user_mark.hpp
+++ b/map/user_mark.hpp
@@ -14,12 +14,6 @@
class UserMarkContainer;
class PaintOverlayEvent;
class UserMarkDLCache;
-
-namespace graphics
-{
- class DisplayList;
-}
-
class UserMarkCopy;
class UserMark
@@ -197,7 +191,7 @@ class ICustomDrawable : public UserMark
public:
ICustomDrawable(m2::PointD const & ptOrg, UserMarkContainer * container) : UserMark(ptOrg, container) {}
bool IsCustomDrawable() const { return true; }
- virtual graphics::DisplayList * GetDisplayList(UserMarkDLCache * cache) const = 0;
+ //virtual graphics::DisplayList * GetDisplayList(UserMarkDLCache * cache) const = 0;
virtual double GetAnimScaleFactor() const = 0;
virtual m2::PointD const & GetPixelOffset() const = 0;
};
diff --git a/map/user_mark_container.cpp b/map/user_mark_container.cpp
index fac33745d5..5b362d4f37 100644
--- a/map/user_mark_container.cpp
+++ b/map/user_mark_container.cpp
@@ -1,12 +1,7 @@
-#include "user_mark_container.hpp"
-#include "framework.hpp"
-#include "anim_phase_chain.hpp"
+#include "map/user_mark_container.hpp"
-#include "render/drawer.hpp"
-
-#include "graphics/display_list.hpp"
-#include "graphics/screen.hpp"
-#include "graphics/depth_constants.hpp"
+#include "map/framework.hpp"
+#include "map/anim_phase_chain.hpp"
#include "geometry/transformations.hpp"
@@ -72,50 +67,51 @@ namespace
m2::PointD m_globalCenter;
};
- void DrawUserMarkByPoint(double scale,
- double visualScale,
- m2::PointD const & pixelOfsset,
- PaintOverlayEvent const & event,
- graphics::DisplayList * dl,
- m2::PointD const & ptOrg)
- {
-#ifndef USE_DRAPE
- ScreenBase const & modelView = event.GetModelView();
- graphics::Screen * screen = GPUDrawer::GetScreen(event.GetDrawer());
- m2::PointD pxPoint = modelView.GtoP(ptOrg);
- pxPoint += (pixelOfsset * visualScale);
- math::Matrix<double, 3, 3> m = math::Shift(math::Scale(math::Identity<double, 3>(),
- scale, scale),
- pxPoint.x, pxPoint.y);
- dl->draw(screen, m);
-#endif // USE_DRAPE
- }
-
- void DrawUserMarkImpl(double scale,
- double visualScale,
- m2::PointD const & pixelOfsset,
- PaintOverlayEvent const & event,
- graphics::DisplayList * dl,
- UserMark const * mark)
- {
- DrawUserMarkByPoint(scale, visualScale, pixelOfsset, event, dl, mark->GetOrg());
- }
-
- void DrawUserMark(double scale,
- double visualScale,
- PaintOverlayEvent const & event,
- UserMarkDLCache * cache,
- UserMarkDLCache::Key const & defaultKey,
- UserMark const * mark)
- {
- if (mark->IsCustomDrawable())
- {
- ICustomDrawable const * drawable = static_cast<ICustomDrawable const *>(mark);
- DrawUserMarkImpl(drawable->GetAnimScaleFactor(), visualScale, drawable->GetPixelOffset(), event, drawable->GetDisplayList(cache), mark);
- }
- else
- DrawUserMarkImpl(scale, visualScale, m2::PointD(0.0, 0.0), event, cache->FindUserMark(defaultKey), mark);
- }
+ ///@TODO UVR
+// void DrawUserMarkByPoint(double scale,
+// double visualScale,
+// m2::PointD const & pixelOfsset,
+// PaintOverlayEvent const & event,
+// graphics::DisplayList * dl,
+// m2::PointD const & ptOrg)
+// {
+//#ifndef USE_DRAPE
+// ScreenBase const & modelView = event.GetModelView();
+// graphics::Screen * screen = event.GetDrawer()->screen();
+// m2::PointD pxPoint = modelView.GtoP(ptOrg);
+// pxPoint += (pixelOfsset * visualScale);
+// math::Matrix<double, 3, 3> m = math::Shift(math::Scale(math::Identity<double, 3>(),
+// scale, scale),
+// pxPoint.x, pxPoint.y);
+// dl->draw(screen, m);
+//#endif // USE_DRAPE
+// }
+
+// void DrawUserMarkImpl(double scale,
+// double visualScale,
+// m2::PointD const & pixelOfsset,
+// PaintOverlayEvent const & event,
+// graphics::DisplayList * dl,
+// UserMark const * mark)
+// {
+// DrawUserMarkByPoint(scale, visualScale, pixelOfsset, event, dl, mark->GetOrg());
+// }
+
+// void DrawUserMark(double scale,
+// double visualScale,
+// PaintOverlayEvent const & event,
+// UserMarkDLCache * cache,
+// UserMarkDLCache::Key const & defaultKey,
+// UserMark const * mark)
+// {
+// if (mark->IsCustomDrawable())
+// {
+// ICustomDrawable const * drawable = static_cast<ICustomDrawable const *>(mark);
+// DrawUserMarkImpl(drawable->GetAnimScaleFactor(), visualScale, drawable->GetPixelOffset(), event, drawable->GetDisplayList(cache), mark);
+// }
+// else
+// DrawUserMarkImpl(scale, visualScale, m2::PointD(0.0, 0.0), event, cache->FindUserMark(defaultKey), mark);
+// }
}
UserMarkContainer::UserMarkContainer(double layerDepth, Framework & fm)
@@ -153,14 +149,15 @@ UserMark const * UserMarkContainer::FindMarkInRect(m2::AnyRectD const & rect, do
void UserMarkContainer::Draw(PaintOverlayEvent const & e, UserMarkDLCache * cache) const
{
-#ifndef USE_DRAPE
- if (IsVisible() && IsDrawable())
- {
- UserMarkDLCache::Key defaultKey(GetTypeName(), graphics::EPosCenter, m_layerDepth);
- ForEachInRect(e.GetClipRect(), bind(&DrawUserMark, 1.0, m_framework.GetVisualScale(),
- e, cache, defaultKey, _1));
- }
-#endif // USE_DRAPE
+ ///@TODO UVR
+//#ifndef USE_DRAPE
+// if (IsVisible() && IsDrawable())
+// {
+// UserMarkDLCache::Key defaultKey(GetTypeName(), graphics::EPosCenter, m_layerDepth);
+// ForEachInRect(e.GetClipRect(), bind(&DrawUserMark, 1.0, m_framework.GetVisualScale(),
+// e, cache, defaultKey, _1));
+// }
+//#endif // USE_DRAPE
}
void UserMarkContainer::Clear(size_t skipCount/* = 0*/)
@@ -318,18 +315,19 @@ void SelectionContainer::ActivateMark(UserMark const * userMark, bool needAnim)
void SelectionContainer::Draw(const PaintOverlayEvent & e, UserMarkDLCache * cache) const
{
- if (m_container != NULL)
- {
- UserMarkDLCache::Key defaultKey(m_container->GetActiveTypeName(),
- graphics::EPosCenter,
- graphics::activePinDepth);
-
- DrawUserMarkByPoint(GetActiveMarkScale(),
- m_fm.GetVisualScale(),
- m2::PointD(0, 0),
- e, cache->FindUserMark(defaultKey),
- m_ptOrg);
- }
+ ///@TODO UVR
+// if (m_container != NULL)
+// {
+// UserMarkDLCache::Key defaultKey(m_container->GetActiveTypeName(),
+// graphics::EPosCenter,
+// graphics::activePinDepth);
+
+// DrawUserMarkByPoint(GetActiveMarkScale(),
+// m_fm.GetVisualScale(),
+// m2::PointD(0, 0),
+// e, cache->FindUserMark(defaultKey),
+// m_ptOrg);
+// }
}
bool SelectionContainer::IsActive() const
@@ -341,7 +339,8 @@ void SelectionContainer::StartActivationAnim()
{
m_animTask.reset(new PinAnimation(m_fm));
m_fm.GetAnimController()->AddTask(m_animTask);
- m_fm.Invalidate();
+ ///@TODO UVR
+ //m_fm.Invalidate();
}
void SelectionContainer::KillActivationAnim()
diff --git a/map/user_mark_container.hpp b/map/user_mark_container.hpp
index 79b11aff09..92f5d878d7 100644
--- a/map/user_mark_container.hpp
+++ b/map/user_mark_container.hpp
@@ -19,12 +19,6 @@ namespace anim
class Task;
}
-namespace graphics
-{
- class DisplayList;
- class Screen;
-}
-
class UserMarkContainer : private noncopyable
{
public:
@@ -62,7 +56,7 @@ public:
UserMarkContainer(double layerDepth, Framework & fm);
virtual ~UserMarkContainer();
- void SetScreen(graphics::Screen * cacheScreen);
+ //void SetScreen(graphics::Screen * cacheScreen);
virtual Type GetType() const = 0;
bool IsVisible() const { return m_isVisible; }
diff --git a/map/user_mark_dl_cache.cpp b/map/user_mark_dl_cache.cpp
index c58f443f25..51f33e97f0 100644
--- a/map/user_mark_dl_cache.cpp
+++ b/map/user_mark_dl_cache.cpp
@@ -2,101 +2,87 @@
#include "base/stl_add.hpp"
-#include "graphics/display_list.hpp"
-#include "graphics/screen.hpp"
-
-namespace
-{
- struct Deleter
- {
- void operator()(pair<UserMarkDLCache::Key, graphics::DisplayList *> const & node)
- {
- delete node.second;
- }
- };
-}
-
-UserMarkDLCache::UserMarkDLCache(graphics::Screen * cacheScreen)
- : m_cacheScreen(cacheScreen)
+UserMarkDLCache::UserMarkDLCache()
{
}
UserMarkDLCache::~UserMarkDLCache()
{
- DeleteRange(m_dls, Deleter());
- m_cacheScreen = NULL;
}
-graphics::DisplayList * UserMarkDLCache::FindUserMark(UserMarkDLCache::Key const & key)
-{
- node_t node = m_dls.find(key);
- if (node != m_dls.end())
- return node->second;
+///@TODO UVR
+//graphics::DisplayList * UserMarkDLCache::FindUserMark(UserMarkDLCache::Key const & key)
+//{
+// node_t node = m_dls.find(key);
+// if (node != m_dls.end())
+// return node->second;
- return CreateDL(key);
-}
+// return CreateDL(key);
+//}
namespace
{
- m2::RectD CalcCoords(double const & halfSizeX, double const & halfSizeY, graphics::EPosition anchor)
- {
- m2::RectD result(-halfSizeX, -halfSizeY, halfSizeX, halfSizeY);
-
- if (anchor & graphics::EPosAbove)
- result.Offset(0.0, -halfSizeY);
- else if (anchor & graphics::EPosUnder)
- result.Offset(0.0, halfSizeY);
-
- if (anchor & graphics::EPosLeft)
- result.Offset(halfSizeX, 0.0);
- else if (anchor & graphics::EPosRight)
- result.Offset(-halfSizeX, 0.0);
-
- return result;
- }
+///@TODO UVR
+// m2::RectD CalcCoords(double const & halfSizeX, double const & halfSizeY, graphics::EPosition anchor)
+// {
+// m2::RectD result(-halfSizeX, -halfSizeY, halfSizeX, halfSizeY);
+
+// if (anchor & graphics::EPosAbove)
+// result.Offset(0.0, -halfSizeY);
+// else if (anchor & graphics::EPosUnder)
+// result.Offset(0.0, halfSizeY);
+
+// if (anchor & graphics::EPosLeft)
+// result.Offset(halfSizeX, 0.0);
+// else if (anchor & graphics::EPosRight)
+// result.Offset(-halfSizeX, 0.0);
+
+// return result;
+// }
}
-graphics::DisplayList * UserMarkDLCache::CreateDL(UserMarkDLCache::Key const & key)
-{
- using namespace graphics;
-
- graphics::DisplayList * dl = m_cacheScreen->createDisplayList();
- m_cacheScreen->beginFrame();
- m_cacheScreen->setDisplayList(dl);
-
- Icon::Info infoKey(key.m_name);
- Resource const * res = m_cacheScreen->fromID(m_cacheScreen->findInfo(infoKey));
- shared_ptr<gl::BaseTexture> texture = m_cacheScreen->pipeline(res->m_pipelineID).texture();
-
- m2::RectU texRect = res->m_texRect;
- m2::RectD coord = CalcCoords(texRect.SizeX() / 2.0, texRect.SizeY() / 2.0, key.m_anchor);
-
- m2::PointD coords[] =
- {
- coord.LeftBottom(),
- coord.LeftTop(),
- coord.RightBottom(),
- coord.RightTop()
- };
- m2::PointF normal(0.0, 0.0);
-
- m2::PointF texCoords[] =
- {
- texture->mapPixel(m2::PointF(texRect.minX(), texRect.minY())),
- texture->mapPixel(m2::PointF(texRect.minX(), texRect.maxY())),
- texture->mapPixel(m2::PointF(texRect.maxX(), texRect.minY())),
- texture->mapPixel(m2::PointF(texRect.maxX(), texRect.maxY()))
- };
-
- m_cacheScreen->addTexturedStripStrided(coords, sizeof(m2::PointD),
- &normal, 0,
- texCoords, sizeof(m2::PointF),
- 4, key.m_depthLayer, res->m_pipelineID);
-
- m_cacheScreen->setDisplayList(NULL);
- m_cacheScreen->endFrame();
-
- m_dls.insert(make_pair(key, dl));
-
- return dl;
-}
+///@TODO UVR
+//graphics::DisplayList * UserMarkDLCache::CreateDL(UserMarkDLCache::Key const & key)
+//{
+// using namespace graphics;
+
+// graphics::DisplayList * dl = m_cacheScreen->createDisplayList();
+// m_cacheScreen->beginFrame();
+// m_cacheScreen->setDisplayList(dl);
+
+// Icon::Info infoKey(key.m_name);
+// Resource const * res = m_cacheScreen->fromID(m_cacheScreen->findInfo(infoKey));
+// shared_ptr<gl::BaseTexture> texture = m_cacheScreen->pipeline(res->m_pipelineID).texture();
+
+// m2::RectU texRect = res->m_texRect;
+// m2::RectD coord = CalcCoords(texRect.SizeX() / 2.0, texRect.SizeY() / 2.0, key.m_anchor);
+
+// m2::PointD coords[] =
+// {
+// coord.LeftBottom(),
+// coord.LeftTop(),
+// coord.RightBottom(),
+// coord.RightTop()
+// };
+// m2::PointF normal(0.0, 0.0);
+
+// m2::PointF texCoords[] =
+// {
+// texture->mapPixel(m2::PointF(texRect.minX(), texRect.minY())),
+// texture->mapPixel(m2::PointF(texRect.minX(), texRect.maxY())),
+// texture->mapPixel(m2::PointF(texRect.maxX(), texRect.minY())),
+// texture->mapPixel(m2::PointF(texRect.maxX(), texRect.maxY()))
+// };
+
+// m_cacheScreen->addTexturedStripStrided(coords, sizeof(m2::PointD),
+// &normal, 0,
+// texCoords, sizeof(m2::PointF),
+// 4, key.m_depthLayer, res->m_pipelineID);
+
+// m_cacheScreen->setDisplayList(NULL);
+// m_cacheScreen->endFrame();
+
+// m_dls.insert(make_pair(key, dl));
+
+// return dl;
+//}
diff --git a/map/user_mark_dl_cache.hpp b/map/user_mark_dl_cache.hpp
index 8994f8c907..ffa7e1ba21 100644
--- a/map/user_mark_dl_cache.hpp
+++ b/map/user_mark_dl_cache.hpp
@@ -1,26 +1,21 @@
#pragma once
+#include "drape/drape_global.hpp"
+
#include "base/math.hpp"
-#include "graphics/defines.hpp"
#include "std/map.hpp"
-namespace graphics
-{
- class Screen;
- class DisplayList;
-}
-
class UserMarkDLCache
{
public:
struct Key
{
- Key(string const & name, graphics::EPosition anchor, double depthLayer)
+ Key(string const & name, dp::Anchor anchor, double depthLayer)
: m_name(name), m_anchor(anchor), m_depthLayer(depthLayer) {}
string m_name;
- graphics::EPosition m_anchor;
+ dp::Anchor m_anchor;
double m_depthLayer;
bool operator < (Key const & other) const
@@ -34,17 +29,15 @@ public:
}
};
- UserMarkDLCache(graphics::Screen * cacheScreen);
+ UserMarkDLCache();
~UserMarkDLCache();
- graphics::DisplayList * FindUserMark(Key const & key);
+ ///@TODO UVR
+ //graphics::DisplayList * FindUserMark(Key const & key);
private:
- graphics::DisplayList * CreateDL(Key const & key);
+ //graphics::DisplayList * CreateDL(Key const & key);
private:
- graphics::Screen * m_cacheScreen;
- typedef map<Key, graphics::DisplayList *> cache_t;
- typedef cache_t::iterator node_t;
- cache_t m_dls;
+ //graphics::Screen * m_cacheScreen;
};
diff --git a/omim.pro b/omim.pro
index 58ecaa9533..e2572a93e2 100644
--- a/omim.pro
+++ b/omim.pro
@@ -4,7 +4,6 @@
# gtool: build only generator_tool
# map_designer: enable designer-related flags
# no-tests: do not build tests for desktop
-# drape: include drape libraries
#
# There are no supported options in CONFIG for mobile platforms.
# Please use XCode or gradle/Android Studio.
@@ -20,11 +19,6 @@ TEMPLATE = subdirs
HEADERS += defines.hpp
-# TODO(AlexZ): Why is it here? Drape should build on win32 too.
-win32:CONFIG(drape) {
- CONFIG -= drape
-}
-
!iphone*:!tizen*:!android* {
CONFIG *= desktop
}
@@ -54,18 +48,16 @@ SUBDIRS = 3party base coding geometry indexer routing
}
!CONFIG(gtool):!CONFIG(osrm) {
- SUBDIRS *= anim graphics gui render search map
+ SUBDIRS *= drape drape_frontend search map
CONFIG(map_designer):CONFIG(desktop) {
SUBDIRS *= skin_generator
}
- CONFIG(drape) {
- SUBDIRS *= drape drape_frontend
- CONFIG(desktop) {
- drape_head.depends = $$SUBDIRS
- SUBDIRS *= drape_head
- }
+
+ CONFIG(desktop) {
+ drape_head.depends = $$SUBDIRS
+ SUBDIRS *= drape_head
}
CONFIG(desktop) {
@@ -116,7 +108,7 @@ SUBDIRS = 3party base coding geometry indexer routing
SUBDIRS *= search_tests
MapDepLibs = 3party base coding geometry platform storage indexer search map \
- routing anim render gui graphics
+ routing drape drape_frontend
map_tests.subdir = map/map_tests
map_tests.depends = $$MapDepLibs
@@ -158,21 +150,14 @@ SUBDIRS = 3party base coding geometry indexer routing
generator_tests.depends = $$MapDepLibs routing generator generator_tests_support
SUBDIRS *= generator_tests
- # TODO(AlexZ): Do we really need them?
- #SUBDIRS += render/render_tests
- #SUBDIRS += graphics/graphics_tests
- #SUBDIRS += gui/gui_tests
-
- CONFIG(drape) {
- SUBDIRS *= qt_tstfrm
+ SUBDIRS *= qt_tstfrm
- drape_tests.subdir = drape/drape_tests
- drape_tests.depends = 3party base coding platform qt_tstfrm
- SUBDIRS *= drape_tests
+ drape_tests.subdir = drape/drape_tests
+ drape_tests.depends = 3party base coding platform qt_tstfrm
+ SUBDIRS *= drape_tests
- drape_frontend_tests.subdir = drape_frontend/drape_frontend_tests
- drape_frontend_tests.depends = 3party base coding platform drape drape_frontend
- SUBDIRS *= drape_frontend_tests
- }
+ drape_frontend_tests.subdir = drape_frontend/drape_frontend_tests
+ drape_frontend_tests.depends = 3party base coding platform drape drape_frontend
+ SUBDIRS *= drape_frontend_tests
} # !no-tests
} # !gtool
diff --git a/platform/platform.pro b/platform/platform.pro
index 71be1f2ba2..b3e4954d45 100644
--- a/platform/platform.pro
+++ b/platform/platform.pro
@@ -29,23 +29,19 @@ INCLUDEPATH += $$ROOT_DIR/3party/jansson/src
wifi_info_windows.cpp
} else:macx-* {
OBJECTIVE_SOURCES += platform_mac.mm \
- apple_video_timer.mm \
apple_location_service.mm
} else:linux* {
SOURCES += platform_linux.cpp
}
} else:iphone* {
- OBJECTIVE_SOURCES += ios_video_timer.mm \
- platform_ios.mm
+ OBJECTIVE_SOURCES += platform_ios.mm
} else:android* {
SOURCES += platform_android.cpp \
- pthread_video_timer.cpp
} else:tizen* {
HEADERS += tizen_utils.hpp \
http_thread_tizen.hpp
SOURCES += platform_tizen.cpp \
tizen_utils.cpp \
- pthread_video_timer.cpp \
http_thread_tizen.cpp \
}
@@ -79,7 +75,6 @@ HEADERS += \
preferred_languages.hpp \
servers_list.hpp \
settings.hpp \
- video_timer.hpp \
SOURCES += \
chunks_download_strategy.cpp \
@@ -96,4 +91,3 @@ SOURCES += \
preferred_languages.cpp \
servers_list.cpp \
settings.cpp \
- video_timer.cpp \
diff --git a/platform/platform_tests/platform_tests.pro b/platform/platform_tests/platform_tests.pro
index 405d130bcc..2047466119 100644
--- a/platform/platform_tests/platform_tests.pro
+++ b/platform/platform_tests/platform_tests.pro
@@ -33,4 +33,3 @@ SOURCES += \
location_test.cpp \
measurement_tests.cpp \
platform_test.cpp \
- video_timer_test.cpp \
diff --git a/qt/draw_widget.cpp b/qt/draw_widget.cpp
index 364e088df4..2225f734f0 100644
--- a/qt/draw_widget.cpp
+++ b/qt/draw_widget.cpp
@@ -3,17 +3,14 @@
#include "qt/slider_ctrl.hpp"
#include "map/country_status_display.hpp"
+#include "drape_frontend/visual_params.hpp"
#include "render/render_policy.hpp"
#include "render/frame_image.hpp"
#include "search/result.hpp"
-#include "gui/controller.hpp"
-
-#include "graphics/opengl/opengl.hpp"
-#include "graphics/depth_constants.hpp"
-
+#include "platform/settings.hpp"
#include "platform/platform.hpp"
#include "platform/settings.hpp"
@@ -38,73 +35,40 @@ namespace qt
const unsigned LONG_TOUCH_MS = 1000;
const unsigned SHORT_TOUCH_MS = 250;
- QtVideoTimer::QtVideoTimer(TFrameFn frameFn)
- : ::VideoTimer(frameFn)
- {}
-
- void QtVideoTimer::start()
- {
- m_timer = new QTimer();
- QObject::connect(m_timer, SIGNAL(timeout()), this, SLOT(TimerElapsed()));
- resume();
- }
-
- void QtVideoTimer::pause()
- {
- m_timer->stop();
- m_state = EPaused;
- }
-
- void QtVideoTimer::resume()
- {
- m_timer->start(1000 / 60);
- m_state = ERunning;
- }
-
- void QtVideoTimer::stop()
- {
- pause();
- delete m_timer;
- m_timer = 0;
- m_state = EStopped;
- }
-
- void QtVideoTimer::TimerElapsed()
- {
- m_frameFn();
- }
-
void DummyDismiss() {}
DrawWidget::DrawWidget(QWidget * pParent)
- : QGLWidget(pParent),
- m_isInitialized(false),
- m_isTimerStarted(false),
+ : m_contextFactory(nullptr),
m_framework(new Framework()),
m_isDrag(false),
m_isRotate(false),
- //m_redrawInterval(100),
m_ratio(1.0),
m_pScale(0),
m_emulatingLocation(false)
{
+ setSurfaceType(QSurface::OpenGLSurface);
+
+ QObject::connect(this, SIGNAL(heightChanged(int)), this, SLOT(sizeChanged(int)));
+ QObject::connect(this, SIGNAL(widthChanged(int)), this, SLOT(sizeChanged(int)));
+
// Initialize with some stubs for test.
PinClickManager & manager = GetBalloonManager();
manager.ConnectUserMarkListener(bind(&DrawWidget::OnActivateMark, this, _1));
manager.ConnectDismissListener(&DummyDismiss);
- m_framework->GetCountryStatusDisplay()->SetDownloadCountryListener([this] (storage::TIndex const & idx, int opt)
- {
- storage::ActiveMapsLayout & layout = m_framework->GetCountryTree().GetActiveMapLayout();
- if (opt == -1)
- layout.RetryDownloading(idx);
- else
- layout.DownloadMap(idx, static_cast<MapOptions>(opt));
- });
+ ///@TODO UVR
+ //m_framework->GetCountryStatusDisplay()->SetDownloadCountryListener([this] (storage::TIndex const & idx, int opt)
+ //{
+ // storage::ActiveMapsLayout & layout = m_framework->GetCountryTree().GetActiveMapLayout();
+ // if (opt == -1)
+ // layout.RetryDownloading(idx);
+ // else
+ // layout.DownloadMap(idx, static_cast<storage::TMapOptions>(opt));
+ //});
- m_framework->SetRouteBuildingListener([] (routing::IRouter::ResultCode, vector<storage::TIndex> const &, vector<storage::TIndex> const &)
- {
- });
+ //m_framework->SetRouteBuildingListener([] (routing::IRouter::ResultCode, vector<storage::TIndex> const &)
+ //{
+ //});
}
DrawWidget::~DrawWidget()
@@ -116,12 +80,8 @@ namespace qt
{
KillPressTask();
- ASSERT(isValid(), ());
- makeCurrent();
-
m_framework->PrepareToShutdown();
-
- m_videoTimer.reset();
+ m_contextFactory.Destroy();
}
void DrawWidget::SetScaleControl(QScaleSlider * pScale)
@@ -131,11 +91,6 @@ namespace qt
connect(m_pScale, SIGNAL(actionTriggered(int)), this, SLOT(ScaleChanged(int)));
}
- void DrawWidget::UpdateNow()
- {
- update();
- }
-
void DrawWidget::UpdateAfterSettingsChanged()
{
m_framework->SetupMeasurementSystem();
@@ -149,7 +104,6 @@ namespace qt
ShowAll();
else
{
- UpdateNow();
UpdateScaleControl();
}
}
@@ -209,23 +163,6 @@ namespace qt
UpdateScaleControl();
}
- void DrawWidget::Repaint()
- {
- m_framework->Invalidate();
- }
-
- VideoTimer * DrawWidget::CreateVideoTimer()
- {
-//#ifdef OMIM_OS_MAC
-// return CreateAppleVideoTimer(bind(&DrawWidget::DrawFrame, this));
-//#else
- /// Using timer, which doesn't use the separate thread
- /// for performing an action. This avoids race conditions in Framework.
- /// see issue #717
- return new QtVideoTimer(bind(&DrawWidget::DrawFrame, this));
-//#endif
- }
-
void DrawWidget::ScaleChanged(int action)
{
if (action != QAbstractSlider::SliderNoAction)
@@ -236,119 +173,6 @@ namespace qt
}
}
- void DrawWidget::initializeGL()
- {
- // we'll perform swap by ourselves, see issue #333
- setAutoBufferSwap(false);
-
- if (!m_isInitialized)
- {
-#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
- m_ratio = dynamic_cast<QApplication*>(qApp)->devicePixelRatio();
-#endif
-
-#ifndef USE_DRAPE
- m_videoTimer.reset(CreateVideoTimer());
-
- InitRenderPolicy();
-#endif
-
- m_isInitialized = true;
- }
- }
-
- void DrawWidget::InitRenderPolicy()
- {
-#ifndef USE_DRAPE
- shared_ptr<qt::gl::RenderContext> primaryRC(new qt::gl::RenderContext(this));
-
- graphics::ResourceManager::Params rmParams;
- rmParams.m_texFormat = graphics::Data8Bpp;
- rmParams.m_texRtFormat = graphics::Data4Bpp;
- rmParams.m_videoMemoryLimit = GetPlatform().VideoMemoryLimit();
-
- RenderPolicy::Params rpParams;
-
- QRect const & geometry = QApplication::desktop()->geometry();
- rpParams.m_screenWidth = L2D(geometry.width());
- rpParams.m_screenHeight = L2D(geometry.height());
-
- if (m_ratio >= 1.5 || QApplication::desktop()->physicalDpiX() >= 180)
- {
- rpParams.m_density = graphics::EDensityXHDPI;
- rpParams.m_exactDensityDPI = 320.;
- }
- else
- {
- rpParams.m_density = graphics::EDensityMDPI;
- rpParams.m_exactDensityDPI = 160.;
- }
- rmParams.m_exactDensityDPI = rpParams.m_exactDensityDPI;
-
- rpParams.m_videoTimer = m_videoTimer.get();
- rpParams.m_useDefaultFB = true;
- rpParams.m_rmParams = rmParams;
- rpParams.m_primaryRC = primaryRC;
- rpParams.m_skinName = "basic.skn";
-
- try
- {
- m_framework->SetRenderPolicy(CreateRenderPolicy(rpParams));
- m_framework->InitGuiSubsystem();
- }
- catch (graphics::gl::platform_unsupported const & e)
- {
- LOG(LERROR, ("OpenGL platform is unsupported, reason: ", e.what()));
- /// @todo Show "Please Update Drivers" dialog and close the program.
- }
-#endif // USE_DRAPE
- }
-
- void DrawWidget::resizeGL(int w, int h)
- {
- m_framework->OnSize(w, h);
- m_framework->Invalidate();
-
- if (m_isInitialized && m_isTimerStarted)
- DrawFrame();
-
- UpdateScaleControl();
- }
-
- void DrawWidget::paintGL()
- {
- if (m_isInitialized && !m_isTimerStarted)
- {
- // timer should be started upon the first repaint request to fully initialized GLWidget.
- m_isTimerStarted = true;
- (void)m_framework->SetUpdatesEnabled(true);
- }
-
- m_framework->Invalidate();
- }
-
- void DrawWidget::DrawFrame()
- {
-#ifndef USE_DRAPE
- if (m_framework->NeedRedraw())
- {
- makeCurrent();
- m_framework->SetNeedRedraw(false);
-
- shared_ptr<PaintEvent> paintEvent(new PaintEvent(m_framework->GetRenderPolicy()->GetDrawer().get()));
-
- m_framework->BeginPaint(paintEvent);
- m_framework->DoPaint(paintEvent);
-
- // swapping buffers before ending the frame, see issue #333
- swapBuffers();
-
- m_framework->EndPaint(paintEvent);
- doneCurrent();
- }
-#endif // USE_DRAPE
- }
-
void DrawWidget::StartPressTask(m2::PointD const & pt, unsigned ms)
{
KillPressTask();
@@ -370,6 +194,28 @@ namespace qt
m_framework->ActivateUserMark(pMark);
}
+ void DrawWidget::CreateEngine()
+ {
+ m_framework->CreateDrapeEngine(m_contextFactory.GetRefPointer(), m_ratio, width(), height());
+ }
+
+ void DrawWidget::exposeEvent(QExposeEvent * e)
+ {
+ Q_UNUSED(e);
+
+ if (isExposed())
+ {
+ if (m_contextFactory.IsNull())
+ {
+ m_ratio = devicePixelRatio();
+ dp::ThreadSafeFactory * factory = new dp::ThreadSafeFactory(new QtOGLContextFactory(this));
+ m_contextFactory = dp::MasterPointer<dp::OGLContextFactory>(factory);
+ CreateEngine();
+ UpdateScaleControl();
+ }
+ }
+ }
+
m2::PointD DrawWidget::GetDevicePoint(QMouseEvent * e) const
{
return m2::PointD(L2D(e->x()), L2D(e->y()));
@@ -382,7 +228,7 @@ namespace qt
RotateEvent DrawWidget::GetRotateEvent(QPoint const & pt) const
{
- QPoint const center = rect().center();
+ QPoint const center = geometry().center();
return RotateEvent(L2D(center.x()), L2D(center.y()),
L2D(pt.x()), L2D(pt.y()));
}
@@ -397,7 +243,7 @@ namespace qt
void DrawWidget::mousePressEvent(QMouseEvent * e)
{
- QGLWidget::mousePressEvent(e);
+ TBase::mousePressEvent(e);
KillPressTask();
@@ -405,8 +251,9 @@ namespace qt
if (e->button() == Qt::LeftButton)
{
- if (m_framework->GetGuiController()->OnTapStarted(pt))
- return;
+ ///@TODO UVR
+// if (m_framework->GetGuiController()->OnTapStarted(pt))
+// return;
if (e->modifiers() & Qt::ControlModifier)
{
@@ -501,7 +348,7 @@ namespace qt
void DrawWidget::mouseDoubleClickEvent(QMouseEvent * e)
{
- QGLWidget::mouseDoubleClickEvent(e);
+ TBase::mouseDoubleClickEvent(e);
KillPressTask();
m_isCleanSingleClick = false;
@@ -518,18 +365,19 @@ namespace qt
void DrawWidget::mouseMoveEvent(QMouseEvent * e)
{
- QGLWidget::mouseMoveEvent(e);
+ TBase::mouseMoveEvent(e);
m2::PointD const pt = GetDevicePoint(e);
- if (!pt.EqualDxDy(m_taskPoint, m_framework->GetVisualScale() * 10.0))
+ if (!pt.EqualDxDy(m_taskPoint, df::VisualParams::Instance().GetVisualScale() * 10.0))
{
// moved far from start point - do not show balloon
m_isCleanSingleClick = false;
KillPressTask();
}
- if (m_framework->GetGuiController()->OnTapMoved(pt))
- return;
+ ///@TODO UVR
+// if (m_framework->GetGuiController()->OnTapMoved(pt))
+// return;
if (m_isDrag)
m_framework->DoDrag(GetDragEvent(e));
@@ -540,11 +388,12 @@ namespace qt
void DrawWidget::mouseReleaseEvent(QMouseEvent * e)
{
- QGLWidget::mouseReleaseEvent(e);
+ TBase::mouseReleaseEvent(e);
m2::PointD const pt = GetDevicePoint(e);
- if (m_framework->GetGuiController()->OnTapEnded(pt))
- return;
+ ///@TODO UVR
+// if (m_framework->GetGuiController()->OnTapEnded(pt))
+// return;
if (!m_wasLongClick && m_isCleanSingleClick)
{
@@ -561,7 +410,7 @@ namespace qt
void DrawWidget::keyReleaseEvent(QKeyEvent * e)
{
- QGLWidget::keyReleaseEvent(e);
+ TBase::keyReleaseEvent(e);
StopRotating(e);
@@ -569,6 +418,13 @@ namespace qt
m_emulatingLocation = false;
}
+ void DrawWidget::sizeChanged(int)
+ {
+ m_framework->OnSize(width(), height());
+
+ UpdateScaleControl();
+ }
+
void DrawWidget::StopRotating(QMouseEvent * e)
{
if (m_isRotate && (e->button() == Qt::LeftButton))
@@ -597,11 +453,6 @@ namespace qt
}
}
- //void DrawWidget::ScaleTimerElapsed()
- //{
- // m_timer->stop();
- //}
-
void DrawWidget::wheelEvent(QWheelEvent * e)
{
if (!m_isDrag && !m_isRotate)
@@ -614,7 +465,7 @@ namespace qt
void DrawWidget::UpdateScaleControl()
{
- if (m_pScale)
+ if (m_pScale && isExposed())
{
// don't send ScaleChanged
m_pScale->SetPosWithBlockedSignals(m_framework->GetDrawScale());
@@ -627,17 +478,6 @@ namespace qt
if (m_framework->GetCurrentPosition(lat, lon))
params.SetPosition(lat, lon);
- // This stuff always returns system language (not keyboard input language).
- /*
- QInputMethod const * pIM = QApplication::inputMethod();
- if (pIM)
- {
- string const lang = pIM->locale().name().toStdString();
- LOG(LDEBUG, ("QT input language", lang));
- params.SetInputLanguage(lang);
- }
- */
-
return m_framework->Search(params);
}
@@ -662,7 +502,8 @@ namespace qt
void DrawWidget::CloseSearch()
{
- setFocus();
+ ///@TODO UVR
+ //setFocus();
}
void DrawWidget::OnLocationUpdate(location::GpsInfo const & info)
@@ -671,28 +512,9 @@ namespace qt
m_framework->OnLocationUpdate(info);
}
- void DrawWidget::QueryMaxScaleMode()
- {
- m_framework->XorQueryMaxScaleMode();
- }
-
void DrawWidget::SetMapStyle(MapStyle mapStyle)
{
-#ifndef USE_DRAPE
- if (m_framework->GetMapStyle() == mapStyle)
- return;
-
- makeCurrent();
-
- m_framework->SetRenderPolicy(nullptr);
-
- m_framework->SetMapStyle(mapStyle);
-
- // init new render policy
- InitRenderPolicy();
-
- m_framework->SetUpdatesEnabled(true);
-#endif
+ //@TODO UVR
}
void DrawWidget::SetRouter(routing::RouterType routerType)
diff --git a/qt/draw_widget.hpp b/qt/draw_widget.hpp
index f4d3a4890a..8e09f13968 100644
--- a/qt/draw_widget.hpp
+++ b/qt/draw_widget.hpp
@@ -1,61 +1,33 @@
#pragma once
+#include "qt/qtoglcontextfactory.hpp"
+
#include "map/framework.hpp"
#include "map/navigator.hpp"
-#include "map/qgl_render_context.hpp"
-
-#include "render/window_handle.hpp"
-#include "platform/video_timer.hpp"
+#include "drape_frontend/drape_engine.hpp"
#include "base/deferred_task.hpp"
#include "std/unique_ptr.hpp"
-#include <QtCore/QTimer>
-#include <QtOpenGL/qgl.h>
+#include <QtGui/QWindow>
namespace qt
{
class QScaleSlider;
- class DrawWidget;
-
- class QtVideoTimer : public QObject, public ::VideoTimer
- {
- Q_OBJECT
- private:
- QTimer * m_timer;
-
- public:
- QtVideoTimer(::VideoTimer::TFrameFn frameFn);
-
- void resume();
- void pause();
-
- void start();
- void stop();
-
- protected:
- Q_SLOT void TimerElapsed();
- };
-
- class DrawWidget : public QGLWidget
+ class DrawWidget : public QWindow
{
- bool m_isInitialized;
- bool m_isTimerStarted;
+ typedef QWindow TBase;
+ dp::MasterPointer<dp::OGLContextFactory> m_contextFactory;
unique_ptr<Framework> m_framework;
- unique_ptr<VideoTimer> m_videoTimer;
bool m_isDrag;
bool m_isRotate;
- //QTimer * m_timer;
- //QTimer * m_animTimer;
- //size_t m_redrawInterval;
-
qreal m_ratio;
inline int L2D(int px) const { return px * m_ratio; }
@@ -77,11 +49,7 @@ namespace qt
void ScaleMinusLight();
void ShowAll();
- void Repaint();
void ScaleChanged(int action);
- //void ScaleTimerElapsed();
-
- void QueryMaxScaleMode();
public:
DrawWidget(QWidget * pParent);
@@ -99,7 +67,6 @@ namespace qt
void SaveState();
void LoadState();
- void UpdateNow();
void UpdateAfterSettingsChanged();
void PrepareShutdown();
@@ -111,26 +78,17 @@ namespace qt
void SetRouter(routing::RouterType routerType);
protected:
- VideoTimer * CreateVideoTimer();
-
- protected:
void StartPressTask(m2::PointD const & pt, unsigned ms);
void KillPressTask();
void OnPressTaskEvent(m2::PointD const & pt, unsigned ms);
void OnActivateMark(unique_ptr<UserMarkCopy> pCopy);
- protected:
- /// @name Overriden from base_type.
- //@{
- virtual void initializeGL();
- virtual void resizeGL(int w, int h);
- virtual void paintGL();
- //@}
-
- void DrawFrame();
+ void CreateEngine();
+ protected:
/// @name Overriden from QWidget.
//@{
+ virtual void exposeEvent(QExposeEvent * e);
virtual void mousePressEvent(QMouseEvent * e);
virtual void mouseDoubleClickEvent(QMouseEvent * e);
virtual void mouseMoveEvent(QMouseEvent * e);
@@ -139,6 +97,8 @@ namespace qt
virtual void keyReleaseEvent(QKeyEvent * e);
//@}
+ Q_SLOT void sizeChanged(int);
+
private:
void UpdateScaleControl();
void StopDragging(QMouseEvent * e);
diff --git a/qt/mainwindow.cpp b/qt/mainwindow.cpp
index 7661b6caf4..3d341d0bef 100644
--- a/qt/mainwindow.cpp
+++ b/qt/mainwindow.cpp
@@ -1,11 +1,6 @@
#include "qt/mainwindow.hpp"
-#ifndef USE_DRAPE
#include "qt/draw_widget.hpp"
-#else
-#include "qt/drape_surface.hpp"
-#endif
-
#include "qt/slider_ctrl.hpp"
#include "qt/about.hpp"
#include "qt/preferences_dialog.hpp"
@@ -54,24 +49,20 @@ namespace qt
MainWindow::MainWindow() : m_locationService(CreateDesktopLocationService(*this))
{
-#ifndef USE_DRAPE
m_pDrawWidget = new DrawWidget(this);
- setCentralWidget(m_pDrawWidget);
-#else
- m_pDrawWidget = new DrapeSurface();
QSurfaceFormat format = m_pDrawWidget->requestedFormat();
format.setDepthBufferSize(16);
m_pDrawWidget->setFormat(format);
QWidget * w = QWidget::createWindowContainer(m_pDrawWidget, this);
w->setMouseTracking(true);
setCentralWidget(w);
-#endif // USE_DRAPE
- shared_ptr<location::State> locState = m_pDrawWidget->GetFramework().GetLocationState();
- locState->AddStateModeListener([this] (location::State::Mode mode)
- {
- LocationStateModeChanged(mode);
- });
+ ///@TODO UVR
+// shared_ptr<location::State> locState = m_pDrawWidget->GetFramework().GetLocationState();
+// locState->AddStateModeListener([this] (location::State::Mode mode)
+// {
+// LocationStateModeChanged(mode);
+// });
CreateNavigationBar();
CreateSearchBarAndPanel();
@@ -141,10 +132,9 @@ MainWindow::MainWindow() : m_locationService(CreateDesktopLocationService(*this)
}
#endif // NO_DOWNLOADER
-#ifndef USE_DRAPE
m_pDrawWidget->UpdateAfterSettingsChanged();
-#endif // USE_DRAPE
- locState->InvalidatePosition();
+ ///@TODO UVR
+ //locState->InvalidatePosition();
}
#if defined(Q_WS_WIN)
@@ -240,7 +230,6 @@ void MainWindow::CreateNavigationBar()
pToolBar->setOrientation(Qt::Vertical);
pToolBar->setIconSize(QSize(32, 32));
-#ifndef USE_DRAPE
{
// add navigation hot keys
hotkey_t arr[] = {
@@ -264,7 +253,6 @@ void MainWindow::CreateNavigationBar()
addAction(pAct);
}
}
-#endif // USE_DRAPE
{
// add search button with "checked" behavior
@@ -289,7 +277,6 @@ void MainWindow::CreateNavigationBar()
m_pMyPositionAction->setToolTip(tr("My Position"));
// #endif
-#ifndef USE_DRAPE
// add view actions 1
button_t arr[] = {
{ QString(), 0, 0 },
@@ -297,10 +284,8 @@ void MainWindow::CreateNavigationBar()
{ tr("Scale +"), ":/navig64/plus.png", SLOT(ScalePlus()) }
};
add_buttons(pToolBar, arr, ARRAY_SIZE(arr), m_pDrawWidget);
-#endif // USE_DRAPE
}
-#ifndef USE_DRAPE
// add scale slider
QScaleSlider * pScale = new QScaleSlider(Qt::Vertical, this, 20);
pScale->SetRange(2, scales::GetUpperScale());
@@ -316,7 +301,6 @@ void MainWindow::CreateNavigationBar()
};
add_buttons(pToolBar, arr, ARRAY_SIZE(arr), m_pDrawWidget);
}
-#endif // USE_DRAPE
#ifndef NO_DOWNLOADER
{
@@ -361,8 +345,9 @@ void MainWindow::OnLocationUpdated(location::GpsInfo const & info)
void MainWindow::OnMyPosition()
{
- if (m_pMyPositionAction->isEnabled())
- m_pDrawWidget->GetFramework().GetLocationState()->SwitchToNextMode();
+ ///@TODO UVR
+ //if (m_pMyPositionAction->isEnabled())
+ // m_pDrawWidget->GetFramework().GetLocationState()->SwitchToNextMode();
}
void MainWindow::OnSearchButtonClicked()
@@ -398,12 +383,10 @@ void MainWindow::ShowUpdateDialog()
void MainWindow::CreateSearchBarAndPanel()
{
-#ifndef USE_DRAPE
CreatePanelImpl(0, Qt::RightDockWidgetArea, tr("Search"), QKeySequence(), 0);
SearchPanel * panel = new SearchPanel(m_pDrawWidget, m_Docks[0]);
m_Docks[0]->setWidget(panel);
-#endif // USE_DRAPE
}
void MainWindow::CreatePanelImpl(size_t i, Qt::DockWidgetArea area, QString const & name,
@@ -429,11 +412,7 @@ void MainWindow::CreatePanelImpl(size_t i, Qt::DockWidgetArea area, QString cons
void MainWindow::closeEvent(QCloseEvent * e)
{
-#ifndef USE_DRAPE
m_pDrawWidget->PrepareShutdown();
-#else
- m_pDrawWidget->GetFramework().PrepareToShutdown();
-#endif // USE_DRAPE
e->accept();
}
diff --git a/qt/mainwindow.hpp b/qt/mainwindow.hpp
index ce3cad23cb..2ee9cbcadf 100644
--- a/qt/mainwindow.hpp
+++ b/qt/mainwindow.hpp
@@ -12,29 +12,19 @@
#include <QtWidgets/QMainWindow>
#endif
-
-
class QDockWidget;
namespace search { class Result; }
namespace qt
{
-#ifndef USE_DRAPE
class DrawWidget;
-#else
- class DrapeSurface;
-#endif // USE_DRAPE
class MainWindow : public QMainWindow, location::LocationObserver
{
QAction * m_pMyPositionAction;
QAction * m_pSearchAction;
-#ifndef USE_DRAPE
DrawWidget * m_pDrawWidget;
-#else
- DrapeSurface * m_pDrawWidget;
-#endif // USE_DRAPE
QDockWidget * m_Docks[1];
diff --git a/qt/qt.pro b/qt/qt.pro
index 239ee0ca96..a5b2c810ae 100644
--- a/qt/qt.pro
+++ b/qt/qt.pro
@@ -1,15 +1,11 @@
# Main application in qt.
ROOT_DIR = ..
-DEPENDENCIES = map render gui routing search storage indexer graphics platform anim geometry coding base \
+DEPENDENCIES = map drape_frontend routing search storage indexer drape platform geometry coding base \
freetype expat fribidi tomcrypt jansson protobuf osrm stats_client minizip succinct
DEPENDENCIES += opening_hours \
-drape {
- DEPENDENCIES *= drape_frontend drape
-}
-
include($$ROOT_DIR/common.pri)
TARGET = MAPS.ME
@@ -110,17 +106,11 @@ SOURCES += \
preferences_dialog.cpp \
search_panel.cpp \
update_dialog.cpp \
-
-CONFIG(drape){
- SOURCES += \
- drape_surface.cpp \
qtoglcontext.cpp \
qtoglcontextfactory.cpp \
-}
HEADERS += \
mainwindow.hpp \
- widgets.hpp \
draw_widget.hpp \
proxystyle.hpp \
slider_ctrl.hpp \
@@ -129,12 +119,7 @@ HEADERS += \
preferences_dialog.hpp \
search_panel.hpp \
update_dialog.hpp \
-
-CONFIG(drape){
- HEADERS += \
- drape_surface.hpp \
qtoglcontext.hpp \
qtoglcontextfactory.hpp \
-}
RESOURCES += res/resources.qrc
diff --git a/qt/qtoglcontextfactory.cpp b/qt/qtoglcontextfactory.cpp
index 21f0224f2e..71b9da7a79 100644
--- a/qt/qtoglcontextfactory.cpp
+++ b/qt/qtoglcontextfactory.cpp
@@ -4,8 +4,8 @@
QtOGLContextFactory::QtOGLContextFactory(QWindow * surface)
: m_surface(surface)
- , m_drawContext(NULL)
- , m_uploadContext(NULL)
+ , m_drawContext(nullptr)
+ , m_uploadContext(nullptr)
{}
QtOGLContextFactory::~QtOGLContextFactory()
@@ -16,7 +16,7 @@ QtOGLContextFactory::~QtOGLContextFactory()
dp::OGLContext * QtOGLContextFactory::getDrawContext()
{
- if (m_drawContext == NULL)
+ if (m_drawContext == nullptr)
m_drawContext = new QtOGLContext(m_surface, m_uploadContext);
return m_drawContext;
@@ -24,7 +24,7 @@ dp::OGLContext * QtOGLContextFactory::getDrawContext()
dp::OGLContext * QtOGLContextFactory::getResourcesUploadContext()
{
- if (m_uploadContext == NULL)
+ if (m_uploadContext == nullptr)
m_uploadContext = new QtOGLContext(m_surface, m_drawContext);
return m_uploadContext;
diff --git a/qt_tstfrm/qt_tstfrm.pro b/qt_tstfrm/qt_tstfrm.pro
index f55ba065ee..9525500b23 100644
--- a/qt_tstfrm/qt_tstfrm.pro
+++ b/qt_tstfrm/qt_tstfrm.pro
@@ -9,14 +9,9 @@ include($$ROOT_DIR/common.pri)
QT *= core gui widgets opengl
HEADERS += \
- tstwidgets.hpp \
- macros.hpp \
- gl_test_widget.hpp \
- gui_test_widget.hpp \
test_main_loop.hpp \
SOURCES += \
- tstwidgets.cpp \
test_main_loop.cpp \
diff --git a/render/events.hpp b/render/events.hpp
index 81756179c0..41dc74939e 100644
--- a/render/events.hpp
+++ b/render/events.hpp
@@ -44,39 +44,3 @@ public:
inline m2::PointD const & Pt() const { return m_Pt1; }
inline double ScaleFactor() const { return m_factor; }
};
-
-#ifndef USE_DRAPE
-class Drawer;
-
-class PaintEvent
-{
- Drawer * m_drawer;
- core::CommandsQueue::Environment const * m_env;
- bool m_isCancelled;
- bool m_isEmptyDrawing;
-
-public:
- PaintEvent(Drawer * drawer, core::CommandsQueue::Environment const * env = 0);
-
- Drawer * drawer() const;
- void cancel();
- bool isCancelled() const;
- bool isEmptyDrawing() const;
- void setIsEmptyDrawing(bool flag);
-};
-
-class PaintOverlayEvent
-{
-public:
- PaintOverlayEvent(Drawer * drawer, ScreenBase const & modelView)
- : m_drawer(drawer), m_modelView(modelView) {}
-
- ScreenBase const & GetModelView() const { return m_modelView; }
- Drawer * GetDrawer() const { return m_drawer; }
- m2::RectD const & GetClipRect() const { return m_modelView.ClipRect(); }
-
-private:
- Drawer * m_drawer;
- ScreenBase m_modelView;
-};
-#endif // USE_DRAPE
diff --git a/tools/autobuild/android.sh b/tools/autobuild/android.sh
index b5a61c2157..2da5bb690d 100755
--- a/tools/autobuild/android.sh
+++ b/tools/autobuild/android.sh
@@ -16,7 +16,7 @@ source "$MY_PATH/ndk_helper.sh"
MKSPEC="$MY_PATH/../mkspecs/android-clang"
QMAKE_PARAMS="CONFIG+=${CONFIGURATION}"
-SHADOW_DIR_BASE="$MY_PATH/../../../omim-android"
+SHADOW_DIR_BASE="$MY_PATH/../../../omim-android-drape"
# Try to read ndk root path from android/local.properties file
export NDK_ROOT=$(GetNdkRoot) || ( echo "Can't read NDK root path from android/local.properties"; exit 1 )