diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2016-06-11 21:46:24 +0300 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2016-06-11 21:46:24 +0300 |
commit | 9916712a62169606d845510028a3ea6f84bd442f (patch) | |
tree | aca4e1bec39500812111c43a8ecee862edae0002 /kms++/src/framebuffer.cpp | |
parent | 736b295100ce441e800457bcbd08cb36db543ff2 (diff) |
kms++: organize into subdirs
Diffstat (limited to 'kms++/src/framebuffer.cpp')
-rw-r--r-- | kms++/src/framebuffer.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/kms++/src/framebuffer.cpp b/kms++/src/framebuffer.cpp new file mode 100644 index 0000000..a7f589c --- /dev/null +++ b/kms++/src/framebuffer.cpp @@ -0,0 +1,42 @@ +#include <algorithm> +#include <cstring> +#include <stdexcept> +#include <sys/mman.h> +#include <xf86drm.h> +#include <xf86drmMode.h> + +#include <kms++/kms++.h> + +using namespace std; + +namespace kms +{ + +Framebuffer::Framebuffer(Card& card, uint32_t width, uint32_t height) + : DrmObject(card, DRM_MODE_OBJECT_FB), m_width(width), m_height(height) +{ + card.m_framebuffers.push_back(this); +} + +Framebuffer::Framebuffer(Card& card, uint32_t id) + : DrmObject(card, id, DRM_MODE_OBJECT_FB) +{ + auto fb = drmModeGetFB(card.fd(), id); + + m_width = fb->width; + m_height = fb->height; + + drmModeFreeFB(fb); + + card.m_framebuffers.push_back(this); +} + +Framebuffer::~Framebuffer() +{ + auto& fbs = card().m_framebuffers; + auto iter = find(fbs.begin(), fbs.end(), this); + card().m_framebuffers.erase(iter); +} + + +} |