Home | History | Annotate | Download | only in base

Lines Matching defs:hwcLayer

48 bool HwcLayerList::checkSupported(int planeType, HwcLayer *hwcLayer)
51 hwc_layer_1_t& layer = *(hwcLayer->getLayer());
54 if (hwcLayer->getType() == HwcLayer::LAYER_FORCE_FB) {
71 if (!(hwcLayer->getUsage() & GRALLOC_USAGE_HW_COMPOSER)) {
77 valid = PlaneCapabilities::isTransformSupported(planeType, hwcLayer);
84 valid = PlaneCapabilities::isFormatSupported(planeType, hwcLayer);
91 valid = PlaneCapabilities::isSizeSupported(planeType, hwcLayer);
98 valid = PlaneCapabilities::isBlendingSupported(planeType, hwcLayer);
105 valid = PlaneCapabilities::isScalingSupported(planeType, hwcLayer);
115 bool HwcLayerList::checkRgbOverlaySupported(HwcLayer *hwcLayer)
117 hwc_layer_1_t& layer = *(hwcLayer->getLayer());
120 if (hwcLayer->getType() == HwcLayer::LAYER_FORCE_FB) {
137 if (!(hwcLayer->getUsage() & GRALLOC_USAGE_HW_COMPOSER)) {
142 uint32_t format = hwcLayer->getFormat();
148 const stride_t& stride = hwcLayer->getBufferStride();
153 uint32_t blending = (uint32_t)hwcLayer->getLayer()->blending;
158 uint32_t trans = hwcLayer->getLayer()->transform;
163 hwc_frect_t& src = hwcLayer->getLayer()->sourceCropf;
164 hwc_rect_t& dest = hwcLayer->getLayer()->displayFrame;
175 bool HwcLayerList::checkCursorSupported(HwcLayer *hwcLayer)
177 hwc_layer_1_t& layer = *(hwcLayer->getLayer());
180 if (hwcLayer->getType() == HwcLayer::LAYER_FORCE_FB) {
196 if (hwcLayer->getIndex() != mLayerCount - 2) {
207 if (!(hwcLayer->getUsage() & GRALLOC_USAGE_HW_COMPOSER)) {
212 uint32_t format = hwcLayer->getFormat();
219 uint32_t trans = hwcLayer->getLayer()->transform;
225 hwc_frect_t& src = hwcLayer->getLayer()->sourceCropf;
226 hwc_rect_t& dest = hwcLayer->getLayer()->displayFrame;
275 HwcLayer *hwcLayer = new HwcLayer(i, layer);
276 if (!hwcLayer) {
281 hwcLayer->setType(HwcLayer::LAYER_FRAMEBUFFER_TARGET);
282 mFrameBufferTarget = hwcLayer;
285 hwcLayer->setType(HwcLayer::LAYER_SKIPPED);
288 hwcLayer->setType(HwcLayer::LAYER_FORCE_FB);
290 mFBLayers.add(hwcLayer);
293 hwcLayer->setType(HwcLayer::LAYER_FB);
294 mFBLayers.add(hwcLayer);
296 if (checkCursorSupported(hwcLayer)) {
297 mCursorCandidates.add(hwcLayer);
298 } else if (checkRgbOverlaySupported(hwcLayer)) {
299 rgbOverlayLayers.add(hwcLayer);
300 } else if (checkSupported(DisplayPlane::PLANE_SPRITE, hwcLayer)) {
301 mSpriteCandidates.add(hwcLayer);
302 } else if (checkSupported(DisplayPlane::PLANE_OVERLAY, hwcLayer)) {
303 mOverlayCandidates.add(hwcLayer);
308 if (checkSupported(DisplayPlane::PLANE_SPRITE, hwcLayer) &&
311 mSpriteCandidates.add(hwcLayer);
312 } else if (checkSupported(DisplayPlane::PLANE_OVERLAY, hwcLayer)) {
313 mOverlayCandidates.add(hwcLayer);
319 hwcLayer->setType(HwcLayer::LAYER_SIDEBAND);
324 mLayers.add(hwcLayer);
344 HwcLayer *hwcLayer = rgbOverlayLayers.top();
346 mSpriteCandidates.add(hwcLayer);
348 mOverlayCandidates.add(hwcLayer);
366 HwcLayer *hwcLayer = mLayers.itemAt(i);
367 if (hwcLayer) {
368 DisplayPlane *plane = hwcLayer->detachPlane();
373 delete hwcLayer;
549 HwcLayer *spriteLayer = NULL;
602 bool HwcLayerList::assignPrimaryPlaneHelper(HwcLayer *hwcLayer, int zorder)
606 ZOrderLayer *zlayer = addZOrderLayer(type, hwcLayer, zorder);
630 if (zlayer->plane == NULL || zlayer->hwcLayer == NULL) {
638 zlayer->hwcLayer->setType(HwcLayer::LAYER_CURSOR_OVERLAY);
639 mFBLayers.remove(zlayer->hwcLayer);
640 } else if (zlayer->hwcLayer != mFrameBufferTarget) {
641 zlayer->hwcLayer->setType(HwcLayer::LAYER_OVERLAY);
643 mFBLayers.remove(zlayer->hwcLayer);
646 zlayer->hwcLayer->attachPlane(zlayer->plane, mDisplayIndex);
650 zlayer->hwcLayer->getIndex(),
662 bool HwcLayerList::useAsFrameBufferTarget(HwcLayer *target)
712 bool HwcLayerList::hasIntersection(HwcLayer *la, HwcLayer *lb)
728 ZOrderLayer* HwcLayerList::addZOrderLayer(int type, HwcLayer *hwcLayer, int zorder)
732 layer->hwcLayer = hwcLayer;
733 layer->zorder = (zorder != -1) ? zorder : hwcLayer->getZOrder();
736 if (hwcLayer->mPlaneCandidate) {
740 hwcLayer->mPlaneCandidate = true;
758 if (layer->hwcLayer->mPlaneCandidate == false) {
761 layer->hwcLayer->mPlaneCandidate = false;
768 HwcLayer *hwcLayer = NULL;
772 hwcLayer = mFBLayers.itemAt(i);
773 if (hwcLayer->isUpdated()) {
781 hwcLayer = mFBLayers.itemAt(i);
782 switch (hwcLayer->getType()) {
783 case HwcLayer::LAYER_FB:
784 case HwcLayer::LAYER_FORCE_FB:
785 hwcLayer->setCompositionType(compositionType);
788 ELOGTRACE("Invalid layer type %d", hwcLayer->getType());
819 HwcLayer *hwcLayer = mLayers.itemAt(i);
820 if (!hwcLayer) {
825 if (!hwcLayer->update(&list->hwLayers[i])) {
827 hwcLayer->setCompositionType(HWC_FORCE_FRAMEBUFFER);
834 HwcLayer *hwcLayer = mLayers.itemAt(i);
835 if (hwcLayer->getPlane() &&
836 (hwcLayer->getCompositionType() == HWC_OVERLAY ||
837 hwcLayer->getCompositionType() == HWC_CURSOR_OVERLAY)) {
838 hwcLayer->setCompositionType(HWC_FRAMEBUFFER);
848 HwcLayer *hwcLayer = mLayers.itemAt(i);
849 if (!hwcLayer) {
854 if (!hwcLayer->update(&list->hwLayers[i])) {
886 HwcLayer *hwcLayer = mLayers.itemAt(i);
887 if (!hwcLayer) {
892 hwcLayer->update(&list->hwLayers[i]);
903 HwcLayer *hwcLayer;
910 hwcLayer = mLayers.itemAt(index);
911 if ((hwcLayer->getType() == HwcLayer::LAYER_FB) ||
912 (hwcLayer->getType() == HwcLayer::LAYER_FORCE_FB) ||
913 (hwcLayer->getType() == HwcLayer::LAYER_SKIPPED)) {
917 if (hwcLayer->getHandle() == 0) {
922 return hwcLayer->getPlane();
928 HwcLayer *hwcLayer = mLayers.itemAt(i);
929 hwcLayer->postFlip();
939 HwcLayer *hwcLayer = mLayers.itemAt(i);
946 if (hwcLayer) {
947 switch (hwcLayer->getType()) {
948 case HwcLayer::LAYER_FB:
949 case HwcLayer::LAYER_FORCE_FB:
952 case HwcLayer::LAYER_OVERLAY:
953 case HwcLayer::LAYER_SKIPPED:
956 case HwcLayer::LAYER_FRAMEBUFFER_TARGET:
959 case HwcLayer::LAYER_SIDEBAND:
962 case HwcLayer::LAYER_CURSOR_OVERLAY:
969 plane = hwcLayer->getPlane();