From 2984c032ccef081c350f306c96e3c923126657c8 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Fri, 2 Oct 2015 21:27:55 +0300 Subject: Add ExtFramebuffer Add ExtFramebuffer for cases where the buffer have been allocated externally. --- libkms++/extframebuffer.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 libkms++/extframebuffer.cpp (limited to 'libkms++/extframebuffer.cpp') diff --git a/libkms++/extframebuffer.cpp b/libkms++/extframebuffer.cpp new file mode 100644 index 0000000..de9d737 --- /dev/null +++ b/libkms++/extframebuffer.cpp @@ -0,0 +1,35 @@ + +#include +#include +#include +#include +#include + +#include "kms++.h" + +using namespace std; + +namespace kms +{ + +ExtFramebuffer::ExtFramebuffer(Card& card, uint32_t width, uint32_t height, uint32_t depth, uint32_t bpp, uint32_t stride, uint32_t handle) + :Framebuffer(card, width, height) +{ + uint32_t id; + int r = drmModeAddFB(card.fd(), width, height, depth, bpp, stride, handle, &id); + if (r) + throw invalid_argument("fob"); + m_id = id; +} + +ExtFramebuffer::~ExtFramebuffer() +{ + drmModeRmFB(card().fd(), id()); +} + +void ExtFramebuffer::print_short() const +{ + printf("Framebuffer %d\n", id()); +} + +} -- cgit v1.2.3