drm_hwcomposer: Move HwcDisplay out of DrmHwcTwo class

Reduces code complexity.

Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/35
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
diff --git a/hwc2_device/hwc2_device.cpp b/hwc2_device/hwc2_device.cpp
index 72074ad..22e4589 100644
--- a/hwc2_device/hwc2_device.cpp
+++ b/hwc2_device/hwc2_device.cpp
@@ -47,8 +47,7 @@
 template <typename HookType, HookType func, typename... Args>
 static int32_t DisplayHook(hwc2_device_t *dev, hwc2_display_t display_handle,
                            Args... args) {
-  DrmHwcTwo::HwcDisplay *display = DrmHwcTwo::GetDisplay(ToDrmHwcTwo(dev),
-                                                         display_handle);
+  HwcDisplay *display = DrmHwcTwo::GetDisplay(ToDrmHwcTwo(dev), display_handle);
   if (!display)
     return static_cast<int32_t>(HWC2::Error::BadDisplay);
 
@@ -58,8 +57,7 @@
 template <typename HookType, HookType func, typename... Args>
 static int32_t LayerHook(hwc2_device_t *dev, hwc2_display_t display_handle,
                          hwc2_layer_t layer_handle, Args... args) {
-  DrmHwcTwo::HwcDisplay *display = DrmHwcTwo::GetDisplay(ToDrmHwcTwo(dev),
-                                                         display_handle);
+  HwcDisplay *display = DrmHwcTwo::GetDisplay(ToDrmHwcTwo(dev), display_handle);
   if (!display)
     return static_cast<int32_t>(HWC2::Error::BadDisplay);
 
@@ -113,181 +111,168 @@
     // Display functions
     case HWC2::FunctionDescriptor::AcceptDisplayChanges:
       return ToHook<HWC2_PFN_ACCEPT_DISPLAY_CHANGES>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::AcceptDisplayChanges),
-                      &DrmHwcTwo::HwcDisplay::AcceptDisplayChanges>);
+          DisplayHook<decltype(&HwcDisplay::AcceptDisplayChanges),
+                      &HwcDisplay::AcceptDisplayChanges>);
     case HWC2::FunctionDescriptor::CreateLayer:
       return ToHook<HWC2_PFN_CREATE_LAYER>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::CreateLayer),
-                      &DrmHwcTwo::HwcDisplay::CreateLayer, hwc2_layer_t *>);
+          DisplayHook<decltype(&HwcDisplay::CreateLayer),
+                      &HwcDisplay::CreateLayer, hwc2_layer_t *>);
     case HWC2::FunctionDescriptor::DestroyLayer:
       return ToHook<HWC2_PFN_DESTROY_LAYER>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::DestroyLayer),
-                      &DrmHwcTwo::HwcDisplay::DestroyLayer, hwc2_layer_t>);
+          DisplayHook<decltype(&HwcDisplay::DestroyLayer),
+                      &HwcDisplay::DestroyLayer, hwc2_layer_t>);
     case HWC2::FunctionDescriptor::GetActiveConfig:
       return ToHook<HWC2_PFN_GET_ACTIVE_CONFIG>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetActiveConfig),
-                      &DrmHwcTwo::HwcDisplay::GetActiveConfig,
-                      hwc2_config_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetActiveConfig),
+                      &HwcDisplay::GetActiveConfig, hwc2_config_t *>);
     case HWC2::FunctionDescriptor::GetChangedCompositionTypes:
       return ToHook<HWC2_PFN_GET_CHANGED_COMPOSITION_TYPES>(
-          DisplayHook<
-              decltype(&DrmHwcTwo::HwcDisplay::GetChangedCompositionTypes),
-              &DrmHwcTwo::HwcDisplay::GetChangedCompositionTypes, uint32_t *,
-              hwc2_layer_t *, int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetChangedCompositionTypes),
+                      &HwcDisplay::GetChangedCompositionTypes, uint32_t *,
+                      hwc2_layer_t *, int32_t *>);
     case HWC2::FunctionDescriptor::GetClientTargetSupport:
       return ToHook<HWC2_PFN_GET_CLIENT_TARGET_SUPPORT>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetClientTargetSupport),
