| 377 | } |
| 378 | |
| 379 | void CopyContext::ReadTextureTask::getData(void* pData, size_t size) const |
| 380 | { |
| 381 | FALCOR_ASSERT(size == size_t(mRowCount) * mActualRowSize * mDepth); |
| 382 | |
| 383 | mpFence->wait(); |
| 384 | |
| 385 | uint8_t* pDst = reinterpret_cast<uint8_t*>(pData); |
| 386 | const uint8_t* pSrc = reinterpret_cast<const uint8_t*>(mpBuffer->map()); |
| 387 | |
| 388 | for (uint32_t z = 0; z < mDepth; z++) |
| 389 | { |
| 390 | const uint8_t* pSrcZ = pSrc + z * (size_t)mRowSize * mRowCount; |
| 391 | uint8_t* pDstZ = pDst + z * (size_t)mActualRowSize * mRowCount; |
| 392 | for (uint32_t y = 0; y < mRowCount; y++) |
| 393 | { |
| 394 | const uint8_t* pSrcY = pSrcZ + y * (size_t)mRowSize; |
| 395 | uint8_t* pDstY = pDstZ + y * (size_t)mActualRowSize; |
| 396 | std::memcpy(pDstY, pSrcY, mActualRowSize); |
| 397 | } |
| 398 | } |
| 399 | |
| 400 | mpBuffer->unmap(); |
| 401 | } |
| 402 | |
| 403 | std::vector<uint8_t> CopyContext::ReadTextureTask::getData() const |
| 404 | { |
no test coverage detected