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

Commit 987034b5 authored by Byunghun Jeon's avatar Byunghun Jeon Committed by Steve Kondik
Browse files

SurfaceFlinger: Native changes to add blur effect

Native changes to add blur-behind and blur mask effect

Change-Id: I54faf82d750e8299de6d261f6a893ab26d08df84

SurfaceFlinger: Adding template for LayerBlur files

Change-Id: I444009113b7bdd6c5284863fd1f56358e67d9fe6

SurfaceFlinger: Featurize libuiblur module for OSS build

Change-Id: Ifdc176e699434125d17b111c044b8ba954cf717c
parent b53d92c3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ public:
        eCursorWindow       = 0x00002000,

        eFXSurfaceNormal    = 0x00000000,
        eFXSurfaceBlur      = 0x00010000,
        eFXSurfaceDim       = 0x00020000,
        eFXSurfaceMask      = 0x000F0000,
    };
+5 −0
Original line number Diff line number Diff line
@@ -163,6 +163,11 @@ public:
            const Rect& layerStackRect,
            const Rect& displayRect);

    status_t    setBlur(const sp<IBinder>& id, float blur);
    status_t    setBlurMaskSurface(const sp<IBinder>& id, const sp<IBinder>& maskSurfaceId);
    status_t    setBlurMaskSampling(const sp<IBinder>& id, uint32_t blurMaskSampling);
    status_t    setBlurMaskAlphaThreshold(const sp<IBinder>& id, float alpha);

private:
    virtual void onFirstRef();
    Composer& getComposer();
+5 −0
Original line number Diff line number Diff line
@@ -77,6 +77,11 @@ public:
    status_t clearLayerFrameStats() const;
    status_t getLayerFrameStats(FrameStats* outStats) const;

    status_t    setBlur(float blur = 0);
    status_t    setBlurMaskSurface(const sp<SurfaceControl>& maskSurface);
    status_t    setBlurMaskSampling(uint32_t blurMaskSampling);
    status_t    setBlurMaskAlphaThreshold(float alpha);

private:
    // can't be copied
    SurfaceControl& operator = (SurfaceControl& rhs);
+10 −2
Original line number Diff line number Diff line
@@ -52,12 +52,16 @@ struct layer_state_t {
        eFlagsChanged               = 0x00000040,
        eLayerStackChanged          = 0x00000080,
        eCropChanged                = 0x00000100,
        eBlurChanged                = 0x00400000,
        eBlurMaskSurfaceChanged     = 0x00800000,
        eBlurMaskSamplingChanged    = 0x01000000,
        eBlurMaskAlphaThresholdChanged = 0x02000000,
    };

    layer_state_t()
        :   what(0),
            x(0), y(0), z(0), w(0), h(0), layerStack(0),
            alpha(0), flags(0), mask(0),
            x(0), y(0), z(0), w(0), h(0), layerStack(0), blur(0),
            blurMaskSampling(0), blurMaskAlphaThreshold(0), alpha(0), flags(0), mask(0),
            reserved(0)
    {
        matrix.dsdx = matrix.dtdy = 1.0f;
@@ -82,6 +86,10 @@ struct layer_state_t {
            uint32_t        w;
            uint32_t        h;
            uint32_t        layerStack;
            float           blur;
            sp<IBinder>     blurMaskSurface;
            uint32_t        blurMaskSampling;
            float           blurMaskAlphaThreshold;
            float           alpha;
            uint8_t         flags;
            uint8_t         mask;
+8 −0
Original line number Diff line number Diff line
@@ -32,6 +32,10 @@ status_t layer_state_t::write(Parcel& output) const
    output.writeUint32(w);
    output.writeUint32(h);
    output.writeUint32(layerStack);
    output.writeFloat(blur);
    output.writeStrongBinder(blurMaskSurface);
    output.writeUint32(blurMaskSampling);
    output.writeFloat(blurMaskAlphaThreshold);
    output.writeFloat(alpha);
    output.writeUint32(flags);
    output.writeUint32(mask);
@@ -52,6 +56,10 @@ status_t layer_state_t::read(const Parcel& input)
    w = input.readUint32();
    h = input.readUint32();
    layerStack = input.readUint32();
    blur = input.readFloat();
    blurMaskSurface = input.readStrongBinder();
    blurMaskSampling = input.readUint32();
    blurMaskAlphaThreshold = input.readFloat();
    alpha = input.readFloat();
    flags = static_cast<uint8_t>(input.readUint32());
    mask = static_cast<uint8_t>(input.readUint32());
Loading