-                      &DrmHwcTwo::HwcDisplay::GetClientTargetSupport, uint32_t,
-                      uint32_t, int32_t, int32_t>);
+          DisplayHook<decltype(&HwcDisplay::GetClientTargetSupport),
+                      &HwcDisplay::GetClientTargetSupport, uint32_t, uint32_t,
+                      int32_t, int32_t>);
     case HWC2::FunctionDescriptor::GetColorModes:
       return ToHook<HWC2_PFN_GET_COLOR_MODES>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetColorModes),
-                      &DrmHwcTwo::HwcDisplay::GetColorModes, uint32_t *,
-                      int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetColorModes),
+                      &HwcDisplay::GetColorModes, uint32_t *, int32_t *>);
     case HWC2::FunctionDescriptor::GetDisplayAttribute:
       return ToHook<HWC2_PFN_GET_DISPLAY_ATTRIBUTE>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetDisplayAttribute),
-                      &DrmHwcTwo::HwcDisplay::GetDisplayAttribute,
-                      hwc2_config_t, int32_t, int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetDisplayAttribute),
+                      &HwcDisplay::GetDisplayAttribute, hwc2_config_t, int32_t,
+                      int32_t *>);
     case HWC2::FunctionDescriptor::GetDisplayConfigs:
       return ToHook<HWC2_PFN_GET_DISPLAY_CONFIGS>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetDisplayConfigs),
-                      &DrmHwcTwo::HwcDisplay::GetDisplayConfigs, uint32_t *,
+          DisplayHook<decltype(&HwcDisplay::GetDisplayConfigs),
+                      &HwcDisplay::GetDisplayConfigs, uint32_t *,
                       hwc2_config_t *>);
     case HWC2::FunctionDescriptor::GetDisplayName:
       return ToHook<HWC2_PFN_GET_DISPLAY_NAME>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetDisplayName),
-                      &DrmHwcTwo::HwcDisplay::GetDisplayName, uint32_t *,
-                      char *>);
+          DisplayHook<decltype(&HwcDisplay::GetDisplayName),
+                      &HwcDisplay::GetDisplayName, uint32_t *, char *>);
     case HWC2::FunctionDescriptor::GetDisplayRequests:
       return ToHook<HWC2_PFN_GET_DISPLAY_REQUESTS>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetDisplayRequests),
-                      &DrmHwcTwo::HwcDisplay::GetDisplayRequests, int32_t *,
-                      uint32_t *, hwc2_layer_t *, int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetDisplayRequests),
+                      &HwcDisplay::GetDisplayRequests, int32_t *, uint32_t *,
+                      hwc2_layer_t *, int32_t *>);
     case HWC2::FunctionDescriptor::GetDisplayType:
       return ToHook<HWC2_PFN_GET_DISPLAY_TYPE>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetDisplayType),
-                      &DrmHwcTwo::HwcDisplay::GetDisplayType, int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetDisplayType),
+                      &HwcDisplay::GetDisplayType, int32_t *>);
     case HWC2::FunctionDescriptor::GetDozeSupport:
       return ToHook<HWC2_PFN_GET_DOZE_SUPPORT>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetDozeSupport),
-                      &DrmHwcTwo::HwcDisplay::GetDozeSupport, int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetDozeSupport),
+                      &HwcDisplay::GetDozeSupport, int32_t *>);
     case HWC2::FunctionDescriptor::GetHdrCapabilities:
       return ToHook<HWC2_PFN_GET_HDR_CAPABILITIES>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetHdrCapabilities),
