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

Commit 9a86704c authored by Mathias Agopian's avatar Mathias Agopian Committed by Android (Google) Code Review
Browse files

Merge "get rid of Surface identity and token"

parents bbb7322c ac9fa427
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -29,8 +29,6 @@

namespace android {

typedef int32_t    SurfaceID;

class IGraphicBufferProducer;

class ISurface : public IInterface
+2 −9
Original line number Diff line number Diff line
@@ -54,24 +54,17 @@ public:
        eFXSurfaceMask      = 0x000F0000,
    };

    struct surface_data_t {
        int32_t token;
        int32_t identity;
        status_t readFromParcel(const Parcel& parcel);
        status_t writeToParcel(Parcel* parcel) const;
    };

    /*
     * Requires ACCESS_SURFACE_FLINGER permission
     */
    virtual sp<ISurface> createSurface(surface_data_t* data,
    virtual sp<ISurface> createSurface(
            const String8& name, uint32_t w, uint32_t h,
            PixelFormat format, uint32_t flags) = 0;

    /*
     * Requires ACCESS_SURFACE_FLINGER permission
     */
    virtual status_t destroySurface(SurfaceID sid) = 0;
    virtual status_t destroySurface(const sp<IBinder>& handle) = 0;
};

// ----------------------------------------------------------------------------
+3 −9
Original line number Diff line number Diff line
@@ -50,13 +50,11 @@ public:
        return (surface != 0) && surface->isValid();
    }
    bool isValid() {
        return mToken>=0 && mClient!=0;
        return mSurface!=0 && mClient!=0;
    }
    static bool isSameSurface(
            const sp<SurfaceControl>& lhs, const sp<SurfaceControl>& rhs);
        
    uint32_t    getIdentity() const { return mIdentity; }

    // release surface data from java
    void        clear();
    
@@ -87,8 +85,7 @@ private:

    SurfaceControl(
            const sp<SurfaceComposerClient>& client,
            const sp<ISurface>& surface,
            const ISurfaceComposerClient::surface_data_t& data);
            const sp<ISurface>& surface);

    ~SurfaceControl();

@@ -96,11 +93,8 @@ private:
    void destroy();
    
    sp<SurfaceComposerClient>   mClient;
    sp<ISurface>                mSurface;
    SurfaceID                   mToken;
    uint32_t                    mIdentity;
    sp<IBinder>                 mSurface;
    mutable Mutex               mLock;
    
    mutable sp<Surface>         mSurfaceData;
};
    
+12 −12
Original line number Diff line number Diff line
@@ -108,18 +108,18 @@ public:
    //! Flag the currently open transaction as an animation transaction.
    static void setAnimationTransaction();

    status_t    hide(SurfaceID id);
    status_t    show(SurfaceID id);
    status_t    setFlags(SurfaceID id, uint32_t flags, uint32_t mask);
    status_t    setTransparentRegionHint(SurfaceID id, const Region& transparent);
    status_t    setLayer(SurfaceID id, int32_t layer);
    status_t    setAlpha(SurfaceID id, float alpha=1.0f);
    status_t    setMatrix(SurfaceID id, float dsdx, float dtdx, float dsdy, float dtdy);
    status_t    setPosition(SurfaceID id, float x, float y);
    status_t    setSize(SurfaceID id, uint32_t w, uint32_t h);
    status_t    setCrop(SurfaceID id, const Rect& crop);
    status_t    setLayerStack(SurfaceID id, uint32_t layerStack);
    status_t    destroySurface(SurfaceID sid);
    status_t    hide(const sp<IBinder>& id);
    status_t    show(const sp<IBinder>& id);
    status_t    setFlags(const sp<IBinder>& id, uint32_t flags, uint32_t mask);
    status_t    setTransparentRegionHint(const sp<IBinder>& id, const Region& transparent);
    status_t    setLayer(const sp<IBinder>& id, int32_t layer);
    status_t    setAlpha(const sp<IBinder>& id, float alpha=1.0f);
    status_t    setMatrix(const sp<IBinder>& id, float dsdx, float dtdx, float dsdy, float dtdy);
    status_t    setPosition(const sp<IBinder>& id, float x, float y);
    status_t    setSize(const sp<IBinder>& id, uint32_t w, uint32_t h);
    status_t    setCrop(const sp<IBinder>& id, const Rect& crop);
    status_t    setLayerStack(const sp<IBinder>& id, uint32_t layerStack);
    status_t    destroySurface(const sp<IBinder>& id);

    static void setDisplaySurface(const sp<IBinder>& token,
            const sp<IGraphicBufferProducer>& bufferProducer);
+2 −2
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ struct layer_state_t {
    };

    layer_state_t()
        :   surface(0), what(0),
        :   what(0),
            x(0), y(0), z(0), w(0), h(0), layerStack(0),
            alpha(0), flags(0), mask(0),
            reserved(0)
@@ -70,7 +70,7 @@ struct layer_state_t {
                float   dsdy;
                float   dtdy;
            };
            SurfaceID       surface;
            sp<IBinder>     surface;
            uint32_t        what;
            float           x;
            float           y;
Loading