summaryrefslogtreecommitdiff
path: root/msm8909/libhwcomposer/hwc_copybit.h
diff options
context:
space:
mode:
Diffstat (limited to 'msm8909/libhwcomposer/hwc_copybit.h')
-rw-r--r--msm8909/libhwcomposer/hwc_copybit.h149
1 files changed, 0 insertions, 149 deletions
diff --git a/msm8909/libhwcomposer/hwc_copybit.h b/msm8909/libhwcomposer/hwc_copybit.h
deleted file mode 100644
index c527a4ec..00000000
--- a/msm8909/libhwcomposer/hwc_copybit.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- * Copyright (C) 2012-2014, The Linux Foundation. All rights reserved.
- *
- * Not a Contribution, Apache license notifications and license are retained
- * for attribution purposes only.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#ifndef HWC_COPYBIT_H
-#define HWC_COPYBIT_H
-#include "hwc_utils.h"
-
-#define NUM_RENDER_BUFFERS 3
-//These scaling factors are specific for MDP3. Normally scaling factor
-//is only 4, but copybit will create temp buffer to let it run through
-//twice
-#define MAX_SCALE_FACTOR 16
-#define MIN_SCALE_FACTOR 0.0625
-#define MAX_LAYERS_FOR_ABC 2
-#define INVALID_DIMENSION -1
-#define NO_UPDATING_LAYER -2
-namespace qhwc {
-
-class CopyBit {
-public:
- CopyBit(hwc_context_t *ctx, const int& dpy);
- ~CopyBit();
- // API to get copybit engine(non static)
- struct copybit_device_t *getCopyBitDevice();
- //Sets up members and prepares copybit if conditions are met
- bool prepare(hwc_context_t *ctx, hwc_display_contents_1_t *list,
- int dpy);
- //Draws layer if the layer is set for copybit in prepare
- bool draw(hwc_context_t *ctx, hwc_display_contents_1_t *list,
- int dpy, int* fd);
- // resets the values
- void reset();
-
- private_handle_t * getCurrentRenderBuffer();
-
- void setReleaseFd(int fd);
-
- void setReleaseFdSync(int fd);
-
- bool prepareOverlap(hwc_context_t *ctx, hwc_display_contents_1_t *list);
-
- int drawOverlap(hwc_context_t *ctx, hwc_display_contents_1_t *list);
-
-private:
- /* cached data */
- struct LayerCache {
- int layerCount;
- buffer_handle_t hnd[MAX_NUM_APP_LAYERS];
- hwc_rect_t displayFrame[MAX_NUM_APP_LAYERS];
- bool drop[MAX_NUM_APP_LAYERS];
- /* c'tor */
- LayerCache();
- /* clear caching info*/
- void reset();
- void updateCounts(hwc_context_t *ctx, hwc_display_contents_1_t *list,
- int dpy);
- };
- /* framebuffer cache*/
- struct FbCache {
- hwc_rect_t FbdirtyRect[NUM_RENDER_BUFFERS];
- hwc_rect_t FbdisplayRect[NUM_RENDER_BUFFERS];
- int FbIndex;
- FbCache();
- void reset();
- void insertAndUpdateFbCache(hwc_rect_t dirtyRect,
- hwc_rect_t displayRect);
- int getUnchangedFbDRCount(hwc_rect_t dirtyRect,
- hwc_rect_t displayRect);
- };
-
- // holds the copybit device
- struct copybit_device_t *mEngine;
- bool drawUsingAppBufferComposition(hwc_context_t *ctx,
- hwc_display_contents_1_t *list,
- int dpy, int *fd);
- // Helper functions for copybit composition
- int drawLayerUsingCopybit(hwc_context_t *dev, hwc_layer_1_t *layer,
- private_handle_t *renderBuffer, bool isFG);
- // Helper function to draw copybit layer for PTOR comp
- int drawRectUsingCopybit(hwc_context_t *dev, hwc_layer_1_t *layer,
- private_handle_t *renderBuffer, hwc_rect_t overlap,
- hwc_rect_t destRect);
- int fillColorUsingCopybit(hwc_layer_1_t *layer,
- private_handle_t *renderBuffer);
- bool canUseCopybitForYUV (hwc_context_t *ctx);
- bool canUseCopybitForRGB (hwc_context_t *ctx,
- hwc_display_contents_1_t *list, int dpy);
- bool validateParams (hwc_context_t *ctx,
- const hwc_display_contents_1_t *list);
- //Flags if this feature is on.
- bool mIsModeOn;
- // flag that indicates whether CopyBit composition is enabled for this cycle
- bool mCopyBitDraw;
-
- unsigned int getRGBRenderingArea (const hwc_context_t *ctx,
- const hwc_display_contents_1_t *list);
-
- void getLayerResolution(const hwc_layer_1_t* layer,
- unsigned int &width, unsigned int& height);
-
- int allocRenderBuffers(int w, int h, int f);
-
- void freeRenderBuffers();
-
- int clear (private_handle_t* hnd, hwc_rect_t& rect);
-
- private_handle_t* mRenderBuffer[NUM_RENDER_BUFFERS];
-
- // Index of the current intermediate render buffer
- int mCurRenderBufferIndex;
-
- // Release FDs of the intermediate render buffer
- int mRelFd[NUM_RENDER_BUFFERS];
-
- //Dynamic composition threshold for deciding copybit usage.
- double mDynThreshold;
- bool mSwapRectEnable;
- int mAlignedWidth;
- int mAlignedHeight;
- int mSwapRect;
- LayerCache mLayerCache;
- FbCache mFbCache;
- hwc_rect_t mDirtyRect;
- bool prepareSwapRect(hwc_context_t *ctx, hwc_display_contents_1_t *list,
- int dpy);
- bool isLayerChanging(hwc_context_t *ctx,
- hwc_display_contents_1_t *list, int k);
- bool isSmartBlitPossible(const hwc_display_contents_1_t *list);
-};
-
-}; //namespace qhwc
-
-#endif //HWC_COPYBIT_H