diff options
Diffstat (limited to 'widget/gonk/HwcUtils.h')
-rw-r--r-- | widget/gonk/HwcUtils.h | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/widget/gonk/HwcUtils.h b/widget/gonk/HwcUtils.h deleted file mode 100644 index 876ff8e99..000000000 --- a/widget/gonk/HwcUtils.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2013, The Linux Foundation. All rights reserved. - * - * 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 mozilla_HwcUtils -#define mozilla_HwcUtils - -#include "Layers.h" -#include <vector> -#include "hardware/hwcomposer.h" - -namespace mozilla { - -namespace gfx { -class Matrix; -} - -class HwcUtils { -public: - -enum { - HWC_USE_GPU = HWC_FRAMEBUFFER, - HWC_USE_OVERLAY = HWC_OVERLAY, - HWC_USE_COPYBIT -}; - -// HWC layer flags -enum { - // Draw a solid color rectangle - // The color should be set on the transform member of the hwc_layer_t struct - // The expected format is a 32 bit ABGR with 8 bits per component - HWC_COLOR_FILL = 0x8, - // Swap the RB pixels of gralloc buffer, like RGBA<->BGRA or RGBX<->BGRX - // The flag will be set inside LayerRenderState - HWC_FORMAT_RB_SWAP = 0x40 -}; - -typedef std::vector<hwc_rect_t> RectVector; - -/* Utility functions - implemented in HwcUtils.cpp */ - -/** - * Calculates the layer's clipping rectangle - * - * @param aTransform Input. A transformation matrix - * It transforms the clip rect to screen space - * @param aLayerClip Input. The layer's internal clipping rectangle. - * This may be NULL which means the layer has no internal clipping - * The origin is the top-left corner of the layer - * @param aParentClip Input. The parent layer's rendering clipping rectangle - * The origin is the top-left corner of the screen - * @param aRenderClip Output. The layer's rendering clipping rectangle - * The origin is the top-left corner of the screen - * @return true if the layer should be rendered. - * false if the layer can be skipped - */ -static bool CalculateClipRect(const gfx::Matrix& aTransform, - const nsIntRect* aLayerClip, - nsIntRect aParentClip, nsIntRect* aRenderClip); - - -/** - * Prepares hwc layer visible region required for hwc composition - * - * @param aVisible Input. Layer's unclipped visible region - * The origin is the top-left corner of the layer - * @param aLayerTransform Input. Layer's transformation matrix - * It transforms from layer space to screen space - * @param aLayerBufferTransform Input. Layer buffer's transformation matrix - * It transforms from layer buffer's space to screen space - * @param aClip Input. A clipping rectangle. - * The origin is the top-left corner of the screen - * @param aBufferRect Input. The layer's buffer bounds - * The origin is the top-left corner of the layer - * @param aVisibleRegionScreen Output. Visible region in screen space. - * The origin is the top-left corner of the screen - * @param aIsVisible Output. true if region is visible - * false if region is not visible - * @return true if region can be rendered by HWC. - * false if region should not be rendered by HWC - */ -static bool PrepareVisibleRegion(const nsIntRegion& aVisible, - const gfx::Matrix& aLayerTransform, - const gfx::Matrix& aLayerBufferTransform, - nsIntRect aClip, nsIntRect aBufferRect, - RectVector* aVisibleRegionScreen, - bool& aIsVisible); - - -/** - * Sets hwc layer rectangles required for hwc composition - * - * @param aVisible Input. Layer's unclipped visible rectangle - * The origin is the top-left corner of the layer - * @param aLayerTransform Input. Layer's transformation matrix - * It transforms from layer space to screen space - * @param aLayerBufferTransform Input. Layer buffer's transformation matrix - * It transforms from layer buffer's space to screen space - * @param aClip Input. A clipping rectangle. - * The origin is the top-left corner of the screen - * @param aBufferRect Input. The layer's buffer bounds - * The origin is the top-left corner of the layer - * @param aYFlipped Input. true if the buffer is rendered as Y flipped - * @param aSurceCrop Output. Area of the source to consider, - * the origin is the top-left corner of the buffer - * @param aVisibleRegionScreen Output. Visible region in screen space. - * The origin is the top-left corner of the screen - * @return true if the layer should be rendered. - * false if the layer can be skipped - */ -static bool PrepareLayerRects(nsIntRect aVisible, - const gfx::Matrix& aLayerTransform, - const gfx::Matrix& aLayerBufferTransform, - nsIntRect aClip, nsIntRect aBufferRect, - bool aYFlipped, - hwc_rect_t* aSourceCrop, - hwc_rect_t* aVisibleRegionScreen); - -}; - -} // namespace mozilla - -#endif // mozilla_HwcUtils |