-                      &DrmHwcTwo::HwcDisplay::GetHdrCapabilities, uint32_t *,
-                      int32_t *, float *, float *, float *>);
+          DisplayHook<decltype(&HwcDisplay::GetHdrCapabilities),
+                      &HwcDisplay::GetHdrCapabilities, uint32_t *, int32_t *,
+                      float *, float *, float *>);
     case HWC2::FunctionDescriptor::GetReleaseFences:
       return ToHook<HWC2_PFN_GET_RELEASE_FENCES>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetReleaseFences),
-                      &DrmHwcTwo::HwcDisplay::GetReleaseFences, uint32_t *,
-                      hwc2_layer_t *, int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetReleaseFences),
+                      &HwcDisplay::GetReleaseFences, uint32_t *, hwc2_layer_t *,
+                      int32_t *>);
     case HWC2::FunctionDescriptor::PresentDisplay:
       return ToHook<HWC2_PFN_PRESENT_DISPLAY>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::PresentDisplay),
-                      &DrmHwcTwo::HwcDisplay::PresentDisplay, int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::PresentDisplay),
+                      &HwcDisplay::PresentDisplay, int32_t *>);
     case HWC2::FunctionDescriptor::SetActiveConfig:
       return ToHook<HWC2_PFN_SET_ACTIVE_CONFIG>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetActiveConfig),
-                      &DrmHwcTwo::HwcDisplay::SetActiveConfig, hwc2_config_t>);
+          DisplayHook<decltype(&HwcDisplay::SetActiveConfig),
+                      &HwcDisplay::SetActiveConfig, hwc2_config_t>);
     case HWC2::FunctionDescriptor::SetClientTarget:
       return ToHook<HWC2_PFN_SET_CLIENT_TARGET>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetClientTarget),
-                      &DrmHwcTwo::HwcDisplay::SetClientTarget, buffer_handle_t,
-                      int32_t, int32_t, hwc_region_t>);
+          DisplayHook<decltype(&HwcDisplay::SetClientTarget),
+                      &HwcDisplay::SetClientTarget, buffer_handle_t, int32_t,
+                      int32_t, hwc_region_t>);
     case HWC2::FunctionDescriptor::SetColorMode:
       return ToHook<HWC2_PFN_SET_COLOR_MODE>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetColorMode),
-                      &DrmHwcTwo::HwcDisplay::SetColorMode, int32_t>);
+          DisplayHook<decltype(&HwcDisplay::SetColorMode),
+                      &HwcDisplay::SetColorMode, int32_t>);
     case HWC2::FunctionDescriptor::SetColorTransform:
       return ToHook<HWC2_PFN_SET_COLOR_TRANSFORM>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetColorTransform),
-                      &DrmHwcTwo::HwcDisplay::SetColorTransform, const float *,
-                      int32_t>);
+          DisplayHook<decltype(&HwcDisplay::SetColorTransform),
+                      &HwcDisplay::SetColorTransform, const float *, int32_t>);
     case HWC2::FunctionDescriptor::SetOutputBuffer:
       return ToHook<HWC2_PFN_SET_OUTPUT_BUFFER>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetOutputBuffer),
-                      &DrmHwcTwo::HwcDisplay::SetOutputBuffer, buffer_handle_t,
-                      int32_t>);
+          DisplayHook<decltype(&HwcDisplay::SetOutputBuffer),
+                      &HwcDisplay::SetOutputBuffer, buffer_handle_t, int32_t>);
     case HWC2::FunctionDescriptor::SetPowerMode:
       return ToHook<HWC2_PFN_SET_POWER_MODE>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetPowerMode),
-                      &DrmHwcTwo::HwcDisplay::SetPowerMode, int32_t>);
+          DisplayHook<decltype(&HwcDisplay::SetPowerMode),
+                      &HwcDisplay::SetPowerMode, int32_t>);
     case HWC2::FunctionDescriptor::SetVsyncEnabled:
       return ToHook<HWC2_PFN_SET_VSYNC_ENABLED>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetVsyncEnabled),
