Home | History | Annotate | Download | only in surfaceflinger

Lines Matching refs:layer

65 #include "Layer.h"
1002 // rebuild the visible layer list per screen
1012 Vector< sp<Layer> > layersSortedByZ;
1022 const sp<Layer>& layer(layers[i]);
1023 const Layer::State& s(layer->getDrawingState());
1026 layer->visibleNonTransparentRegion));
1029 layersSortedByZ.add(layer);
1056 const Vector< sp<Layer> >& currentLayers(
1063 const sp<Layer>& layer(currentLayers[i]);
1064 layer->setGeometry(hw, *cur);
1079 const Vector< sp<Layer> >& currentLayers(
1086 * update the per-frame h/w composer data for each layer
1089 const sp<Layer>& layer(currentLayers[i]);
1090 layer->setPerFrameData(hw, *cur);
1153 const Vector< sp<Layer> >& currentLayers(hw->getVisibleLayersSortedByZ());
1220 const sp<Layer>& layer(currentLayers[i]);
1221 uint32_t trFlags = layer->getTransactionFlags(eTransactionNeeded);
1224 const uint32_t flags = layer->doTransaction(0);
1225 if (flags & Layer::eVisibleRegion)
1316 // they have external state (layer stack, projection,
1373 // (either because a display has changed, or because a layer
1379 // If a layer is visible only on a single display, then that
1386 // NOTE: layer
1388 // happened yet, so we must use the current state layer list
1396 // of displays for every layer).
1397 const sp<Layer>& layer(currentLayers[i]);
1398 uint32_t layerStack = layer->getDrawingState().layerStack;
1421 // could be null when this layer is using a layerStack
1426 layer->updateTransformHint(disp);
1448 const sp<Layer>& layer(layers[i]);
1449 if (currentLayers.indexOf(layer) < 0) {
1450 // this layer is not visible anymore
1454 const Layer::State& s(layer->getDrawingState());
1499 const sp<Layer>& layer = currentLayers[i];
1502 const Layer::State& s(layer->getDrawingState());
1504 // only consider the layers on the given layer stack
1515 * and not fully transparent. This is essentially the layer's
1529 * transparent. This is only used to tell when the layer has no visible
1530 * non-transparent regions and can be removed from the layer list. It
1531 * does not affect the visibleRegion of this layer or any layers
1539 if (CC_LIKELY(layer->isVisible())) {
1540 const bool translucent = !layer->isOpaque();
1541 Rect bounds(s.transform.transform(layer->computeBounds()));
1565 // the opaque region is the layer's footprint
1574 // Update aboveCoveredLayers for next (lower) layer
1580 // compute this layer's dirty region
1581 if (layer->contentDirty) {
1585 dirty.orSelf(layer->visibleRegion);
1586 layer->contentDirty = false;
1601 const Region oldVisibleRegion = layer->visibleRegion;
1602 const Region oldCoveredRegion = layer->coveredRegion;
1611 // Update aboveOpaqueLayers for next (lower) layer
1615 layer->setVisibleRegion(visibleRegion);
1616 layer->setCoveredRegion(coveredRegion);
1617 layer->setVisibleNonTransparentRegion(
1642 const sp<Layer>& layer(layers[i]);
1643 const Region dirty(layer->latchBuffer(visibleRegions));
1644 const Layer::State& s(layer->getDrawingState());
1771 const Vector< sp<Layer> >& layers(hw->getVisibleLayersSortedByZ());
1777 const sp<Layer>& layer(layers[i]);
1778 const Region clip(dirty.intersect(tr.transform(layer->visibleRegion)));
1782 const Layer::State& state(layer->getDrawingState());
1785 && layer->isOpaque() && (state.alpha == 0xFF)
1787 // never clear the very first layer since we're
1789 layer->clearWithOpenGL(hw, clip);
1794 layer->draw(hw, clip);
1805 layer->setAcquireFence(hw, *cur);
1810 const sp<Layer>& layer(layers[i]);
1812 tr.transform(layer->visibleRegion)));
1814 layer->draw(hw, clip);
1832 const sp<Layer>& lbc)
1834 // attach this layer to the client
1837 // add this layer to the current state list
1843 status_t SurfaceFlinger::removeLayer(const sp<Layer>& layer) {
1845 ssize_t index = mCurrentState.layersSortedByZ.remove(layer);
1847 mLayersPendingRemoval.push(layer);
1994 sp<Layer> layer(client->getLayerUser(s.surface));
1995 if (layer != 0) {
1998 if (layer->setPosition(s.x, s.y))
2003 ssize_t idx = mCurrentState.layersSortedByZ.indexOf(layer);
2004 if (layer->setLayer(s.z)) {
2006 mCurrentState.layersSortedByZ.add(layer);
2013 if (layer->setSize(s.w, s.h)) {
2018 if (layer->setAlpha(uint8_t(255.0f*s.alpha+0.5f)))
2022 if (layer->setMatrix(s.matrix))
2026 if (layer->setTransparentRegionHint(s.transparentRegion))
2030 if (layer->setFlags(s.flags, s.mask))
2034 if (layer->setCrop(s.crop))
2039 ssize_t idx = mCurrentState.layersSortedByZ.indexOf(layer);
2040 if (layer->setLayerStack(s.layerStack)) {
2042 mCurrentState.layersSortedByZ.add(layer);
2067 sp<Layer> layer;
2073 handle, gbp, &layer);
2078 handle, gbp, &layer);
2086 addClientLayer(client, *handle, *gbp, layer);
2094 sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<Layer>* outLayer)
2116 *outLayer = new Layer(this, client, name, w, h, flags);
2129 sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<Layer>* outLayer)
2139 // called by the window manager when it wants to remove a Layer
2141 sp<Layer> l(client->getLayerUser(handle));
2145 "error removing layer=%p (%s)", l.get(), strerror(-err));
2150 status_t SurfaceFlinger::onLayerDestroyed(const wp<Layer>& layer)
2155 sp<Layer> l(layer.promote());
2159 "error removing layer=%p (%s)", l.get(), strerror(-err));
2167 // reset screen orientation and use primary layer stack
2369 const sp<Layer>& layer(currentLayers[i]);
2370 result.appendFormat("%s\n", layer->getName().string());
2393 const sp<Layer>& layer(currentLayers[i]);
2394 if (name == layer->getName()) {
2395 layer->dumpStats(result);
2413 const sp<Layer>& layer(currentLayers[i]);
2414 if (name.isEmpty() || (name == layer->getName())) {
2415 layer->clearStats();
2428 const sp<Layer>& layer(drawingLayers[i]);
2429 layer->logFrameStats();
2493 * Dump the visible layer list
2501 const sp<Layer>& layer(currentLayers[i]);
2502 layer->dump(result, colorizer);
2588 const Vector< sp<Layer> >&
2947 const sp<Layer>& layer(layers[i]);
2948 const Layer::State& state(layer->getDrawingState());
2951 if (layer->isVisible()) {
2952 if (filtering) layer->setFiltering(true);
2953 layer->draw(hw);
2954 if (filtering) layer->setFiltering(false);
3090 const sp<Layer>& layer(layers[i]);
3091 const Layer::State& state(layer->getDrawingState());
3094 && (layer->isVisible());
3097 i, layer->getName().string(), state.layerStack, state.z,
3098 layer->isVisible(), state.flags, state.alpha);
3109 : SortedVector<sp<Layer> >(rhs) {
3115 // sort layers per layer-stack, then by z-order and finally by sequence
3116 const sp<Layer>& l(*reinterpret_cast<const sp<Layer>*>(lhs));
3117 const sp<Layer>& r(*reinterpret_cast<const sp<Layer>*>(rhs));