mirror of
https://github.com/NoelFB/blah.git
synced 2024-11-28 16:58:57 +08:00
fixed d3d11 Texture::get_data, which didn't use RowPitch
This commit is contained in:
parent
7f1ef67d0c
commit
ba3c60b6cd
|
@ -257,12 +257,20 @@ namespace Blah
|
|||
}
|
||||
}
|
||||
|
||||
D3D11_BOX box;
|
||||
box.left = 0;
|
||||
box.right = m_width;
|
||||
box.bottom = m_height;
|
||||
box.top = 0;
|
||||
box.front = 0;
|
||||
box.back = 1;
|
||||
|
||||
// copy data to staging texture
|
||||
state.context->CopySubresourceRegion(
|
||||
staging, 0,
|
||||
0, 0, 0,
|
||||
texture, 0,
|
||||
nullptr);
|
||||
&box);
|
||||
|
||||
// get data
|
||||
D3D11_MAPPED_SUBRESOURCE map;
|
||||
|
@ -274,7 +282,11 @@ namespace Blah
|
|||
return;
|
||||
}
|
||||
|
||||
memcpy(data, map.pData, m_size);
|
||||
int bytes_per_pixel = m_size / (m_width * m_height);
|
||||
int bytes_per_row = m_width * bytes_per_pixel;
|
||||
for (int y = 0; y < m_height; y++)
|
||||
memcpy(data + y * bytes_per_row, (unsigned char*)map.pData + map.RowPitch * y, bytes_per_row);
|
||||
|
||||
state.context->Unmap(staging, 0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user