#include #include #include namespace kms { class ResourceManager { public: ResourceManager(Card& card); void reset(); Connector* reserve_connector(const std::string& name = ""); Crtc* reserve_crtc(Connector* conn); Plane* reserve_plane(Crtc* crtc, PlaneType type, PixelFormat format = PixelFormat::Undefined); Plane* reserve_primary_plane(Crtc* crtc, PixelFormat format = PixelFormat::Undefined); Plane* reserve_overlay_plane(Crtc* crtc, PixelFormat format = PixelFormat::Undefined); private: Card& m_card; std::vector m_reserved_connectors; std::vector m_reserved_crtcs; std::vector m_reserved_planes; }; }