| 246 | |
| 247 | template <typename TBatcher, typename... TArgs> |
| 248 | IndicesRange Batcher::InsertPrimitives(ref_ptr<GraphicsContext> context, RenderState const & state, |
| 249 | ref_ptr<AttributeProvider> params, drape_ptr<OverlayHandle> && transferHandle, |
| 250 | uint8_t vertexStride, TArgs... batcherArgs) |
| 251 | { |
| 252 | ref_ptr<VertexArrayBuffer> vao = GetBucket(state)->GetBuffer(); |
| 253 | IndicesRange range; |
| 254 | |
| 255 | drape_ptr<OverlayHandle> handle = std::move(transferHandle); |
| 256 | |
| 257 | { |
| 258 | Batcher::CallbacksWrapper wrapper(state, make_ref(handle), make_ref(this)); |
| 259 | wrapper.SetVAO(vao); |
| 260 | |
| 261 | TBatcher batch(wrapper, batcherArgs...); |
| 262 | batch.SetCanDivideStreams(handle == nullptr); |
| 263 | batch.SetVertexStride(vertexStride); |
| 264 | batch.BatchData(context, params); |
| 265 | |
| 266 | range = wrapper.Finish(); |
| 267 | } |
| 268 | |
| 269 | if (handle != nullptr) |
| 270 | GetBucket(state)->AddOverlayHandle(std::move(handle)); |
| 271 | |
| 272 | return range; |
| 273 | } |
| 274 | |
| 275 | Batcher * BatcherFactory::GetNew() const |
| 276 | { |
nothing calls this directly
no test coverage detected