Loading libs/gui/GLConsumer.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -984,7 +984,8 @@ status_t GLConsumer::doGLFenceWaitLocked() const { } if (mCurrentFence->isValid()) { if (SyncFeatures::getInstance().useWaitSync()) { if (SyncFeatures::getInstance().useWaitSync() && SyncFeatures::getInstance().useNativeFenceSync()) { // Create an EGLSyncKHR from the current fence. int fenceFd = mCurrentFence->dup(); if (fenceFd == -1) { Loading libs/gui/Surface.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ namespace android { using ui::ColorMode; using ui::Dataspace; Surface::Surface(const sp<IGraphicBufferProducer>& bufferProducer, bool controlledByApp) : mGraphicBufferProducer(bufferProducer), Loading Loading @@ -80,7 +81,7 @@ Surface::Surface(const sp<IGraphicBufferProducer>& bufferProducer, bool controll mReqFormat = 0; mReqUsage = 0; mTimestamp = NATIVE_WINDOW_TIMESTAMP_AUTO; mDataSpace = HAL_DATASPACE_UNKNOWN; mDataSpace = Dataspace::UNKNOWN; mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE; mTransform = 0; mStickyTransform = 0; Loading Loading @@ -666,8 +667,9 @@ int Surface::queueBuffer(android_native_buffer_t* buffer, int fenceFd) { sp<Fence> fence(fenceFd >= 0 ? new Fence(fenceFd) : Fence::NO_FENCE); IGraphicBufferProducer::QueueBufferOutput output; IGraphicBufferProducer::QueueBufferInput input(timestamp, isAutoTimestamp, mDataSpace, crop, mScalingMode, mTransform ^ mStickyTransform, fence, mStickyTransform, mEnableFrameTimestamps); static_cast<android_dataspace>(mDataSpace), crop, mScalingMode, mTransform ^ mStickyTransform, fence, mStickyTransform, mEnableFrameTimestamps); // we should send HDR metadata as needed if this becomes a bottleneck input.setHdrMetadata(mHdrMetadata); Loading Loading @@ -1098,8 +1100,7 @@ int Surface::dispatchSetSidebandStream(va_list args) { } int Surface::dispatchSetBuffersDataSpace(va_list args) { android_dataspace dataspace = static_cast<android_dataspace>(va_arg(args, int)); Dataspace dataspace = static_cast<Dataspace>(va_arg(args, int)); return setBuffersDataSpace(dataspace); } Loading Loading @@ -1531,7 +1532,7 @@ int Surface::setBuffersTimestamp(int64_t timestamp) return NO_ERROR; } int Surface::setBuffersDataSpace(android_dataspace dataSpace) int Surface::setBuffersDataSpace(Dataspace dataSpace) { ALOGV("Surface::setBuffersDataSpace"); Mutex::Autolock lock(mMutex); Loading Loading @@ -1563,7 +1564,7 @@ int Surface::setBuffersCta8613Metadata(const android_cta861_3_metadata* metadata return NO_ERROR; } android_dataspace_t Surface::getBuffersDataSpace() { Dataspace Surface::getBuffersDataSpace() { ALOGV("Surface::getBuffersDataSpace"); Mutex::Autolock lock(mMutex); return mDataSpace; Loading libs/gui/include/gui/Surface.h +5 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <gui/IGraphicBufferProducer.h> #include <ui/ANativeObjectBase.h> #include <ui/GraphicTypes.h> #include <ui/Region.h> #include <utils/Condition.h> Loading Loading @@ -245,7 +246,7 @@ protected: virtual int setBuffersTransform(uint32_t transform); virtual int setBuffersStickyTransform(uint32_t transform); virtual int setBuffersTimestamp(int64_t timestamp); virtual int setBuffersDataSpace(android_dataspace dataSpace); virtual int setBuffersDataSpace(ui::Dataspace dataSpace); virtual int setBuffersSmpte2086Metadata(const android_smpte2086_metadata* metadata); virtual int setBuffersCta8613Metadata(const android_cta861_3_metadata* metadata); virtual int setCrop(Rect const* rect); Loading Loading @@ -286,7 +287,7 @@ public: // detachNextBuffer, or attachBuffer call. status_t getAndFlushRemovedBuffers(std::vector<sp<GraphicBuffer>>* out); android_dataspace_t getBuffersDataSpace(); ui::Dataspace getBuffersDataSpace(); static status_t attachAndQueueBuffer(Surface* surface, sp<GraphicBuffer> buffer); Loading Loading @@ -340,9 +341,9 @@ protected: int64_t mTimestamp; // mDataSpace is the buffer dataSpace that will be used for the next buffer // queue operation. It defaults to HAL_DATASPACE_UNKNOWN, which // queue operation. It defaults to Dataspace::UNKNOWN, which // means that the buffer contains some type of color data. android_dataspace mDataSpace; ui::Dataspace mDataSpace; // mHdrMetadata is the HDR metadata that will be used for the next buffer // queue operation. There is no HDR metadata by default. Loading libs/ui/Android.bp +8 −2 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ cc_library_shared { "libhidlbase", "libhidltransport", "libhwbinder", "libpdx_default_transport", "libsync", "libutils", "libutilscallstack", Loading @@ -99,10 +100,9 @@ cc_library_shared { "libbase_headers", "libnativebase_headers", "libhardware_headers", "libui_headers", ], export_include_dirs: ["include"], export_static_lib_headers: [ "libarect", "libmath", Loading @@ -112,6 +112,7 @@ cc_library_shared { "libbase_headers", "libnativebase_headers", "libhardware_headers", "libui_headers", ], } Loading @@ -119,6 +120,11 @@ cc_library_headers { name: "libui_headers", export_include_dirs: ["include"], vendor_available: true, target: { vendor: { override_export_include_dirs: ["include_vndk"], }, }, } subdirs = [ Loading libs/ui/DebugUtils.cpp +27 −0 Original line number Diff line number Diff line Loading @@ -234,6 +234,33 @@ std::string decodeColorMode(ColorMode colorMode) { return android::base::StringPrintf("Unknown color mode %d", colorMode); } std::string decodeColorTransform(android_color_transform colorTransform) { switch (colorTransform) { case HAL_COLOR_TRANSFORM_IDENTITY: return std::string("Identity"); case HAL_COLOR_TRANSFORM_ARBITRARY_MATRIX: return std::string("Arbitrary matrix"); case HAL_COLOR_TRANSFORM_VALUE_INVERSE: return std::string("Inverse value"); case HAL_COLOR_TRANSFORM_GRAYSCALE: return std::string("Grayscale"); case HAL_COLOR_TRANSFORM_CORRECT_PROTANOPIA: return std::string("Correct protanopia"); case HAL_COLOR_TRANSFORM_CORRECT_DEUTERANOPIA: return std::string("Correct deuteranopia"); case HAL_COLOR_TRANSFORM_CORRECT_TRITANOPIA: return std::string("Correct tritanopia"); } return android::base::StringPrintf("Unknown color transform %d", colorTransform); } // Converts a PixelFormat to a human-readable string. Max 11 chars. // (Could use a table of prefab String8 objects.) std::string decodePixelFormat(android::PixelFormat format) { Loading Loading
libs/gui/GLConsumer.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -984,7 +984,8 @@ status_t GLConsumer::doGLFenceWaitLocked() const { } if (mCurrentFence->isValid()) { if (SyncFeatures::getInstance().useWaitSync()) { if (SyncFeatures::getInstance().useWaitSync() && SyncFeatures::getInstance().useNativeFenceSync()) { // Create an EGLSyncKHR from the current fence. int fenceFd = mCurrentFence->dup(); if (fenceFd == -1) { Loading
libs/gui/Surface.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ namespace android { using ui::ColorMode; using ui::Dataspace; Surface::Surface(const sp<IGraphicBufferProducer>& bufferProducer, bool controlledByApp) : mGraphicBufferProducer(bufferProducer), Loading Loading @@ -80,7 +81,7 @@ Surface::Surface(const sp<IGraphicBufferProducer>& bufferProducer, bool controll mReqFormat = 0; mReqUsage = 0; mTimestamp = NATIVE_WINDOW_TIMESTAMP_AUTO; mDataSpace = HAL_DATASPACE_UNKNOWN; mDataSpace = Dataspace::UNKNOWN; mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE; mTransform = 0; mStickyTransform = 0; Loading Loading @@ -666,8 +667,9 @@ int Surface::queueBuffer(android_native_buffer_t* buffer, int fenceFd) { sp<Fence> fence(fenceFd >= 0 ? new Fence(fenceFd) : Fence::NO_FENCE); IGraphicBufferProducer::QueueBufferOutput output; IGraphicBufferProducer::QueueBufferInput input(timestamp, isAutoTimestamp, mDataSpace, crop, mScalingMode, mTransform ^ mStickyTransform, fence, mStickyTransform, mEnableFrameTimestamps); static_cast<android_dataspace>(mDataSpace), crop, mScalingMode, mTransform ^ mStickyTransform, fence, mStickyTransform, mEnableFrameTimestamps); // we should send HDR metadata as needed if this becomes a bottleneck input.setHdrMetadata(mHdrMetadata); Loading Loading @@ -1098,8 +1100,7 @@ int Surface::dispatchSetSidebandStream(va_list args) { } int Surface::dispatchSetBuffersDataSpace(va_list args) { android_dataspace dataspace = static_cast<android_dataspace>(va_arg(args, int)); Dataspace dataspace = static_cast<Dataspace>(va_arg(args, int)); return setBuffersDataSpace(dataspace); } Loading Loading @@ -1531,7 +1532,7 @@ int Surface::setBuffersTimestamp(int64_t timestamp) return NO_ERROR; } int Surface::setBuffersDataSpace(android_dataspace dataSpace) int Surface::setBuffersDataSpace(Dataspace dataSpace) { ALOGV("Surface::setBuffersDataSpace"); Mutex::Autolock lock(mMutex); Loading Loading @@ -1563,7 +1564,7 @@ int Surface::setBuffersCta8613Metadata(const android_cta861_3_metadata* metadata return NO_ERROR; } android_dataspace_t Surface::getBuffersDataSpace() { Dataspace Surface::getBuffersDataSpace() { ALOGV("Surface::getBuffersDataSpace"); Mutex::Autolock lock(mMutex); return mDataSpace; Loading
libs/gui/include/gui/Surface.h +5 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <gui/IGraphicBufferProducer.h> #include <ui/ANativeObjectBase.h> #include <ui/GraphicTypes.h> #include <ui/Region.h> #include <utils/Condition.h> Loading Loading @@ -245,7 +246,7 @@ protected: virtual int setBuffersTransform(uint32_t transform); virtual int setBuffersStickyTransform(uint32_t transform); virtual int setBuffersTimestamp(int64_t timestamp); virtual int setBuffersDataSpace(android_dataspace dataSpace); virtual int setBuffersDataSpace(ui::Dataspace dataSpace); virtual int setBuffersSmpte2086Metadata(const android_smpte2086_metadata* metadata); virtual int setBuffersCta8613Metadata(const android_cta861_3_metadata* metadata); virtual int setCrop(Rect const* rect); Loading Loading @@ -286,7 +287,7 @@ public: // detachNextBuffer, or attachBuffer call. status_t getAndFlushRemovedBuffers(std::vector<sp<GraphicBuffer>>* out); android_dataspace_t getBuffersDataSpace(); ui::Dataspace getBuffersDataSpace(); static status_t attachAndQueueBuffer(Surface* surface, sp<GraphicBuffer> buffer); Loading Loading @@ -340,9 +341,9 @@ protected: int64_t mTimestamp; // mDataSpace is the buffer dataSpace that will be used for the next buffer // queue operation. It defaults to HAL_DATASPACE_UNKNOWN, which // queue operation. It defaults to Dataspace::UNKNOWN, which // means that the buffer contains some type of color data. android_dataspace mDataSpace; ui::Dataspace mDataSpace; // mHdrMetadata is the HDR metadata that will be used for the next buffer // queue operation. There is no HDR metadata by default. Loading
libs/ui/Android.bp +8 −2 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ cc_library_shared { "libhidlbase", "libhidltransport", "libhwbinder", "libpdx_default_transport", "libsync", "libutils", "libutilscallstack", Loading @@ -99,10 +100,9 @@ cc_library_shared { "libbase_headers", "libnativebase_headers", "libhardware_headers", "libui_headers", ], export_include_dirs: ["include"], export_static_lib_headers: [ "libarect", "libmath", Loading @@ -112,6 +112,7 @@ cc_library_shared { "libbase_headers", "libnativebase_headers", "libhardware_headers", "libui_headers", ], } Loading @@ -119,6 +120,11 @@ cc_library_headers { name: "libui_headers", export_include_dirs: ["include"], vendor_available: true, target: { vendor: { override_export_include_dirs: ["include_vndk"], }, }, } subdirs = [ Loading
libs/ui/DebugUtils.cpp +27 −0 Original line number Diff line number Diff line Loading @@ -234,6 +234,33 @@ std::string decodeColorMode(ColorMode colorMode) { return android::base::StringPrintf("Unknown color mode %d", colorMode); } std::string decodeColorTransform(android_color_transform colorTransform) { switch (colorTransform) { case HAL_COLOR_TRANSFORM_IDENTITY: return std::string("Identity"); case HAL_COLOR_TRANSFORM_ARBITRARY_MATRIX: return std::string("Arbitrary matrix"); case HAL_COLOR_TRANSFORM_VALUE_INVERSE: return std::string("Inverse value"); case HAL_COLOR_TRANSFORM_GRAYSCALE: return std::string("Grayscale"); case HAL_COLOR_TRANSFORM_CORRECT_PROTANOPIA: return std::string("Correct protanopia"); case HAL_COLOR_TRANSFORM_CORRECT_DEUTERANOPIA: return std::string("Correct deuteranopia"); case HAL_COLOR_TRANSFORM_CORRECT_TRITANOPIA: return std::string("Correct tritanopia"); } return android::base::StringPrintf("Unknown color transform %d", colorTransform); } // Converts a PixelFormat to a human-readable string. Max 11 chars. // (Could use a table of prefab String8 objects.) std::string decodePixelFormat(android::PixelFormat format) { Loading