summaryrefslogtreecommitdiff
path: root/libkms++/extframebuffer.cpp
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2015-10-14 17:27:34 +0300
committerTomi Valkeinen <tomi.valkeinen@ti.com>2015-10-26 20:10:01 +0200
commitec11751d5d3d0122262c1cfc6cf299ab37c705a6 (patch)
treeef07c1341e40967422b41749449db4b9ce86b1fb /libkms++/extframebuffer.cpp
parentf7a79dcadf81a9ac82bff243c2a48d38fc3e302b (diff)
ExtFramebuffer: add alternative constructor
Diffstat (limited to 'libkms++/extframebuffer.cpp')
-rw-r--r--libkms++/extframebuffer.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/libkms++/extframebuffer.cpp b/libkms++/extframebuffer.cpp
index 8b0af9f..4c90a4e 100644
--- a/libkms++/extframebuffer.cpp
+++ b/libkms++/extframebuffer.cpp
@@ -23,6 +23,18 @@ ExtFramebuffer::ExtFramebuffer(Card& card, uint32_t width, uint32_t height, uint
set_id(id);
}
+ExtFramebuffer::ExtFramebuffer(Card& card, uint32_t width, uint32_t height, PixelFormat format,
+ uint32_t handles[], uint32_t pitches[], uint32_t offsets[])
+ : Framebuffer(card, width, height)
+{
+ uint32_t id;
+ int r = drmModeAddFB2(card.fd(), width, height, (uint32_t)format, handles, pitches, offsets, &id, 0);
+ if (r)
+ throw std::invalid_argument(string("Failed to create ExtFramebuffer: ") + strerror(r));
+
+ set_id(id);
+}
+
ExtFramebuffer::~ExtFramebuffer()
{
drmModeRmFB(card().fd(), id());