12#include <xf86drmMode.h>
16#include <unordered_map>
17#include <unordered_set>
28class DrmConnectorMode;
42 virtual void pageFlipped(std::chrono::nanoseconds timestamp)
const = 0;
72 void pageFlipped(std::chrono::nanoseconds timestamp)
const override;
75 void setDeadline(std::chrono::steady_clock::time_point deadline);
76 std::optional<bool>
isVrr()
const;
85 bool doCommit(uint32_t flags);
87 const QList<DrmPipeline *> m_pipelines;
88 std::unordered_map<const DrmProperty *, std::shared_ptr<DrmBlob>> m_blobs;
89 std::unordered_map<DrmPlane *, std::shared_ptr<DrmFramebuffer>> m_buffers;
90 std::unordered_set<DrmPlane *> m_planes;
91 std::optional<bool> m_vrr;
92 std::unordered_map<uint32_t , std::unordered_map<uint32_t , uint64_t >> m_properties;
93 bool m_cursorOnly =
false;
94 bool m_modeset =
false;
105 void pageFlipped(std::chrono::nanoseconds timestamp)
const override;
109 const std::shared_ptr<DrmFramebuffer> m_buffer;
110 bool m_modeset =
false;
void addEnum(const DrmEnumProperty< T > &prop, T enumValue)
void setPresentationMode(PresentationMode mode)
const std::unordered_set< DrmPlane * > & modifiedPlanes() const
void addProperty(const DrmProperty &prop, uint64_t value)
void merge(DrmAtomicCommit *onTop)
DrmAtomicCommit(const DrmAtomicCommit ©)=default
void setVrr(DrmCrtc *crtc, bool vrr)
DrmAtomicCommit(const QList< DrmPipeline * > &pipelines)
bool areBuffersReadable() const
void addBuffer(DrmPlane *plane, const std::shared_ptr< DrmFramebuffer > &buffer)
void addBlob(const DrmProperty &prop, const std::shared_ptr< DrmBlob > &blob)
void setDeadline(std::chrono::steady_clock::time_point deadline)
bool isCursorOnly() const
void setCursorOnly(bool cursor)
std::optional< bool > isVrr() const
void pageFlipped(std::chrono::nanoseconds timestamp) const override
virtual void pageFlipped(std::chrono::nanoseconds timestamp) const =0
uint64_t valueForEnum(Enum enumValue) const
DrmLegacyCommit(DrmPipeline *pipeline, const std::shared_ptr< DrmFramebuffer > &buffer)
void pageFlipped(std::chrono::nanoseconds timestamp) const override
bool doPageflip(PresentationMode mode)
bool doModeset(DrmConnector *connector, DrmConnectorMode *mode)