2010-07-01 Simon Fraser <simon.fraser@apple.com>
[WebKit-https.git] / WebKit2 / WebProcess / WebPage / DrawingArea.h
index 2dea3200faa6fb1aca972ea10e6bc645ec07ee87..949424903917ba3fd6df0988c0c91f43fc8fbf45 100644 (file)
@@ -31,6 +31,9 @@
 namespace WebCore {
     class IntRect;
     class IntSize;
 namespace WebCore {
     class IntRect;
     class IntSize;
+#if USE(ACCELERATED_COMPOSITING)
+    class GraphicsLayer;
+#endif
 }
 
 namespace CoreIPC {
 }
 
 namespace CoreIPC {
@@ -46,7 +49,10 @@ class WebPage;
 class DrawingArea {
 public:
     enum Type {
 class DrawingArea {
 public:
     enum Type {
-        ChunkedUpdateDrawingAreaType
+        ChunkedUpdateDrawingAreaType,
+#if USE(ACCELERATED_COMPOSITING)
+        LayerBackedDrawingAreaType,
+#endif
     };
 
     // FIXME: It might make sense to move this create function into a factory style class. 
     };
 
     // FIXME: It might make sense to move this create function into a factory style class. 
@@ -61,6 +67,13 @@ public:
     virtual void setNeedsDisplay(const WebCore::IntRect&) = 0;
     virtual void display() = 0;
 
     virtual void setNeedsDisplay(const WebCore::IntRect&) = 0;
     virtual void display() = 0;
 
+#if USE(ACCELERATED_COMPOSITING)
+    virtual void attachCompositingContext(WebCore::GraphicsLayer*) = 0;
+    virtual void detachCompositingContext() = 0;
+    virtual void scheduleCompositingLayerSync() = 0;
+    virtual void syncCompositingLayers() = 0;
+#endif
+
     virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder&) = 0;
 
     // The DrawingArea should never be encoded itself. Instead, the DrawingAreaProxy should be encoded.
     virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder&) = 0;
 
     // The DrawingArea should never be encoded itself. Instead, the DrawingAreaProxy should be encoded.