From dd38b8210cd80fd36851530abd5b6be01f92f78c Mon Sep 17 00:00:00 2001 From: Ramkumar Radhakrishnan Date: Wed, 4 Dec 2013 15:15:42 -0800 Subject: [PATCH] hwc: Calculate viewframe from layers display frame information. Calculate view frame of each display from the displayframe of all the application layers. Change-Id: I9ba4076b7b4419bd3559417fad28b4e1de6acff3 --- libhwcomposer/hwc_utils.cpp | 4 ++++ libhwcomposer/hwc_utils.h | 1 + 2 files changed, 5 insertions(+) diff --git a/libhwcomposer/hwc_utils.cpp b/libhwcomposer/hwc_utils.cpp index 6f2cb9cf..ac824435 100644 --- a/libhwcomposer/hwc_utils.cpp +++ b/libhwcomposer/hwc_utils.cpp @@ -745,6 +745,7 @@ void setListStats(hwc_context_t *ctx, (int)ctx->dpyAttr[dpy].xres, (int)ctx->dpyAttr[dpy].yres); ctx->listStats[dpy].secureUI = false; ctx->listStats[dpy].yuv4k2kCount = 0; + ctx->mViewFrame[dpy] = (hwc_rect_t){0, 0, 0, 0}; trimList(ctx, list, dpy); optimizeLayerRects(ctx, list, dpy); @@ -753,6 +754,9 @@ void setListStats(hwc_context_t *ctx, hwc_layer_1_t const* layer = &list->hwLayers[i]; private_handle_t *hnd = (private_handle_t *)layer->handle; + // Calculate view frame of each display from the layer displayframe + ctx->mViewFrame[dpy] = getUnion(ctx->mViewFrame[dpy], + layer->displayFrame); #ifdef QCOM_BSP if (layer->flags & HWC_SCREENSHOT_ANIMATOR_LAYER) { ctx->listStats[dpy].isDisplayAnimating = true; diff --git a/libhwcomposer/hwc_utils.h b/libhwcomposer/hwc_utils.h index 2503e438..95ecf2c2 100644 --- a/libhwcomposer/hwc_utils.h +++ b/libhwcomposer/hwc_utils.h @@ -437,6 +437,7 @@ struct hwc_context_t { qhwc::LayerProp *layerProp[HWC_NUM_DISPLAY_TYPES]; qhwc::MDPComp *mMDPComp[HWC_NUM_DISPLAY_TYPES]; qhwc::HwcDebug *mHwcDebug[HWC_NUM_DISPLAY_TYPES]; + hwc_rect_t mViewFrame[HWC_NUM_DISPLAY_TYPES]; qhwc::AssertiveDisplay *mAD; qhwc::VPUClient *mVPUClient;