| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- #include "BsGpuParam.h"
- #include "BsGpuParams.h"
- #include "BsGpuParamBlockBuffer.h"
- namespace BansheeEngine
- {
- /************************************************************************/
- /* GPU PARAMS BASE */
- /************************************************************************/
- GpuParamBase::GpuParamBase()
- { }
- GpuParamBase::GpuParamBase(const SPtr<GpuParams>& parent)
- :mParent(parent)
- { }
- void GpuParamBase::markCoreDirty()
- {
- mParent->_markCoreDirty();
- }
- /************************************************************************/
- /* GPU DATA PARAMS BASE */
- /************************************************************************/
- GpuDataParamBase::GpuDataParamBase()
- : GpuParamBase(), mParamDesc(nullptr)
- { }
- GpuDataParamBase::GpuDataParamBase(GpuParamDataDesc* paramDesc, const SPtr<GpuParams>& parent)
- : GpuParamBase(parent), mParamDesc(paramDesc)
- { }
- bool GpuDataParamBase::getTransposeMatrices() const
- {
- return mParent->getTransposeMatrices();
- }
- bool GpuDataParamBase::write(UINT32 offset, const void* data, UINT32 size)
- {
- GpuParamBlockBufferPtr paramBlock = mParent->getParamBlockBuffer(mParamDesc->paramBlockSlot);
- if (paramBlock == nullptr)
- return false;
- paramBlock->write(offset, data, size);
- return true;
- }
- bool GpuDataParamBase::read(UINT32 offset, void* data, UINT32 size)
- {
- GpuParamBlockBufferPtr paramBlock = mParent->getParamBlockBuffer(mParamDesc->paramBlockSlot);
- if (paramBlock == nullptr)
- return false;
- paramBlock->read(offset, data, size);
- return true;
- }
- void GpuDataParamBase::zeroOut(UINT32 offset, UINT32 size)
- {
- GpuParamBlockBufferPtr paramBlock = mParent->getParamBlockBuffer(mParamDesc->paramBlockSlot);
- if (paramBlock == nullptr)
- return;
- paramBlock->zeroOut(offset, size);
- }
- /************************************************************************/
- /* GPU OBJECT PARAMS BASE */
- /************************************************************************/
- GpuObjectParamBase::GpuObjectParamBase()
- : GpuParamBase(), mParamDesc(nullptr)
- { }
- GpuObjectParamBase::GpuObjectParamBase(GpuParamObjectDesc* paramDesc, const SPtr<GpuParams>& parent)
- : GpuParamBase(parent), mParamDesc(paramDesc)
- { }
- HTexture GpuObjectParamBase::getTexture(UINT32 slot)
- {
- return mParent->getTexture(slot);
- }
- HSamplerState GpuObjectParamBase::getSamplerState(UINT32 slot)
- {
- return mParent->getSamplerState(slot);
- }
- void GpuObjectParamBase::setTexture(UINT32 slot, const HTexture& texture)
- {
- mParent->setTexture(slot, texture);
- }
- void GpuObjectParamBase::setSamplerState(UINT32 slot, const HSamplerState& sampler)
- {
- mParent->setSamplerState(slot, sampler);
- }
- void GpuObjectParamBase::setLoadStoreSurface(UINT32 slot, const TextureSurface& surface) const
- {
- mParent->setLoadStoreSurface(slot, surface);
- }
- void GpuObjectParamBase::setIsLoadStoreTexture(UINT32 slot, bool isLoadStore)
- {
- mParent->setIsLoadStoreTexture(slot, isLoadStore);
- }
- /************************************************************************/
- /* GPU PARAMS CORE BASE */
- /************************************************************************/
- GpuParamCoreBase::GpuParamCoreBase()
- { }
- GpuParamCoreBase::GpuParamCoreBase(const SPtr<GpuParamsCore>& parent)
- :mParent(parent)
- { }
- void GpuParamCoreBase::markCoreDirty()
- {
- mParent->_markCoreDirty();
- }
- /************************************************************************/
- /* GPU DATA PARAMS CORE BASE */
- /************************************************************************/
- GpuDataParamCoreBase::GpuDataParamCoreBase()
- : GpuParamCoreBase(), mParamDesc(nullptr)
- { }
- GpuDataParamCoreBase::GpuDataParamCoreBase(GpuParamDataDesc* paramDesc, const SPtr<GpuParamsCore>& parent)
- : GpuParamCoreBase(parent), mParamDesc(paramDesc)
- { }
- bool GpuDataParamCoreBase::getTransposeMatrices() const
- {
- return mParent->getTransposeMatrices();
- }
- bool GpuDataParamCoreBase::write(UINT32 offset, const void* data, UINT32 size)
- {
- SPtr<GpuParamBlockBufferCore> paramBlock = mParent->getParamBlockBuffer(mParamDesc->paramBlockSlot);
- if (paramBlock == nullptr)
- return false;
- paramBlock->write(offset, data, size);
- return true;
- }
- bool GpuDataParamCoreBase::read(UINT32 offset, void* data, UINT32 size)
- {
- SPtr<GpuParamBlockBufferCore> paramBlock = mParent->getParamBlockBuffer(mParamDesc->paramBlockSlot);
- if (paramBlock == nullptr)
- return false;
- paramBlock->read(offset, data, size);
- return true;
- }
- void GpuDataParamCoreBase::zeroOut(UINT32 offset, UINT32 size)
- {
- SPtr<GpuParamBlockBufferCore> paramBlock = mParent->getParamBlockBuffer(mParamDesc->paramBlockSlot);
- if (paramBlock == nullptr)
- return;
- paramBlock->zeroOut(offset, size);
- }
- /************************************************************************/
- /* GPU OBJECT PARAMS CORE BASE */
- /************************************************************************/
- GpuObjectParamCoreBase::GpuObjectParamCoreBase()
- : GpuParamCoreBase(), mParamDesc(nullptr)
- { }
- GpuObjectParamCoreBase::GpuObjectParamCoreBase(GpuParamObjectDesc* paramDesc, const SPtr<GpuParamsCore>& parent)
- : GpuParamCoreBase(parent), mParamDesc(paramDesc)
- { }
- SPtr<TextureCore> GpuObjectParamCoreBase::getTexture(UINT32 slot)
- {
- return mParent->getTexture(slot);
- }
- SPtr<SamplerStateCore> GpuObjectParamCoreBase::getSamplerState(UINT32 slot)
- {
- return mParent->getSamplerState(slot);
- }
- void GpuObjectParamCoreBase::setTexture(UINT32 slot, const SPtr<TextureCore>& texture)
- {
- mParent->setTexture(slot, texture);
- }
- void GpuObjectParamCoreBase::setSamplerState(UINT32 slot, const SPtr<SamplerStateCore>& sampler)
- {
- mParent->setSamplerState(slot, sampler);
- }
- void GpuObjectParamCoreBase::setLoadStoreSurface(UINT32 slot, const TextureSurface& surface) const
- {
- mParent->setLoadStoreSurface(slot, surface);
- }
- void GpuObjectParamCoreBase::setIsLoadStoreTexture(UINT32 slot, bool isLoadStore)
- {
- mParent->setIsLoadStoreTexture(slot, isLoadStore);
- }
- }
|