summaryrefslogtreecommitdiffstats
path: root/webkit/tools
diff options
context:
space:
mode:
authorkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-30 17:23:18 +0000
committerkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-30 17:23:18 +0000
commit237a2f1d4378c294f6a66c95ecf37093fbaccc11 (patch)
tree823bcfe83925f4e9ff0909e9e77bfda2fc407332 /webkit/tools
parentc43270786ed2a06b7717fbfc203cf76ec532dd1d (diff)
downloadchromium_src-237a2f1d4378c294f6a66c95ecf37093fbaccc11.zip
chromium_src-237a2f1d4378c294f6a66c95ecf37093fbaccc11.tar.gz
chromium_src-237a2f1d4378c294f6a66c95ecf37093fbaccc11.tar.bz2
Added support for accelerated compositing to test_shell. This is
principally being added for debugging purposes; compositor support is being added simultaneously to DumpRenderTree in https://bugs.webkit.org/show_bug.cgi?id=46849 . The changes here are dependent on the WebKit changes. Tested in test_shell on Linux both with the default Mesa backend as well as with --use-gl=desktop and verified that CSS 3D samples work. BUG=51879 TEST=none Review URL: http://codereview.chromium.org/3529003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61076 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools')
-rw-r--r--webkit/tools/test_shell/mac/webwidget_host.mm8
-rw-r--r--webkit/tools/test_shell/test_webview_delegate.cc5
-rw-r--r--webkit/tools/test_shell/test_webview_delegate.h1
-rw-r--r--webkit/tools/test_shell/webwidget_host.h1
-rw-r--r--webkit/tools/test_shell/webwidget_host_gtk.cc13
-rw-r--r--webkit/tools/test_shell/webwidget_host_win.cc9
6 files changed, 37 insertions, 0 deletions
diff --git a/webkit/tools/test_shell/mac/webwidget_host.mm b/webkit/tools/test_shell/mac/webwidget_host.mm
index d76c41b..40f76f7 100644
--- a/webkit/tools/test_shell/mac/webwidget_host.mm
+++ b/webkit/tools/test_shell/mac/webwidget_host.mm
@@ -130,6 +130,14 @@ void WebWidgetHost::DidScrollRect(int dx, int dy, const gfx::Rect& clip_rect) {
[view_ setNeedsDisplayInRect:r];
}
+void WebWidgetHost::ScheduleComposite() {
+ if (!webwidget_)
+ return;
+ WebSize size = webwidget_->size();
+ NSRect r = NSMakeRect(0, 0, size.width, size.height);
+ [view_ setNeedsDisplayInRect:r];
+}
+
// void WebWidgetHost::SetCursor(HCURSOR cursor) {
// }
diff --git a/webkit/tools/test_shell/test_webview_delegate.cc b/webkit/tools/test_shell/test_webview_delegate.cc
index b454496..9c9c90d 100644
--- a/webkit/tools/test_shell/test_webview_delegate.cc
+++ b/webkit/tools/test_shell/test_webview_delegate.cc
@@ -671,6 +671,11 @@ void TestWebViewDelegate::didScrollRect(int dx, int dy,
host->DidScrollRect(dx, dy, clip_rect);
}
+void TestWebViewDelegate::scheduleComposite() {
+ if (WebWidgetHost* host = GetWidgetHost())
+ host->ScheduleComposite();
+}
+
void TestWebViewDelegate::didFocus() {
if (WebWidgetHost* host = GetWidgetHost())
shell_->SetFocus(host, true);
diff --git a/webkit/tools/test_shell/test_webview_delegate.h b/webkit/tools/test_shell/test_webview_delegate.h
index 8754d3c..32e0094 100644
--- a/webkit/tools/test_shell/test_webview_delegate.h
+++ b/webkit/tools/test_shell/test_webview_delegate.h
@@ -150,6 +150,7 @@ class TestWebViewDelegate : public WebKit::WebViewClient,
virtual void didInvalidateRect(const WebKit::WebRect& rect);
virtual void didScrollRect(int dx, int dy,
const WebKit::WebRect& clip_rect);
+ virtual void scheduleComposite();
virtual void didFocus();
virtual void didBlur();
virtual void didChangeCursor(const WebKit::WebCursorInfo& cursor);
diff --git a/webkit/tools/test_shell/webwidget_host.h b/webkit/tools/test_shell/webwidget_host.h
index 904a878..c344b24 100644
--- a/webkit/tools/test_shell/webwidget_host.h
+++ b/webkit/tools/test_shell/webwidget_host.h
@@ -47,6 +47,7 @@ class WebWidgetHost {
void DidInvalidateRect(const gfx::Rect& rect);
void DidScrollRect(int dx, int dy, const gfx::Rect& clip_rect);
+ void ScheduleComposite();
#if defined(OS_WIN)
void SetCursor(HCURSOR cursor);
#endif
diff --git a/webkit/tools/test_shell/webwidget_host_gtk.cc b/webkit/tools/test_shell/webwidget_host_gtk.cc
index aa67ebf..4f7a0f7 100644
--- a/webkit/tools/test_shell/webwidget_host_gtk.cc
+++ b/webkit/tools/test_shell/webwidget_host_gtk.cc
@@ -310,6 +310,19 @@ void WebWidgetHost::DidScrollRect(int dx, int dy, const gfx::Rect& clip_rect) {
DidInvalidateRect(clip_rect);
}
+void WebWidgetHost::ScheduleComposite() {
+ int width = logical_size_.width();
+ int height = logical_size_.height();
+ GdkRectangle grect = {
+ 0,
+ 0,
+ width,
+ height
+ };
+ GdkWindow* window = view_->window;
+ gdk_window_invalidate_rect(window, &grect, 0);
+}
+
WebWidgetHost::WebWidgetHost()
: view_(NULL),
webwidget_(NULL),
diff --git a/webkit/tools/test_shell/webwidget_host_win.cc b/webkit/tools/test_shell/webwidget_host_win.cc
index 7b0511e..0ead127 100644
--- a/webkit/tools/test_shell/webwidget_host_win.cc
+++ b/webkit/tools/test_shell/webwidget_host_win.cc
@@ -176,6 +176,15 @@ void WebWidgetHost::DidScrollRect(int dx, int dy, const gfx::Rect& clip_rect) {
InvalidateRect(view_, &r, FALSE);
}
+void WebWidgetHost::ScheduleComposite() {
+ if (!webwidget_)
+ return;
+ WebSize size = webwidget_->size();
+ gfx::Rect rect(0, 0, size.width, size.height);
+ RECT r = rect.ToRECT();
+ InvalidateRect(view_, &r, FALSE);
+}
+
void WebWidgetHost::SetCursor(HCURSOR cursor) {
SetClassLong(view_, GCL_HCURSOR,
static_cast<LONG>(reinterpret_cast<LONG_PTR>(cursor)));