Loading core/java/android/hardware/OverlayProperties.java +11 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,16 @@ public final class OverlayProperties implements Parcelable { return nSupportFp16ForHdr(mNativeObject); } /** * @return True if the device can support mixed colorspaces, false otherwise. */ public boolean supportMixedColorSpaces() { if (mNativeObject == 0) { return false; } return nSupportMixedColorSpaces(mNativeObject); } /** * Release the local reference. */ Loading Loading @@ -106,6 +116,7 @@ public final class OverlayProperties implements Parcelable { private static native long nGetDestructor(); private static native boolean nSupportFp16ForHdr(long nativeObject); private static native boolean nSupportMixedColorSpaces(long nativeObject); private static native void nWriteOverlayPropertiesToParcel(long nativeObject, Parcel dest); private static native long nReadOverlayPropertiesFromParcel(Parcel in); } core/jni/android_hardware_OverlayProperties.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,16 @@ static jboolean android_hardware_OverlayProperties_supportFp16ForHdr(JNIEnv* env return false; } static jboolean android_hardware_OverlayProperties_supportMixedColorSpaces(JNIEnv* env, jobject thiz, jlong nativeObject) { gui::OverlayProperties* properties = reinterpret_cast<gui::OverlayProperties*>(nativeObject); if (properties != nullptr && properties->supportMixedColorSpaces) { return true; } return false; } // ---------------------------------------------------------------------------- // Serialization // ---------------------------------------------------------------------------- Loading Loading @@ -128,6 +138,8 @@ static const JNINativeMethod gMethods[] = { { "nGetDestructor", "()J", (void*) android_hardware_OverlayProperties_getDestructor }, { "nSupportFp16ForHdr", "(J)Z", (void*) android_hardware_OverlayProperties_supportFp16ForHdr }, { "nSupportMixedColorSpaces", "(J)Z", (void*) android_hardware_OverlayProperties_supportMixedColorSpaces }, { "nWriteOverlayPropertiesToParcel", "(JLandroid/os/Parcel;)V", (void*) android_hardware_OverlayProperties_write }, { "nReadOverlayPropertiesFromParcel", "(Landroid/os/Parcel;)J", Loading graphics/java/android/graphics/HardwareRenderer.java +4 −2 Original line number Diff line number Diff line Loading @@ -1334,6 +1334,8 @@ public class HardwareRenderer { final OverlayProperties overlayProperties = defaultDisplay.getOverlaySupport(); boolean supportFp16ForHdr = overlayProperties != null ? overlayProperties.supportFp16ForHdr() : false; boolean supportMixedColorSpaces = overlayProperties != null ? overlayProperties.supportMixedColorSpaces() : false; for (int i = 0; i < allDisplays.length; i++) { final Display display = allDisplays[i]; Loading Loading @@ -1361,7 +1363,7 @@ public class HardwareRenderer { nInitDisplayInfo(largestWidth, largestHeight, defaultDisplay.getRefreshRate(), wideColorDataspace, defaultDisplay.getAppVsyncOffsetNanos(), defaultDisplay.getPresentationDeadlineNanos(), supportFp16ForHdr); supportFp16ForHdr, supportMixedColorSpaces); mDisplayInitialized = true; } Loading Loading @@ -1542,7 +1544,7 @@ public class HardwareRenderer { private static native void nInitDisplayInfo(int width, int height, float refreshRate, int wideColorDataspace, long appVsyncOffsetNanos, long presentationDeadlineNanos, boolean supportsFp16ForHdr); boolean supportsFp16ForHdr, boolean nInitDisplayInfo); private static native void nSetDrawingEnabled(boolean drawingEnabled); Loading libs/hwui/DeviceInfo.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,10 @@ void DeviceInfo::setSupportFp16ForHdr(bool supportFp16ForHdr) { get()->mSupportFp16ForHdr = supportFp16ForHdr; } void DeviceInfo::setSupportMixedColorSpaces(bool supportMixedColorSpaces) { get()->mSupportMixedColorSpaces = supportMixedColorSpaces; } void DeviceInfo::onRefreshRateChanged(int64_t vsyncPeriod) { mVsyncPeriod = vsyncPeriod; } Loading libs/hwui/DeviceInfo.h +4 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,9 @@ public: static void setSupportFp16ForHdr(bool supportFp16ForHdr); static bool isSupportFp16ForHdr() { return get()->mSupportFp16ForHdr; }; static void setSupportMixedColorSpaces(bool supportMixedColorSpaces); static bool isSupportMixedColorSpaces() { return get()->mSupportMixedColorSpaces; }; // this value is only valid after the GPU has been initialized and there is a valid graphics // context or if you are using the HWUI_NULL_GPU int maxTextureSize() const; Loading Loading @@ -92,6 +95,7 @@ private: int mMaxTextureSize; sk_sp<SkColorSpace> mWideColorSpace = SkColorSpace::MakeSRGB(); bool mSupportFp16ForHdr = false; bool mSupportMixedColorSpaces = false; SkColorType mWideColorType = SkColorType::kN32_SkColorType; int mDisplaysSize = 0; int mPhysicalDisplayIndex = -1; Loading Loading
core/java/android/hardware/OverlayProperties.java +11 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,16 @@ public final class OverlayProperties implements Parcelable { return nSupportFp16ForHdr(mNativeObject); } /** * @return True if the device can support mixed colorspaces, false otherwise. */ public boolean supportMixedColorSpaces() { if (mNativeObject == 0) { return false; } return nSupportMixedColorSpaces(mNativeObject); } /** * Release the local reference. */ Loading Loading @@ -106,6 +116,7 @@ public final class OverlayProperties implements Parcelable { private static native long nGetDestructor(); private static native boolean nSupportFp16ForHdr(long nativeObject); private static native boolean nSupportMixedColorSpaces(long nativeObject); private static native void nWriteOverlayPropertiesToParcel(long nativeObject, Parcel dest); private static native long nReadOverlayPropertiesFromParcel(Parcel in); }
core/jni/android_hardware_OverlayProperties.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,16 @@ static jboolean android_hardware_OverlayProperties_supportFp16ForHdr(JNIEnv* env return false; } static jboolean android_hardware_OverlayProperties_supportMixedColorSpaces(JNIEnv* env, jobject thiz, jlong nativeObject) { gui::OverlayProperties* properties = reinterpret_cast<gui::OverlayProperties*>(nativeObject); if (properties != nullptr && properties->supportMixedColorSpaces) { return true; } return false; } // ---------------------------------------------------------------------------- // Serialization // ---------------------------------------------------------------------------- Loading Loading @@ -128,6 +138,8 @@ static const JNINativeMethod gMethods[] = { { "nGetDestructor", "()J", (void*) android_hardware_OverlayProperties_getDestructor }, { "nSupportFp16ForHdr", "(J)Z", (void*) android_hardware_OverlayProperties_supportFp16ForHdr }, { "nSupportMixedColorSpaces", "(J)Z", (void*) android_hardware_OverlayProperties_supportMixedColorSpaces }, { "nWriteOverlayPropertiesToParcel", "(JLandroid/os/Parcel;)V", (void*) android_hardware_OverlayProperties_write }, { "nReadOverlayPropertiesFromParcel", "(Landroid/os/Parcel;)J", Loading
graphics/java/android/graphics/HardwareRenderer.java +4 −2 Original line number Diff line number Diff line Loading @@ -1334,6 +1334,8 @@ public class HardwareRenderer { final OverlayProperties overlayProperties = defaultDisplay.getOverlaySupport(); boolean supportFp16ForHdr = overlayProperties != null ? overlayProperties.supportFp16ForHdr() : false; boolean supportMixedColorSpaces = overlayProperties != null ? overlayProperties.supportMixedColorSpaces() : false; for (int i = 0; i < allDisplays.length; i++) { final Display display = allDisplays[i]; Loading Loading @@ -1361,7 +1363,7 @@ public class HardwareRenderer { nInitDisplayInfo(largestWidth, largestHeight, defaultDisplay.getRefreshRate(), wideColorDataspace, defaultDisplay.getAppVsyncOffsetNanos(), defaultDisplay.getPresentationDeadlineNanos(), supportFp16ForHdr); supportFp16ForHdr, supportMixedColorSpaces); mDisplayInitialized = true; } Loading Loading @@ -1542,7 +1544,7 @@ public class HardwareRenderer { private static native void nInitDisplayInfo(int width, int height, float refreshRate, int wideColorDataspace, long appVsyncOffsetNanos, long presentationDeadlineNanos, boolean supportsFp16ForHdr); boolean supportsFp16ForHdr, boolean nInitDisplayInfo); private static native void nSetDrawingEnabled(boolean drawingEnabled); Loading
libs/hwui/DeviceInfo.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,10 @@ void DeviceInfo::setSupportFp16ForHdr(bool supportFp16ForHdr) { get()->mSupportFp16ForHdr = supportFp16ForHdr; } void DeviceInfo::setSupportMixedColorSpaces(bool supportMixedColorSpaces) { get()->mSupportMixedColorSpaces = supportMixedColorSpaces; } void DeviceInfo::onRefreshRateChanged(int64_t vsyncPeriod) { mVsyncPeriod = vsyncPeriod; } Loading
libs/hwui/DeviceInfo.h +4 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,9 @@ public: static void setSupportFp16ForHdr(bool supportFp16ForHdr); static bool isSupportFp16ForHdr() { return get()->mSupportFp16ForHdr; }; static void setSupportMixedColorSpaces(bool supportMixedColorSpaces); static bool isSupportMixedColorSpaces() { return get()->mSupportMixedColorSpaces; }; // this value is only valid after the GPU has been initialized and there is a valid graphics // context or if you are using the HWUI_NULL_GPU int maxTextureSize() const; Loading Loading @@ -92,6 +95,7 @@ private: int mMaxTextureSize; sk_sp<SkColorSpace> mWideColorSpace = SkColorSpace::MakeSRGB(); bool mSupportFp16ForHdr = false; bool mSupportMixedColorSpaces = false; SkColorType mWideColorType = SkColorType::kN32_SkColorType; int mDisplaysSize = 0; int mPhysicalDisplayIndex = -1; Loading