Diff
Modified: trunk/Source/WebCore/ChangeLog (89441 => 89442)
--- trunk/Source/WebCore/ChangeLog 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebCore/ChangeLog 2011-06-22 16:57:08 UTC (rev 89442)
@@ -1,3 +1,40 @@
+2011-06-22 Eunmi Lee <[email protected]>
+
+ Reviewed by Martin Robinson.
+
+ Change GtkWidgetBackingStore.h to WidgetBackingStore.h in order to use in the EFL port.
+ https://bugs.webkit.org/show_bug.cgi?id=62848
+
+ This patch will make GtkWidgetBackingStore shareable with EFL port.
+ It is a preparation to integrate WebKit2's BackingStoreGtk.cpp and
+ BackingStoreEfl.cpp as a BackingStoreCairo.cpp.
+
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * platform/graphics/cairo/CairoUtilities.cpp:
+ (WebCore::copyRectFromOneSurfaceToAnother):
+ * platform/graphics/cairo/CairoUtilities.h:
+ * platform/cairo/WidgetBackingStore.h: Added.
+ * platform/gtk/GtkWidgetBackingStore.h: Removed.
+ * platform/gtk/GtkWidgetBackingStoreCairo.cpp:
+ (WebCore::createSurfaceForBackingStore):
+ (WebCore::WidgetBackingStorePrivate::create):
+ (WebCore::WidgetBackingStorePrivate::WidgetBackingStorePrivate):
+ (WebCore::WidgetBackingStore::create):
+ (WebCore::WidgetBackingStore::WidgetBackingStore):
+ (WebCore::WidgetBackingStore::~WidgetBackingStore):
+ (WebCore::WidgetBackingStore::cairoSurface):
+ (WebCore::WidgetBackingStore::scroll):
+ * platform/gtk/GtkWidgetBackingStoreX11.cpp:
+ (WebCore::WidgetBackingStorePrivate::create):
+ (WebCore::WidgetBackingStorePrivate::~WidgetBackingStorePrivate):
+ (WebCore::WidgetBackingStorePrivate::WidgetBackingStorePrivate):
+ (WebCore::WidgetBackingStore::create):
+ (WebCore::WidgetBackingStore::WidgetBackingStore):
+ (WebCore::WidgetBackingStore::~WidgetBackingStore):
+ (WebCore::WidgetBackingStore::cairoSurface):
+ (WebCore::WidgetBackingStore::scroll):
+
2011-06-22 Simon Fraser <[email protected]>
Reviewed by Dan Bernstein.
Modified: trunk/Source/WebCore/GNUmakefile.am (89441 => 89442)
--- trunk/Source/WebCore/GNUmakefile.am 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebCore/GNUmakefile.am 2011-06-22 16:57:08 UTC (rev 89442)
@@ -94,6 +94,7 @@
-I$(srcdir)/Source/WebCore/accessibility/gtk \
-I$(srcdir)/Source/WebCore/loader/gtk \
-I$(srcdir)/Source/WebCore/page/gtk \
+ -I$(srcdir)/Source/WebCore/platform/cairo \
-I$(srcdir)/Source/WebCore/platform/graphics/cairo \
-I$(srcdir)/Source/WebCore/platform/graphics/gstreamer \
-I$(srcdir)/Source/WebCore/platform/graphics/gtk \
Modified: trunk/Source/WebCore/GNUmakefile.list.am (89441 => 89442)
--- trunk/Source/WebCore/GNUmakefile.list.am 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2011-06-22 16:57:08 UTC (rev 89442)
@@ -3824,6 +3824,7 @@
Source/WebCore/page/gtk/DragControllerGtk.cpp \
Source/WebCore/page/gtk/EventHandlerGtk.cpp \
Source/WebCore/page/gtk/FrameGtk.cpp \
+ Source/WebCore/platform/cairo/WidgetBackingStore.h \
Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp \
Source/WebCore/platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h \
Source/WebCore/platform/graphics/gstreamer/GOwnPtrGStreamer.cpp \
@@ -3869,7 +3870,6 @@
Source/WebCore/platform/gtk/GtkClickCounter.h \
Source/WebCore/platform/gtk/GtkUtilities.cpp \
Source/WebCore/platform/gtk/GtkUtilities.h \
- Source/WebCore/platform/gtk/GtkWidgetBackingStore.h \
Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp \
Source/WebCore/platform/gtk/GtkWidgetBackingStoreX11.cpp \
Source/WebCore/platform/gtk/GeolocationServiceGtk.cpp \
Copied: trunk/Source/WebCore/platform/cairo/WidgetBackingStore.h (from rev 89441, trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStore.h) (0 => 89442)
--- trunk/Source/WebCore/platform/cairo/WidgetBackingStore.h (rev 0)
+++ trunk/Source/WebCore/platform/cairo/WidgetBackingStore.h 2011-06-22 16:57:08 UTC (rev 89442)
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2011, Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef WidgetBackingStore_h
+#define WidgetBackingStore_h
+
+#include "IntRect.h"
+#include "IntSize.h"
+#include <wtf/FastAllocBase.h>
+#include <wtf/Noncopyable.h>
+#include <wtf/PassOwnPtr.h>
+
+#if PLATFORM(GTK)
+#include <gtk/gtk.h>
+#endif
+
+namespace WebCore {
+
+class WidgetBackingStorePrivate;
+
+#if PLATFORM(GTK)
+typedef GtkWidget* PlatformWidget;
+#endif
+
+class WidgetBackingStore {
+ WTF_MAKE_NONCOPYABLE(WidgetBackingStore);
+ WTF_MAKE_FAST_ALLOCATED;
+
+public:
+ static PassOwnPtr<WidgetBackingStore> create(PlatformWidget, const IntSize&);
+
+ ~WidgetBackingStore();
+ cairo_surface_t* cairoSurface();
+ void scroll(const IntRect& scrollRect, const IntSize& scrollOffset);
+
+private:
+ WidgetBackingStore(PlatformWidget, const IntSize&);
+
+ OwnPtr<WidgetBackingStorePrivate> m_private;
+};
+
+} // namespace WebCore
+
+#endif // WidgetBackingStore_h
Modified: trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp (89441 => 89442)
--- trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp 2011-06-22 16:57:08 UTC (rev 89442)
@@ -172,4 +172,12 @@
return newSurface.release();
}
+void copyRectFromOneSurfaceToAnother(cairo_surface_t* from, cairo_surface_t* to, const IntSize& offset, const IntRect& rect)
+{
+ RefPtr<cairo_t> context = adoptRef(cairo_create(to));
+ cairo_set_source_surface(context.get(), from, offset.width(), offset.height());
+ cairo_rectangle(context.get(), rect.x(), rect.y(), rect.width(), rect.height());
+ cairo_fill(context.get());
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.h (89441 => 89442)
--- trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.h 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.h 2011-06-22 16:57:08 UTC (rev 89442)
@@ -35,6 +35,7 @@
class FloatRect;
class FloatPoint;
class IntSize;
+class IntRect;
class Path;
void copyContextProperties(cairo_t* srcCr, cairo_t* dstCr);
@@ -46,6 +47,7 @@
void drawPatternToCairoContext(cairo_t* cr, cairo_surface_t* image, const IntSize& imageSize, const FloatRect& tileRect,
const AffineTransform& patternTransform, const FloatPoint& phase, cairo_operator_t op, const FloatRect& destRect);
PassRefPtr<cairo_surface_t> copyCairoImageSurface(cairo_surface_t*);
+void copyRectFromOneSurfaceToAnother(cairo_surface_t* from, cairo_surface_t* to, const IntSize&, const IntRect&);
} // namespace WebCore
Deleted: trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStore.h (89441 => 89442)
--- trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStore.h 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStore.h 2011-06-22 16:57:08 UTC (rev 89442)
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2011, Igalia S.L.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef GtkWidgetBackingStore_h
-#define GtkWidgetBackingStore_h
-
-#include "IntRect.h"
-#include "IntSize.h"
-#include <wtf/FastAllocBase.h>
-#include <wtf/Noncopyable.h>
-#include <wtf/PassOwnPtr.h>
-
-namespace WebCore {
-
-class GtkWidgetBackingStorePrivate;
-
-class GtkWidgetBackingStore {
- WTF_MAKE_NONCOPYABLE(GtkWidgetBackingStore);
- WTF_MAKE_FAST_ALLOCATED;
-
-public:
- static PassOwnPtr<GtkWidgetBackingStore> create(GtkWidget*, const IntSize&);
-
- ~GtkWidgetBackingStore();
- cairo_surface_t* cairoSurface();
- void scroll(const IntRect& scrollRect, const IntSize& scrollOffset);
-
-private:
- GtkWidgetBackingStore(GtkWidget*, const IntSize&);
-
- OwnPtr<GtkWidgetBackingStorePrivate> m_private;
-};
-
-} // namespace WebCore
-
-#endif // BackingStore_h
-
Modified: trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp (89441 => 89442)
--- trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp 2011-06-22 16:57:08 UTC (rev 89442)
@@ -17,13 +17,13 @@
*/
#include "config.h"
-#include "GtkWidgetBackingStore.h"
+#include "WidgetBackingStore.h"
#ifndef XP_UNIX
+#include "CairoUtilities.h"
#include "RefPtrCairo.h"
#include <cairo/cairo.h>
-#include <gtk/gtk.h>
namespace WebCore {
@@ -35,58 +35,51 @@
}
-class GtkWidgetBackingStorePrivate {
- WTF_MAKE_NONCOPYABLE(GtkWidgetBackingStorePrivate); WTF_MAKE_FAST_ALLOCATED;
+class WidgetBackingStorePrivate {
+ WTF_MAKE_NONCOPYABLE(WidgetBackingStorePrivate);
+ WTF_MAKE_FAST_ALLOCATED;
public:
RefPtr<cairo_surface_t> m_surface;
RefPtr<cairo_surface_t> m_scrollSurface;
- static PassOwnPtr<GtkWidgetBackingStorePrivate> create(GtkWidget* widget, const IntSize& size)
+ static PassOwnPtr<WidgetBackingStorePrivate> create(GtkWidget* widget, const IntSize& size)
{
- return adoptPtr(new GtkWidgetBackingStorePrivate(widget, size));
+ return adoptPtr(new WidgetBackingStorePrivate(widget, size));
}
private:
// We keep two copies of the surface here, which will double the memory usage, but increase
// scrolling performance since we do not have to keep reallocating a memory region during
// quick scrolling requests.
- GtkWidgetBackingStorePrivate(GtkWidget* widget, const IntSize& size)
+ WidgetBackingStorePrivate(GtkWidget* widget, const IntSize& size)
: m_surface(createSurfaceForBackingStore(widget, size))
, m_scrollSurface(createSurfaceForBackingStore(widget, size))
{
}
};
-PassOwnPtr<GtkWidgetBackingStore> GtkWidgetBackingStore::create(GtkWidget* widget, const IntSize& size)
+PassOwnPtr<WidgetBackingStore> WidgetBackingStore::create(GtkWidget* widget, const IntSize& size)
{
- return adoptPtr(new GtkWidgetBackingStore(widget, size));
+ return adoptPtr(new WidgetBackingStore(widget, size));
}
-GtkWidgetBackingStore::GtkWidgetBackingStore(GtkWidget* widget, const IntSize& size)
- : m_private(GtkWidgetBackingStorePrivate::create(widget, size))
+WidgetBackingStore::WidgetBackingStore(GtkWidget* widget, const IntSize& size)
+ : m_private(WidgetBackingStorePrivate::create(widget, size))
{
}
-GtkWidgetBackingStore::~GtkWidgetBackingStore()
+WidgetBackingStore::~WidgetBackingStore()
{
}
-cairo_surface_t* GtkWidgetBackingStore::cairoSurface()
+cairo_surface_t* WidgetBackingStore::cairoSurface()
{
return m_private->m_surface.get();
}
-static void copyRectFromOneSurfaceToAnother(cairo_surface_t* from, cairo_surface_t* to, const IntSize& offset, const IntRect& rect)
+void WidgetBackingStore::scroll(const IntRect& scrollRect, const IntSize& scrollOffset)
{
- RefPtr<cairo_t> context = adoptRef(cairo_create(to));
- cairo_set_source_surface(context.get(), from, offset.width(), offset.height());
- cairo_rectangle(context.get(), rect.x(), rect.y(), rect.width(), rect.height());
- cairo_fill(context.get());
-}
-
-void GtkWidgetBackingStore::scroll(const IntRect& scrollRect, const IntSize& scrollOffset)
-{
IntRect targetRect(scrollRect);
targetRect.move(scrollOffset);
targetRect.shiftMaxXEdgeTo(targetRect.maxX() - scrollOffset.width());
Modified: trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStoreX11.cpp (89441 => 89442)
--- trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStoreX11.cpp 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebCore/platform/gtk/GtkWidgetBackingStoreX11.cpp 2011-06-22 16:57:08 UTC (rev 89442)
@@ -17,7 +17,7 @@
*/
#include "config.h"
-#include "GtkWidgetBackingStore.h"
+#include "WidgetBackingStore.h"
#ifdef XP_UNIX
@@ -27,12 +27,11 @@
#include <cairo/cairo-xlib.h>
#include <cairo/cairo.h>
#include <gdk/gdkx.h>
-#include <gtk/gtk.h>
namespace WebCore {
-class GtkWidgetBackingStorePrivate {
- WTF_MAKE_NONCOPYABLE(GtkWidgetBackingStorePrivate);
+class WidgetBackingStorePrivate {
+ WTF_MAKE_NONCOPYABLE(WidgetBackingStorePrivate);
WTF_MAKE_FAST_ALLOCATED;
public:
@@ -41,12 +40,12 @@
GC m_gc;
RefPtr<cairo_surface_t> m_surface;
- static PassOwnPtr<GtkWidgetBackingStorePrivate> create(GtkWidget* widget, const IntSize& size)
+ static PassOwnPtr<WidgetBackingStorePrivate> create(GtkWidget* widget, const IntSize& size)
{
- return adoptPtr(new GtkWidgetBackingStorePrivate(widget, size));
+ return adoptPtr(new WidgetBackingStorePrivate(widget, size));
}
- ~GtkWidgetBackingStorePrivate()
+ ~WidgetBackingStorePrivate()
{
XFreePixmap(m_display, m_pixmap);
XFreeGC(m_display, m_gc);
@@ -56,7 +55,7 @@
// We keep two copies of the surface here, which will double the memory usage, but increase
// scrolling performance since we do not have to keep reallocating a memory region during
// quick scrolling requests.
- GtkWidgetBackingStorePrivate(GtkWidget* widget, const IntSize& size)
+ WidgetBackingStorePrivate(GtkWidget* widget, const IntSize& size)
{
GdkVisual* visual = gtk_widget_get_visual(widget);
GdkScreen* screen = gdk_visual_get_screen(visual);
@@ -73,26 +72,26 @@
}
};
-PassOwnPtr<GtkWidgetBackingStore> GtkWidgetBackingStore::create(GtkWidget* widget, const IntSize& size)
+PassOwnPtr<WidgetBackingStore> WidgetBackingStore::create(GtkWidget* widget, const IntSize& size)
{
- return adoptPtr(new GtkWidgetBackingStore(widget, size));
+ return adoptPtr(new WidgetBackingStore(widget, size));
}
-GtkWidgetBackingStore::GtkWidgetBackingStore(GtkWidget* widget, const IntSize& size)
- : m_private(GtkWidgetBackingStorePrivate::create(widget, size))
+WidgetBackingStore::WidgetBackingStore(GtkWidget* widget, const IntSize& size)
+ : m_private(WidgetBackingStorePrivate::create(widget, size))
{
}
-GtkWidgetBackingStore::~GtkWidgetBackingStore()
+WidgetBackingStore::~WidgetBackingStore()
{
}
-cairo_surface_t* GtkWidgetBackingStore::cairoSurface()
+cairo_surface_t* WidgetBackingStore::cairoSurface()
{
return m_private->m_surface.get();
}
-void GtkWidgetBackingStore::scroll(const IntRect& scrollRect, const IntSize& scrollOffset)
+void WidgetBackingStore::scroll(const IntRect& scrollRect, const IntSize& scrollOffset)
{
IntRect targetRect(scrollRect);
targetRect.move(scrollOffset);
Modified: trunk/Source/WebKit2/ChangeLog (89441 => 89442)
--- trunk/Source/WebKit2/ChangeLog 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebKit2/ChangeLog 2011-06-22 16:57:08 UTC (rev 89442)
@@ -1,3 +1,17 @@
+2011-06-22 Eunmi Lee <[email protected]>
+
+ Reviewed by Martin Robinson.
+
+ Change GtkWidgetBackingStore.h to WidgetBackingStore.h in order to use in the EFL port.
+ https://bugs.webkit.org/show_bug.cgi?id=62848
+
+ Change GtkWidgetBackingStore to WidgetBackingStore in the BackingStore.h and
+ gtk/BackingStoreGtk.cpp.
+
+ * UIProcess/BackingStore.h:
+ * UIProcess/gtk/BackingStoreGtk.cpp:
+ (WebKit::BackingStore::incorporateUpdate):
+
2011-06-22 Adam Roben <[email protected]>
Don't use an alpha channel when drawing the web page on Windows
Modified: trunk/Source/WebKit2/UIProcess/BackingStore.h (89441 => 89442)
--- trunk/Source/WebKit2/UIProcess/BackingStore.h 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebKit2/UIProcess/BackingStore.h 2011-06-22 16:57:08 UTC (rev 89442)
@@ -43,7 +43,7 @@
#if PLATFORM(GTK)
#include <RefPtrCairo.h>
-#include <WebCore/GtkWidgetBackingStore.h>
+#include <WebCore/WidgetBackingStore.h>
#endif
namespace WebCore {
@@ -97,7 +97,7 @@
#elif PLATFORM(QT)
QPixmap m_pixmap;
#elif PLATFORM(GTK)
- OwnPtr<WebCore::GtkWidgetBackingStore> m_backingStore;
+ OwnPtr<WebCore::WidgetBackingStore> m_backingStore;
#endif
};
Modified: trunk/Source/WebKit2/UIProcess/gtk/BackingStoreGtk.cpp (89441 => 89442)
--- trunk/Source/WebKit2/UIProcess/gtk/BackingStoreGtk.cpp 2011-06-22 16:46:33 UTC (rev 89441)
+++ trunk/Source/WebKit2/UIProcess/gtk/BackingStoreGtk.cpp 2011-06-22 16:57:08 UTC (rev 89442)
@@ -51,7 +51,7 @@
void BackingStore::incorporateUpdate(ShareableBitmap* bitmap, const UpdateInfo& updateInfo)
{
if (!m_backingStore)
- m_backingStore = GtkWidgetBackingStore::create(m_webPageProxy->viewWidget(), size());
+ m_backingStore = WidgetBackingStore::create(m_webPageProxy->viewWidget(), size());
scroll(updateInfo.scrollRect, updateInfo.scrollOffset);