Home | History | Annotate | Download | only in surfaceflinger

Lines Matching full:layer

108     // The mesh used to draw the layer in GLES composition mode
115 layer(nullptr),
122 HWC2::Layer* layer;
132 // A layer can be attached to multiple displays when operating in mirror mode
134 // case we need to keep track. In non-mirror mode, a layer will have only one
141 class Layer : public virtual RefBase {
154 // Layer serial number. This gives layers an explicit ordering, so we
155 // have a stable sort order when their layer stack and Z-order are
181 // The identifier of the layer stack this layer belongs to. A layer can
182 // only be associated to a single layer stack. A layer stack is a
184 // displays. Using the same layer stack on different displays is a way
193 // Crop is expressed in layer space coordinate.
201 // If set, defers this state update until the identified Layer
203 wp<Layer> barrierLayer;
216 wp<Layer> zOrderRelativeOf;
219 SortedVector<wp<Layer>> zOrderRelatives;
224 Layer(SurfaceFlinger* flinger, const sp<Client>& client, const String8& name, uint32_t w,
226 virtual ~Layer();
254 // also the rendered size of the layer prior to any transformations. Parent
258 // Set a 2x2 transformation matrix on the layer. This transform
278 // using the layer hierarchy?
290 void deferTransactionUntil(const sp<Layer>& barrierLayer, uint64_t frameNumber);
293 bool reparentChildren(const sp<IBinder>& layer);
294 void setChildrenDrawingParent(const sp<Layer>& layer);
335 * on the layer. It does not examine the current plane alpha value.
337 virtual bool isOpaque(const Layer::State&) const { return false; }
346 * isVisible - true if this layer is visible, false otherwise
351 * isHiddenByPolicy - true if this layer has been forced invisible.
353 * For example if this layer has no active buffer, it may not be hidden by
408 * returns true if the layer has pending updates.
414 * returns true if the layer latched a new buffer this frame.
478 * called with the state lock from a binder thread when the layer is
484 * called with the state lock from the main thread when the layer is
494 * returns the rectangle that crops the content of the layer and scales it
495 * to the layer's size.
518 HWC2::Layer* getHwcLayer(int32_t hwcId) {
522 return getBE().mHwcLayers[hwcId].layer;
577 void addChild(const sp<Layer>& layer);
580 ssize_t removeChild(const sp<Layer>& layer);
581 sp<Layer> getParent() const { return mCurrentParent.promote(); }
584 bool setChildLayer(const sp<Layer>& childLayer, int32_t z);
585 bool setChildRelativeLayer(const sp<Layer>& childLayer,
603 wp<Layer> mLayer;
612 LayerCleaner(const sp<SurfaceFlinger>& flinger, const sp<Layer>& layer)
613 : mFlinger(flinger), mLayer(layer) {}
626 // SurfaceControl for this layer. Does not include buffer crop from the
635 void setParent(const sp<Layer>& layer);
638 void addZOrderRelative(const wp<Layer>& relative);
639 void removeZOrderRelative(const wp<Layer>& relative);
687 * The layer handle is just a BBinder object passed to the client
692 * this layer when the handle is destroyed.
696 Handle(const sp<SurfaceFlinger>& flinger, const sp<Layer>& layer)
697 : LayerCleaner(flinger, layer), owner(layer) {}
699 wp<Layer> owner;
770 // This layer can be a cursor on some displays.
786 wp<Layer> mCurrentParent;
787 wp<Layer> mDrawingParent;
794 * That includes the current layer and all its descendants.
796 std::vector<Layer*> getLayersInTree(LayerVector::StateSet stateSet);
801 void traverseChildrenInZOrderInner(const std::vector<Layer*>& layersInTree,
805 const std::vector<Layer*>& layersInTree);