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:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-06-30 15:02:54 +0300
committerr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-07-01 09:46:40 +0300
commitcd6792e04d95b30d9f4669f59f08aa99794d4b11 (patch)
treecce644dfec69dc7be9b336ed1a921a6ad874a665 /drape_frontend
parent517c506328c3e2c5504178cd59a65ddfc320b9cd (diff)
Added displaying of hotel info if any hotel is selected
Diffstat (limited to 'drape_frontend')
-rw-r--r--drape_frontend/apply_feature_functors.cpp7
-rw-r--r--drape_frontend/circle_shape.cpp7
-rw-r--r--drape_frontend/poi_symbol_shape.cpp16
-rw-r--r--drape_frontend/poi_symbol_shape.hpp6
4 files changed, 23 insertions, 13 deletions
diff --git a/drape_frontend/apply_feature_functors.cpp b/drape_frontend/apply_feature_functors.cpp
index 43d4f8f1f4..575fdb7bd7 100644
--- a/drape_frontend/apply_feature_functors.cpp
+++ b/drape_frontend/apply_feature_functors.cpp
@@ -384,7 +384,12 @@ void ApplyPointFeature::Finish()
params.m_hasArea = m_hasArea;
params.m_createdByEditor = m_createdByEditor;
params.m_obsoleteInEditor = m_obsoleteInEditor;
- m_insertShape(make_unique_dp<PoiSymbolShape>(m_centerPoint, params));
+
+ m_insertShape(make_unique_dp<PoiSymbolShape>(m_centerPoint, params,
+ m_hotelData.m_isHotel ? dp::displacement::kDefaultMode :
+ dp::displacement::kAllModes));
+ if (m_hotelData.m_isHotel)
+ m_insertShape(make_unique_dp<PoiSymbolShape>(m_centerPoint, params, dp::displacement::kHotelMode));
}
}
diff --git a/drape_frontend/circle_shape.cpp b/drape_frontend/circle_shape.cpp
index 38603d0935..3fd8fba4aa 100644
--- a/drape_frontend/circle_shape.cpp
+++ b/drape_frontend/circle_shape.cpp
@@ -50,12 +50,11 @@ void CircleShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager>
dp::GLState state(gpu::TEXTURING_PROGRAM, dp::GLState::OverlayLayer);
state.SetColorTexture(region.GetTexture());
- double handleSize = 2 * m_params.m_radius;
+ double const handleSize = 2 * m_params.m_radius;
- drape_ptr<dp::OverlayHandle> overlay = make_unique_dp<dp::SquareHandle>(m_params.m_id,
- dp::Center, m_pt,
+ drape_ptr<dp::OverlayHandle> overlay = make_unique_dp<dp::SquareHandle>(m_params.m_id, dp::Center, m_pt,
m2::PointD(handleSize, handleSize),
- GetOverlayPriority(), "");
+ GetOverlayPriority(), false /* isBound */, "");
dp::AttributeProvider provider(1, TriangleCount + 2);
provider.InitStream(0, gpu::SolidTexturingVertex::GetBindingInfo(), make_ref(vertexes.data()));
diff --git a/drape_frontend/poi_symbol_shape.cpp b/drape_frontend/poi_symbol_shape.cpp
index 4e796950bb..5b20fe1226 100644
--- a/drape_frontend/poi_symbol_shape.cpp
+++ b/drape_frontend/poi_symbol_shape.cpp
@@ -95,10 +95,9 @@ void Batch<MV>(ref_ptr<dp::Batcher> batcher, drape_ptr<dp::OverlayHandle> && han
namespace df
{
-
-PoiSymbolShape::PoiSymbolShape(m2::PointF const & mercatorPt, PoiSymbolViewParams const & params)
- : m_pt(mercatorPt)
- , m_params(params)
+PoiSymbolShape::PoiSymbolShape(m2::PointF const & mercatorPt, PoiSymbolViewParams const & params,
+ int displacementMode)
+ : m_pt(mercatorPt), m_params(params), m_displacementMode(displacementMode)
{}
void PoiSymbolShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> textures) const
@@ -108,12 +107,14 @@ void PoiSymbolShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManag
glsl::vec4 const position = glsl::vec4(glsl::ToVec2(m_pt), m_params.m_depth, -m_params.m_posZ);
m2::PointU const pixelSize = region.GetPixelSize();
+
drape_ptr<dp::OverlayHandle> handle = make_unique_dp<dp::SquareHandle>(m_params.m_id,
dp::Center,
m_pt, pixelSize,
GetOverlayPriority(),
+ true /* isBound */,
m_params.m_symbolName,
- true);
+ true /* isBillboard */);
handle->SetPivotZ(m_params.m_posZ);
handle->SetExtendingSize(m_params.m_extendingSize);
@@ -131,8 +132,9 @@ void PoiSymbolShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManag
uint64_t PoiSymbolShape::GetOverlayPriority() const
{
- // Set up maximum priority for shapes which created by user in the editor.
- if (m_params.m_createdByEditor)
+ // Set up maximum priority for shapes which created by user in the editor
+ // and in case of a special displacement mode.
+ if (m_params.m_createdByEditor || (m_displacementMode & dp::displacement::kDefaultMode) == 0)
return dp::kPriorityMaskAll;
// Set up minimal priority for shapes which belong to areas.
diff --git a/drape_frontend/poi_symbol_shape.hpp b/drape_frontend/poi_symbol_shape.hpp
index 57230ca8e6..503055c712 100644
--- a/drape_frontend/poi_symbol_shape.hpp
+++ b/drape_frontend/poi_symbol_shape.hpp
@@ -3,13 +3,16 @@
#include "drape_frontend/map_shape.hpp"
#include "drape_frontend/shape_view_params.hpp"
+#include "drape/constants.hpp"
+
namespace df
{
class PoiSymbolShape : public MapShape
{
public:
- PoiSymbolShape(m2::PointF const & mercatorPt, PoiSymbolViewParams const & params);
+ PoiSymbolShape(m2::PointF const & mercatorPt, PoiSymbolViewParams const & params,
+ int displacementMode = dp::displacement::kAllModes);
void Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> textures) const override;
MapShapeType GetType() const override { return MapShapeType::OverlayType; }
@@ -19,6 +22,7 @@ private:
m2::PointF const m_pt;
PoiSymbolViewParams const m_params;
+ int const m_displacementMode;
};
} // namespace df