blob: 8179122789ad0acfcdc1eae92f4214bc8d925d60 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include "drape/index_buffer_mutator.hpp"
#include "drape/vertex_array_buffer.hpp"
#include "../std/cstring.hpp" // for memcpy
#include "../std/algorithm.hpp" // for max
namespace dp
{
IndexBufferMutator::IndexBufferMutator(uint16_t baseSize)
: m_activeSize(0)
{
m_buffer.resize(baseSize);
}
void IndexBufferMutator::AppendIndexes(uint16_t const * indexes, uint16_t count)
{
size_t dstActiveSize = m_activeSize + count;
if (dstActiveSize > m_buffer.size())
m_buffer.resize(max(m_buffer.size() * 2, dstActiveSize));
memcpy(&m_buffer[m_activeSize], indexes, count * sizeof(uint16_t));
m_activeSize = dstActiveSize;
}
uint16_t const * IndexBufferMutator::GetIndexes() const
{
return &m_buffer[0];
}
uint16_t IndexBufferMutator::GetIndexCount() const
{
return m_activeSize;
}
} // namespace dp
|