blob: d50e5395c6107ffa5005ae296cce365e7176e5c5 [file] [log] [blame]
#pragma once
#include "drmpropobject.h"
namespace kms
{
enum class PlaneType
{
Overlay = 0,
Primary = 1,
Cursor = 2,
};
struct PlanePriv;
class Plane : public DrmPropObject
{
friend class Card;
public:
bool supports_crtc(Crtc* crtc) const;
bool supports_format(PixelFormat fmt) const;
PlaneType plane_type() const;
std::vector<PixelFormat> get_formats() const;
uint32_t crtc_id() const;
uint32_t fb_id() const;
uint32_t crtc_x() const;
uint32_t crtc_y() const;
uint32_t x() const;
uint32_t y() const;
uint32_t gamma_size() const;
private:
Plane(Card& card, uint32_t id, uint32_t idx);
~Plane();
PlanePriv* m_priv;
};
}