Lock flag DX

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;
}

原文地址:https://www.cnblogs.com/minggoddess/p/7250974.html