Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1353)

Unified Diff: services/vsync/src/org/chromium/mojo/vsync/VSyncProviderImpl.java

Issue 1456913002: Use thread with looper and native message loop for vsync service. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | shell/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/vsync/src/org/chromium/mojo/vsync/VSyncProviderImpl.java
diff --git a/services/vsync/src/org/chromium/mojo/vsync/VSyncProviderImpl.java b/services/vsync/src/org/chromium/mojo/vsync/VSyncProviderImpl.java
index adca2bc38868191bbee83077214148079e1350c4..3c8cc117cff646b6646c3330e92ea928cc2e52d2 100644
--- a/services/vsync/src/org/chromium/mojo/vsync/VSyncProviderImpl.java
+++ b/services/vsync/src/org/chromium/mojo/vsync/VSyncProviderImpl.java
@@ -4,42 +4,21 @@
package org.chromium.mojo.vsync;
-import android.os.Handler;
-import android.os.Looper;
import android.view.Choreographer;
-import org.chromium.mojo.system.Core;
import org.chromium.mojo.system.MojoException;
-import org.chromium.mojo.system.RunLoop;
import org.chromium.mojom.vsync.VSyncProvider;
/**
* Android implementation of VSyncProvider.
*/
public class VSyncProviderImpl implements VSyncProvider, Choreographer.FrameCallback {
- private final RunLoop mRunLoop;
- private Choreographer mChoreographer;
+ private final Choreographer mChoreographer;
private AwaitVSyncResponse mCallback;
private Binding mBinding = null;
- public VSyncProviderImpl(Core core, Looper looper) {
- mRunLoop = core.getCurrentRunLoop();
- // The choreographer must be initialized on a thread with a looper.
- new Handler(looper).post(new Runnable() {
- @Override
- public void run() {
- final Choreographer choreographer = Choreographer.getInstance();
- mRunLoop.postDelayedTask(new Runnable() {
- @Override
- public void run() {
- mChoreographer = choreographer;
- if (mCallback != null) {
- mChoreographer.postFrameCallback(VSyncProviderImpl.this);
- }
- }
- }, 0);
- }
- });
+ public VSyncProviderImpl() {
+ mChoreographer = Choreographer.getInstance();
}
public void setBinding(Binding binding) {
@@ -62,20 +41,12 @@ public class VSyncProviderImpl implements VSyncProvider, Choreographer.FrameCall
return;
}
mCallback = callback;
- if (mChoreographer != null) {
- // Posting from another thread is allowed on a choreographer.
- mChoreographer.postFrameCallback(this);
- }
+ mChoreographer.postFrameCallback(this);
}
@Override
public void doFrame(final long frameTimeNanos) {
- mRunLoop.postDelayedTask(new Runnable() {
- @Override
- public void run() {
- mCallback.call(frameTimeNanos / 1000);
- mCallback = null;
- }
- }, 0);
+ mCallback.call(frameTimeNanos / 1000);
+ mCallback = null;
}
}
« no previous file with comments | « no previous file | shell/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698