Используйте текстуру D3D12 как цель рендеринга D2D, вызывает ошибку проверкиC++

Программы на C++. Форум разработчиков
Anonymous
Используйте текстуру D3D12 как цель рендеринга D2D, вызывает ошибку проверки

Сообщение Anonymous »

Я пытаюсь написать контент d2d/dwrite в текстуру, которая должна использоваться в качестве ресурса шейдера в D3D12. Для этого я создаю id3d11on12device , как в https://github.com/microsoft/directx-gr ... 3d1211on12, но я не хочу отображать буферные буферы D3D12, но создавать свои собственные текстуры. Свойства ресурсов: < /p>

Код: Выделить всё

D3D12_RESOURCE_DESC desc;
::ZeroMemory(&desc, sizeof(desc));
desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE2D;
desc.MipLevels = 1;
desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
desc.DepthOrArraySize = 1;
desc.Flags = D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET | D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS;
desc.SampleDesc.Count = 1;

D3D12_HEAP_PROPERTIES heapProps;
::ZeroMemory(&heapProps, sizeof(heapProps));
heapProps.Type = D3D12_HEAP_TYPE_DEFAULT;
< /code>
И я создаю текстуры следующим образом: < /p>
THROW_IF_FAILED(d3d12Device->CreateCommittedResource(
&heapProps,
D3D12_HEAP_FLAG_SHARED,
&desc,
D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE,
&clear,
::IID_ID3D12Resource,
this->d3d12Targets[i].put_void()));
i есть d3d12_resource_flag_allo_simultery_access и d3d12_heap_flag_shared , как описано в обмене id3d11buffer и id3d12resource. class = "lang-cpp prettyprint-override">D3D11_RESOURCE_FLAGS flags = { D3D11_BIND_RENDER_TARGET };
THROW_IF_FAILED(this->d3d11On12Device->CreateWrappedResource(
this->d3d12Targets.get(),
&flags,
D3D12_RESOURCE_STATE_RENDER_TARGET,
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE,
::IID_ID3D11Resource,
this->d3d11Targets.put_void()));
< /code>
Я получаю ошибку проверки < /p>

D3D12 Ошибка: ID3D12CompatibilityDevice :: RefertSharedProperties: предоставленный ресурс не был использован D3D11 или с D3D11 DECS. [Разное ошибка #916: RefertSharedProperties_invalidobject]

Чего мне здесь не хватает?

Подробнее здесь: https://stackoverflow.com/questions/795 ... tion-error

Вернуться в «C++»