OSDN Git Service

HWC2: Add getHdrCapabilities stub to adapter
authorDan Stoza <stoza@google.com>
Wed, 16 Mar 2016 19:33:52 +0000 (12:33 -0700)
committerDan Stoza <stoza@google.com>
Thu, 7 Apr 2016 22:08:37 +0000 (15:08 -0700)
Adds a minimal getHdrCapabilities stub to the HWC2On1Adapter, which
always returns 0 supported HDR types (as per the HWC2 spec).

Bug: 25684127
Change-Id: I472ad9f08d1b97d5de69d044790badf3af60da72

services/surfaceflinger/DisplayHardware/HWC2On1Adapter.cpp
services/surfaceflinger/DisplayHardware/HWC2On1Adapter.h

index dabc77f..6ebcdfe 100644 (file)
@@ -238,6 +238,11 @@ hwc2_function_pointer_t HWC2On1Adapter::doGetFunction(
             return asFP<HWC2_PFN_GET_DOZE_SUPPORT>(
                     displayHook<decltype(&Display::getDozeSupport),
                     &Display::getDozeSupport, int32_t*>);
+        case FunctionDescriptor::GetHdrCapabilities:
+            return asFP<HWC2_PFN_GET_HDR_CAPABILITIES>(
+                    displayHook<decltype(&Display::getHdrCapabilities),
+                    &Display::getHdrCapabilities, uint32_t*, int32_t*, float*,
+                    float*, float*>);
         case FunctionDescriptor::GetReleaseFences:
             return asFP<HWC2_PFN_GET_RELEASE_FENCES>(
                     displayHook<decltype(&Display::getReleaseFences),
@@ -709,6 +714,15 @@ Error HWC2On1Adapter::Display::getDozeSupport(int32_t* outSupport)
     return Error::None;
 }
 
+Error HWC2On1Adapter::Display::getHdrCapabilities(uint32_t* outNumTypes,
+        int32_t* /*outTypes*/, float* /*outMaxLuminance*/,
+        float* /*outMaxAverageLuminance*/, float* /*outMinLuminance*/)
+{
+    // This isn't supported on HWC1, so per the HWC2 header, return numTypes = 0
+    *outNumTypes = 0;
+    return Error::None;
+}
+
 Error HWC2On1Adapter::Display::getName(uint32_t* outSize, char* outName)
 {
     std::unique_lock<std::recursive_mutex> lock(mStateMutex);
index bffeefe..6fdb184 100644 (file)
@@ -194,6 +194,9 @@ private:
             HWC2::Error getConfigs(uint32_t* outNumConfigs,
                     hwc2_config_t* outConfigIds);
             HWC2::Error getDozeSupport(int32_t* outSupport);
+            HWC2::Error getHdrCapabilities(uint32_t* outNumTypes,
+                    int32_t* outTypes, float* outMaxLuminance,
+                    float* outMaxAverageLuminance, float* outMinLuminance);
             HWC2::Error getName(uint32_t* outSize, char* outName);
             HWC2::Error getReleaseFences(uint32_t* outNumElements,
                     hwc2_layer_t* outLayers, int32_t* outFences);