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__