Я пытаюсь изменить данные в Texture2D с помощью Map / Unmap и сталкиваюсь с проблемой, когда текстура появляется только в верхней пятой части экрана, а остальные - просто случайные пиксели. (скриншот для уточнения)
Вот код:
uint32_t* m_colorBuffer; //buffer to fill the texture with random colors
D3D11_SUBRESOURCE_DATA m_textureData;
ID3D11Texture2D* m_texture;
D3D11_MAPPED_SUBRESOURCE mappedResource;
m_deviceContext->Map(m_texture, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource);
uint32_t rowSize = 256 * 4;
BYTE* mappedData = reinterpret_cast<BYTE*>(mappedResource.pData);
for (int i = 0; i < 256; i++) {
memcpy(mappedData, &(m_colorBuffer[i*rowSize]), rowSize);
mappedData += mappedResource.RowPitch;
}
m_deviceContext->Unmap(m_texture, 0);
Может кто-нибудь сказать, пожалуйста, что я здесь делаю не так?
Я был бы рад предоставить больше кода, если это необходимо.