diff options
-rw-r--r-- | libs/hwc2on1adapter/Android.bp | 68 | ||||
-rw-r--r-- | libs/hwc2on1adapter/HWC2On1Adapter.cpp (renamed from services/surfaceflinger/DisplayHardware/HWC2On1Adapter.cpp) | 12 | ||||
-rw-r--r-- | libs/hwc2on1adapter/MiniFence.cpp (renamed from services/surfaceflinger/DisplayHardware/MiniFence.cpp) | 2 | ||||
-rw-r--r-- | libs/hwc2on1adapter/include/hwc2on1adapter/HWC2On1Adapter.h (renamed from services/surfaceflinger/DisplayHardware/HWC2On1Adapter.h) | 0 | ||||
-rw-r--r-- | libs/hwc2on1adapter/include/hwc2on1adapter/MiniFence.h (renamed from services/surfaceflinger/DisplayHardware/MiniFence.h) | 0 | ||||
-rw-r--r-- | services/surfaceflinger/Android.mk | 3 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 11 |
7 files changed, 82 insertions, 14 deletions
diff --git a/libs/hwc2on1adapter/Android.bp b/libs/hwc2on1adapter/Android.bp new file mode 100644 index 0000000000..2be3e675be --- /dev/null +++ b/libs/hwc2on1adapter/Android.bp @@ -0,0 +1,68 @@ +// Copyright 2010 The Android Open Source Project +// +// 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. + +cc_library_shared { + name: "libhwc2on1adapter", + + clang: true, + cppflags: [ + "-Weverything", + "-Wall", + "-Wunused", + "-Wunreachable-code", + + // The static constructors and destructors in this library have not been noted to + // introduce significant overheads + "-Wno-exit-time-destructors", + "-Wno-global-constructors", + + // We only care about compiling as C++14 + "-Wno-c++98-compat-pedantic", + + // android/sensors.h uses nested anonymous unions and anonymous structs + "-Wno-nested-anon-types", + "-Wno-gnu-anonymous-struct", + + // Don't warn about struct padding + "-Wno-padded", + + // hwcomposer2.h features switch covering all cases. + "-Wno-covered-switch-default", + + // hwcomposer.h features zero size array. + "-Wno-zero-length-array", + + // Disabling warning specific to hwc2on1adapter code + "-Wno-double-promotion", + "-Wno-sign-conversion", + "-Wno-switch-enum", + "-Wno-float-equal", + ], + + srcs: [ + "HWC2On1Adapter.cpp", + "MiniFence.cpp", + ], + + shared_libs: [ + "libutils", + "libcutils", + "liblog", + "libhardware", + ], + + export_include_dirs: ["include"], + + export_shared_lib_headers: ["libutils"], +} diff --git a/services/surfaceflinger/DisplayHardware/HWC2On1Adapter.cpp b/libs/hwc2on1adapter/HWC2On1Adapter.cpp index 13bf0b5ae9..5ad05c7542 100644 --- a/services/surfaceflinger/DisplayHardware/HWC2On1Adapter.cpp +++ b/libs/hwc2on1adapter/HWC2On1Adapter.cpp @@ -14,13 +14,14 @@ * limitations under the License. */ +#include "hwc2on1adapter/HWC2On1Adapter.h" + //#define LOG_NDEBUG 0 #undef LOG_TAG #define LOG_TAG "HWC2On1Adapter" #define ATRACE_TAG ATRACE_TAG_GRAPHICS -#include "HWC2On1Adapter.h" #include <inttypes.h> @@ -317,15 +318,6 @@ Error HWC2On1Adapter::createVirtualDisplay(uint32_t width, return Error::NoResources; } - if (MAX_VIRTUAL_DISPLAY_DIMENSION != 0 && - (width > MAX_VIRTUAL_DISPLAY_DIMENSION || - height > MAX_VIRTUAL_DISPLAY_DIMENSION)) { - ALOGE("createVirtualDisplay: Can't create a virtual display with" - " a dimension > %u (tried %u x %u)", - MAX_VIRTUAL_DISPLAY_DIMENSION, width, height); - return Error::NoResources; - } - mHwc1VirtualDisplay = std::make_shared<HWC2On1Adapter::Display>(*this, HWC2::DisplayType::Virtual); mHwc1VirtualDisplay->populateConfigs(width, height); diff --git a/services/surfaceflinger/DisplayHardware/MiniFence.cpp b/libs/hwc2on1adapter/MiniFence.cpp index ecfb0635cb..dfbe4d63cc 100644 --- a/services/surfaceflinger/DisplayHardware/MiniFence.cpp +++ b/libs/hwc2on1adapter/MiniFence.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "MiniFence.h" +#include "hwc2on1adapter/MiniFence.h" #include <unistd.h> diff --git a/services/surfaceflinger/DisplayHardware/HWC2On1Adapter.h b/libs/hwc2on1adapter/include/hwc2on1adapter/HWC2On1Adapter.h index a1d2c884cb..a1d2c884cb 100644 --- a/services/surfaceflinger/DisplayHardware/HWC2On1Adapter.h +++ b/libs/hwc2on1adapter/include/hwc2on1adapter/HWC2On1Adapter.h diff --git a/services/surfaceflinger/DisplayHardware/MiniFence.h b/libs/hwc2on1adapter/include/hwc2on1adapter/MiniFence.h index 75de764d2c..75de764d2c 100644 --- a/services/surfaceflinger/DisplayHardware/MiniFence.h +++ b/libs/hwc2on1adapter/include/hwc2on1adapter/MiniFence.h diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk index a317ea2def..89779afa75 100644 --- a/services/surfaceflinger/Android.mk +++ b/services/surfaceflinger/Android.mk @@ -25,8 +25,6 @@ LOCAL_SRC_FILES := \ DisplayHardware/ComposerHal.cpp \ DisplayHardware/FramebufferSurface.cpp \ DisplayHardware/HWC2.cpp \ - DisplayHardware/HWC2On1Adapter.cpp \ - DisplayHardware/MiniFence.cpp \ DisplayHardware/PowerHAL.cpp \ DisplayHardware/VirtualDisplaySurface.cpp \ Effects/Daltonizer.cpp \ @@ -152,6 +150,7 @@ LOCAL_SHARED_LIBRARIES := \ libdl \ libfmq \ libhardware \ + libhwc2on1adapter \ libhidlbase \ libhidltransport \ libhwbinder \ diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index f03491f473..e1138af15a 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -47,7 +47,7 @@ #include <log/log.h> #include "HWComposer.h" -#include "HWC2On1Adapter.h" +#include "hwc2on1adapter/HWC2On1Adapter.h" #include "HWC2.h" #include "ComposerHal.h" @@ -267,6 +267,15 @@ status_t HWComposer::allocateVirtualDisplay(uint32_t width, uint32_t height, return NO_MEMORY; } + if (MAX_VIRTUAL_DISPLAY_DIMENSION != 0 && + (width > MAX_VIRTUAL_DISPLAY_DIMENSION || + height > MAX_VIRTUAL_DISPLAY_DIMENSION)) { + ALOGE("createVirtualDisplay: Can't create a virtual display with" + " a dimension > %u (tried %u x %u)", + MAX_VIRTUAL_DISPLAY_DIMENSION, width, height); + return INVALID_OPERATION; + } + std::shared_ptr<HWC2::Display> display; auto error = mHwcDevice->createVirtualDisplay(width, height, format, &display); |