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

Commit 921e6ac4 authored by Mathias Agopian's avatar Mathias Agopian
Browse files

SurfaceFlinger cleanup

mostly refactored SurfaceFlinger.h, but also removed dead code.
cleaned-up a few includes as well.

Change-Id: Ib15f4ffe567912b61ee98aa076c6a283b72811b5
parent 36b285ea
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
#include <private/android_filesystem_config.h>

#include "Client.h"
#include "Layer.h"
#include "LayerBase.h"
#include "SurfaceFlinger.h"

@@ -118,7 +119,7 @@ sp<ISurface> Client::createSurface(
     * have access to the GL context.
     */

    class MessageCreateSurface : public MessageBase {
    class MessageCreateLayer : public MessageBase {
        sp<ISurface> result;
        SurfaceFlinger* flinger;
        ISurfaceComposerClient::surface_data_t* params;
@@ -129,7 +130,7 @@ sp<ISurface> Client::createSurface(
        PixelFormat format;
        uint32_t flags;
    public:
        MessageCreateSurface(SurfaceFlinger* flinger,
        MessageCreateLayer(SurfaceFlinger* flinger,
                ISurfaceComposerClient::surface_data_t* params,
                const String8& name, Client* client,
                DisplayID display, uint32_t w, uint32_t h, PixelFormat format,
@@ -140,19 +141,19 @@ sp<ISurface> Client::createSurface(
        }
        sp<ISurface> getResult() const { return result; }
        virtual bool handler() {
            result = flinger->createSurface(params, name, client,
            result = flinger->createLayer(params, name, client,
                    display, w, h, format, flags);
            return true;
        }
    };

    sp<MessageBase> msg = new MessageCreateSurface(mFlinger.get(),
    sp<MessageBase> msg = new MessageCreateLayer(mFlinger.get(),
            params, name, this, display, w, h, format, flags);
    mFlinger->postMessageSync(msg);
    return static_cast<MessageCreateSurface*>( msg.get() )->getResult();
    return static_cast<MessageCreateLayer*>( msg.get() )->getResult();
}
status_t Client::destroySurface(SurfaceID sid) {
    return mFlinger->removeSurface(this, sid);
    return mFlinger->onLayerRemoved(this, sid);
}

// ---------------------------------------------------------------------------
+2 −1
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@
#include "DisplayHardware.h"
#include "GLExtensions.h"
#include "SurfaceFlinger.h"
#include "LayerBase.h"

// ----------------------------------------------------------------------------
using namespace android;
@@ -102,7 +103,7 @@ DisplayHardware::DisplayHardware(
        int display,
        const sp<SurfaceTextureClient>& surface,
        EGLConfig config)
    : DisplayHardwareBase(flinger, display),
    : DisplayHardwareBase(display),
      mFlinger(flinger),
      mDisplayId(display),
      mHwc(0),
+3 −13
Original line number Diff line number Diff line
@@ -14,25 +14,15 @@
 * limitations under the License.
 */

#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include <unistd.h>
#include <fcntl.h>

#include <utils/Log.h>
#include <stdint.h>
#include <sys/types.h>

#include "DisplayHardware/DisplayHardwareBase.h"
#include "SurfaceFlinger.h"

// ----------------------------------------------------------------------------
namespace android {

DisplayHardwareBase::DisplayHardwareBase(const sp<SurfaceFlinger>& flinger,
        uint32_t displayIndex) 
{
DisplayHardwareBase::DisplayHardwareBase(uint32_t displayIndex) {
    mScreenAcquired = true;
}

+3 −27
Original line number Diff line number Diff line
@@ -18,25 +18,14 @@
#define ANDROID_DISPLAY_HARDWARE_BASE_H

#include <stdint.h>
#include <utils/RefBase.h>
#include <utils/StrongPointer.h>
#include <utils/threads.h>

namespace android {

class SurfaceFlinger; 

class DisplayHardwareBase
{
class DisplayHardwareBase {
public:
    DisplayHardwareBase(
            const sp<SurfaceFlinger>& flinger,
            uint32_t displayIndex);

    DisplayHardwareBase(uint32_t displayIndex);
    ~DisplayHardwareBase();

    void startSleepManagement() const;

    // console management
    void releaseScreen() const;
    void acquireScreen() const;
@@ -44,20 +33,7 @@ public:

    bool canDraw() const;


private:
    class DisplayEventThread : public Thread {
        wp<SurfaceFlinger> mFlinger;
        status_t waitForFbSleep();
        status_t waitForFbWake();
    public:
        DisplayEventThread(const sp<SurfaceFlinger>& flinger);
        virtual ~DisplayEventThread();
        virtual bool threadLoop();
        status_t initCheck() const;
    };

    sp<DisplayEventThread>  mDisplayEventThread;
    mutable int mScreenAcquired;
};

+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@
#include <utils/Trace.h>
#include <utils/Vector.h>

#include <ui/GraphicBuffer.h>

#include <hardware/hardware.h>
#include <hardware/hwcomposer.h>

@@ -39,6 +41,7 @@

#include <EGL/egl.h>

#include "Layer.h"           // needed only for debugging
#include "LayerBase.h"
#include "HWComposer.h"
#include "SurfaceFlinger.h"
Loading