diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2015-04-16 14:48:30 +0300 |
---|---|---|
committer | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2015-11-30 16:04:17 +0300 |
commit | 734b0a10b024dac63a26710522683fdb0209a0b5 (patch) | |
tree | 96554add69ea14b6d9e2ed13eb17fdeb3a763eb4 /drape_head/testing_engine.cpp | |
parent | 4d6dcfc596953ef570d1d51f11416cdd5298999c (diff) |
Pointers refactoring
Diffstat (limited to 'drape_head/testing_engine.cpp')
-rw-r--r-- | drape_head/testing_engine.cpp | 85 |
1 files changed, 40 insertions, 45 deletions
diff --git a/drape_head/testing_engine.cpp b/drape_head/testing_engine.cpp index dee46549bc..12e20a86c9 100644 --- a/drape_head/testing_engine.cpp +++ b/drape_head/testing_engine.cpp @@ -48,7 +48,7 @@ public: { } - void Draw(dp::RefPointer<dp::Batcher> batcher, dp::RefPointer<dp::TextureManager> textures) const + void Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> textures) const { gui::StaticLabel::LabelResult result; gui::StaticLabel::CacheStaticText(m_text, "\n", m_anchor, m_font, textures, result); @@ -57,9 +57,9 @@ public: dp::AttributeProvider provider(1 /* streamCount */, result.m_buffer.size()); provider.InitStream(0 /* streamIndex */, gui::StaticLabel::Vertex::GetBindingInfo(), - dp::MakeStackRefPointer<void>(result.m_buffer.data())); + make_ref<void>(result.m_buffer.data())); - batcher->InsertListOfStrip(result.m_state, dp::MakeStackRefPointer(&provider), + batcher->InsertListOfStrip(result.m_state, make_ref(&provider), 4 /* vertexStride */); } @@ -79,7 +79,7 @@ public: { } - void Draw(dp::RefPointer<dp::Batcher> batcher, dp::RefPointer<dp::TextureManager> textures) const + void Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> textures) const { gui::MutableLabel textCacher(dp::LeftBottom); gui::MutableLabel::PrecacheParams p; @@ -100,11 +100,11 @@ public: dp::AttributeProvider provider(2, dynResult.m_buffer.size()); provider.InitStream(0 /* streamIndex */, gui::MutableLabel::StaticVertex::GetBindingInfo(), - dp::MakeStackRefPointer<void>(staticData.m_buffer.data())); + make_ref<void>(staticData.m_buffer.data())); provider.InitStream(1 /* streamIndex */, gui::MutableLabel::DynamicVertex::GetBindingInfo(), - dp::MakeStackRefPointer<void>(dynResult.m_buffer.data())); + make_ref<void>(dynResult.m_buffer.data())); - batcher->InsertListOfStrip(staticData.m_state, dp::MakeStackRefPointer(&provider), 4); + batcher->InsertListOfStrip(staticData.m_state, make_ref(&provider), 4); } private: @@ -120,7 +120,7 @@ public: { } - void Draw(dp::RefPointer<dp::Batcher> batcher, dp::RefPointer<dp::TextureManager> textures) const + void Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> textures) const { dp::TextureManager::TStipplePattern key; key.push_back(10); @@ -148,12 +148,12 @@ public: dp::AttributeProvider provider(1, 4); - provider.InitStream(0, gpu::SolidTexturingVertex::GetBindingInfo(), dp::MakeStackRefPointer<void>(vertexes)); + provider.InitStream(0, gpu::SolidTexturingVertex::GetBindingInfo(), make_ref<void>(vertexes)); dp::GLState state(gpu::TEXTURING_PROGRAM, dp::GLState::GeometryLayer); state.SetColorTexture(region.GetTexture()); - batcher->InsertTriangleStrip(state, dp::MakeStackRefPointer(&provider)); + batcher->InsertTriangleStrip(state, make_ref(&provider)); } private: @@ -165,7 +165,7 @@ class DummyColorElement : public MapShape public: DummyColorElement() { } - void Draw(dp::RefPointer<dp::Batcher> batcher, dp::RefPointer<dp::TextureManager> textures) const + void Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> textures) const { dp::TextureManager::ColorRegion region; textures->GetColorRegion(dp::Color(rand() % 256, rand() % 256, rand() % 256, 255), region); @@ -184,12 +184,12 @@ public: }; dp::AttributeProvider provider(1, 4); - provider.InitStream(0, gpu::SolidTexturingVertex::GetBindingInfo(), dp::MakeStackRefPointer<void>(vertexes)); + provider.InitStream(0, gpu::SolidTexturingVertex::GetBindingInfo(), make_ref<void>(vertexes)); dp::GLState state(gpu::TEXTURING_PROGRAM, dp::GLState::GeometryLayer); state.SetColorTexture(region.GetTexture()); - batcher->InsertTriangleStrip(state, dp::MakeStackRefPointer(&provider)); + batcher->InsertTriangleStrip(state, make_ref(&provider)); } }; @@ -326,7 +326,7 @@ private: TCreatorsMap m_creators; }; -TestingEngine::TestingEngine(dp::RefPointer<dp::OGLContextFactory> oglcontextfactory, +TestingEngine::TestingEngine(ref_ptr<dp::OGLContextFactory> oglcontextfactory, Viewport const & viewport, double vs) : m_contextFactory(oglcontextfactory) @@ -356,11 +356,11 @@ TestingEngine::TestingEngine(dp::RefPointer<dp::OGLContextFactory> oglcontextfac params.m_glyphMngParams.m_blacklist = "fonts_blacklist.txt"; GetPlatform().GetFontNames(params.m_glyphMngParams.m_fonts); - m_textures.Reset(new dp::TextureManager()); + m_textures = move(make_unique_dp<dp::TextureManager>()); m_textures->Init(params); - m_batcher.Reset(new dp::Batcher()); - m_programManager.Reset(new dp::GpuProgramManager()); + m_batcher = move(make_unique_dp<dp::Batcher>()); + m_programManager = move(make_unique_dp<dp::GpuProgramManager>()); ModelViewInit(); ProjectionInit(); @@ -372,10 +372,7 @@ TestingEngine::~TestingEngine() { killTimer(m_timerId); ClearScene(); - m_batcher.Destroy(); m_textures->Release(); - m_textures.Destroy(); - m_programManager.Destroy(); } void TestingEngine::Draw() @@ -410,16 +407,16 @@ void TestingEngine::Draw() for(; it != m_scene.end(); ++it) { dp::GLState const & state = it->first; - dp::RefPointer<dp::GpuProgram> prg = m_programManager->GetProgram(state.GetProgramIndex()); + ref_ptr<dp::GpuProgram> prg = m_programManager->GetProgram(state.GetProgramIndex()); prg->Bind(); ApplyState(state, prg); ApplyUniforms(m_generalUniforms, prg); - vector<dp::MasterPointer<dp::RenderBucket> > & buckets = it->second; + vector<drape_ptr<dp::RenderBucket> > & buckets = it->second; dp::OverlayTree tree; tree.StartOverlayPlacing(m_modelView, true); for (size_t i = 0; i < buckets.size(); ++i) - buckets[i]->CollectOverlayHandles(MakeStackRefPointer(&tree)); + buckets[i]->CollectOverlayHandles(make_ref(&tree)); for (size_t i = 0; i < buckets.size(); ++i) buckets[i]->Render(m_modelView); tree.EndOverlayPlacing(); @@ -466,7 +463,7 @@ void TestingEngine::DrawImpl() params.m_secondaryTextFont = auxFd; params.m_secondaryText = "Народная Китайская республика"; TextShape sh1(m2::PointF(82.277071f, 56.9271164f), params); - sh1.Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + sh1.Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); vector<m2::PointD> path; path.push_back(m2::PointD(92.277071f, 50.9271164f)); @@ -480,7 +477,7 @@ void TestingEngine::DrawImpl() ptvp.m_text = "Some text"; ptvp.m_textFont = dp::FontDecl(dp::Color::Black(), 40, dp::Color::Red()); - PathTextShape(spline, ptvp).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + PathTextShape(spline, ptvp).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); LineViewParams lvp; lvp.m_baseGtoPScale = ptvp.m_baseGtoPScale; lvp.m_depth = 90.0f; @@ -488,7 +485,7 @@ void TestingEngine::DrawImpl() lvp.m_color = dp::Color::Red(); lvp.m_width = 16.0f; lvp.m_join = dp::BevelJoin; - LineShape(spline, lvp).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + LineShape(spline, lvp).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); { PathSymbolViewParams p; @@ -497,7 +494,7 @@ void TestingEngine::DrawImpl() p.m_offset = 0.0f; p.m_step = 60.0f; p.m_symbolName = "swimming"; - PathSymbolShape(spline, p).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + PathSymbolShape(spline, p).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); } { @@ -514,14 +511,14 @@ void TestingEngine::DrawImpl() lvp.m_join = dp::RoundJoin; lvp.m_cap = dp::RoundCap; lvp.m_color = dp::Color::Black(); - LineShape(spl1, lvp).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + LineShape(spl1, lvp).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); } { PoiSymbolViewParams p(FeatureID(-1, 0)); p.m_depth = 0.0f; p.m_symbolName = "subway-station-l"; - PoiSymbolShape(m2::PointF(92.27f, 30.0f), p).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + PoiSymbolShape(m2::PointF(92.27f, 30.0f), p).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); } { @@ -529,7 +526,7 @@ void TestingEngine::DrawImpl() p.m_color = dp::Color::Red(); p.m_depth = 0.0f; p.m_radius = 28.0f; - CircleShape(m2::PointF(94.27f, 30.0f), p).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + CircleShape(m2::PointF(94.27f, 30.0f), p).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); } { @@ -538,7 +535,7 @@ void TestingEngine::DrawImpl() AreaViewParams p; p.m_color = dp::Color::White(); p.m_depth = 0.0f; - AreaShape(move(trg), p).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + AreaShape(move(trg), p).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); } m_batcher->EndSession(); @@ -553,10 +550,10 @@ void TestingEngine::DrawImpl() lvpl.m_pattern.clear(); lvpl.m_depth = -10.0f; lvpl.m_width = 2.0f; - LineShape(spl, lvpl).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + LineShape(spl, lvpl).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); DummyMutableLabel tt(m2::PointF(120.0f, 30.0f), "200 km"); - tt.Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + tt.Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); } m_batcher->EndSession(); @@ -572,17 +569,17 @@ void TestingEngine::DrawImpl() lvpl.m_pattern.clear(); lvpl.m_depth = -10.0f; lvpl.m_width = 2.0f; - LineShape(spl, lvpl).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + LineShape(spl, lvpl).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); } dp::FontDecl font(dp::Color::Black(), 14); DummyLabel(m2::PointF(110.0f, 25.0f), "Top\nText", dp::LeftTop, font) - .Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + .Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); DummyLabel(m2::PointF(120.0f, 25.0f), "Center\nText", dp::Center, font) - .Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + .Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); DummyLabel(m2::PointF(130.0f, 25.0f), "Bottom\nText", dp::RightBottom, font) - .Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + .Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); } m_batcher->EndSession(); } @@ -612,7 +609,7 @@ void TestingEngine::DrawRects() }; m2::SharedSpline spline(path); - LineShape(spline, lvp).Draw(m_batcher.GetRefPointer(), m_textures.GetRefPointer()); + LineShape(spline, lvp).Draw(make_ref<dp::Batcher>(m_batcher), make_ref<dp::TextureManager>(m_textures)); }; for (m2::RectD const & r : m_boundRects) @@ -670,14 +667,14 @@ void TestingEngine::ProjectionInit() m_generalUniforms.SetMatrix4x4Value("projection", m.data()); } -void TestingEngine::OnFlushData(dp::GLState const & state, dp::TransferPointer<dp::RenderBucket> vao) +void TestingEngine::OnFlushData(dp::GLState const & state, drape_ptr<dp::RenderBucket> && vao) { - dp::MasterPointer<dp::RenderBucket> bucket(vao); + drape_ptr<dp::RenderBucket> bucket = move(vao); bucket->GetBuffer()->Build(m_programManager->GetProgram(state.GetProgramIndex())); - m_scene[state].push_back(bucket); + m_scene[state].push_back(move(bucket)); for (size_t i = 0; i < bucket->GetOverlayHandlesCount(); ++i) { - dp::RefPointer<dp::OverlayHandle> handle = bucket->GetOverlayHandle(i); + ref_ptr<dp::OverlayHandle> handle = bucket->GetOverlayHandle(i); handle->Update(m_modelView); if (handle->IsValid()) { @@ -690,9 +687,7 @@ void TestingEngine::OnFlushData(dp::GLState const & state, dp::TransferPointer<d void TestingEngine::ClearScene() { - TScene::iterator it = m_scene.begin(); - for(; it != m_scene.end(); ++it) - DeleteRange(it->second, dp::MasterPointerDeleter()); + m_scene.clear(); } } // namespace df |