diff options
Diffstat (limited to 'libs/hwui/DeviceInfo.cpp')
-rw-r--r-- | libs/hwui/DeviceInfo.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/hwui/DeviceInfo.cpp b/libs/hwui/DeviceInfo.cpp index a43f58cd1e56..b5b87d516ff7 100644 --- a/libs/hwui/DeviceInfo.cpp +++ b/libs/hwui/DeviceInfo.cpp @@ -66,12 +66,16 @@ void DeviceInfo::initialize(int maxTextureSize) { sDeviceInfo = new DeviceInfo(); sDeviceInfo->mDisplayInfo = DeviceInfo::queryDisplayInfo(); sDeviceInfo->mMaxTextureSize = maxTextureSize; + sDeviceInfo->queryCompositionPreference(&sDeviceInfo->mTargetDataSpace, + &sDeviceInfo->mTargetPixelFormat); }); } void DeviceInfo::load() { mDisplayInfo = queryDisplayInfo(); glGetIntegerv(GL_MAX_TEXTURE_SIZE, &mMaxTextureSize); + sDeviceInfo->queryCompositionPreference(&sDeviceInfo->mTargetDataSpace, + &sDeviceInfo->mTargetPixelFormat); } DisplayInfo DeviceInfo::queryDisplayInfo() { @@ -86,5 +90,17 @@ DisplayInfo DeviceInfo::queryDisplayInfo() { return displayInfo; } +void DeviceInfo::queryCompositionPreference(ui::Dataspace* dataSpace, + ui::PixelFormat* pixelFormat) { + if (Properties::isolatedProcess) { + *dataSpace = ui::Dataspace::V0_SRGB; + *pixelFormat = ui::PixelFormat::RGBA_8888; + } + + status_t status = + SurfaceComposerClient::getCompositionPreference(dataSpace, pixelFormat); + LOG_ALWAYS_FATAL_IF(status, "Failed to get composition preference, error %d", status); +} + } /* namespace uirenderer */ } /* namespace android */ |