-                      &DrmHwcTwo::HwcDisplay::SetVsyncEnabled, int32_t>);
+          DisplayHook<decltype(&HwcDisplay::SetVsyncEnabled),
+                      &HwcDisplay::SetVsyncEnabled, int32_t>);
     case HWC2::FunctionDescriptor::ValidateDisplay:
       return ToHook<HWC2_PFN_VALIDATE_DISPLAY>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::ValidateDisplay),
-                      &DrmHwcTwo::HwcDisplay::ValidateDisplay, uint32_t *,
-                      uint32_t *>);
+          DisplayHook<decltype(&HwcDisplay::ValidateDisplay),
+                      &HwcDisplay::ValidateDisplay, uint32_t *, uint32_t *>);
 #if PLATFORM_SDK_VERSION > 27
     case HWC2::FunctionDescriptor::GetRenderIntents:
       return ToHook<HWC2_PFN_GET_RENDER_INTENTS>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetRenderIntents),
-                      &DrmHwcTwo::HwcDisplay::GetRenderIntents, int32_t,
-                      uint32_t *, int32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetRenderIntents),
+                      &HwcDisplay::GetRenderIntents, int32_t, uint32_t *,
+                      int32_t *>);
     case HWC2::FunctionDescriptor::SetColorModeWithRenderIntent:
       return ToHook<HWC2_PFN_SET_COLOR_MODE_WITH_RENDER_INTENT>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetColorModeWithIntent),
-                      &DrmHwcTwo::HwcDisplay::SetColorModeWithIntent, int32_t,
-                      int32_t>);
+          DisplayHook<decltype(&HwcDisplay::SetColorModeWithIntent),
+                      &HwcDisplay::SetColorModeWithIntent, int32_t, int32_t>);
 #endif
 #if PLATFORM_SDK_VERSION > 28
     case HWC2::FunctionDescriptor::GetDisplayIdentificationData:
       return ToHook<HWC2_PFN_GET_DISPLAY_IDENTIFICATION_DATA>(
-          DisplayHook<
-              decltype(&DrmHwcTwo::HwcDisplay::GetDisplayIdentificationData),
-              &DrmHwcTwo::HwcDisplay::GetDisplayIdentificationData, uint8_t *,
-              uint32_t *, uint8_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetDisplayIdentificationData),
+                      &HwcDisplay::GetDisplayIdentificationData, uint8_t *,
+                      uint32_t *, uint8_t *>);
     case HWC2::FunctionDescriptor::GetDisplayCapabilities:
       return ToHook<HWC2_PFN_GET_DISPLAY_CAPABILITIES>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetDisplayCapabilities),
-                      &DrmHwcTwo::HwcDisplay::GetDisplayCapabilities,
-                      uint32_t *, uint32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetDisplayCapabilities),
+                      &HwcDisplay::GetDisplayCapabilities, uint32_t *,
+                      uint32_t *>);
     case HWC2::FunctionDescriptor::GetDisplayBrightnessSupport:
       return ToHook<HWC2_PFN_GET_DISPLAY_BRIGHTNESS_SUPPORT>(
-          DisplayHook<
-              decltype(&DrmHwcTwo::HwcDisplay::GetDisplayBrightnessSupport),
-              &DrmHwcTwo::HwcDisplay::GetDisplayBrightnessSupport, bool *>);
+          DisplayHook<decltype(&HwcDisplay::GetDisplayBrightnessSupport),
+                      &HwcDisplay::GetDisplayBrightnessSupport, bool *>);
     case HWC2::FunctionDescriptor::SetDisplayBrightness:
       return ToHook<HWC2_PFN_SET_DISPLAY_BRIGHTNESS>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetDisplayBrightness),
