19 PhysxMemoryWriteBuffer::PhysxMemoryWriteBuffer() : currentSize(0), maxSize(0), data(nullptr)
27 PhysxMemoryWriteBuffer::~PhysxMemoryWriteBuffer()
29 NxGetPhysicsSDKAllocator()->free(data);
35 NxStream &PhysxMemoryWriteBuffer::storeByte(NxU8 b)
37 storeBuffer(&b,
sizeof(NxU8));
44 NxStream &PhysxMemoryWriteBuffer::storeWord(NxU16 w)
46 storeBuffer(&w,
sizeof(NxU16));
53 NxStream &PhysxMemoryWriteBuffer::storeDword(NxU32 d)
55 storeBuffer(&d,
sizeof(NxU32));
62 NxStream &PhysxMemoryWriteBuffer::storeFloat(NxReal f)
64 storeBuffer(&f,
sizeof(NxReal));
71 NxStream &PhysxMemoryWriteBuffer::storeDouble(NxF64 f)
73 storeBuffer(&f,
sizeof(NxF64));
80 NxStream &PhysxMemoryWriteBuffer::storeBuffer(
const void *buffer, NxU32 size)
82 NxU32 expectedSize = currentSize + size;
83 if (expectedSize > maxSize)
85 maxSize = expectedSize + 4096;
87 NxU8 *newData = (NxU8 *)NxGetPhysicsSDKAllocator()->malloc(maxSize, NX_MEMORY_PERSISTENT);
90 memcpy(newData, data, currentSize);
91 NxGetPhysicsSDKAllocator()->free(data);
95 memcpy(data + currentSize, buffer, size);
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.