From 97e33564da5c9c673c767359bd19099a04184116 Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Fri, 8 Jan 2016 18:11:38 +0300 Subject: [PATCH] Fixed debug rendering in 3D --- drape/debug_rect_renderer.cpp | 6 ++++-- drape/render_bucket.cpp | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/drape/debug_rect_renderer.cpp b/drape/debug_rect_renderer.cpp index c4f9353298..5f422600ad 100644 --- a/drape/debug_rect_renderer.cpp +++ b/drape/debug_rect_renderer.cpp @@ -12,8 +12,10 @@ namespace m2::PointF PixelPointToScreenSpace(ScreenBase const & screen, m2::PointF const & pt) { - float const szX = static_cast(screen.PixelRect().SizeX()); - float const szY = static_cast(screen.PixelRect().SizeY()); + float const szX = static_cast(screen.isPerspective() ? screen.PixelRectIn3d().SizeX() : + screen.PixelRect().SizeX()); + float const szY = static_cast(screen.isPerspective() ? screen.PixelRectIn3d().SizeY() : + screen.PixelRect().SizeY()); return m2::PointF(pt.x / szX - 0.5f, -pt.y / szY + 0.5f) * 2.0f; } diff --git a/drape/render_bucket.cpp b/drape/render_bucket.cpp index f3ef8877c0..ce031e9f54 100644 --- a/drape/render_bucket.cpp +++ b/drape/render_bucket.cpp @@ -109,10 +109,18 @@ void RenderBucket::RenderDebug(ScreenBase const & screen) const { for (auto const & handle : m_overlay) { + if (!screen.PixelRect().IsIntersect(handle->GetPixelRect(screen, false))) + continue; + OverlayHandle::Rects rects; handle->GetExtendedPixelShape(screen, rects); for (auto const & rect : rects) + { + if (screen.isPerspective() && !screen.PixelRectIn3d().IsIntersect(m2::RectD(rect))) + continue; + DebugRectRenderer::Instance().DrawRect(screen, rect); + } } } #endif