summaryrefslogtreecommitdiff
path: root/src/protocols/Screencopy.hpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-04-12 21:40:51 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-04-12 21:40:51 +0100
commita22e1174ee8b61bce400265206010cd52c5bace7 (patch)
treed9fc484b058d3b22cb2e22f5c70a63dccbcf44b7 /src/protocols/Screencopy.hpp
parent985764c8db01ff8f23461ed860eaacf3d52ee813 (diff)
screencopy: implement dmabuf
Diffstat (limited to 'src/protocols/Screencopy.hpp')
-rw-r--r--src/protocols/Screencopy.hpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/protocols/Screencopy.hpp b/src/protocols/Screencopy.hpp
index d854c3bd..77d2b5c3 100644
--- a/src/protocols/Screencopy.hpp
+++ b/src/protocols/Screencopy.hpp
@@ -54,6 +54,7 @@ class CScreencopyProtocolManager {
void copyFrame(wl_client* client, wl_resource* resource, wl_resource* buffer);
void onRenderEnd(CMonitor* pMonitor);
+ void onOutputCommit(CMonitor* pMonitor, wlr_output_event_commit* e);
private:
wl_global* m_pGlobal = nullptr;
@@ -64,6 +65,9 @@ class CScreencopyProtocolManager {
std::vector<SScreencopyFrame*> m_vFramesAwaitingWrite;
+ wlr_buffer* m_pLastMonitorBackBuffer = nullptr;
+
+ void shareAllFrames(CMonitor* pMonitor, bool dmabuf);
void shareFrame(SScreencopyFrame* frame);
void sendFrameDamage(SScreencopyFrame* frame);
bool copyFrameDmabuf(SScreencopyFrame* frame);