#include "BsGpuParamBlockBuffer.h" #include "BsGpuParamBlock.h" namespace BansheeEngine { GpuParamBlockBuffer::GpuParamBlockBuffer() :mSize(0), mUsage(GPBU_DYNAMIC), mParamBlock(nullptr), mCoreParamBlock(nullptr) { } GpuParamBlockBuffer::~GpuParamBlockBuffer() { } void GpuParamBlockBuffer::initialize(UINT32 size, GpuParamBlockUsage usage) { mSize = size; mUsage = usage; mParamBlock = bs_shared_ptr(size); CoreObject::initialize(); } GenericGpuParamBlockBuffer::GenericGpuParamBlockBuffer() :mData(nullptr) { } void GenericGpuParamBlockBuffer::writeData(const UINT8* data) { memcpy(mData, data, mSize); } void GenericGpuParamBlockBuffer::readData(UINT8* data) const { memcpy(data, mData, mSize); } void GenericGpuParamBlockBuffer::initialize_internal() { if (mSize > 0) mData = (UINT8*)bs_alloc(mSize); else mData = nullptr; memset(mData, 0, mSize); GpuParamBlockBuffer::initialize_internal(); } void GenericGpuParamBlockBuffer::destroy_internal() { if(mData != nullptr) bs_free(mData); GpuParamBlockBuffer::destroy_internal(); } }