예제 #1
0
	//---------------------------------------------------------------------
	void D3D11HardwareBuffer::_updateFromShadow(void)
	{
		if(mUseShadowBuffer && mShadowUpdated && !mSuppressHardwareUpdate)
		{
			bool discardWholeBuffer = mLockStart == 0 && mLockSize == mSizeInBytes;
			copyDataImpl(*mShadowBuffer, mLockStart, mLockStart, mLockSize, discardWholeBuffer);
			mShadowUpdated = false;
        }
    }
예제 #2
0
    //---------------------------------------------------------------------
    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);
	}
예제 #3
0
void copyData(ReadBuffer & from, WriteBuffer & to, size_t bytes, std::function<void()> cancellation_hook)
{
	copyDataImpl(from, to, true, bytes, cancellation_hook);
}
예제 #4
0
void copyData(ReadBuffer & from, WriteBuffer & to, size_t bytes, std::atomic<bool> & is_cancelled)
{
	copyDataImpl(from, to, true, bytes, &is_cancelled);
}
예제 #5
0
void copyData(ReadBuffer & from, WriteBuffer & to, size_t bytes)
{
	copyDataImpl(from, to, true, bytes, nullptr);
}
예제 #6
0
void copyData(ReadBuffer & from, WriteBuffer & to, std::function<void()> cancellation_hook)
{
	copyDataImpl(from, to, false, std::numeric_limits<size_t>::max(), cancellation_hook);
}
예제 #7
0
void copyData(ReadBuffer & from, WriteBuffer & to, std::atomic<bool> & is_cancelled)
{
	copyDataImpl(from, to, false, std::numeric_limits<size_t>::max(), &is_cancelled);
}
예제 #8
0
void copyData(ReadBuffer & from, WriteBuffer & to)
{
	copyDataImpl(from, to, false, std::numeric_limits<size_t>::max(), nullptr);
}