Skip to content

Commit

Permalink
Copy Init data for 2D texture scanline by scanline
Browse files Browse the repository at this point in the history
  • Loading branch information
indygit committed Jan 29, 2016
1 parent 4b7dcb9 commit f5773a0
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion render-only-sample/rosumd/RosUmdDevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,27 @@ void RosUmdDevice::CreateResource(const D3D11DDIARG_CREATERESOURCE* pCreateResou

Lock(&lock);

memcpy(lock.pData, pCreateResource->pInitialDataUP[0].pSysMem, pResource->m_hwSizeBytes);
if (pResource->m_resourceDimension == D3D10DDIRESOURCE_BUFFER)
{
memcpy(lock.pData, pCreateResource->pInitialDataUP[0].pSysMem, pResource->m_mip0Info.PhysicalWidth);
}
else if (pResource->m_resourceDimension == D3D10DDIRESOURCE_TEXTURE2D)
{
BYTE * pSrc = (BYTE *)pCreateResource->pInitialDataUP[0].pSysMem;
BYTE * pDst = (BYTE *)lock.pData;

for (UINT i = 0; i < pResource->m_mip0Info.TexelHeight; i++)
{
memcpy(pDst, pSrc, pCreateResource->pInitialDataUP[0].SysMemPitch);

pSrc += pCreateResource->pInitialDataUP[0].SysMemPitch;
pDst += pResource->m_hwPitchBytes;
}
}
else
{
assert(false);
}

D3DDDICB_UNLOCK unlock;
memset(&unlock, 0, sizeof(unlock));
Expand Down

0 comments on commit f5773a0

Please sign in to comment.