Add IMappedFramebuffer and remove MappedBuffer
[android/external-libkmsxx.git] / libkms++ / framebuffer.h
1 #pragma once
3 #include "drmobject.h"
4 #include "pixelformats.h"
6 namespace kms
7 {
8 class Framebuffer : public DrmObject
9 {
10 public:
11         Framebuffer(Card& card, uint32_t id);
12         virtual ~Framebuffer();
14         uint32_t width() const { return m_width; }
15         uint32_t height() const { return m_height; }
16 protected:
17         Framebuffer(Card& card, int width, int height);
19 private:
20         uint32_t m_width;
21         uint32_t m_height;
22 };
24 class IMappedFramebuffer {
25 public:
26         virtual ~IMappedFramebuffer() { }
28         virtual uint32_t width() const = 0;
29         virtual uint32_t height() const = 0;
31         virtual PixelFormat format() const = 0;
32         virtual unsigned num_planes() const = 0;
34         virtual uint32_t stride(unsigned plane) const = 0;
35         virtual uint32_t size(unsigned plane) const = 0;
36         virtual uint32_t offset(unsigned plane) const = 0;
37         virtual uint8_t* map(unsigned plane) = 0;
38 };
40 }