| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 EXAMPLES_GANESH_APP_GANESH_VIEW_H_ | 5 #ifndef EXAMPLES_GANESH_APP_GANESH_VIEW_H_ |
| 6 #define EXAMPLES_GANESH_APP_GANESH_VIEW_H_ | 6 #define EXAMPLES_GANESH_APP_GANESH_VIEW_H_ |
| 7 | 7 |
| 8 #include "examples/ganesh_app/ganesh_context.h" | 8 #include "examples/ganesh_app/ganesh_context.h" |
| 9 #include "examples/ganesh_app/mojo_gl_context.h" | 9 #include "examples/ganesh_app/mojo_gl_context.h" |
| 10 #include "examples/ganesh_app/texture_uploader.h" | 10 #include "examples/ganesh_app/texture_uploader.h" |
| 11 #include "mc/scheduler/scheduler.h" |
| 11 #include "mojo/services/public/cpp/view_manager/view_observer.h" | 12 #include "mojo/services/public/cpp/view_manager/view_observer.h" |
| 12 #include "mojo/services/public/interfaces/surfaces/surface_id.mojom.h" | 13 #include "mojo/services/public/interfaces/surfaces/surface_id.mojom.h" |
| 13 | 14 |
| 14 namespace mojo { | 15 namespace mojo { |
| 15 class Shell; | 16 class Shell; |
| 16 } | 17 } |
| 17 | 18 |
| 18 namespace examples { | 19 namespace examples { |
| 19 | 20 |
| 20 class GaneshView : public TextureUploader::Client, public mojo::ViewObserver { | 21 class GaneshView : public TextureUploader::Client, |
| 22 public mc::Scheduler::Client, |
| 23 public mojo::ViewObserver { |
| 21 public: | 24 public: |
| 22 GaneshView(mojo::Shell* shell, mojo::View* view); | 25 GaneshView(mojo::Shell* shell, mojo::View* view); |
| 23 ~GaneshView(); | 26 ~GaneshView(); |
| 24 | 27 |
| 25 private: | 28 private: |
| 29 // From ViewObserver |
| 26 void OnViewDestroyed(mojo::View* view) override; | 30 void OnViewDestroyed(mojo::View* view) override; |
| 27 void OnViewBoundsChanged(mojo::View* view, | 31 void OnViewBoundsChanged(mojo::View* view, |
| 28 const mojo::Rect& old_bounds, | 32 const mojo::Rect& old_bounds, |
| 29 const mojo::Rect& new_bounds) override; | 33 const mojo::Rect& new_bounds) override; |
| 30 | 34 |
| 35 // From TextureUploader::Client |
| 31 void OnSurfaceIdAvailable(mojo::SurfaceIdPtr surface_id) override; | 36 void OnSurfaceIdAvailable(mojo::SurfaceIdPtr surface_id) override; |
| 32 | 37 |
| 33 void Draw(const mojo::Size& size); | 38 // From mc::Scheduler::Client |
| 39 void BeginFrame(base::TimeTicks frame_time, |
| 40 base::TimeTicks deadline) override; |
| 41 |
| 42 base::TimeDelta Draw(base::TimeTicks frame_time); |
| 34 | 43 |
| 35 mojo::View* view_; | 44 mojo::View* view_; |
| 36 MojoGLContext gl_context_; | 45 MojoGLContext gl_context_; |
| 37 GaneshContext gr_context_; | 46 GaneshContext gr_context_; |
| 38 TextureUploader texture_uploader_; | 47 TextureUploader texture_uploader_; |
| 48 base::TimeTicks base_time_; |
| 49 mc::Scheduler scheduler_; |
| 39 | 50 |
| 40 DISALLOW_COPY_AND_ASSIGN(GaneshView); | 51 DISALLOW_COPY_AND_ASSIGN(GaneshView); |
| 41 }; | 52 }; |
| 42 | 53 |
| 43 } // namespace examples | 54 } // namespace examples |
| 44 | 55 |
| 45 #endif // EXAMPLES_GANESH_APP_GANESH_VIEW_H_ | 56 #endif // EXAMPLES_GANESH_APP_GANESH_VIEW_H_ |
| OLD | NEW |