libkms++/plane: Add methods for getting details of the DRM object
[android/external-libkmsxx.git] / libkms++ / plane.h
1 #pragma once
3 #include "drmobject.h"
5 namespace kms
6 {
8 enum class PlaneType
9 {
10         Overlay = 0,
11         Primary = 1,
12         Cursor = 2,
13 };
15 struct PlanePriv;
17 class Plane : public DrmObject
18 {
19         friend class Card;
20 public:
21         void print_short() const;
23         bool supports_crtc(Crtc* crtc) const;
24         bool supports_format(PixelFormat fmt) const;
26         PlaneType plane_type() const;
28         std::vector<PixelFormat> get_formats() const;
29         uint32_t crtc_id() const;
30         uint32_t fb_id() const;
32         uint32_t crtc_x() const;
33         uint32_t crtc_y() const;
34         uint32_t x() const;
35         uint32_t y() const;
36         uint32_t gamma_size() const;
37 private:
38         Plane(Card& card, uint32_t id);
39         ~Plane();
41         PlanePriv* m_priv;
42 };
43 }