У меня есть текстура DDS, которую я создаю, используя функцию CreateDDSTextureFromMemory12
из вспомогательной библиотеки DDSTextureLoader
от Microsoft.Текстура имеет 10 мипмапов.Я могу создать текстуру и использовать ее без каких-либо проблем.
То, что я хотел бы сделать, это прочитать данные текстуры для конкретного mipmap с заданным индексом.
Здесь я пытаюсьдля чтения данных по индексу подресурса 5:
DirectX::CreateDDSTextureFromMemory12(
g_device,
g_cmd_list,
&bytes.front(),
file_size,
texResource,
tmpUploadHeap);
void* pData = nullptr;
texResource->ReadFromSubresource(pData, 64, 1, 5, nullptr);
Однако я получаю следующую ошибку:
D3D12 ERROR: ID3D12Resource1::ID3D12Resource::ReadFromSubresource:
ReadFromSubresource can not be called on a resource associated with a heap that has the CPU page properties of D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE.
Heaps of the type D3D12_HEAP_TYPE_DEFAULT should be assumed to have these properties.
[ RESOURCE_MANIPULATION ERROR #895: READFROMSUBRESOURCE_INVALIDRESOURCE]