//--------------------------------------------------------------------- void D3D11HardwareBuffer::_updateFromShadow(void) { if(mUseShadowBuffer && mShadowUpdated && !mSuppressHardwareUpdate) { bool discardWholeBuffer = mLockStart == 0 && mLockSize == mSizeInBytes; copyDataImpl(*mShadowBuffer, mLockStart, mLockStart, mLockSize, discardWholeBuffer); mShadowUpdated = false; } }
//--------------------------------------------------------------------- void D3D11HardwareBuffer::copyData(HardwareBuffer& srcBuffer, size_t srcOffset, size_t dstOffset, size_t length, bool discardWholeBuffer) { if (mUseShadowBuffer) { static_cast<D3D11HardwareBuffer*>(mShadowBuffer.get())->copyDataImpl(srcBuffer, srcOffset, dstOffset, length, discardWholeBuffer); } copyDataImpl(srcBuffer, srcOffset, dstOffset, length, discardWholeBuffer); }
void copyData(ReadBuffer & from, WriteBuffer & to, size_t bytes, std::function<void()> cancellation_hook) { copyDataImpl(from, to, true, bytes, cancellation_hook); }
void copyData(ReadBuffer & from, WriteBuffer & to, size_t bytes, std::atomic<bool> & is_cancelled) { copyDataImpl(from, to, true, bytes, &is_cancelled); }
void copyData(ReadBuffer & from, WriteBuffer & to, size_t bytes) { copyDataImpl(from, to, true, bytes, nullptr); }
void copyData(ReadBuffer & from, WriteBuffer & to, std::function<void()> cancellation_hook) { copyDataImpl(from, to, false, std::numeric_limits<size_t>::max(), cancellation_hook); }
void copyData(ReadBuffer & from, WriteBuffer & to, std::atomic<bool> & is_cancelled) { copyDataImpl(from, to, false, std::numeric_limits<size_t>::max(), &is_cancelled); }
void copyData(ReadBuffer & from, WriteBuffer & to) { copyDataImpl(from, to, false, std::numeric_limits<size_t>::max(), nullptr); }