]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android/external-libkmsxx.git/blob - kms++/inc/kms++/framebuffer.h
Add Framebuffer::flush()
[android/external-libkmsxx.git] / kms++ / inc / kms++ / 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; }
17         void flush();
18 protected:
19         Framebuffer(Card& card, uint32_t width, uint32_t height);
21 private:
22         uint32_t m_width;
23         uint32_t m_height;
24 };
26 class IMappedFramebuffer {
27 public:
28         virtual ~IMappedFramebuffer() { }
30         virtual uint32_t width() const = 0;
31         virtual uint32_t height() const = 0;
33         virtual PixelFormat format() const = 0;
34         virtual unsigned num_planes() const = 0;
36         virtual uint32_t stride(unsigned plane) const = 0;
37         virtual uint32_t size(unsigned plane) const = 0;
38         virtual uint32_t offset(unsigned plane) const = 0;
39         virtual uint8_t* map(unsigned plane) = 0;
40 };
42 }