| 106 | } |
| 107 | |
| 108 | void TransitSchemeRenderer::PrepareRenderData(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng, |
| 109 | ref_ptr<dp::OverlayTree> tree, |
| 110 | std::vector<TransitRenderData> & currentRenderData, |
| 111 | TransitRenderData && newRenderData) |
| 112 | { |
| 113 | // Remove obsolete render data. |
| 114 | auto const removePredicate = [this, &newRenderData](TransitRenderData const & rd) |
| 115 | { return rd.m_mwmId == newRenderData.m_mwmId && rd.m_recacheId < m_lastRecacheId; }; |
| 116 | ClearRenderData(removePredicate, tree, currentRenderData); |
| 117 | |
| 118 | m_lastRecacheId = std::max(m_lastRecacheId, newRenderData.m_recacheId); |
| 119 | |
| 120 | // Add new render data. |
| 121 | auto program = mng->GetProgram(newRenderData.m_state.GetProgram<gpu::Program>()); |
| 122 | program->Bind(); |
| 123 | newRenderData.m_bucket->GetBuffer()->Build(context, program); |
| 124 | |
| 125 | currentRenderData.emplace_back(std::move(newRenderData)); |
| 126 | } |
| 127 | |
| 128 | void TransitSchemeRenderer::RenderTransit(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng, |
| 129 | ScreenBase const & screen, ref_ptr<PostprocessRenderer> postprocessRenderer, |
nothing calls this directly
no test coverage detected