Loading libs/gui/SurfaceComposerClient.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -861,9 +861,8 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setFlags mStatus = BAD_INDEX; return *this; } if ((mask & layer_state_t::eLayerOpaque) || (mask & layer_state_t::eLayerHidden) || (mask & layer_state_t::eLayerSecure)) { if ((mask & layer_state_t::eLayerOpaque) || (mask & layer_state_t::eLayerHidden) || (mask & layer_state_t::eLayerSecure) || (mask & layer_state_t::eLayerSkipScreenshot)) { s->what |= layer_state_t::eFlagsChanged; } s->flags &= ~mask; Loading libs/gui/include/gui/ISurfaceComposerClient.h +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ public: enum { // (keep in sync with SurfaceControl.java) eHidden = 0x00000004, eDestroyBackbuffer = 0x00000020, eSkipScreenshot = 0x00000040, eSecure = 0x00000080, eNonPremultiplied = 0x00000100, eOpaque = 0x00000400, Loading libs/gui/include/gui/LayerState.h +4 −3 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ struct layer_state_t { enum { eLayerHidden = 0x01, // SURFACE_HIDDEN in SurfaceControl.java eLayerOpaque = 0x02, // SURFACE_OPAQUE eLayerSkipScreenshot = 0x40, // SKIP_SCREENSHOT eLayerSecure = 0x80, // SECURE }; Loading services/surfaceflinger/Layer.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,8 @@ Layer::Layer(const LayerCreationArgs& args) if (args.flags & ISurfaceComposerClient::eHidden) layerFlags |= layer_state_t::eLayerHidden; if (args.flags & ISurfaceComposerClient::eOpaque) layerFlags |= layer_state_t::eLayerOpaque; if (args.flags & ISurfaceComposerClient::eSecure) layerFlags |= layer_state_t::eLayerSecure; if (args.flags & ISurfaceComposerClient::eSkipScreenshot) layerFlags |= layer_state_t::eLayerSkipScreenshot; mCurrentState.active_legacy.w = args.w; mCurrentState.active_legacy.h = args.h; Loading Loading @@ -2658,6 +2660,16 @@ Layer::FrameRateCompatibility Layer::FrameRate::convertCompatibility(int8_t comp } } bool Layer::getPrimaryDisplayOnly() const { const State& s(mDrawingState); if (s.flags & layer_state_t::eLayerSkipScreenshot) { return true; } sp<Layer> parent = mDrawingParent.promote(); return parent == nullptr ? false : parent->getPrimaryDisplayOnly(); } // --------------------------------------------------------------------------- }; // namespace android Loading services/surfaceflinger/Layer.h +1 −4 Original line number Diff line number Diff line Loading @@ -695,8 +695,7 @@ public: InputWindowInfo::Type getWindowType() const { return mWindowType; } void setPrimaryDisplayOnly() { mPrimaryDisplayOnly = true; } bool getPrimaryDisplayOnly() const { return mPrimaryDisplayOnly; } bool getPrimaryDisplayOnly() const; void updateMirrorInfo(); Loading Loading @@ -963,8 +962,6 @@ protected: const std::string mName; const std::string mTransactionName{"TX - " + mName}; bool mPrimaryDisplayOnly = false; // These are only accessed by the main thread or the tracing thread. State mDrawingState; // Store a copy of the pending state so that the drawing thread can access the Loading Loading
libs/gui/SurfaceComposerClient.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -861,9 +861,8 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setFlags mStatus = BAD_INDEX; return *this; } if ((mask & layer_state_t::eLayerOpaque) || (mask & layer_state_t::eLayerHidden) || (mask & layer_state_t::eLayerSecure)) { if ((mask & layer_state_t::eLayerOpaque) || (mask & layer_state_t::eLayerHidden) || (mask & layer_state_t::eLayerSecure) || (mask & layer_state_t::eLayerSkipScreenshot)) { s->what |= layer_state_t::eFlagsChanged; } s->flags &= ~mask; Loading
libs/gui/include/gui/ISurfaceComposerClient.h +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ public: enum { // (keep in sync with SurfaceControl.java) eHidden = 0x00000004, eDestroyBackbuffer = 0x00000020, eSkipScreenshot = 0x00000040, eSecure = 0x00000080, eNonPremultiplied = 0x00000100, eOpaque = 0x00000400, Loading
libs/gui/include/gui/LayerState.h +4 −3 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ struct layer_state_t { enum { eLayerHidden = 0x01, // SURFACE_HIDDEN in SurfaceControl.java eLayerOpaque = 0x02, // SURFACE_OPAQUE eLayerSkipScreenshot = 0x40, // SKIP_SCREENSHOT eLayerSecure = 0x80, // SECURE }; Loading
services/surfaceflinger/Layer.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,8 @@ Layer::Layer(const LayerCreationArgs& args) if (args.flags & ISurfaceComposerClient::eHidden) layerFlags |= layer_state_t::eLayerHidden; if (args.flags & ISurfaceComposerClient::eOpaque) layerFlags |= layer_state_t::eLayerOpaque; if (args.flags & ISurfaceComposerClient::eSecure) layerFlags |= layer_state_t::eLayerSecure; if (args.flags & ISurfaceComposerClient::eSkipScreenshot) layerFlags |= layer_state_t::eLayerSkipScreenshot; mCurrentState.active_legacy.w = args.w; mCurrentState.active_legacy.h = args.h; Loading Loading @@ -2658,6 +2660,16 @@ Layer::FrameRateCompatibility Layer::FrameRate::convertCompatibility(int8_t comp } } bool Layer::getPrimaryDisplayOnly() const { const State& s(mDrawingState); if (s.flags & layer_state_t::eLayerSkipScreenshot) { return true; } sp<Layer> parent = mDrawingParent.promote(); return parent == nullptr ? false : parent->getPrimaryDisplayOnly(); } // --------------------------------------------------------------------------- }; // namespace android Loading
services/surfaceflinger/Layer.h +1 −4 Original line number Diff line number Diff line Loading @@ -695,8 +695,7 @@ public: InputWindowInfo::Type getWindowType() const { return mWindowType; } void setPrimaryDisplayOnly() { mPrimaryDisplayOnly = true; } bool getPrimaryDisplayOnly() const { return mPrimaryDisplayOnly; } bool getPrimaryDisplayOnly() const; void updateMirrorInfo(); Loading Loading @@ -963,8 +962,6 @@ protected: const std::string mName; const std::string mTransactionName{"TX - " + mName}; bool mPrimaryDisplayOnly = false; // These are only accessed by the main thread or the tracing thread. State mDrawingState; // Store a copy of the pending state so that the drawing thread can access the Loading