[GTK] Add GraphicsLayerActor
https://bugs.webkit.org/show_bug.cgi?id=91940

Patch by Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2012-07-23
Reviewed by NOBODY (OOPS!).

Clutter is one of Acceleration Backend of WebKitGtk+. When enabling the Clutter backend,
GraphicsLayerActor represents a compositing layer, which is a new ClutterActor.

No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
compositing and 3D transforms.

* GNUmakefile.list.am:
* platform/graphics/clutter/GraphicsLayerActor.cpp: Added.
(_GraphicsLayerActorPrivate):
(graphics_layer_actor_class_init): GObject configuration of a new Clutter Actor.
(graphics_layer_actor_init): Initialization of the private data of this actor.
(graphicsLayerActorSetProperty): GObject property setter.
(graphicsLayerActorGetProperty): GObject property getter.
(graphicsLayerActorDispose): Called to drop all references to other objects.
(graphicsLayerActorAllocate):  Called to set the coordinates of an actor.
(graphicsLayerActorApplyTransform): Applying the transformation to an actor before painting it.
(graphicsLayerActorPaint): Called to paint the actor.
(graphicsLayerActorPick): Called to draw an outline of the actor with the given color.
(graphicsLayerActorDraw): Called each time a ClutterCairoTexture has been invalidated.
(graphicsLayerActorAdded): Called each time an actor has been added to container.
(graphicsLayerActorRemoved): Called each time an actor is removed from container.
(graphicsLayerActorNew): Create a specific layer type of GraphicsLayerActor object.
(graphicsLayerActorNewWithClient): Create a specific layer type of GraphicsLayerActor object with·
its PlatformClutterClientLayer.
(graphicsLayerActorSetClient): Added setter to set the PlatformClutterClientLayer.
(graphicsLayerActorGetClient): Added getter to get the PlatformClutterClientLayer.
(graphicsLayerActorRemoveAll): Remove all child actors.
(graphicsLayerUpdateTexture): Create a ClutterCairoTexture.
(graphicsLayerActorGetSurface): Added setter to set a cairo_surface_t.
(graphicsLayerActorSetSurface): Added getter to get the cairo_surface_t.
(graphicsLayerActorInvalidateRectangle):
(graphicsLayerActorSetTransform): Set a CoglMatrix to apply matrix transform.
(graphicsLayerActorSetAnchorPoint):
(graphicsLayerActorGetAnchorPoint):
(graphicsLayerActorSetScrollPosition):
(graphicsLayerActorGetnChildren):
(graphicsLayerActorReplaceSublayer):
(graphicsLayerActorInsertSublayer):
(graphicsLayerActorSetSublayers):
(graphicsLayerActorGetLayerType):
(graphicsLayerActorSetLayerType):
(graphicsLayerActorSetTranslateX):
(graphicsLayerActorGetTranslateX):
(graphicsLayerActorSetTranslateY):
(graphicsLayerActorGetTranslateY):
(graphicsLayerActorSetDrawsContent): Added setter to paint content inside a layer.
(graphicsLayerActorGetDrawsContent): Added getter to get the value of the drawsContent.·
* platform/graphics/clutter/GraphicsLayerActor.h: Added.
(_GraphicsLayerActor):
(_GraphicsLayerActorClass):

 2012-08-19  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

[GTK] Implement GraphicsLayer using Clutter
https://bugs.webkit.org/show_bug.cgi?id=73767

Reviewed by NOBODY (OOPS!).
[GTK] Update GraphicsLayerClutter
https://bugs.webkit.org/show_bug.cgi?id=92045

Patch by Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2012-08-16
Reviewed by NOBODY (OOPS!).

Add more methods to GraphicsLayerClutter in order to run CSS 3D transforms
by using GraphicsLayerActor.

No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
compositing and 3D transforms.

* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore):
(WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
(WebCore::idleDestroy):
(WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::setName):
(WebCore::GraphicsLayerClutter::platformLayer): Returns the platform layer(ClutterAcotr).
(WebCore::GraphicsLayerClutter::setNeedsDisplay): Update the display.
(WebCore::GraphicsLayerClutter::setNeedsDisplayInRect): Update part of the Display.
(WebCore::GraphicsLayerClutter::setAnchorPoint):
(WebCore::GraphicsLayerClutter::setPosition):
(WebCore::GraphicsLayerClutter::setSize):
(WebCore::GraphicsLayerClutter::setTransform):
(WebCore::GraphicsLayerClutter::setDrawsContent):
(WebCore::GraphicsLayerClutter::setParent):
(WebCore::GraphicsLayerClutter::setChildren):
(WebCore::GraphicsLayerClutter::addChild):
(WebCore::GraphicsLayerClutter::addChildAtIndex):
(WebCore::GraphicsLayerClutter::addChildBelow):
(WebCore::GraphicsLayerClutter::addChildAbove):
(WebCore::GraphicsLayerClutter::replaceChild):
(WebCore::GraphicsLayerClutter::removeFromParent):
(WebCore::GraphicsLayerClutter::platformClutterLayerPaintContents):
(WebCore::GraphicsLayerClutter::platformClutterLayerAnimationStarted):
(WebCore::GraphicsLayerClutter::repaintLayerDirtyRects):
(WebCore::GraphicsLayerClutter::computePositionRelativeToBase):
(WebCore::GraphicsLayerClutter::syncCompositingState): Synchronize the corresponding Actors with the current
compositing states of this GraphicsLayer and its child layers.
(WebCore::GraphicsLayerClutter::recursiveCommitChanges):
(WebCore::GraphicsLayerClutter::syncCompositingStateForThisLayerOnly): Commit batched changes non-recursively.
(WebCore::GraphicsLayerClutter::commitLayerChangesAfterSublayers): Reset layer changes after we recurse on children.
(WebCore::GraphicsLayerClutter::noteSublayersChanged):
(WebCore::GraphicsLayerClutter::noteLayerPropertyChanged):
(WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers): Commit layer changes before we recurse on children.
(WebCore::GraphicsLayerClutter::updateGeometry): Updated the position and size of the Actor.
(WebCore::GraphicsLayerClutter::updateSublayerList): Updated the list of child Actors.
(WebCore::GraphicsLayerClutter::updateLayerNames):
(WebCore::GraphicsLayerClutter::updateTransform):
(WebCore::GraphicsLayerClutter::updateLayerDrawsContent):
(WebCore::GraphicsLayerClutter::layerForSuperlayer):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(WebCore):
(WebCore::GraphicsLayerClutter::primaryLayer):
(GraphicsLayerClutter):