Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b97e04fe authored by Lloyd Pique's avatar Lloyd Pique
Browse files

SF: Move RenderEngine ownership to CompositionEngine

Move ownership of the RenderEngine pointer to CompositionEngine.

Test: atest libsurfaceflinger_unittest libcompositionengine_test
Bug: 121291683
Change-Id: Ia9ba7ae5117359aac5dc77380c91b87d0fae4c1c
parent 3823e7b9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ cc_test {
    static_libs: [
        "libcompositionengine",
        "libcompositionengine_mocks",
        "librenderengine_mocks",
        "libgmock",
        "libgtest",
    ],
+7 −0
Original line number Diff line number Diff line
@@ -22,6 +22,10 @@ namespace android {

class HWComposer;

namespace renderengine {
class RenderEngine;
} // namespace renderengine

namespace compositionengine {

/**
@@ -34,6 +38,9 @@ public:

    virtual HWComposer& getHwComposer() const = 0;
    virtual void setHwComposer(std::unique_ptr<HWComposer>) = 0;

    virtual renderengine::RenderEngine& getRenderEngine() const = 0;
    virtual void setRenderEngine(std::unique_ptr<renderengine::RenderEngine>) = 0;
};

} // namespace compositionengine
+4 −0
Original line number Diff line number Diff line
@@ -28,8 +28,12 @@ public:
    HWComposer& getHwComposer() const override;
    void setHwComposer(std::unique_ptr<HWComposer>) override;

    renderengine::RenderEngine& getRenderEngine() const override;
    void setRenderEngine(std::unique_ptr<renderengine::RenderEngine>) override;

private:
    std::unique_ptr<HWComposer> mHwComposer;
    std::unique_ptr<renderengine::RenderEngine> mRenderEngine;
};

std::unique_ptr<compositionengine::CompositionEngine> createCompositionEngine();
+4 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@

#include <compositionengine/CompositionEngine.h>
#include <gmock/gmock.h>
#include <renderengine/RenderEngine.h>

#include "DisplayHardware/HWComposer.h"

@@ -30,6 +31,9 @@ public:

    MOCK_CONST_METHOD0(getHwComposer, HWComposer&());
    MOCK_METHOD1(setHwComposer, void(std::unique_ptr<HWComposer>));

    MOCK_CONST_METHOD0(getRenderEngine, renderengine::RenderEngine&());
    MOCK_METHOD1(setRenderEngine, void(std::unique_ptr<renderengine::RenderEngine>));
};

} // namespace android::compositionengine::mock
+9 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */

#include <compositionengine/impl/CompositionEngine.h>
#include <renderengine/RenderEngine.h>

#include "DisplayHardware/HWComposer.h"

@@ -39,5 +40,13 @@ void CompositionEngine::setHwComposer(std::unique_ptr<HWComposer> hwComposer) {
    mHwComposer = std::move(hwComposer);
}

renderengine::RenderEngine& CompositionEngine::getRenderEngine() const {
    return *mRenderEngine.get();
}

void CompositionEngine::setRenderEngine(std::unique_ptr<renderengine::RenderEngine> renderEngine) {
    mRenderEngine = std::move(renderEngine);
}

} // namespace impl
} // namespace android::compositionengine
Loading