summaryrefslogtreecommitdiffstats
path: root/content/browser/android
diff options
context:
space:
mode:
authorsievers@chromium.org <sievers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-13 22:40:59 +0000
committersievers@chromium.org <sievers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-13 22:40:59 +0000
commit5aba5bc9fe839dce4e580e042cd6f53cdc963deb (patch)
tree8ff503fa2034e64ab18b9833c4cea568ec168bb5 /content/browser/android
parentd1e0c221a522f1e9a4691faf4bee7fb6a3de99de (diff)
downloadchromium_src-5aba5bc9fe839dce4e580e042cd6f53cdc963deb.zip
chromium_src-5aba5bc9fe839dce4e580e042cd6f53cdc963deb.tar.gz
chromium_src-5aba5bc9fe839dce4e580e042cd6f53cdc963deb.tar.bz2
Android: Move scheduling logic to CompositorImpl
This adds two ways of scheduling: - implicitly from LTHClient::ScheduleComposite(): This will post a task to composite immediately. - explicitly (for Chrome) through SetNeedsComposite() where there are no layer tree changes, but instead a Composite() will be scheduled for vsync with the Layout() callback giving the app a chance to update the tree. TBR=skyostil@chromium.org NOTRY=True BUG=234173 Review URL: https://codereview.chromium.org/239963002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270231 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/android')
-rw-r--r--content/browser/android/content_view_render_view.cc23
-rw-r--r--content/browser/android/content_view_render_view.h9
2 files changed, 7 insertions, 25 deletions
diff --git a/content/browser/android/content_view_render_view.cc b/content/browser/android/content_view_render_view.cc
index 9f5ed31..4a39885 100644
--- a/content/browser/android/content_view_render_view.cc
+++ b/content/browser/android/content_view_render_view.cc
@@ -53,8 +53,7 @@ bool ContentViewRenderView::RegisterContentViewRenderView(JNIEnv* env) {
ContentViewRenderView::ContentViewRenderView(JNIEnv* env,
jobject obj,
gfx::NativeWindow root_window)
- : buffers_swapped_during_composite_(false),
- layer_tree_build_helper_(new LayerTreeBuildHelperImpl()),
+ : layer_tree_build_helper_(new LayerTreeBuildHelperImpl()),
root_window_(root_window),
current_surface_format_(0) {
java_obj_.Reset(env, obj);
@@ -118,15 +117,6 @@ void ContentViewRenderView::SurfaceChanged(JNIEnv* env, jobject obj,
compositor_->SetWindowBounds(gfx::Size(width, height));
}
-jboolean ContentViewRenderView::Composite(JNIEnv* env, jobject obj) {
- if (!compositor_)
- return false;
-
- buffers_swapped_during_composite_ = false;
- compositor_->Composite();
- return buffers_swapped_during_composite_;
-}
-
jboolean ContentViewRenderView::CompositeToBitmap(JNIEnv* env, jobject obj,
jobject java_bitmap) {
gfx::JavaBitmap bitmap(java_bitmap);
@@ -139,19 +129,14 @@ jboolean ContentViewRenderView::CompositeToBitmap(JNIEnv* env, jobject obj,
void ContentViewRenderView::SetOverlayVideoMode(
JNIEnv* env, jobject obj, bool enabled) {
compositor_->SetHasTransparentBackground(enabled);
- Java_ContentViewRenderView_requestRender(env, obj);
}
-void ContentViewRenderView::ScheduleComposite() {
+void ContentViewRenderView::Layout() {
JNIEnv* env = base::android::AttachCurrentThread();
- Java_ContentViewRenderView_requestRender(env, java_obj_.obj());
-}
-
-void ContentViewRenderView::OnSwapBuffersPosted() {
- buffers_swapped_during_composite_ = true;
+ Java_ContentViewRenderView_onCompositorLayout(env, java_obj_.obj());
}
-void ContentViewRenderView::OnSwapBuffersCompleted() {
+void ContentViewRenderView::OnSwapBuffersCompleted(int pending_swap_buffers) {
JNIEnv* env = base::android::AttachCurrentThread();
Java_ContentViewRenderView_onSwapBuffersCompleted(env, java_obj_.obj());
}
diff --git a/content/browser/android/content_view_render_view.h b/content/browser/android/content_view_render_view.h
index 8f14456..cbdb1f1 100644
--- a/content/browser/android/content_view_render_view.h
+++ b/content/browser/android/content_view_render_view.h
@@ -43,18 +43,15 @@ class ContentViewRenderView : public CompositorClient {
jboolean CompositeToBitmap(JNIEnv* env, jobject obj, jobject java_bitmap);
void SetOverlayVideoMode(JNIEnv* env, jobject obj, bool enabled);
- // CompositorClient ---------------------------------------------------------
- virtual void ScheduleComposite() OVERRIDE;
- virtual void OnSwapBuffersPosted() OVERRIDE;
- virtual void OnSwapBuffersCompleted() OVERRIDE;
+ // CompositorClient implementation
+ virtual void Layout() OVERRIDE;
+ virtual void OnSwapBuffersCompleted(int pending_swap_buffers) OVERRIDE;
private:
virtual ~ContentViewRenderView();
void InitCompositor();
- bool buffers_swapped_during_composite_;
-
base::android::ScopedJavaGlobalRef<jobject> java_obj_;
scoped_ptr<LayerTreeBuildHelper> layer_tree_build_helper_;