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

Commit 68df0589 authored by Jesse Hall's avatar Jesse Hall Committed by Android Git Automerger
Browse files

am 5bc0c358: am d2cf8c2f: Merge "Provide HWC prepare with a valid output buffer" into klp-dev

* commit '5bc0c358':
  Provide HWC prepare with a valid output buffer
parents 2bb83067 5bc0c358
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -198,6 +198,10 @@ void DisplayDevice::flip(const Region& dirty) const
    mPageFlipCount++;
    mPageFlipCount++;
}
}


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

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


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


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


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


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

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


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