Интерфейс ID3D12Device (d3d12.h)
Представляет виртуальный адаптер; он используется для создания распределителей команд, списков команд, очередей команд, ограждений, ресурсов, объектов состояния конвейера, кучи, корневых подписей, образцов и многих представлений ресурсов.
Наследование
Интерфейс ID3D12Device наследуется от ID3D12Object. ID3D12Device также имеет следующие типы элементов:
Методы
Интерфейс ID3D12Device содержит следующие методы.
ID3D12Device::CheckFeatureSupport Возвращает сведения о функциях, поддерживаемых текущим графическим драйвером. (ID3D12Device.CheckFeatureSupport) |
ID3D12Device::CopyDescriptors Копирует дескрипторы из источника в место назначения. (ID3D12Device.CopyDescriptors) |
ID3D12Device::CopyDescriptorsSimple Копирует дескрипторы из источника в место назначения. (ID3D12Device.CopyDescriptorsSimple) |
ID3D12Device::CreateCommandAllocator Создает объект распределителя команд. |
ID3D12Device::CreateCommandList Создает список команд. |
ID3D12Device::CreateCommandQueue Создает очередь команд. |
ID3D12Device::CreateCommandSignature Этот метод создает сигнатуру команды. |
ID3D12Device::CreateCommittedResource Создает как ресурс, так и неявную кучу, чтобы куча была достаточно большой, чтобы содержать весь ресурс, а ресурс сопоставляется с кучей. |
ID3D12Device::CreateComputePipelineState Создает объект состояния вычислительного конвейера. |
ID3D12Device::CreateConstantBufferView Создает представление буфера констант для доступа к данным ресурсов. |
ID3D12Device::CreateDepthStencilView Создает представление элементов глубины для доступа к данным ресурсов. |
ID3D12Device::CreateDescriptorHeap Создает объект кучи дескриптора. |
ID3D12Device::CreateFence Создает объект ограждения. (ID3D12Device.CreateFence) |
ID3D12Device::CreateGraphicsPipelineState Создает объект состояния графического конвейера. |
ID3D12Device::CreateHeap Создает кучу, которую можно использовать с размещенными и зарезервированными ресурсами. |
ID3D12Device::CreatePlacedResource Создает ресурс, размещенный в определенной куче. Размещенные ресурсы — это самые легкие доступные объекты ресурсов, которые быстрее всего создаются и уничтожаются. |
ID3D12Device::CreateQueryHeap Создает кучу запросов. Куча запросов содержит массив запросов. |
ID3D12Device::CreateRenderTargetView Создает представление цели отрисовки для доступа к данным ресурсов. (ID3D12Device.CreateRenderTargetView) |
ID3D12Device::CreateReservedResource Создает зарезервированный ресурс, который еще не сопоставлен ни с одной страницей в куче. |
ID3D12Device::CreateRootSignature Создает макет корневой подписи. |
ID3D12Device::CreateSampler Создайте объект sampler, который инкапсулирует сведения о выборке для текстуры. |
ID3D12Device::CreateShaderResourceView Создает представление шейдер-ресурса для доступа к данным в ресурсе. (ID3D12Device.CreateShaderResourceView) |
ID3D12Device::CreateSharedHandle Создает общий дескриптор для кучи, ресурса или объекта ограждения. |
ID3D12Device::CreateUnorderedAccessView Создает представление для неупорядоченного доступа. |
ID3D12Device::Evict Включает выход данных на страницу, что исключает доступ GPU к этим данным. |
ID3D12Device::GetAdapterLuid Возвращает локально уникальный идентификатор текущего устройства (адаптера). |
ID3D12Device::GetCopyableFootprints Возвращает макет ресурса, который можно скопировать. Помогает приложению заполнять D3D12_PLACED_SUBRESOURCE_FOOTPRINT и D3D12_SUBRESOURCE_FOOTPRINT при выделении дополнительного пространства в кучах отправки. |
ID3D12Device::GetDescriptorHandleIncrementSize Возвращает размер приращения дескриптора для заданного типа кучи дескриптора. Это значение обычно используется для увеличения дескриптора в массив дескрипторов на правильную величину. |
ID3D12Device::GetDeviceRemovedReason Возвращает причину удаления устройства. |
ID3D12Device::GetNodeCount Сообщает количество физических адаптеров (узлов), связанных с этим устройством. |
ID3D12Device::GetResourceTiling Получает сведения о том, как ресурс с плитками разбивается на плитки. (ID3D12Device.GetResourceTiling) |
ID3D12Device::MakeResident Делает объекты резидентами для устройства. |
ID3D12Device::OpenSharedHandle Открывает дескриптор для общих ресурсов, общих кучи и общих ограждений с помощью HANDLE и REFIID. |
ID3D12Device::OpenSharedHandleByName Открывает дескриптор для общих ресурсов, общих кучи и общих ограждений с помощью имени и доступа. |
ID3D12Device::SetStablePowerState Помощь во время разработки для определенных типов профилирования и экспериментального прототипирования. |
Комментарии
Используйте D3D12CreateDevice для создания устройства.
Для Windows 10 Anniversary некоторые дополнительные функции доступны через ID3D12Device1.
Примеры
В примере D3D1211on12 используется ID3D12Device следующим образом:
Объявления файлов заголовков.
// Pipeline objects.
D3D12_VIEWPORT m_viewport;
ComPtr<IDXGISwapChain3> m_swapChain;
ComPtr<ID3D12Device> m_device;
ComPtr<ID3D12Resource> m_renderTargets[FrameCount];
ComPtr<ID3D12Resource> m_depthStencil;
ComPtr<ID3D12CommandAllocator> m_commandAllocator;
ComPtr<ID3D12GraphicsCommandList> m_commandList;
ComPtr<ID3D12CommandQueue> m_commandQueue;
ComPtr<ID3D12RootSignature >m_rootSignature;
ComPtr<ID3D12DescriptorHeap> m_rtvHeap;
ComPtr<ID3D12DescriptorHeap> m_cbvSrvHeap;
ComPtr<ID3D12DescriptorHeap> m_dsvHeap;
ComPtr<ID3D12DescriptorHeap> m_samplerHeap;
ComPtr<ID3D12PipelineState> m_pipelineState1;
ComPtr<ID3D12PipelineState> m_pipelineState2;
D3D12_RECT m_scissorRect;
Проверка поддерживаемых функций.
inline UINT8 D3D12GetFormatPlaneCount(
_In_ ID3D12Device* pDevice,
DXGI_FORMAT Format
)
{
D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = {Format};
if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo))))
{
return 0;
}
return formatInfo.PlaneCount;
}
См. пример кода в справочнике по D3D12.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d12.h |