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 bool supports_crtc(Crtc* crtc) const;
22 bool supports_format(PixelFormat fmt) const;
24 PlaneType plane_type() const;
26 std::vector<PixelFormat> get_formats() const;
27 uint32_t crtc_id() const;
28 uint32_t fb_id() const;
30 uint32_t crtc_x() const;
31 uint32_t crtc_y() const;
32 uint32_t x() const;
33 uint32_t y() const;
34 uint32_t gamma_size() const;
35 private:
36 Plane(Card& card, uint32_t id);
37 ~Plane();
39 PlanePriv* m_priv;
40 };
41 }