| 94 | } // namespace |
| 95 | |
| 96 | void TrafficRenderer::AddRenderData(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng, |
| 97 | TrafficRenderData && renderData) |
| 98 | { |
| 99 | // Remove obsolete render data. |
| 100 | TileKey const tileKey(renderData.m_tileKey); |
| 101 | m_renderData.erase(std::remove_if(m_renderData.begin(), m_renderData.end(), [&tileKey](TrafficRenderData const & rd) |
| 102 | { return tileKey == rd.m_tileKey && rd.m_tileKey.m_generation < tileKey.m_generation; }), |
| 103 | m_renderData.end()); |
| 104 | |
| 105 | // Add new render data. |
| 106 | m_renderData.emplace_back(std::move(renderData)); |
| 107 | TrafficRenderData & rd = m_renderData.back(); |
| 108 | |
| 109 | auto program = mng->GetProgram(rd.m_state.GetProgram<gpu::Program>()); |
| 110 | program->Bind(); |
| 111 | rd.m_bucket->GetBuffer()->Build(context, program); |
| 112 | |
| 113 | std::sort(m_renderData.begin(), m_renderData.end()); |
| 114 | } |
| 115 | |
| 116 | void TrafficRenderer::OnUpdateViewport(CoverageResult const & coverage, int currentZoomLevel, |
| 117 | buffer_vector<TileKey, 8> const & tilesToDelete) |
no test coverage detected