hwc: Do not use fb handle in hwc_prepare
Do not use fb handle in prepare. Use displayFrame for dimensions,
align them and hardcode format
Change-Id: I5c494a74a807d3a52a1c88257494b58c583700f5
diff --git a/libhwcomposer/hwc_copybit.cpp b/libhwcomposer/hwc_copybit.cpp
index bb6a49c..48a0878 100644
--- a/libhwcomposer/hwc_copybit.cpp
+++ b/libhwcomposer/hwc_copybit.cpp
@@ -164,8 +164,6 @@
LayerProp *layerProp = ctx->layerProp[dpy];
size_t fbLayerIndex = ctx->listStats[dpy].fbLayerIndex;
hwc_layer_1_t *fbLayer = &list->hwLayers[fbLayerIndex];
- private_handle_t *fbHnd = (private_handle_t *)fbLayer->handle;
-
// Following are MDP3 limitations for which we
// need to fallback to GPU composition:
@@ -202,9 +200,9 @@
//Allocate render buffers if they're not allocated
if (useCopybitForYUV || useCopybitForRGB) {
- int ret = allocRenderBuffers(fbHnd->width,
- fbHnd->height,
- fbHnd->format);
+ int ret = allocRenderBuffers(mAlignedFBWidth,
+ mAlignedFBHeight,
+ HAL_PIXEL_FORMAT_RGBA_8888);
if (ret < 0) {
return false;
} else {
@@ -696,8 +694,15 @@
return mEngine;
}
-CopyBit::CopyBit():mIsModeOn(false), mCopyBitDraw(false),
- mCurRenderBufferIndex(0){
+CopyBit::CopyBit(hwc_context_t *ctx, const int& dpy) : mIsModeOn(false),
+ mCopyBitDraw(false), mCurRenderBufferIndex(0) {
+
+ getBufferSizeAndDimensions(ctx->dpyAttr[dpy].xres,
+ ctx->dpyAttr[dpy].yres,
+ HAL_PIXEL_FORMAT_RGBA_8888,
+ mAlignedFBWidth,
+ mAlignedFBHeight);
+
hw_module_t const *module;
for (int i = 0; i < NUM_RENDER_BUFFERS; i++) {
mRenderBuffer[i] = NULL;