bool OsmAnd::AtlasMapRendererDebugStage_OpenGL::render(IMapRenderer_Metrics::Metric_renderFrame* const metric_)
{
    const auto metric = dynamic_cast<AtlasMapRenderer_Metrics::Metric_renderFrame*>(metric_);

    bool ok = true;

    GL_PUSH_GROUP_MARKER(QLatin1String("debug"));

    Stopwatch rects2dStopwatch(metric != nullptr);
    ok = ok && renderRects2D();
    if (metric)
        metric->elapsedTimeForDebugRects2D = rects2dStopwatch.elapsed();

    Stopwatch lines2dStopwatch(metric != nullptr);
    ok = ok && renderLines2D();
    if (metric)
        metric->elapsedTimeForDebugLines2D = lines2dStopwatch.elapsed();

    Stopwatch lines3dStopwatch(metric != nullptr);
    ok = ok && renderLines3D();
    if (metric)
        metric->elapsedTimeForDebugLines3D = lines3dStopwatch.elapsed();

    Stopwatch quads3dStopwatch(metric != nullptr);
    ok = ok && renderQuads3D();
    if (metric)
        metric->elapsedTimeForDebugQuad3D = quads3dStopwatch.elapsed();

    GL_POP_GROUP_MARKER;

    return ok;
}
void OsmAnd::AtlasMapRendererDebugStage_OpenGL::render()
{
    GL_PUSH_GROUP_MARKER(QLatin1String("debug"));

    renderRects2D();
    renderLines2D();
    renderLines3D();
    renderQuads3D();

    GL_POP_GROUP_MARKER;
}