-                      &DrmHwcTwo::HwcDisplay::SetDisplayBrightness, float>);
+          DisplayHook<decltype(&HwcDisplay::SetDisplayBrightness),
+                      &HwcDisplay::SetDisplayBrightness, float>);
 #endif /* PLATFORM_SDK_VERSION > 28 */
 #if PLATFORM_SDK_VERSION > 29
     case HWC2::FunctionDescriptor::GetDisplayConnectionType:
       return ToHook<HWC2_PFN_GET_DISPLAY_CONNECTION_TYPE>(
-          DisplayHook<
-              decltype(&DrmHwcTwo::HwcDisplay::GetDisplayConnectionType),
-              &DrmHwcTwo::HwcDisplay::GetDisplayConnectionType, uint32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetDisplayConnectionType),
+                      &HwcDisplay::GetDisplayConnectionType, uint32_t *>);
     case HWC2::FunctionDescriptor::GetDisplayVsyncPeriod:
       return ToHook<HWC2_PFN_GET_DISPLAY_VSYNC_PERIOD>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::GetDisplayVsyncPeriod),
-                      &DrmHwcTwo::HwcDisplay::GetDisplayVsyncPeriod,
+          DisplayHook<decltype(&HwcDisplay::GetDisplayVsyncPeriod),
+                      &HwcDisplay::GetDisplayVsyncPeriod,
                       hwc2_vsync_period_t *>);
     case HWC2::FunctionDescriptor::SetActiveConfigWithConstraints:
       return ToHook<HWC2_PFN_SET_ACTIVE_CONFIG_WITH_CONSTRAINTS>(
-          DisplayHook<
-              decltype(&DrmHwcTwo::HwcDisplay::SetActiveConfigWithConstraints),
-              &DrmHwcTwo::HwcDisplay::SetActiveConfigWithConstraints,
-              hwc2_config_t, hwc_vsync_period_change_constraints_t *,
-              hwc_vsync_period_change_timeline_t *>);
+          DisplayHook<decltype(&HwcDisplay::SetActiveConfigWithConstraints),
+                      &HwcDisplay::SetActiveConfigWithConstraints,
+                      hwc2_config_t, hwc_vsync_period_change_constraints_t *,
+                      hwc_vsync_period_change_timeline_t *>);
     case HWC2::FunctionDescriptor::SetAutoLowLatencyMode:
       return ToHook<HWC2_PFN_SET_AUTO_LOW_LATENCY_MODE>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetAutoLowLatencyMode),
-                      &DrmHwcTwo::HwcDisplay::SetAutoLowLatencyMode, bool>);
+          DisplayHook<decltype(&HwcDisplay::SetAutoLowLatencyMode),
+                      &HwcDisplay::SetAutoLowLatencyMode, bool>);
     case HWC2::FunctionDescriptor::GetSupportedContentTypes:
       return ToHook<HWC2_PFN_GET_SUPPORTED_CONTENT_TYPES>(
-          DisplayHook<
-              decltype(&DrmHwcTwo::HwcDisplay::GetSupportedContentTypes),
-              &DrmHwcTwo::HwcDisplay::GetSupportedContentTypes, uint32_t *,
-              uint32_t *>);
+          DisplayHook<decltype(&HwcDisplay::GetSupportedContentTypes),
+                      &HwcDisplay::GetSupportedContentTypes, uint32_t *,
+                      uint32_t *>);
     case HWC2::FunctionDescriptor::SetContentType:
       return ToHook<HWC2_PFN_SET_CONTENT_TYPE>(
-          DisplayHook<decltype(&DrmHwcTwo::HwcDisplay::SetContentType),
-                      &DrmHwcTwo::HwcDisplay::SetContentType, int32_t>);
+          DisplayHook<decltype(&HwcDisplay::SetContentType),
+                      &HwcDisplay::SetContentType, int32_t>);
 #endif
     // Layer functions
     case HWC2::FunctionDescriptor::SetCursorPosition: