MCPcopy Create free account
hub / github.com/comaps/comaps / Render

Method Render

libs/drape_frontend/render_group.cpp:78–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

76}
77
78void RenderGroup::Render(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng,
79 ScreenBase const & screen, FrameValues const & frameValues,
80 ref_ptr<DebugRectRenderer> debugRectRenderer)
81{
82 auto programPtr = mng->GetProgram(screen.isPerspective() ? m_state.GetProgram3d<gpu::Program>()
83 : m_state.GetProgram<gpu::Program>());
84 ASSERT(programPtr != nullptr, ());
85 programPtr->Bind();
86 dp::ApplyState(context, programPtr, m_state);
87
88 for (auto & renderBucket : m_renderBuckets)
89 renderBucket->GetBuffer()->Build(context, programPtr);
90
91 auto const program = m_state.GetProgram<gpu::Program>();
92 auto const program3d = m_state.GetProgram3d<gpu::Program>();
93
94 // Set frame values to group's params.
95 frameValues.SetTo(m_params);
96
97 // Set tile-based model-view matrix.
98 {
99 math::Matrix<float, 4, 4> mv = GetTileKey().GetTileBasedModelView(screen);
100 m_params.m_modelView = glsl::make_mat4(mv.m_data);
101 }
102
103 auto const & glyphParams = df::VisualParams::Instance().GetGlyphVisualParams();
104 if (program == gpu::Program::TextOutlined || program3d == gpu::Program::TextOutlinedBillboard)
105 {
106 m_params.m_contrastGamma = glsl::vec2(glyphParams.m_outlineContrast, glyphParams.m_outlineGamma);
107 m_params.m_isOutlinePass = 1.0f;
108
109 mng->GetParamsSetter()->Apply(context, programPtr, m_params);
110 for (auto & renderBucket : m_renderBuckets)
111 renderBucket->Render(context, m_state.GetDrawAsLine());
112
113 m_params.m_contrastGamma = glsl::vec2(glyphParams.m_contrast, glyphParams.m_gamma);
114 m_params.m_isOutlinePass = 0.0f;
115 }
116 else if (program == gpu::Program::Text || program3d == gpu::Program::TextBillboard)
117 {
118 m_params.m_contrastGamma = glsl::vec2(glyphParams.m_contrast, glyphParams.m_gamma);
119 }
120
121 mng->GetParamsSetter()->Apply(context, programPtr, m_params);
122 for (auto & renderBucket : m_renderBuckets)
123 renderBucket->Render(context, m_state.GetDrawAsLine());
124
125 if (debugRectRenderer && debugRectRenderer->IsEnabled())
126 for (auto const & renderBucket : m_renderBuckets)
127 renderBucket->RenderDebug(context, screen, debugRectRenderer);
128}
129
130void RenderGroup::AddBucket(drape_ptr<dp::RenderBucket> && bucket)
131{

Callers

nothing calls this directly

Calls 15

ASSERTFunction · 0.85
ApplyStateFunction · 0.85
vec2Class · 0.85
isPerspectiveMethod · 0.80
SetToMethod · 0.80
GetTileBasedModelViewMethod · 0.80
GetParamsSetterMethod · 0.80
GetDrawAsLineMethod · 0.80
RenderDebugMethod · 0.80
GetProgramMethod · 0.45
BindMethod · 0.45
BuildMethod · 0.45

Tested by

no test coverage detected