15 #include "physxMemoryWriteBuffer.h" 22 PhysxMemoryWriteBuffer::PhysxMemoryWriteBuffer() : currentSize(0), maxSize(0), data(NULL)
32 PhysxMemoryWriteBuffer::~PhysxMemoryWriteBuffer()
34 NxGetPhysicsSDKAllocator()->free(data);
42 NxStream &PhysxMemoryWriteBuffer::storeByte(NxU8 b)
44 storeBuffer(&b,
sizeof(NxU8));
53 NxStream &PhysxMemoryWriteBuffer::storeWord(NxU16 w)
55 storeBuffer(&w,
sizeof(NxU16));
64 NxStream &PhysxMemoryWriteBuffer::storeDword(NxU32 d)
66 storeBuffer(&d,
sizeof(NxU32));
75 NxStream &PhysxMemoryWriteBuffer::storeFloat(NxReal f)
77 storeBuffer(&f,
sizeof(NxReal));
86 NxStream &PhysxMemoryWriteBuffer::storeDouble(NxF64 f)
88 storeBuffer(&f,
sizeof(NxF64));
97 NxStream &PhysxMemoryWriteBuffer::storeBuffer(
const void *buffer, NxU32 size)
99 NxU32 expectedSize = currentSize + size;
100 if (expectedSize > maxSize)
102 maxSize = expectedSize + 4096;
104 NxU8 *newData = (NxU8 *)NxGetPhysicsSDKAllocator()->malloc(maxSize, NX_MEMORY_PERSISTENT);
107 memcpy(newData, data, currentSize);
108 NxGetPhysicsSDKAllocator()->free(data);
112 memcpy(data + currentSize, buffer, size);