aboutsummaryrefslogtreecommitdiff
path: root/drmdisplaycomposition.cpp
diff options
context:
space:
mode:
authorSean Paul <seanpaul@google.com>2015-11-23 15:52:43 +0000
committerandroid-build-merger <android-build-merger@google.com>2015-11-23 15:52:43 +0000
commite4eb4ab40235816c2bfea19f8748a69c1640e354 (patch)
tree2978e233275983c94e990f2251496175fc233bba /drmdisplaycomposition.cpp
parent8f24b05aae2a83910a970a3073b97698a75889a0 (diff)
parentd4bd44dba3559738a0124a875a109ca11ec57acd (diff)
downloaddrm_hwcomposer-e4eb4ab40235816c2bfea19f8748a69c1640e354.tar.gz
Merge "drm_hwcomposer: Allow for multiple transforms at once" into mnc-dr-dev
am: d4bd44dba3 * commit 'd4bd44dba3559738a0124a875a109ca11ec57acd': drm_hwcomposer: Allow for multiple transforms at once
Diffstat (limited to 'drmdisplaycomposition.cpp')
-rw-r--r--drmdisplaycomposition.cpp68
1 files changed, 49 insertions, 19 deletions
diff --git a/drmdisplaycomposition.cpp b/drmdisplaycomposition.cpp
index b266bd7..300414d 100644
--- a/drmdisplaycomposition.cpp
+++ b/drmdisplaycomposition.cpp
@@ -443,23 +443,52 @@ static void DumpBuffer(const DrmHwcBuffer &buffer, std::ostringstream *out) {
*out << buffer->width << "/" << buffer->height << "/" << buffer->format;
}
-static const char *TransformToString(DrmHwcTransform transform) {
- switch (transform) {
- case DrmHwcTransform::kIdentity:
- return "IDENTITY";
- case DrmHwcTransform::kFlipH:
- return "FLIPH";
- case DrmHwcTransform::kFlipV:
- return "FLIPV";
- case DrmHwcTransform::kRotate90:
- return "ROTATE90";
- case DrmHwcTransform::kRotate180:
- return "ROTATE180";
- case DrmHwcTransform::kRotate270:
- return "ROTATE270";
- default:
- return "<invalid>";
- }
+static void DumpTransform(uint32_t transform, std::ostringstream *out) {
+ *out << "[";
+
+ if (transform == 0)
+ *out << "IDENTITY";
+
+ bool separator = false;
+ if (transform & DrmHwcTransform::kFlipH) {
+ *out << "FLIPH";
+ separator = true;
+ }
+ if (transform & DrmHwcTransform::kFlipV) {
+ if (separator)
+ *out << "|";
+ *out << "FLIPV";
+ separator = true;
+ }
+ if (transform & DrmHwcTransform::kRotate90) {
+ if (separator)
+ *out << "|";
+ *out << "ROTATE90";
+ separator = true;
+ }
+ if (transform & DrmHwcTransform::kRotate180) {
+ if (separator)
+ *out << "|";
+ *out << "ROTATE180";
+ separator = true;
+ }
+ if (transform & DrmHwcTransform::kRotate270) {
+ if (separator)
+ *out << "|";
+ *out << "ROTATE270";
+ separator = true;
+ }
+
+ uint32_t valid_bits = DrmHwcTransform::kFlipH | DrmHwcTransform::kFlipH |
+ DrmHwcTransform::kRotate90 |
+ DrmHwcTransform::kRotate180 |
+ DrmHwcTransform::kRotate270;
+ if (transform & ~valid_bits) {
+ if (separator)
+ *out << "|";
+ *out << "INVALID";
+ }
+ *out << "]";
}
static const char *BlendingToString(DrmHwcBlending blending) {
@@ -523,8 +552,9 @@ void DrmDisplayComposition::Dump(std::ostringstream *out) const {
if (layer.protected_usage())
*out << " protected";
- *out << " transform=" << TransformToString(layer.transform)
- << " blending[a=" << (int)layer.alpha
+ *out << " transform=";
+ DumpTransform(layer.transform, out);
+ *out << " blending[a=" << (int)layer.alpha
<< "]=" << BlendingToString(layer.blending) << " source_crop";
layer.source_crop.Dump(out);
*out << " display_frame";