// Copyright (c) Microsoft Corporation
#ifndef THIRD_PARTY_WIN_VIRTUAL_DISPLAY_DRIVER_DIRECT3DDEVICE_H_
#define THIRD_PARTY_WIN_VIRTUAL_DISPLAY_DRIVER_DIRECT3DDEVICE_H_
// Make sure we don't get min/max macros
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <windows.h>
#include <wdf.h>
#include <iddcx.h>
#include <wrl.h>
namespace display::test {
// Manages the creation and lifetime of a Direct3D render device.
struct Direct3DDevice {
Direct3DDevice(LUID AdapterLuid);
Direct3DDevice();
HRESULT Init();
LUID AdapterLuid;
Microsoft::WRL::ComPtr<IDXGIFactory5> DxgiFactory;
Microsoft::WRL::ComPtr<IDXGIAdapter1> Adapter;
Microsoft::WRL::ComPtr<ID3D11Device> Device;
Microsoft::WRL::ComPtr<ID3D11DeviceContext> DeviceContext;
};
} // namespace display::test
#endif // THIRD_PARTY_WIN_VIRTUAL_DISPLAY_DRIVER_DIRECT3DDEVICE_H_