DxgiAPI.h
1 #pragma once 2 #include <d2d1_3.h> 3 #include <d3d11_4.h> 4 #include <dcomp.h> 5 #include <dxgi1_3.h> 6 #include <inspectable.h> 7 8 // Suppressing 26466 - Don't use static_cast downcasts - in base.h 9 #pragma warning(push) 10 #pragma warning(disable : 26466) 11 #include <winrt/base.h> 12 #pragma warning(pop) 13 14 15 struct DxgiWindowState 16 { 17 winrt::com_ptr<ID2D1RenderTarget> rt; 18 winrt::com_ptr<IDXGISwapChain1> swapChain; 19 winrt::com_ptr<IDCompositionTarget> compositionTarget; 20 }; 21 22 struct DxgiAPI final 23 { 24 struct D3D 25 { 26 winrt::com_ptr<ID3D11Device> d3dDevice; 27 winrt::com_ptr<IDXGIDevice> dxgiDevice; 28 winrt::com_ptr<IInspectable> d3dDeviceInspectable; 29 winrt::com_ptr<IDXGIFactory2> dxgiFactory2; 30 winrt::com_ptr<ID3D11DeviceContext> d3dContext; 31 }; 32 33 winrt::com_ptr<ID2D1Factory2> d2dFactory2; 34 winrt::com_ptr<IDWriteFactory> writeFactory; 35 36 winrt::com_ptr<ID3D11Device> d3dDevice; 37 winrt::com_ptr<IDXGIDevice> dxgiDevice; 38 winrt::com_ptr<IInspectable> d3dDeviceInspectable; 39 winrt::com_ptr<IDXGIFactory2> dxgiFactory2; 40 winrt::com_ptr<ID3D11DeviceContext> d3dContext; 41 42 D3D d3dForCapture; 43 44 winrt::com_ptr<ID2D1Device1> d2dDevice1; 45 winrt::com_ptr<IDCompositionDevice> compositionDevice; 46 47 DxgiAPI(); 48 49 enum class Uninitialized 50 { 51 }; 52 explicit inline DxgiAPI(Uninitialized) {} 53 54 DxgiWindowState CreateD2D1RenderTarget(HWND window) const; 55 };