diff options
Diffstat (limited to 'libkms++/framebuffer.cpp')
-rw-r--r-- | libkms++/framebuffer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libkms++/framebuffer.cpp b/libkms++/framebuffer.cpp index a7e5ad6..2481561 100644 --- a/libkms++/framebuffer.cpp +++ b/libkms++/framebuffer.cpp @@ -1,3 +1,4 @@ +#include <algorithm> #include <cstring> #include <stdexcept> #include <sys/mman.h> @@ -14,6 +15,7 @@ namespace kms Framebuffer::Framebuffer(Card& card, int width, int 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) @@ -25,6 +27,16 @@ Framebuffer::Framebuffer(Card& card, uint32_t id) 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); +} + + } |