App.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include <guiddef.h>
  3. // WinRT
  4. #include <winrt/Windows.Foundation.Numerics.h>
  5. #include <winrt/Windows.Foundation.h>
  6. #include <winrt/Windows.Graphics.Capture.h>
  7. #include <winrt/Windows.Graphics.DirectX.Direct3d11.h>
  8. #include <winrt/Windows.Graphics.DirectX.h>
  9. #include <winrt/Windows.Graphics.Imaging.h>
  10. #include <winrt/Windows.Storage.Streams.h>
  11. #include <winrt/Windows.Storage.h>
  12. #include <winrt/Windows.System.h>
  13. #include <winrt/Windows.UI.Composition.Desktop.h>
  14. #include <winrt/Windows.UI.Composition.h>
  15. #include <winrt/Windows.UI.Popups.h>
  16. #include <winrt/Windows.UI.h>
  17. #include <winrt/Windows.Foundation.Collections.h>
  18. #include "SimpleCapture.h"
  19. class App {
  20. public:
  21. App() { }
  22. ~App() { }
  23. void Initialize(
  24. winrt::Windows::UI::Composition::ContainerVisual const& root);
  25. bool StartCaptureWindow(HWND hwnd, int width, int height);
  26. bool StartCaptureMonitor(HMONITOR monitor, int width, int height);
  27. void SetDrawCursor(bool isDrawCursor);
  28. void Close();
  29. AVFrame* GetFrame() { return m_capture->GetFrame(); }
  30. private:
  31. winrt::Windows::UI::Composition::Compositor m_compositor {nullptr};
  32. winrt::Windows::UI::Composition::ContainerVisual m_root {nullptr};
  33. winrt::Windows::UI::Composition::SpriteVisual m_content {nullptr};
  34. winrt::Windows::UI::Composition::CompositionSurfaceBrush m_brush {nullptr};
  35. winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DDevice m_device {nullptr};
  36. SimpleCapture* m_capture = nullptr;
  37. };