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 }