diff options
author | Sean Paul <seanpaul@google.com> | 2015-11-23 15:52:43 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-11-23 15:52:43 +0000 |
commit | e4eb4ab40235816c2bfea19f8748a69c1640e354 (patch) | |
tree | 2978e233275983c94e990f2251496175fc233bba /drmdisplaycomposition.cpp | |
parent | 8f24b05aae2a83910a970a3073b97698a75889a0 (diff) | |
parent | d4bd44dba3559738a0124a875a109ca11ec57acd (diff) | |
download | drm_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.cpp | 68 |
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"; |