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:
authorConstantin Shalnev <c.shalnev@corp.mail.ru>2015-03-20 14:01:00 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:41:24 +0300
commitf7203eb9b75a01270d63e74e8eccebdf531c5742 (patch)
tree7b7a8ad4e92f21f9feee06548f2d134c5df93465 /qt/draw_widget.cpp
parentc427ac965987265c62761de2f822fd90be606e1a (diff)
implemented ChangeColorScheme functionality and its test for supported platforms
Diffstat (limited to 'qt/draw_widget.cpp')
-rw-r--r--qt/draw_widget.cpp85
1 files changed, 55 insertions, 30 deletions
diff --git a/qt/draw_widget.cpp b/qt/draw_widget.cpp
index 3518dad4bb..7962f46ef3 100644
--- a/qt/draw_widget.cpp
+++ b/qt/draw_widget.cpp
@@ -246,45 +246,51 @@ namespace qt
#ifndef USE_DRAPE
m_videoTimer.reset(CreateVideoTimer());
- shared_ptr<qt::gl::RenderContext> primaryRC(new qt::gl::RenderContext(this));
+ InitRenderPolicy();
+#endif
- graphics::ResourceManager::Params rmParams;
- rmParams.m_texFormat = graphics::Data8Bpp;
- rmParams.m_texRtFormat = graphics::Data4Bpp;
- rmParams.m_videoMemoryLimit = GetPlatform().VideoMemoryLimit();
+ m_isInitialized = true;
+ }
+ }
- RenderPolicy::Params rpParams;
+ 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();
- QRect const & geometry = QApplication::desktop()->geometry();
- rpParams.m_screenWidth = L2D(geometry.width());
- rpParams.m_screenHeight = L2D(geometry.height());
+ RenderPolicy::Params rpParams;
- if (m_ratio >= 1.5 || QApplication::desktop()->physicalDpiX() >= 180)
- rpParams.m_density = graphics::EDensityXHDPI;
- else
- rpParams.m_density = graphics::EDensityMDPI;
+ QRect const & geometry = QApplication::desktop()->geometry();
+ rpParams.m_screenWidth = L2D(geometry.width());
+ rpParams.m_screenHeight = L2D(geometry.height());
- rpParams.m_videoTimer = m_videoTimer.get();
- rpParams.m_useDefaultFB = true;
- rpParams.m_rmParams = rmParams;
- rpParams.m_primaryRC = primaryRC;
- rpParams.m_skinName = "basic.skn";
+ if (m_ratio >= 1.5 || QApplication::desktop()->physicalDpiX() >= 180)
+ rpParams.m_density = graphics::EDensityXHDPI;
+ else
+ rpParams.m_density = graphics::EDensityMDPI;
- 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
+ rpParams.m_videoTimer = m_videoTimer.get();
+ rpParams.m_useDefaultFB = true;
+ rpParams.m_rmParams = rmParams;
+ rpParams.m_primaryRC = primaryRC;
+ rpParams.m_skinName = "basic.skn";
- m_isInitialized = true;
+ 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)
@@ -664,4 +670,23 @@ namespace qt
{
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
+ }
}