summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kms++/inc/kms++/extframebuffer.h1
-rw-r--r--kms++/src/extframebuffer.cpp10
2 files changed, 11 insertions, 0 deletions
diff --git a/kms++/inc/kms++/extframebuffer.h b/kms++/inc/kms++/extframebuffer.h
index cee82d3..1ec614f 100644
--- a/kms++/inc/kms++/extframebuffer.h
+++ b/kms++/inc/kms++/extframebuffer.h
@@ -26,6 +26,7 @@ public:
uint32_t size(unsigned plane) const { return m_planes[plane].size; }
uint32_t offset(unsigned plane) const { return m_planes[plane].offset; }
uint8_t* map(unsigned plane);
+ int prime_fd(unsigned plane);
private:
struct FramebufferPlane {
diff --git a/kms++/src/extframebuffer.cpp b/kms++/src/extframebuffer.cpp
index 51f3611..f50c36e 100644
--- a/kms++/src/extframebuffer.cpp
+++ b/kms++/src/extframebuffer.cpp
@@ -102,4 +102,14 @@ uint8_t* ExtFramebuffer::map(unsigned plane)
return p.map;
}
+int ExtFramebuffer::prime_fd(unsigned plane)
+{
+ FramebufferPlane& p = m_planes[plane];
+
+ if (!p.prime_fd)
+ throw invalid_argument("no primefb for non-dmabuf fb");
+
+ return p.prime_fd;
+}
+
}