diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-02-07 13:58:52 +0200 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-02-10 10:42:53 +0200 |
commit | 03a6821950bc85d5ae36dbd5fcc8d22b7e0c1d72 (patch) | |
tree | 066b3eb94f49b2bac3287801f90441abf2dca1a8 | |
parent | 3fb72a77fa1d2fc5c685109eb7bd4b791a863d4f (diff) |
PlaneType to bitmask
-rw-r--r-- | kms++/inc/kms++/plane.h | 6 | ||||
-rw-r--r-- | kms++/src/plane.cpp | 16 |
2 files changed, 16 insertions, 6 deletions
diff --git a/kms++/inc/kms++/plane.h b/kms++/inc/kms++/plane.h index d50e539..26f3951 100644 --- a/kms++/inc/kms++/plane.h +++ b/kms++/inc/kms++/plane.h @@ -7,9 +7,9 @@ namespace kms enum class PlaneType { - Overlay = 0, - Primary = 1, - Cursor = 2, + Overlay = 1 << 0, + Primary = 1 << 1, + Cursor = 1 << 2, }; struct PlanePriv; diff --git a/kms++/src/plane.cpp b/kms++/src/plane.cpp index 10aaeda..e19910b 100644 --- a/kms++/src/plane.cpp +++ b/kms++/src/plane.cpp @@ -50,10 +50,20 @@ bool Plane::supports_format(PixelFormat fmt) const PlaneType Plane::plane_type() const { - if (card().has_has_universal_planes()) - return (PlaneType)get_prop_value("type"); - else + if (card().has_has_universal_planes()) { + switch (get_prop_value("type")) { + case DRM_PLANE_TYPE_OVERLAY: + return PlaneType::Overlay; + case DRM_PLANE_TYPE_PRIMARY: + return PlaneType::Primary; + case DRM_PLANE_TYPE_CURSOR: + return PlaneType::Cursor; + default: + throw invalid_argument("Bad plane type"); + } + } else { return PlaneType::Overlay; + } } vector<PixelFormat> Plane::get_formats() const |