Welcome to mirror list, hosted at ThFree Co, Russian Federation.

index_buffer_mutator.cpp « drape - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4a0da796ad4a68296b7e386e50222ea433993ffe (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
37
38
39
40
41
#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(uint32_t baseSize)
  : m_activeSize(0)
{
  m_buffer.Resize(baseSize);
}

void IndexBufferMutator::AppendIndexes(void const * indexes, uint32_t count)
{
  uint32_t dstActiveSize = m_activeSize + count;
  if (dstActiveSize  > m_buffer.Size())
    m_buffer.Resize(max(m_buffer.Size() * 2, dstActiveSize));

  memcpy(m_buffer.GetRaw(m_activeSize), indexes, count * IndexStorage::SizeOfIndex());
  m_activeSize = dstActiveSize;
}

void const * IndexBufferMutator::GetIndexes() const
{
  return m_buffer.GetRawConst();
}

uint32_t IndexBufferMutator::GetIndexCount() const
{
  return m_activeSize;
}

uint32_t IndexBufferMutator::GetCapacity() const
{
  return m_buffer.Size();
}

} // namespace dp