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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
/*!
@file
@author Albert Semenov
@date 08/2012
*/
#include "MyGUI_ExportVertexBuffer.h"
#include "MyGUI_ExportDiagnostic.h"
namespace MyGUI
{
const size_t VERTEX_BUFFER_REALLOCK_STEP = 5 * VertexQuad::VertexCount;
ExportVertexBuffer::ExportVertexBuffer() :
mNeedVertexCount(0),
mVertexCount(0),
mSizeInBytes(0),
mId(0),
mVertex(nullptr),
mChange(false)
{
mId = (size_t)this;
}
ExportVertexBuffer::~ExportVertexBuffer()
{
destroy();
}
void ExportVertexBuffer::setVertexCount(size_t _count)
{
mNeedVertexCount = _count;
}
size_t ExportVertexBuffer::getVertexCount() const
{
return mNeedVertexCount;
}
Vertex* ExportVertexBuffer::lock()
{
if (mNeedVertexCount > mVertexCount || mVertexCount == 0)
resize();
return mVertex;
}
void ExportVertexBuffer::unlock()
{
mChange = true;
}
size_t ExportVertexBuffer::getId() const
{
return mId;
}
void ExportVertexBuffer::setChange(bool _value)
{
mChange = _value;
}
bool ExportVertexBuffer::getChange() const
{
return mChange;
}
void ExportVertexBuffer::create()
{
mVertex = new Vertex[mVertexCount];
}
void ExportVertexBuffer::destroy()
{
delete mVertex;
mVertex = nullptr;
}
void ExportVertexBuffer::resize()
{
mVertexCount = mNeedVertexCount + VERTEX_BUFFER_REALLOCK_STEP;
destroy();
create();
}
}
|