#pragma once #include #include #include #include using Microsoft::WRL::ComPtr; class ScreenCapture { public: ScreenCapture(); ~ScreenCapture(); bool Initialize(); bool CaptureFrame(ComPtr& texture); void ReleaseFrame(); ID3D11Device* GetDevice() const { return device_.Get(); } ID3D11DeviceContext* GetContext() const { return context_.Get(); } private: ComPtr device_; ComPtr context_; ComPtr duplication_; bool frame_acquired_ = false; };