#ifndef FrameLayers_h
#define FrameLayers_h
#if USE(ACCELERATED_COMPOSITING)
#include "GraphicsLayer.h"
#include <wtf/HashMap.h>
#include <wtf/OwnPtr.h>
namespace WebCore {
class Frame;
class LayerWebKitThread;
}
namespace BlackBerry {
namespace WebKit {
class WebPagePrivate;
class FrameLayers {
public:
FrameLayers(WebPagePrivate*);
~FrameLayers();
bool containsLayerForFrame(WebCore::Frame*);
void addLayer(WebCore::Frame*, WebCore::LayerWebKitThread*);
void removeLayerByFrame(WebCore::Frame*);
bool hasLayer() const { return m_frameLayers.size(); }
void commitOnWebKitThread(double scale);
void calculateRootLayer();
bool isRootLayerMainFrameLayer() const { return m_rootLayer && !m_rootGraphicsLayer; }
WebCore::LayerWebKitThread* rootLayer() const { return m_rootLayer; }
private:
WebPagePrivate* m_pagePrivate;
OwnPtr<WebCore::GraphicsLayer> m_rootGraphicsLayer;
WebCore::LayerWebKitThread* m_rootLayer;
typedef HashMap<WebCore::Frame*, WebCore::LayerWebKitThread*> FrameLayerMap;
FrameLayerMap m_frameLayers;
};
} }
#endif // USE(ACCELERATED_COMPOSITING)
#endif // FrameLayers_h