Repo created
This commit is contained in:
parent
4af19165ec
commit
68073add76
12458 changed files with 12350765 additions and 2 deletions
42
libs/drape_frontend/overlay_batcher.cpp
Normal file
42
libs/drape_frontend/overlay_batcher.cpp
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#include "drape_frontend/overlay_batcher.hpp"
|
||||
|
||||
#include "drape_frontend/map_shape.hpp"
|
||||
|
||||
#include "drape/batcher.hpp"
|
||||
#include "drape/render_bucket.hpp"
|
||||
#include "drape/texture_manager.hpp"
|
||||
|
||||
namespace df
|
||||
{
|
||||
uint32_t constexpr kOverlayIndexBufferSize = 30000;
|
||||
uint32_t constexpr kOverlayVertexBufferSize = 20000;
|
||||
|
||||
OverlayBatcher::OverlayBatcher(TileKey const & key) : m_batcher(kOverlayIndexBufferSize, kOverlayVertexBufferSize)
|
||||
{
|
||||
int constexpr kAverageRenderDataCount = 5;
|
||||
m_data.reserve(kAverageRenderDataCount);
|
||||
|
||||
m_batcher.SetBatcherHash(key.GetHashValue(BatcherBucket::Overlay));
|
||||
m_batcher.StartSession([this, key](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket)
|
||||
{ FlushGeometry(key, state, std::move(bucket)); });
|
||||
}
|
||||
|
||||
void OverlayBatcher::Batch(ref_ptr<dp::GraphicsContext> context, drape_ptr<MapShape> const & shape,
|
||||
ref_ptr<dp::TextureManager> texMng)
|
||||
{
|
||||
m_batcher.SetFeatureMinZoom(shape->GetFeatureMinZoom());
|
||||
shape->Draw(context, make_ref(&m_batcher), texMng);
|
||||
}
|
||||
|
||||
void OverlayBatcher::Finish(ref_ptr<dp::GraphicsContext> context, TOverlaysRenderData & data)
|
||||
{
|
||||
m_batcher.EndSession(context);
|
||||
data.swap(m_data);
|
||||
}
|
||||
|
||||
void OverlayBatcher::FlushGeometry(TileKey const & key, dp::RenderState const & state,
|
||||
drape_ptr<dp::RenderBucket> && bucket)
|
||||
{
|
||||
m_data.emplace_back(key, state, std::move(bucket));
|
||||
}
|
||||
} // namespace df
|
||||
Loading…
Add table
Add a link
Reference in a new issue