| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef DEVICE_VR_OPENXR_CONTEXT_PROVIDER_CALLBACKS_H_ |
| #define DEVICE_VR_OPENXR_CONTEXT_PROVIDER_CALLBACKS_H_ |
| |
| #include "base/functional/callback_forward.h" |
| #include "base/memory/scoped_refptr.h" |
| |
| namespace viz { |
| class ContextProvider; |
| } |
| |
| // VizContextProviderCallback is implemented by `OpenXrRenderLoop` and is called |
| // by the VizContextProviderFactoryAsync when a new `viz::ContextProvider` is |
| // ready for the render loop thread to consume. |
| using VizContextProviderCallback = |
| base::OnceCallback<void(scoped_refptr<viz::ContextProvider>)>; |
| |
| // VizContextProviderFactoryAsync is implemented by `IsolatedXRRuntimeProvider` |
| // and is called when the `OpenXrRenderLoop` needs a new `viz::ContextProvider` |
| // to be created. No guarantees are made about the thread that the |
| // `VizContextProviderCallback` is called back on, and it's expected that the |
| // render loop will use `BindPostTask` to ensure that it is called on the |
| // appropriate thread. |
| using VizContextProviderFactoryAsync = |
| base::RepeatingCallback<void(VizContextProviderCallback)>; |
| |
| #endif // DEVICE_VR_OPENXR_CONTEXT_PROVIDER_CALLBACKS_H_ |