Loading libs/nativewindow/ANativeWindow.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -138,6 +138,11 @@ int32_t ANativeWindow_setBuffersDataSpace(ANativeWindow* window, int32_t dataSpa static_assert(static_cast<int>(ADATASPACE_SCRGB) == static_cast<int>(HAL_DATASPACE_V0_SCRGB)); static_assert(static_cast<int>(ADATASPACE_SCRGB) == static_cast<int>(HAL_DATASPACE_V0_SCRGB)); static_assert(static_cast<int>(ADATASPACE_DISPLAY_P3) == static_cast<int>(HAL_DATASPACE_DISPLAY_P3)); static_assert(static_cast<int>(ADATASPACE_DISPLAY_P3) == static_cast<int>(HAL_DATASPACE_DISPLAY_P3)); static_assert(static_cast<int>(ADATASPACE_BT2020_PQ) == static_cast<int>(HAL_DATASPACE_BT2020_PQ)); static_assert(static_cast<int>(ADATASPACE_BT2020_PQ) == static_cast<int>(HAL_DATASPACE_BT2020_PQ)); static_assert(static_cast<int>(ADATASPACE_ADOBE_RGB) == static_cast<int>(HAL_DATASPACE_ADOBE_RGB)); static_assert(static_cast<int>(ADATASPACE_BT2020) == static_cast<int>(HAL_DATASPACE_BT2020)); static_assert(static_cast<int>(ADATASPACE_BT709) == static_cast<int>(HAL_DATASPACE_V0_BT709)); static_assert(static_cast<int>(ADATASPACE_DCI_P3) == static_cast<int>(HAL_DATASPACE_DCI_P3)); static_assert(static_cast<int>(ADATASPACE_SRGB_LINEAR) == static_cast<int>(HAL_DATASPACE_V0_SRGB_LINEAR)); if (!window || !query(window, NATIVE_WINDOW_IS_VALID) || if (!window || !query(window, NATIVE_WINDOW_IS_VALID) || !isDataSpaceValid(window, dataSpace)) { !isDataSpaceValid(window, dataSpace)) { Loading libs/nativewindow/include/android/data_space.h +50 −0 Original line number Original line Diff line number Diff line Loading @@ -101,6 +101,56 @@ enum ADataSpace { * Use full range, SMPTE 2084 (PQ) transfer and BT2020 standard * Use full range, SMPTE 2084 (PQ) transfer and BT2020 standard */ */ ADATASPACE_BT2020_PQ = 163971072, // STANDARD_BT2020 | TRANSFER_ST2084 | RANGE_FULL ADATASPACE_BT2020_PQ = 163971072, // STANDARD_BT2020 | TRANSFER_ST2084 | RANGE_FULL /** * Adobe RGB * * Use full range, gamma 2.2 transfer and Adobe RGB primaries * Note: Application is responsible for gamma encoding the data as * a 2.2 gamma encoding is not supported in HW. */ ADATASPACE_ADOBE_RGB = 151715840, // STANDARD_ADOBE_RGB | TRANSFER_GAMMA2_2 | RANGE_FULL /** * ITU-R Recommendation 2020 (BT.2020) * * Ultra High-definition television * * Use full range, BT.709 transfer and BT2020 standard */ ADATASPACE_BT2020 = 147193856, // STANDARD_BT2020 | TRANSFER_SMPTE_170M | RANGE_FULL /** * ITU-R Recommendation 709 (BT.709) * * High-definition television * * Use limited range, BT.709 transfer and BT.709 standard. */ ADATASPACE_BT709 = 281083904, // STANDARD_BT709 | TRANSFER_SMPTE_170M | RANGE_LIMITED /** * SMPTE EG 432-1 and SMPTE RP 431-2. * * Digital Cinema DCI-P3 * * Use full range, gamma 2.6 transfer and D65 DCI-P3 standard * Note: Application is responsible for gamma encoding the data as * a 2.6 gamma encoding is not supported in HW. */ ADATASPACE_DCI_P3 = 155844608, // STANDARD_DCI_P3 | TRANSFER_GAMMA2_6 | RANGE_FULL /** * sRGB linear encoding: * * The red, green, and blue components are stored in sRGB space, but * are linear, not gamma-encoded. * The RGB primaries and the white point are the same as BT.709. * * The values are encoded using the full range ([0,255] for 8-bit) for all * components. */ ADATASPACE_SRGB_LINEAR = 138477568, // STANDARD_BT709 | TRANSFER_LINEAR | RANGE_FULL }; }; __END_DECLS __END_DECLS Loading services/surfaceflinger/tests/Android.bp +5 −1 Original line number Original line Diff line number Diff line Loading @@ -53,11 +53,15 @@ cc_test { "libgui", "libgui", "liblayers_proto", "liblayers_proto", "liblog", "liblog", "libnativewindow", "libprotobuf-cpp-full", "libprotobuf-cpp-full", "libtimestats_proto", "libtimestats_proto", "libui", "libui", "libutils", "libutils", ] ], header_libs: [ "libnativewindow_headers", ], } } cc_defaults { cc_defaults { Loading services/surfaceflinger/tests/CommonTypes_test.cpp +46 −0 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <aidl/android/hardware/graphics/common/BlendMode.h> #include <aidl/android/hardware/graphics/common/BlendMode.h> #include <aidl/android/hardware/graphics/common/Dataspace.h> #include <aidl/android/hardware/graphics/common/Dataspace.h> #include <android/data_space.h> #include <android/hardware/graphics/common/1.2/types.h> #include <android/hardware/graphics/common/1.2/types.h> #include <android/hardware/graphics/composer/2.1/IComposerClient.h> #include <android/hardware/graphics/composer/2.1/IComposerClient.h> Loading @@ -34,6 +35,51 @@ static_assert(static_cast<uint32_t>(AidlBlendMode::PREMULTIPLIED) == static_assert(static_cast<uint32_t>(AidlBlendMode::COVERAGE) == static_assert(static_cast<uint32_t>(AidlBlendMode::COVERAGE) == static_cast<uint32_t>(HidlBlendMode::COVERAGE)); static_cast<uint32_t>(HidlBlendMode::COVERAGE)); static_assert(static_cast<uint32_t>(ADATASPACE_UNKNOWN) == static_cast<uint32_t>(AidlDataspace::UNKNOWN)); static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB_LINEAR) == static_cast<uint32_t>(AidlDataspace::SCRGB_LINEAR)); static_assert(static_cast<uint32_t>(ADATASPACE_SRGB) == static_cast<uint32_t>(AidlDataspace::SRGB)); static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB) == static_cast<uint32_t>(AidlDataspace::SCRGB)); static_assert(static_cast<uint32_t>(ADATASPACE_DISPLAY_P3) == static_cast<uint32_t>(AidlDataspace::DISPLAY_P3)); static_assert(static_cast<uint32_t>(ADATASPACE_BT2020_PQ) == static_cast<uint32_t>(AidlDataspace::BT2020_PQ)); static_assert(static_cast<uint32_t>(ADATASPACE_ADOBE_RGB) == static_cast<uint32_t>(AidlDataspace::ADOBE_RGB)); static_assert(static_cast<uint32_t>(ADATASPACE_BT2020) == static_cast<uint32_t>(AidlDataspace::BT2020)); static_assert(static_cast<uint32_t>(ADATASPACE_BT709) == static_cast<uint32_t>(AidlDataspace::BT709)); static_assert(static_cast<uint32_t>(ADATASPACE_DCI_P3) == static_cast<uint32_t>(AidlDataspace::DCI_P3)); static_assert(static_cast<uint32_t>(ADATASPACE_SRGB_LINEAR) == static_cast<uint32_t>(AidlDataspace::SRGB_LINEAR)); static_assert(static_cast<uint32_t>(ADATASPACE_UNKNOWN) == static_cast<uint32_t>(HidlDataspace::UNKNOWN)); static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB_LINEAR) == static_cast<uint32_t>(HidlDataspace::V0_SCRGB_LINEAR)); static_assert(static_cast<uint32_t>(ADATASPACE_SRGB) == static_cast<uint32_t>(HidlDataspace::V0_SRGB)); static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB) == static_cast<uint32_t>(HidlDataspace::V0_SCRGB)); static_assert(static_cast<uint32_t>(ADATASPACE_DISPLAY_P3) == static_cast<uint32_t>(HidlDataspace::DISPLAY_P3)); static_assert(static_cast<uint32_t>(ADATASPACE_BT2020_PQ) == static_cast<uint32_t>(HidlDataspace::BT2020_PQ)); static_assert(static_cast<uint32_t>(ADATASPACE_ADOBE_RGB) == static_cast<uint32_t>(HidlDataspace::ADOBE_RGB)); static_assert(static_cast<uint32_t>(ADATASPACE_BT2020) == static_cast<uint32_t>(HidlDataspace::BT2020)); static_assert(static_cast<uint32_t>(ADATASPACE_BT709) == static_cast<uint32_t>(HidlDataspace::V0_BT709)); static_assert(static_cast<uint32_t>(ADATASPACE_DCI_P3) == static_cast<uint32_t>(HidlDataspace::DCI_P3)); static_assert(static_cast<uint32_t>(ADATASPACE_SRGB_LINEAR) == static_cast<uint32_t>(HidlDataspace::V0_SRGB_LINEAR)); static_assert(static_cast<uint32_t>(AidlDataspace::UNKNOWN) == static_assert(static_cast<uint32_t>(AidlDataspace::UNKNOWN) == static_cast<uint32_t>(HidlDataspace::UNKNOWN)); static_cast<uint32_t>(HidlDataspace::UNKNOWN)); static_assert(static_cast<uint32_t>(AidlDataspace::ARBITRARY) == static_assert(static_cast<uint32_t>(AidlDataspace::ARBITRARY) == Loading Loading
libs/nativewindow/ANativeWindow.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -138,6 +138,11 @@ int32_t ANativeWindow_setBuffersDataSpace(ANativeWindow* window, int32_t dataSpa static_assert(static_cast<int>(ADATASPACE_SCRGB) == static_cast<int>(HAL_DATASPACE_V0_SCRGB)); static_assert(static_cast<int>(ADATASPACE_SCRGB) == static_cast<int>(HAL_DATASPACE_V0_SCRGB)); static_assert(static_cast<int>(ADATASPACE_DISPLAY_P3) == static_cast<int>(HAL_DATASPACE_DISPLAY_P3)); static_assert(static_cast<int>(ADATASPACE_DISPLAY_P3) == static_cast<int>(HAL_DATASPACE_DISPLAY_P3)); static_assert(static_cast<int>(ADATASPACE_BT2020_PQ) == static_cast<int>(HAL_DATASPACE_BT2020_PQ)); static_assert(static_cast<int>(ADATASPACE_BT2020_PQ) == static_cast<int>(HAL_DATASPACE_BT2020_PQ)); static_assert(static_cast<int>(ADATASPACE_ADOBE_RGB) == static_cast<int>(HAL_DATASPACE_ADOBE_RGB)); static_assert(static_cast<int>(ADATASPACE_BT2020) == static_cast<int>(HAL_DATASPACE_BT2020)); static_assert(static_cast<int>(ADATASPACE_BT709) == static_cast<int>(HAL_DATASPACE_V0_BT709)); static_assert(static_cast<int>(ADATASPACE_DCI_P3) == static_cast<int>(HAL_DATASPACE_DCI_P3)); static_assert(static_cast<int>(ADATASPACE_SRGB_LINEAR) == static_cast<int>(HAL_DATASPACE_V0_SRGB_LINEAR)); if (!window || !query(window, NATIVE_WINDOW_IS_VALID) || if (!window || !query(window, NATIVE_WINDOW_IS_VALID) || !isDataSpaceValid(window, dataSpace)) { !isDataSpaceValid(window, dataSpace)) { Loading
libs/nativewindow/include/android/data_space.h +50 −0 Original line number Original line Diff line number Diff line Loading @@ -101,6 +101,56 @@ enum ADataSpace { * Use full range, SMPTE 2084 (PQ) transfer and BT2020 standard * Use full range, SMPTE 2084 (PQ) transfer and BT2020 standard */ */ ADATASPACE_BT2020_PQ = 163971072, // STANDARD_BT2020 | TRANSFER_ST2084 | RANGE_FULL ADATASPACE_BT2020_PQ = 163971072, // STANDARD_BT2020 | TRANSFER_ST2084 | RANGE_FULL /** * Adobe RGB * * Use full range, gamma 2.2 transfer and Adobe RGB primaries * Note: Application is responsible for gamma encoding the data as * a 2.2 gamma encoding is not supported in HW. */ ADATASPACE_ADOBE_RGB = 151715840, // STANDARD_ADOBE_RGB | TRANSFER_GAMMA2_2 | RANGE_FULL /** * ITU-R Recommendation 2020 (BT.2020) * * Ultra High-definition television * * Use full range, BT.709 transfer and BT2020 standard */ ADATASPACE_BT2020 = 147193856, // STANDARD_BT2020 | TRANSFER_SMPTE_170M | RANGE_FULL /** * ITU-R Recommendation 709 (BT.709) * * High-definition television * * Use limited range, BT.709 transfer and BT.709 standard. */ ADATASPACE_BT709 = 281083904, // STANDARD_BT709 | TRANSFER_SMPTE_170M | RANGE_LIMITED /** * SMPTE EG 432-1 and SMPTE RP 431-2. * * Digital Cinema DCI-P3 * * Use full range, gamma 2.6 transfer and D65 DCI-P3 standard * Note: Application is responsible for gamma encoding the data as * a 2.6 gamma encoding is not supported in HW. */ ADATASPACE_DCI_P3 = 155844608, // STANDARD_DCI_P3 | TRANSFER_GAMMA2_6 | RANGE_FULL /** * sRGB linear encoding: * * The red, green, and blue components are stored in sRGB space, but * are linear, not gamma-encoded. * The RGB primaries and the white point are the same as BT.709. * * The values are encoded using the full range ([0,255] for 8-bit) for all * components. */ ADATASPACE_SRGB_LINEAR = 138477568, // STANDARD_BT709 | TRANSFER_LINEAR | RANGE_FULL }; }; __END_DECLS __END_DECLS Loading
services/surfaceflinger/tests/Android.bp +5 −1 Original line number Original line Diff line number Diff line Loading @@ -53,11 +53,15 @@ cc_test { "libgui", "libgui", "liblayers_proto", "liblayers_proto", "liblog", "liblog", "libnativewindow", "libprotobuf-cpp-full", "libprotobuf-cpp-full", "libtimestats_proto", "libtimestats_proto", "libui", "libui", "libutils", "libutils", ] ], header_libs: [ "libnativewindow_headers", ], } } cc_defaults { cc_defaults { Loading
services/surfaceflinger/tests/CommonTypes_test.cpp +46 −0 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <aidl/android/hardware/graphics/common/BlendMode.h> #include <aidl/android/hardware/graphics/common/BlendMode.h> #include <aidl/android/hardware/graphics/common/Dataspace.h> #include <aidl/android/hardware/graphics/common/Dataspace.h> #include <android/data_space.h> #include <android/hardware/graphics/common/1.2/types.h> #include <android/hardware/graphics/common/1.2/types.h> #include <android/hardware/graphics/composer/2.1/IComposerClient.h> #include <android/hardware/graphics/composer/2.1/IComposerClient.h> Loading @@ -34,6 +35,51 @@ static_assert(static_cast<uint32_t>(AidlBlendMode::PREMULTIPLIED) == static_assert(static_cast<uint32_t>(AidlBlendMode::COVERAGE) == static_assert(static_cast<uint32_t>(AidlBlendMode::COVERAGE) == static_cast<uint32_t>(HidlBlendMode::COVERAGE)); static_cast<uint32_t>(HidlBlendMode::COVERAGE)); static_assert(static_cast<uint32_t>(ADATASPACE_UNKNOWN) == static_cast<uint32_t>(AidlDataspace::UNKNOWN)); static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB_LINEAR) == static_cast<uint32_t>(AidlDataspace::SCRGB_LINEAR)); static_assert(static_cast<uint32_t>(ADATASPACE_SRGB) == static_cast<uint32_t>(AidlDataspace::SRGB)); static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB) == static_cast<uint32_t>(AidlDataspace::SCRGB)); static_assert(static_cast<uint32_t>(ADATASPACE_DISPLAY_P3) == static_cast<uint32_t>(AidlDataspace::DISPLAY_P3)); static_assert(static_cast<uint32_t>(ADATASPACE_BT2020_PQ) == static_cast<uint32_t>(AidlDataspace::BT2020_PQ)); static_assert(static_cast<uint32_t>(ADATASPACE_ADOBE_RGB) == static_cast<uint32_t>(AidlDataspace::ADOBE_RGB)); static_assert(static_cast<uint32_t>(ADATASPACE_BT2020) == static_cast<uint32_t>(AidlDataspace::BT2020)); static_assert(static_cast<uint32_t>(ADATASPACE_BT709) == static_cast<uint32_t>(AidlDataspace::BT709)); static_assert(static_cast<uint32_t>(ADATASPACE_DCI_P3) == static_cast<uint32_t>(AidlDataspace::DCI_P3)); static_assert(static_cast<uint32_t>(ADATASPACE_SRGB_LINEAR) == static_cast<uint32_t>(AidlDataspace::SRGB_LINEAR)); static_assert(static_cast<uint32_t>(ADATASPACE_UNKNOWN) == static_cast<uint32_t>(HidlDataspace::UNKNOWN)); static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB_LINEAR) == static_cast<uint32_t>(HidlDataspace::V0_SCRGB_LINEAR)); static_assert(static_cast<uint32_t>(ADATASPACE_SRGB) == static_cast<uint32_t>(HidlDataspace::V0_SRGB)); static_assert(static_cast<uint32_t>(ADATASPACE_SCRGB) == static_cast<uint32_t>(HidlDataspace::V0_SCRGB)); static_assert(static_cast<uint32_t>(ADATASPACE_DISPLAY_P3) == static_cast<uint32_t>(HidlDataspace::DISPLAY_P3)); static_assert(static_cast<uint32_t>(ADATASPACE_BT2020_PQ) == static_cast<uint32_t>(HidlDataspace::BT2020_PQ)); static_assert(static_cast<uint32_t>(ADATASPACE_ADOBE_RGB) == static_cast<uint32_t>(HidlDataspace::ADOBE_RGB)); static_assert(static_cast<uint32_t>(ADATASPACE_BT2020) == static_cast<uint32_t>(HidlDataspace::BT2020)); static_assert(static_cast<uint32_t>(ADATASPACE_BT709) == static_cast<uint32_t>(HidlDataspace::V0_BT709)); static_assert(static_cast<uint32_t>(ADATASPACE_DCI_P3) == static_cast<uint32_t>(HidlDataspace::DCI_P3)); static_assert(static_cast<uint32_t>(ADATASPACE_SRGB_LINEAR) == static_cast<uint32_t>(HidlDataspace::V0_SRGB_LINEAR)); static_assert(static_cast<uint32_t>(AidlDataspace::UNKNOWN) == static_assert(static_cast<uint32_t>(AidlDataspace::UNKNOWN) == static_cast<uint32_t>(HidlDataspace::UNKNOWN)); static_cast<uint32_t>(HidlDataspace::UNKNOWN)); static_assert(static_cast<uint32_t>(AidlDataspace::ARBITRARY) == static_assert(static_cast<uint32_t>(AidlDataspace::ARBITRARY) == Loading