| Index: android_webview/browser/shared_renderer_state.cc
|
| diff --git a/android_webview/browser/shared_renderer_state.cc b/android_webview/browser/shared_renderer_state.cc
|
| index 8845b761cd252c16592d4480003288e53b07de09..a826f1c0781796ad5ab827c67d7e34da3e592613 100644
|
| --- a/android_webview/browser/shared_renderer_state.cc
|
| +++ b/android_webview/browser/shared_renderer_state.cc
|
| @@ -7,6 +7,8 @@
|
| #include "android_webview/browser/browser_view_renderer_client.h"
|
| #include "base/bind.h"
|
| #include "base/location.h"
|
| +#include "cc/output/compositor_frame.h"
|
| +#include "content/public/browser/android/synchronous_compositor.h"
|
|
|
| namespace android_webview {
|
|
|
| @@ -51,6 +53,22 @@ void SharedRendererState::ClientRequestDrawGLOnUIThread() {
|
| }
|
| }
|
|
|
| +void SharedRendererState::ClientPostInvalidate() {
|
| + if (ui_loop_->BelongsToCurrentThread()) {
|
| + ClientPostInvalidateOnUIThread();
|
| + } else {
|
| + ui_loop_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SharedRendererState::ClientPostInvalidateOnUIThread,
|
| + ui_thread_weak_ptr_));
|
| + }
|
| +}
|
| +
|
| +void SharedRendererState::ClientPostInvalidateOnUIThread() {
|
| + DCHECK(ui_loop_->BelongsToCurrentThread());
|
| + client_on_ui_->PostInvalidate();
|
| +}
|
| +
|
| void SharedRendererState::SetDrawGLInput(scoped_ptr<DrawGLInput> input) {
|
| base::AutoLock lock(lock_);
|
| DCHECK(!draw_gl_input_.get());
|
| @@ -62,6 +80,19 @@ scoped_ptr<DrawGLInput> SharedRendererState::PassDrawGLInput() {
|
| return draw_gl_input_.Pass();
|
| }
|
|
|
| +void SharedRendererState::PostExternalMatrixToChildCompositor(
|
| + const gfx::Transform& transform) {
|
| + base::AutoLock lock(lock_);
|
| + parent_transform_ = transform;
|
| +
|
| + ClientPostInvalidate();
|
| +}
|
| +
|
| +const gfx::Transform& SharedRendererState::ParentTransform() const {
|
| + base::AutoLock lock(lock_);
|
| + return parent_transform_;
|
| +}
|
| +
|
| void SharedRendererState::SetHardwareAllowed(bool allowed) {
|
| base::AutoLock lock(lock_);
|
| hardware_allowed_ = allowed;
|
|
|