Lines Matching refs:layer

1129     // rebuild the visible layer list per screen
1149 const sp<Layer>& layer(layers[i]);
1150 const Layer::State& s(layer->getDrawingState());
1153 layer->visibleNonTransparentRegion));
1156 layersSortedByZ.add(layer);
1181 // - When a display is created with a private layer stack, we won't
1182 // emit any black frames until a layer is added to the layer stack.
1215 const sp<Layer>& layer(currentLayers[i]);
1216 layer->setGeometry(hw, *cur);
1238 * update the per-frame h/w composer data for each layer
1241 const sp<Layer>& layer(currentLayers[i]);
1242 layer->setPerFrameData(hw, *cur);
1258 const sp<Layer>& layer(currentLayers[i]);
1259 if (layer->isPotentialCursor()) {
1397 const sp<Layer>& layer(currentLayers[i]);
1398 uint32_t trFlags = layer->getTransactionFlags(eTransactionNeeded);
1401 const uint32_t flags = layer->doTransaction(0);
1501 // they have external state (layer stack, projection,
1571 // (either because a display has changed, or because a layer
1577 // If a layer is visible only on a single display, then that
1584 // NOTE: layer transactions have taken place already, so we use their
1586 // happened yet, so we must use the current state layer list
1594 // of displays for every layer).
1595 const sp<Layer>& layer(currentLayers[i]);
1596 uint32_t layerStack = layer->getDrawingState().layerStack;
1619 // could be null when this layer is using a layerStack
1624 layer->updateTransformHint(disp);
1646 const sp<Layer>& layer(layers[i]);
1647 if (currentLayers.indexOf(layer) < 0) {
1648 // this layer is not visible anymore
1652 const Layer::State& s(layer->getDrawingState());
1683 const sp<Layer>& layer(currentLayers[i]);
1684 Rect cursorPos = layer->getPosition(hw);
1727 const sp<Layer>& layer = currentLayers[i];
1730 const Layer::State& s(layer->getDrawingState());
1732 // only consider the layers on the given layer stack
1743 * and not fully transparent. This is essentially the layer's
1757 * transparent. This is only used to tell when the layer has no visible
1758 * non-transparent regions and can be removed from the layer list. It
1759 * does not affect the visibleRegion of this layer or any layers
1767 if (CC_LIKELY(layer->isVisible())) {
1768 const bool translucent = !layer->isOpaque(s);
1769 Rect bounds(s.active.transform.transform(layer->computeBounds()));
1789 // the opaque region is the layer's footprint
1798 // Update aboveCoveredLayers for next (lower) layer
1804 // compute this layer's dirty region
1805 if (layer->contentDirty) {
1809 dirty.orSelf(layer->visibleRegion);
1810 layer->contentDirty = false;
1825 const Region oldVisibleRegion = layer->visibleRegion;
1826 const Region oldCoveredRegion = layer->coveredRegion;
1835 // Update aboveOpaqueLayers for next (lower) layer
1839 layer->setVisibleRegion(visibleRegion);
1840 layer->setCoveredRegion(coveredRegion);
1841 layer->setVisibleNonTransparentRegion(
1873 // Display is now waiting on Layer 1's frame, which is behind layer 0's
1874 // second frame. But layer 0's second frame could be waiting on display.
1877 const sp<Layer>& layer(layers[i]);
1878 if (layer->hasQueuedFrame()) {
1880 if (layer->shouldPresentNow(mPrimaryDispSync)) {
1881 layersWithQueuedFrames.push_back(layer.get());
1883 layer->useEmptyDamage();
1886 layer->useEmptyDamage();
1890 Layer* layer = layersWithQueuedFrames[i];
1891 const Region dirty(layer->latchBuffer(visibleRegions));
1892 layer->useSurfaceDamage();
1893 const Layer::State& s(layer->getDrawingState());
2053 const sp<Layer>& layer(layers[i]);
2054 const Region clip(dirty.intersect(tr.transform(layer->visibleRegion)));
2059 const Layer::State& state(layer->getDrawingState());
2062 && layer->isOpaque(state) && (state.alpha == 0xFF)
2064 // never clear the very first layer since we're
2066 layer->clearWithOpenGL(hw, clip);
2071 layer->draw(hw, clip);
2082 layer->setAcquireFence(hw, *cur);
2087 const sp<Layer>& layer(layers[i]);
2089 tr.transform(layer->visibleRegion)));
2091 layer->draw(hw, clip);
2112 // add this layer to the current state list
2122 // attach this layer to the client
2130 sp<Layer> layer = weakLayer.promote();
2131 if (layer == nullptr) {
2132 // The layer has already been removed, carry on
2136 ssize_t index = mCurrentState.layersSortedByZ.remove(layer);
2138 mLayersPendingRemoval.push(layer);
2302 sp<Layer> layer(client->getLayerUser(s.surface));
2303 if (layer != 0) {
2308 if (layer->setPosition(s.x, s.y, !geometryAppliesWithResize)) {
2314 ssize_t idx = mCurrentState.layersSortedByZ.indexOf(layer);
2315 if (layer->setLayer(s.z) && idx >= 0) {
2317 mCurrentState.layersSortedByZ.add(layer);
2324 if (layer->setSize(s.w, s.h)) {
2329 if (layer->setAlpha(uint8_t(255.0f*s.alpha+0.5f)))
2333 if (layer->setMatrix(s.matrix))
2337 if (layer->setTransparentRegionHint(s.transparentRegion))
2341 if (layer->setFlags(s.flags, s.mask))
2345 if (layer->setCrop(s.crop, !geometryAppliesWithResize))
2349 if (layer->setFinalCrop(s.finalCrop))
2354 ssize_t idx = mCurrentState.layersSortedByZ.indexOf(layer);
2355 if (layer->setLayerStack(s.layerStack) && idx >= 0) {
2357 mCurrentState.layersSortedByZ.add(layer);
2364 layer->deferTransactionUntil(s.handle, s.frameNumber);
2369 layer->setOverrideScalingMode(s.overrideScalingMode);
2392 sp<Layer> layer;
2398 handle, gbp, &layer);
2403 handle, gbp, &layer);
2414 result = addClientLayer(client, *handle, *gbp, layer);
2467 "error removing layer=%p (%s)", l.get(), strerror(-err));
2472 status_t SurfaceFlinger::onLayerDestroyed(const wp<Layer>& layer)
2476 return removeLayer(layer);
2482 // reset screen orientation and use primary layer stack
2693 const sp<Layer>& layer(currentLayers[i]);
2694 result.appendFormat("%s\n", layer->getName().string());
2717 const sp<Layer>& layer(currentLayers[i]);
2718 if (name == layer->getName()) {
2719 layer->dumpFrameStats(result);
2737 const sp<Layer>& layer(currentLayers[i]);
2738 if (name.isEmpty() || (name == layer->getName())) {
2739 layer->clearFrameStats();
2752 const sp<Layer>& layer(drawingLayers[i]);
2753 layer->logFrameStats();
2899 * Dump the visible layer list
2907 const sp<Layer>& layer(currentLayers[i]);
2908 layer->dump(result, colorizer);
3480 const sp<Layer>& layer(layers[i]);
3481 const Layer::State& state(layer->getDrawingState());
3484 if (layer->isVisible()) {
3485 if (filtering) layer->setFiltering(true);
3486 layer->draw(hw, useIdentityTransform);
3487 if (filtering) layer->setFiltering(false);
3530 const sp<Layer>& layer(layers[i]);
3531 const Layer::State& state(layer->getDrawingState());
3533 state.z <= maxLayerZ && layer->isVisible() &&
3534 layer->isSecure()) {
3655 bool SurfaceFlinger::getFrameTimestamps(const Layer& layer,
3657 return mFenceTracker.getFrameTimestamps(layer, frameNumber, outTimestamps);
3675 const sp<Layer>& layer(layers[i]);
3676 const Layer::State& state(layer->getDrawingState());
3679 && (layer->isVisible());
3682 i, layer->getName().string(), state.layerStack, state.z,
3683 layer->isVisible(), state.flags, state.alpha);
3700 // sort layers per layer-stack, then by z-order and finally by sequence