diff options
Diffstat (limited to 'kms++/framebuffer.h')
-rw-r--r-- | kms++/framebuffer.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/kms++/framebuffer.h b/kms++/framebuffer.h new file mode 100644 index 0000000..cbf705d --- /dev/null +++ b/kms++/framebuffer.h @@ -0,0 +1,40 @@ +#pragma once + +#include "drmobject.h" +#include "pixelformats.h" + +namespace kms +{ +class Framebuffer : public DrmObject +{ +public: + Framebuffer(Card& card, uint32_t id); + virtual ~Framebuffer(); + + uint32_t width() const { return m_width; } + uint32_t height() const { return m_height; } +protected: + Framebuffer(Card& card, uint32_t width, uint32_t height); + +private: + uint32_t m_width; + uint32_t m_height; +}; + +class IMappedFramebuffer { +public: + virtual ~IMappedFramebuffer() { } + + virtual uint32_t width() const = 0; + virtual uint32_t height() const = 0; + + virtual PixelFormat format() const = 0; + virtual unsigned num_planes() const = 0; + + virtual uint32_t stride(unsigned plane) const = 0; + virtual uint32_t size(unsigned plane) const = 0; + virtual uint32_t offset(unsigned plane) const = 0; + virtual uint8_t* map(unsigned plane) = 0; +}; + +} |