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

Commit d2cf8c2f authored by Jesse Hall's avatar Jesse Hall Committed by Android (Google) Code Review
Browse files

Merge "Provide HWC prepare with a valid output buffer" into klp-dev

parents 7127d17d 028dc8f2
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -198,6 +198,10 @@ void DisplayDevice::flip(const Region& dirty) const
    mPageFlipCount++;
}

status_t DisplayDevice::beginFrame() const {
    return mDisplaySurface->beginFrame();
}

status_t DisplayDevice::prepareFrame(const HWComposer& hwc) const {
    DisplaySurface::CompositionType compositionType;
    bool haveGles = hwc.hasGlesComposition(mHwcDisplayId);
+1 −0
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@ public:
    int32_t                 getHwcDisplayId() const { return mHwcDisplayId; }
    const wp<IBinder>&      getDisplayToken() const { return mDisplayToken; }

    status_t beginFrame() const;
    status_t prepareFrame(const HWComposer& hwc) const;

    void swapBuffers(HWComposer& hwc) const;
+5 −0
Original line number Diff line number Diff line
@@ -30,6 +30,11 @@ class String8;

class DisplaySurface : public virtual RefBase {
public:
    // beginFrame is called at the beginning of the composition loop, before
    // the configuration is known. The DisplaySurface should do anything it
    // needs to do to enable HWComposer to decide how to compose the frame.
    virtual status_t beginFrame() = 0;

    // prepareFrame is called after the composition configuration is known but
    // before composition takes place. The DisplaySurface can use the
    // composition type to decide how to manage the flow of buffers between
+4 −0
Original line number Diff line number Diff line
@@ -68,6 +68,10 @@ FramebufferSurface::FramebufferSurface(HWComposer& hwc, int disp,
    mConsumer->setDefaultMaxBufferCount(NUM_FRAMEBUFFER_SURFACE_BUFFERS);
}

status_t FramebufferSurface::beginFrame() {
    return NO_ERROR;
}

status_t FramebufferSurface::prepareFrame(CompositionType compositionType) {
    return NO_ERROR;
}
+1 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ class FramebufferSurface : public ConsumerBase,
public:
    FramebufferSurface(HWComposer& hwc, int disp, const sp<IGraphicBufferConsumer>& consumer);

    virtual status_t beginFrame();
    virtual status_t prepareFrame(CompositionType compositionType);
    virtual status_t compositionComplete();
    virtual status_t advanceFrame();
Loading