Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
14 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/modules/ZoomIt/ZoomIt/CaptureFrameWait.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ namespace util
CaptureFrameWait::CaptureFrameWait(
winrt::IDirect3DDevice const& device,
winrt::GraphicsCaptureItem const& item,
winrt::SizeInt32 const& size)
winrt::SizeInt32 const& size,
bool borderRequired)
{
m_device = device;
m_item = item;
Expand All @@ -49,6 +50,11 @@ CaptureFrameWait::CaptureFrameWait(
size);
m_session = m_framePool.CreateCaptureSession(m_item);

if( !borderRequired )
{
ShowCaptureBorder( false );
}

m_framePool.FrameArrived({ this, &CaptureFrameWait::OnFrameArrived });
m_session.StartCapture();
}
Expand Down
11 changes: 10 additions & 1 deletion src/modules/ZoomIt/ZoomIt/CaptureFrameWait.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,14 @@ struct CaptureFrame
class CaptureFrameWait
{
public:
// borderRequired false suppresses the system capture border before the
// session starts; the process must already hold borderless capture
// access for it to take effect.
CaptureFrameWait(
winrt::Direct3D11::IDirect3DDevice const& device,
winrt::GraphicsCaptureItem const& item,
winrt::SizeInt32 const& size );
winrt::SizeInt32 const& size,
bool borderRequired = true );
~CaptureFrameWait();

std::optional<CaptureFrame> TryGetNextFrame();
Expand All @@ -124,6 +128,11 @@ class CaptureFrameWait
m_session.IsBorderRequired( show );
}
}
void RecreateFramePool( winrt::SizeInt32 const& size )
{
auto lock = m_lock.lock_exclusive();
m_framePool.Recreate( m_device, winrt::DirectXPixelFormat::B8G8R8A8UIntNormalized, 1, size );
}

private:
void OnFrameArrived(
Expand Down
Loading