diff options
author | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | 2022-02-02 09:53:50 +0200 |
---|---|---|
committer | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | 2022-02-04 11:19:40 +0200 |
commit | 9362cef4c34b9d23018d75be0cbb6ef0486bf75b (patch) | |
tree | 26e2c98e3a18d93ad165398f6d60377265b9ec5d /compositor/DrmDisplayComposition.h | |
parent | d0c035b44a844af5017c0c3b2507af2f3907c36c (diff) | |
download | drm-hwcomposer-9362cef4c34b9d23018d75be0cbb6ef0486bf75b.tar.gz drm-hwcomposer-9362cef4c34b9d23018d75be0cbb6ef0486bf75b.tar.bz2 drm-hwcomposer-9362cef4c34b9d23018d75be0cbb6ef0486bf75b.zip |
drm_hwcomposer: Rework KMS composition planner + plane sharing support
Rewrite Layer-to-Plane planner. Get rid of ~200 redundant lines of code
+ added plane sharing functionality.
Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/11
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Diffstat (limited to 'compositor/DrmDisplayComposition.h')
-rw-r--r-- | compositor/DrmDisplayComposition.h | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/compositor/DrmDisplayComposition.h b/compositor/DrmDisplayComposition.h deleted file mode 100644 index dcfd96e..0000000 --- a/compositor/DrmDisplayComposition.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2015 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. - */ - -#ifndef ANDROID_DRM_DISPLAY_COMPOSITION_H_ -#define ANDROID_DRM_DISPLAY_COMPOSITION_H_ - -#include <hardware/hardware.h> -#include <hardware/hwcomposer.h> - -#include <sstream> -#include <vector> - -#include "drm/DrmCrtc.h" -#include "drm/DrmPlane.h" -#include "drmhwcomposer.h" - -namespace android { - -class Importer; - -constexpr size_t kUndefinedSourceLayer = UINT16_MAX; - -class DrmCompositionPlane { - public: - DrmCompositionPlane() = default; - DrmCompositionPlane(DrmCompositionPlane &&rhs) = default; - DrmCompositionPlane &operator=(DrmCompositionPlane &&other) = default; - DrmCompositionPlane(DrmPlane *plane, size_t source_layer) - : plane_(plane), source_layer_(source_layer) { - } - - DrmPlane *plane() const { - return plane_; - } - - size_t source_layer() const { - return source_layer_; - } - - private: - DrmPlane *plane_ = nullptr; - size_t source_layer_ = kUndefinedSourceLayer; -}; - -class DrmDisplayComposition { - public: - DrmDisplayComposition(const DrmDisplayComposition &) = delete; - explicit DrmDisplayComposition(DrmCrtc *crtc); - ~DrmDisplayComposition() = default; - - int SetLayers(DrmHwcLayer *layers, size_t num_layers); - int AddPlaneComposition(DrmCompositionPlane plane); - - int Plan(std::vector<DrmPlane *> *primary_planes, - std::vector<DrmPlane *> *overlay_planes); - - std::vector<DrmHwcLayer> &layers() { - return layers_; - } - - std::vector<DrmCompositionPlane> &composition_planes() { - return composition_planes_; - } - - DrmCrtc *crtc() const { - return crtc_; - } - - private: - DrmCrtc *crtc_ = nullptr; - - std::vector<DrmHwcLayer> layers_; - std::vector<DrmCompositionPlane> composition_planes_; -}; -} // namespace android - -#endif // ANDROID_DRM_DISPLAY_COMPOSITION_H_ |