https://msdn.microsoft.com/en-us/library/windows/desktop/bb322846(v=vs.85).aspx
discard
nooverwrite
dynamic vertex alloc
if 满了
discard map (overwrite 申请块新的 大的)
else 没满
nooverwrite map (在当前这块 按照offset往下开memory)
相当于一个ring
uint32_t AddDynamicVertexData(const void* a_Data, uint32_t a_Size)
{
void* outputData;
uint32_t offset = BeginAddDynamicVertexData(a_Size, outData);//map 到outData
memcpy(outData, a_Data, a_Size);//cpu copy a_Data to GPU supplied address outData
EndAddDynamicVertexData();//buffer unmap
return offset;
}