Loading libs/gui/ISurfaceComposer.cpp +34 −0 Original line number Diff line number Diff line Loading @@ -477,6 +477,26 @@ public: return reply.readInt32(); } virtual status_t overrideHdrTypes(const sp<IBinder>& display, const std::vector<ui::Hdr>& hdrTypes) { Parcel data, reply; SAFE_PARCEL(data.writeInterfaceToken, ISurfaceComposer::getInterfaceDescriptor()); SAFE_PARCEL(data.writeStrongBinder, display); std::vector<int32_t> hdrTypesVector; for (ui::Hdr i : hdrTypes) { hdrTypesVector.push_back(static_cast<int32_t>(i)); } SAFE_PARCEL(data.writeInt32Vector, hdrTypesVector); status_t result = remote()->transact(BnSurfaceComposer::OVERRIDE_HDR_TYPES, data, &reply); if (result != NO_ERROR) { ALOGE("overrideHdrTypes failed to transact: %d", result); return result; } return result; } status_t enableVSyncInjections(bool enable) override { Parcel data, reply; status_t result = data.writeInterfaceToken(ISurfaceComposer::getInterfaceDescriptor()); Loading Loading @@ -1963,6 +1983,20 @@ status_t BnSurfaceComposer::onTransact( SAFE_PARCEL(reply->writeInt32, extraBuffers); return NO_ERROR; } case OVERRIDE_HDR_TYPES: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<IBinder> display = nullptr; SAFE_PARCEL(data.readStrongBinder, &display); std::vector<int32_t> hdrTypes; SAFE_PARCEL(data.readInt32Vector, &hdrTypes); std::vector<ui::Hdr> hdrTypesVector; for (int i : hdrTypes) { hdrTypesVector.push_back(static_cast<ui::Hdr>(i)); } return overrideHdrTypes(display, hdrTypesVector); } default: { return BBinder::onTransact(code, data, reply, flags); } Loading libs/gui/SurfaceComposerClient.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -1985,6 +1985,11 @@ status_t SurfaceComposerClient::getAnimationFrameStats(FrameStats* outStats) { return ComposerService::getComposerService()->getAnimationFrameStats(outStats); } status_t SurfaceComposerClient::overrideHdrTypes(const sp<IBinder>& display, const std::vector<ui::Hdr>& hdrTypes) { return ComposerService::getComposerService()->overrideHdrTypes(display, hdrTypes); } status_t SurfaceComposerClient::getDisplayedContentSamplingAttributes(const sp<IBinder>& display, ui::PixelFormat* outFormat, ui::Dataspace* outDataspace, Loading libs/gui/include/gui/ISurfaceComposer.h +8 −0 Original line number Diff line number Diff line Loading @@ -267,6 +267,13 @@ public: */ virtual status_t getAnimationFrameStats(FrameStats* outStats) const = 0; /* Overrides the supported HDR modes for the given display device. * * Requires the ACCESS_SURFACE_FLINGER permission. */ virtual status_t overrideHdrTypes(const sp<IBinder>& display, const std::vector<ui::Hdr>& hdrTypes) = 0; virtual status_t enableVSyncInjections(bool enable) = 0; virtual status_t injectVSync(nsecs_t when) = 0; Loading Loading @@ -570,6 +577,7 @@ public: GET_DYNAMIC_DISPLAY_INFO, ADD_FPS_LISTENER, REMOVE_FPS_LISTENER, OVERRIDE_HDR_TYPES, // Always append new enum to the end. }; Loading libs/gui/include/gui/SurfaceComposerClient.h +3 −0 Original line number Diff line number Diff line Loading @@ -572,6 +572,9 @@ public: static status_t clearAnimationFrameStats(); static status_t getAnimationFrameStats(FrameStats* outStats); static status_t overrideHdrTypes(const sp<IBinder>& display, const std::vector<ui::Hdr>& hdrTypes); static void setDisplayProjection(const sp<IBinder>& token, ui::Rotation orientation, const Rect& layerStackRect, const Rect& displayRect); Loading libs/gui/tests/Surface_test.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -772,6 +772,10 @@ public: status_t getAnimationFrameStats(FrameStats* /*outStats*/) const override { return NO_ERROR; } status_t overrideHdrTypes(const sp<IBinder>& /*display*/, const std::vector<ui::Hdr>& /*hdrTypes*/) override { return NO_ERROR; } status_t enableVSyncInjections(bool /*enable*/) override { return NO_ERROR; } Loading Loading
libs/gui/ISurfaceComposer.cpp +34 −0 Original line number Diff line number Diff line Loading @@ -477,6 +477,26 @@ public: return reply.readInt32(); } virtual status_t overrideHdrTypes(const sp<IBinder>& display, const std::vector<ui::Hdr>& hdrTypes) { Parcel data, reply; SAFE_PARCEL(data.writeInterfaceToken, ISurfaceComposer::getInterfaceDescriptor()); SAFE_PARCEL(data.writeStrongBinder, display); std::vector<int32_t> hdrTypesVector; for (ui::Hdr i : hdrTypes) { hdrTypesVector.push_back(static_cast<int32_t>(i)); } SAFE_PARCEL(data.writeInt32Vector, hdrTypesVector); status_t result = remote()->transact(BnSurfaceComposer::OVERRIDE_HDR_TYPES, data, &reply); if (result != NO_ERROR) { ALOGE("overrideHdrTypes failed to transact: %d", result); return result; } return result; } status_t enableVSyncInjections(bool enable) override { Parcel data, reply; status_t result = data.writeInterfaceToken(ISurfaceComposer::getInterfaceDescriptor()); Loading Loading @@ -1963,6 +1983,20 @@ status_t BnSurfaceComposer::onTransact( SAFE_PARCEL(reply->writeInt32, extraBuffers); return NO_ERROR; } case OVERRIDE_HDR_TYPES: { CHECK_INTERFACE(ISurfaceComposer, data, reply); sp<IBinder> display = nullptr; SAFE_PARCEL(data.readStrongBinder, &display); std::vector<int32_t> hdrTypes; SAFE_PARCEL(data.readInt32Vector, &hdrTypes); std::vector<ui::Hdr> hdrTypesVector; for (int i : hdrTypes) { hdrTypesVector.push_back(static_cast<ui::Hdr>(i)); } return overrideHdrTypes(display, hdrTypesVector); } default: { return BBinder::onTransact(code, data, reply, flags); } Loading
libs/gui/SurfaceComposerClient.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -1985,6 +1985,11 @@ status_t SurfaceComposerClient::getAnimationFrameStats(FrameStats* outStats) { return ComposerService::getComposerService()->getAnimationFrameStats(outStats); } status_t SurfaceComposerClient::overrideHdrTypes(const sp<IBinder>& display, const std::vector<ui::Hdr>& hdrTypes) { return ComposerService::getComposerService()->overrideHdrTypes(display, hdrTypes); } status_t SurfaceComposerClient::getDisplayedContentSamplingAttributes(const sp<IBinder>& display, ui::PixelFormat* outFormat, ui::Dataspace* outDataspace, Loading
libs/gui/include/gui/ISurfaceComposer.h +8 −0 Original line number Diff line number Diff line Loading @@ -267,6 +267,13 @@ public: */ virtual status_t getAnimationFrameStats(FrameStats* outStats) const = 0; /* Overrides the supported HDR modes for the given display device. * * Requires the ACCESS_SURFACE_FLINGER permission. */ virtual status_t overrideHdrTypes(const sp<IBinder>& display, const std::vector<ui::Hdr>& hdrTypes) = 0; virtual status_t enableVSyncInjections(bool enable) = 0; virtual status_t injectVSync(nsecs_t when) = 0; Loading Loading @@ -570,6 +577,7 @@ public: GET_DYNAMIC_DISPLAY_INFO, ADD_FPS_LISTENER, REMOVE_FPS_LISTENER, OVERRIDE_HDR_TYPES, // Always append new enum to the end. }; Loading
libs/gui/include/gui/SurfaceComposerClient.h +3 −0 Original line number Diff line number Diff line Loading @@ -572,6 +572,9 @@ public: static status_t clearAnimationFrameStats(); static status_t getAnimationFrameStats(FrameStats* outStats); static status_t overrideHdrTypes(const sp<IBinder>& display, const std::vector<ui::Hdr>& hdrTypes); static void setDisplayProjection(const sp<IBinder>& token, ui::Rotation orientation, const Rect& layerStackRect, const Rect& displayRect); Loading
libs/gui/tests/Surface_test.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -772,6 +772,10 @@ public: status_t getAnimationFrameStats(FrameStats* /*outStats*/) const override { return NO_ERROR; } status_t overrideHdrTypes(const sp<IBinder>& /*display*/, const std::vector<ui::Hdr>& /*hdrTypes*/) override { return NO_ERROR; } status_t enableVSyncInjections(bool /*enable*/) override { return NO_ERROR; } Loading