OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_MUS_PUBLIC_CPP_VIEW_SURFACE_H_ | 5 #ifndef COMPONENTS_MUS_PUBLIC_CPP_VIEW_SURFACE_H_ |
6 #define COMPONENTS_MUS_PUBLIC_CPP_VIEW_SURFACE_H_ | 6 #define COMPONENTS_MUS_PUBLIC_CPP_VIEW_SURFACE_H_ |
7 | 7 |
8 #include "base/observer_list.h" | 8 #include "base/observer_list.h" |
9 #include "components/mus/public/interfaces/compositor_frame.mojom.h" | 9 #include "components/mus/public/interfaces/compositor_frame.mojom.h" |
10 #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" | 10 #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" |
11 #include "third_party/mojo/src/mojo/public/cpp/bindings/interface_ptr_info.h" | 11 #include "third_party/mojo/src/mojo/public/cpp/bindings/interface_ptr_info.h" |
12 | 12 |
13 namespace mus { | 13 namespace mojo { |
14 | 14 |
15 class ViewSurfaceClient; | 15 class ViewSurfaceClient; |
16 class View; | 16 class View; |
17 | 17 |
18 // A ViewSurface is wrapper to simplify submitting CompositorFrames to Views, | 18 // A ViewSurface is wrapper to simplify submitting CompositorFrames to Views, |
19 // and receiving ReturnedResources. | 19 // and receiving ReturnedResources. |
20 class ViewSurface : public mojo::SurfaceClient { | 20 class ViewSurface : public mojo::SurfaceClient { |
21 public: | 21 public: |
22 ~ViewSurface() override; | 22 ~ViewSurface() override; |
23 | 23 |
24 // Called to indicate that the current thread has assumed control of this | 24 // Called to indicate that the current thread has assumed control of this |
25 // object. | 25 // object. |
26 void BindToThread(); | 26 void BindToThread(); |
27 | 27 |
28 // TODO(fsamuel): Add a callback. | 28 // TODO(fsamuel): Add a callback. |
29 void SubmitCompositorFrame(mojo::CompositorFramePtr frame); | 29 void SubmitCompositorFrame(mojo::CompositorFramePtr frame); |
30 | 30 |
31 void set_client(ViewSurfaceClient* client) { client_ = client; } | 31 void set_client(mojo::ViewSurfaceClient* client) { client_ = client; } |
32 | 32 |
33 private: | 33 private: |
34 friend class View; | 34 friend class mojo::View; |
35 | 35 |
36 ViewSurface(mojo::InterfacePtrInfo<mojo::Surface> surface_info, | 36 ViewSurface(mojo::InterfacePtrInfo<mojo::Surface> surface_info, |
37 mojo::InterfaceRequest<mojo::SurfaceClient> client_request); | 37 mojo::InterfaceRequest<mojo::SurfaceClient> client_request); |
38 | 38 |
39 // SurfaceClient implementation: | 39 // SurfaceClient implementation: |
40 void ReturnResources( | 40 void ReturnResources( |
41 mojo::Array<mojo::ReturnedResourcePtr> resources) override; | 41 mojo::Array<mojo::ReturnedResourcePtr> resources) override; |
42 | 42 |
43 ViewSurfaceClient* client_; | 43 mojo::ViewSurfaceClient* client_; |
44 mojo::InterfacePtrInfo<mojo::Surface> surface_info_; | 44 mojo::InterfacePtrInfo<mojo::Surface> surface_info_; |
45 mojo::InterfaceRequest<mojo::SurfaceClient> client_request_; | 45 mojo::InterfaceRequest<mojo::SurfaceClient> client_request_; |
46 mojo::SurfacePtr surface_; | 46 mojo::SurfacePtr surface_; |
47 mojo::Binding<mojo::SurfaceClient> client_binding_; | 47 mojo::Binding<mojo::SurfaceClient> client_binding_; |
48 bool bound_to_thread_; | 48 bool bound_to_thread_; |
49 }; | 49 }; |
50 | 50 |
51 } // namespace mus | 51 } // namespace mojo |
52 | 52 |
53 #endif // COMPONENTS_MUS_PUBLIC_CPP_VIEW_SURFACE_H_ | 53 #endif // COMPONENTS_MUS_PUBLIC_CPP_VIEW_SURFACE_H_ |
OLD | NEW |