Commit 2f96cd9f authored by Daniel Cheng's avatar Daniel Cheng Committed by Commit Bot

Tweak ARCoreDevice::CreateMainThreadCallback to work generically.

Bug: none
Change-Id: Id43c913c699283df72696c8f97b7b869befeebd1
Reviewed-on: https://chromium-review.googlesource.com/1093265Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Reviewed-by: default avatarTaiju Tsuiki <tzik@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566764}
parent 31414f90
...@@ -63,19 +63,6 @@ mojom::VRDisplayInfoPtr CreateVRDisplayInfo(uint32_t device_id) { ...@@ -63,19 +63,6 @@ mojom::VRDisplayInfoPtr CreateVRDisplayInfo(uint32_t device_id) {
return device; return device;
} }
void RunCallbackOnTaskRunnerVoid(
const scoped_refptr<base::TaskRunner>& task_runner,
base::OnceClosure callback) {
task_runner->PostTask(FROM_HERE, std::move(callback));
}
base::OnceCallback<void(void)> CreateThreadCallbackVoid(
const scoped_refptr<base::TaskRunner>& task_runner,
base::OnceCallback<void(void)> callback) {
return base::BindOnce(&RunCallbackOnTaskRunnerVoid, task_runner,
std::move(callback));
}
} // namespace } // namespace
ARCoreDevice::ARCoreDevice() ARCoreDevice::ARCoreDevice()
...@@ -133,10 +120,8 @@ void ARCoreDevice::OnMailboxBridgeReady() { ...@@ -133,10 +120,8 @@ void ARCoreDevice::OnMailboxBridgeReady() {
// TODO(https://crbug.com/836553): use same GL thread as GVR. // TODO(https://crbug.com/836553): use same GL thread as GVR.
arcore_gl_thread_ = std::make_unique<ARCoreGlThread>( arcore_gl_thread_ = std::make_unique<ARCoreGlThread>(
std::move(mailbox_bridge_), std::move(mailbox_bridge_),
CreateThreadCallbackVoid( CreateMainThreadCallback(base::BindOnce(
main_thread_task_runner_, &ARCoreDevice::OnARCoreGlThreadInitialized, GetWeakPtr())));
base::BindOnce(&ARCoreDevice::OnARCoreGlThreadInitialized,
GetWeakPtr())));
arcore_gl_thread_->Start(); arcore_gl_thread_->Start();
} }
...@@ -325,7 +310,7 @@ void ARCoreDevice::OnRequestSessionPreconditionsComplete( ...@@ -325,7 +310,7 @@ void ARCoreDevice::OnRequestSessionPreconditionsComplete(
PostTaskToGlThread(base::BindOnce( PostTaskToGlThread(base::BindOnce(
&ARCoreGl::Initialize, arcore_gl_thread_->GetARCoreGl()->GetWeakPtr(), &ARCoreGl::Initialize, arcore_gl_thread_->GetARCoreGl()->GetWeakPtr(),
CreateMainThreadCallback<bool>( CreateMainThreadCallback(
base::BindOnce(&ARCoreDevice::OnARCoreGlInitializationComplete, base::BindOnce(&ARCoreDevice::OnARCoreGlInitializationComplete,
GetWeakPtr(), std::move(callback))))); GetWeakPtr(), std::move(callback)))));
} }
......
...@@ -60,18 +60,19 @@ class ARCoreDevice : public VRDeviceBase { ...@@ -60,18 +60,19 @@ class ARCoreDevice : public VRDeviceBase {
mojom::VRDisplayHost::RequestSessionCallback callback, mojom::VRDisplayHost::RequestSessionCallback callback,
bool success); bool success);
template <typename DataType> template <typename... Args>
static void RunCallbackOnTaskRunner( static void RunCallbackOnTaskRunner(
const scoped_refptr<base::TaskRunner>& task_runner, const scoped_refptr<base::TaskRunner>& task_runner,
base::OnceCallback<void(DataType)> callback, base::OnceCallback<void(Args...)> callback,
DataType data) { Args... args) {
task_runner->PostTask(FROM_HERE, task_runner->PostTask(
base::BindOnce(std::move(callback), std::move(data))); FROM_HERE,
base::BindOnce(std::move(callback), std::forward<Args>(args)...));
} }
template <typename DataType> template <typename... Args>
base::OnceCallback<void(DataType)> CreateMainThreadCallback( base::OnceCallback<void(Args...)> CreateMainThreadCallback(
base::OnceCallback<void(DataType)> callback) { base::OnceCallback<void(Args...)> callback) {
return base::BindOnce(&ARCoreDevice::RunCallbackOnTaskRunner<DataType>, return base::BindOnce(&ARCoreDevice::RunCallbackOnTaskRunner<Args...>,
main_thread_task_runner_, std::move(callback)); main_thread_task_runner_, std::move(callback));
} }
......
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