summaryrefslogtreecommitdiff
path: root/libs/hwui/HardwareBitmapUploader.cpp
diff options
context:
space:
mode:
author Leon Scroggins <scroggo@google.com> 2022-03-17 18:57:43 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-03-17 18:57:43 +0000
commitcc37f4e979a070257d2a011b9b982a31a8f0398d (patch)
tree437e48dae9bd5879a2aba2aa75d85d71235775ca /libs/hwui/HardwareBitmapUploader.cpp
parent3e41c83514a0f0ed1b1f3628582e2ded3e023fef (diff)
parenta008aa9c85bc136daefc4e056d88008cc4f55781 (diff)
Merge "Support ALPHA_8 + HARDWARE" into tm-dev
Diffstat (limited to 'libs/hwui/HardwareBitmapUploader.cpp')
-rw-r--r--libs/hwui/HardwareBitmapUploader.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/hwui/HardwareBitmapUploader.cpp b/libs/hwui/HardwareBitmapUploader.cpp
index dd272cd5ff7d..c24cabb287de 100644
--- a/libs/hwui/HardwareBitmapUploader.cpp
+++ b/libs/hwui/HardwareBitmapUploader.cpp
@@ -310,6 +310,11 @@ bool HardwareBitmapUploader::has1010102Support() {
return has101012Support;
}
+bool HardwareBitmapUploader::hasAlpha8Support() {
+ static bool hasAlpha8Support = checkSupport(AHARDWAREBUFFER_FORMAT_R8_UNORM);
+ return hasAlpha8Support;
+}
+
static FormatInfo determineFormat(const SkBitmap& skBitmap, bool usingGL) {
FormatInfo formatInfo;
switch (skBitmap.info().colorType()) {
@@ -363,6 +368,13 @@ static FormatInfo determineFormat(const SkBitmap& skBitmap, bool usingGL) {
}
formatInfo.format = GL_RGBA;
break;
+ case kAlpha_8_SkColorType:
+ formatInfo.isSupported = HardwareBitmapUploader::hasAlpha8Support();
+ formatInfo.bufferFormat = AHARDWAREBUFFER_FORMAT_R8_UNORM;
+ formatInfo.format = GL_R8;
+ formatInfo.type = GL_UNSIGNED_BYTE;
+ formatInfo.vkFormat = VK_FORMAT_R8_UNORM;
+ break;
default:
ALOGW("unable to create hardware bitmap of colortype: %d", skBitmap.info().colorType());
formatInfo.valid = false;