Commit 6145f6ff authored by Bo Liu's avatar Bo Liu Committed by Commit Bot

Convert AddVSyncCompleteCallback to OnceClosure

It's called only once. Use move semantics and make that clear.

Change-Id: I6f6e41a19a8198b9821c7c17d53d1f2c2ca09fef
Reviewed-on: https://chromium-review.googlesource.com/c/1313056Reviewed-by: default avatarPaul Miller <paulmiller@chromium.org>
Commit-Queue: Bo <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605059}
parent 570c3c6c
...@@ -93,7 +93,7 @@ bool SynchronousCompositorSyncCallBridge::WaitAfterVSyncOnUIThread( ...@@ -93,7 +93,7 @@ bool SynchronousCompositorSyncCallBridge::WaitAfterVSyncOnUIThread(
return true; return true;
} }
window_android_in_vsync_ = window_android; window_android_in_vsync_ = window_android;
window_android_in_vsync_->AddVSyncCompleteCallback(base::BindRepeating( window_android_in_vsync_->AddVSyncCompleteCallback(base::BindOnce(
&SynchronousCompositorSyncCallBridge::VSyncCompleteOnUIThread, this)); &SynchronousCompositorSyncCallBridge::VSyncCompleteOnUIThread, this));
return true; return true;
} }
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#include "ui/android/window_android.h" #include "ui/android/window_android.h"
#include <utility>
#include "base/android/jni_android.h" #include "base/android/jni_android.h"
#include "base/android/jni_array.h" #include "base/android/jni_array.h"
#include "base/android/jni_string.h" #include "base/android/jni_string.h"
...@@ -178,8 +180,8 @@ void WindowAndroid::AddObserver(WindowAndroidObserver* observer) { ...@@ -178,8 +180,8 @@ void WindowAndroid::AddObserver(WindowAndroidObserver* observer) {
observer_list_.AddObserver(observer); observer_list_.AddObserver(observer);
} }
void WindowAndroid::AddVSyncCompleteCallback(const base::Closure& callback) { void WindowAndroid::AddVSyncCompleteCallback(base::OnceClosure callback) {
vsync_complete_callbacks_.push_back(callback); vsync_complete_callbacks_.emplace_back(std::move(callback));
} }
void WindowAndroid::RemoveObserver(WindowAndroidObserver* observer) { void WindowAndroid::RemoveObserver(WindowAndroidObserver* observer) {
...@@ -249,8 +251,8 @@ void WindowAndroid::OnVSync(JNIEnv* env, ...@@ -249,8 +251,8 @@ void WindowAndroid::OnVSync(JNIEnv* env,
begin_frame_source_->OnVSync(frame_time, vsync_period); begin_frame_source_->OnVSync(frame_time, vsync_period);
for (const base::Closure& callback : vsync_complete_callbacks_) for (base::OnceClosure& callback : vsync_complete_callbacks_)
callback.Run(); std::move(callback).Run();
vsync_complete_callbacks_.clear(); vsync_complete_callbacks_.clear();
if (needs_begin_frames_) if (needs_begin_frames_)
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#define UI_ANDROID_WINDOW_ANDROID_H_ #define UI_ANDROID_WINDOW_ANDROID_H_
#include <jni.h> #include <jni.h>
#include <list>
#include <memory> #include <memory>
#include <string> #include <string>
#include <vector> #include <vector>
...@@ -64,7 +63,7 @@ class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid { ...@@ -64,7 +63,7 @@ class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid {
viz::BeginFrameSource* GetBeginFrameSource(); viz::BeginFrameSource* GetBeginFrameSource();
// Runs the provided callback as soon as the current vsync was handled. // Runs the provided callback as soon as the current vsync was handled.
void AddVSyncCompleteCallback(const base::Closure& callback); void AddVSyncCompleteCallback(base::OnceClosure callback);
void SetNeedsAnimate(); void SetNeedsAnimate();
void Animate(base::TimeTicks begin_frame_time); void Animate(base::TimeTicks begin_frame_time);
...@@ -117,7 +116,7 @@ class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid { ...@@ -117,7 +116,7 @@ class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid {
std::unique_ptr<WindowBeginFrameSource> begin_frame_source_; std::unique_ptr<WindowBeginFrameSource> begin_frame_source_;
bool needs_begin_frames_; bool needs_begin_frames_;
std::list<base::Closure> vsync_complete_callbacks_; std::vector<base::OnceClosure> vsync_complete_callbacks_;
float mouse_wheel_scroll_factor_; float mouse_wheel_scroll_factor_;
bool vsync_paused_ = false; bool vsync_paused_ = false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment