sde: Add interface for Partial Update feature
Composition Manager propagates HWResourceInfo, HWPanelInfo information
to Strategy Interface. Strategy Interface implementation uses this
information to determine partial update is qualified for a given display.
Change-Id: I48bd209c4c4386f7a6afdce38b754833f9c100e6
diff --git a/displayengine/include/private/strategy_interface.h b/displayengine/include/private/strategy_interface.h
index eac88cc..df01c7f 100644
--- a/displayengine/include/private/strategy_interface.h
+++ b/displayengine/include/private/strategy_interface.h
@@ -31,6 +31,7 @@
#include <core/sde_types.h>
#include <core/display_interface.h>
+#include "hw_info_types.h"
namespace sde {
@@ -88,11 +89,14 @@
@param[in] version \link STRATEGY_VERSION_TAG \endlink
@param[in] type \link DisplayType \endlink
+ @param[in] hw_resource_info \link HWResourceInfo \endlink
+ @param[in] hw_panel_info \link HWPanelInfo \endlink
@param[out] interface \link StrategyInterface \endlink
@return \link DisplayError \endlink
*/
typedef DisplayError (*CreateStrategyInterface)(uint16_t version, DisplayType type,
+ const HWResourceInfo *hw_resource_info, const HWPanelInfo *hw_panel_info,
StrategyInterface **interface);
/*! @brief Function to destroy composer strategy interface.
@@ -139,6 +143,13 @@
uint32_t count; //!< Total number of layers which need to be set on hardware.
+ LayerRect left_partial_update;
+ //!< Left ROI.
+
+ LayerRect right_partial_update;
+ //!< Right ROI.
+
+
HWLayersInfo() : stack(NULL), count(0) { }
};
diff --git a/displayengine/include/utils/debug.h b/displayengine/include/utils/debug.h
index 5f65834..2cef5d7 100644
--- a/displayengine/include/utils/debug.h
+++ b/displayengine/include/utils/debug.h
@@ -65,6 +65,7 @@
static uint32_t GetIdleTimeoutMs();
static bool IsRotatorDownScaleDisabled();
static bool IsDecimationDisabled();
+ static bool IsPartialUpdate();
private:
Debug();
diff --git a/displayengine/include/utils/rect.h b/displayengine/include/utils/rect.h
index 0730529..dd60672 100644
--- a/displayengine/include/utils/rect.h
+++ b/displayengine/include/utils/rect.h
@@ -37,11 +37,14 @@
namespace sde {
- bool IsValidRect(const LayerRect &rect);
- LayerRect GetIntersection(const LayerRect &rect1, const LayerRect &rect2);
- void LogRect(DebugTag debug_tag, const char *prefix, const LayerRect &roi);
- void NormalizeRect(const uint32_t &align_x, const uint32_t &align_y, LayerRect *rect);
-
+ bool IsValid(const LayerRect &rect);
+ bool IsCongruent(const LayerRect &rect1, const LayerRect &rect2);
+ void Log(DebugTag debug_tag, const char *prefix, const LayerRect &roi);
+ void Normalize(const uint32_t &align_x, const uint32_t &align_y, LayerRect *rect);
+ LayerRect Union(const LayerRect &rect1, const LayerRect &rect2);
+ LayerRect Intersection(const LayerRect &rect1, const LayerRect &rect2);
+ LayerRect Subtract(const LayerRect &rect1, const LayerRect &rect2);
+ LayerRect Reposition(const LayerRect &rect1, const int &x_offset, const int &y_offset);
} // namespace sde
#endif // __RECT_H__