Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(470)

Side by Side Diff: services/gfx/compositor/scene_impl.h

Issue 1997513002: Mozart: Generalize frame scheduling. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-jank2
Patch Set: add comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « services/gfx/compositor/renderer_state.h ('k') | services/gfx/compositor/scene_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 SERVICES_GFX_COMPOSITOR_SCENE_IMPL_H_ 5 #ifndef SERVICES_GFX_COMPOSITOR_SCENE_IMPL_H_
6 #define SERVICES_GFX_COMPOSITOR_SCENE_IMPL_H_ 6 #define SERVICES_GFX_COMPOSITOR_SCENE_IMPL_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "mojo/common/binding_set.h" 9 #include "mojo/common/binding_set.h"
10 #include "mojo/public/cpp/bindings/binding.h" 10 #include "mojo/public/cpp/bindings/binding.h"
11 #include "mojo/services/gfx/composition/interfaces/scenes.mojom.h" 11 #include "mojo/services/gfx/composition/interfaces/scenes.mojom.h"
12 #include "mojo/services/gfx/composition/interfaces/scheduling.mojom.h" 12 #include "mojo/services/gfx/composition/interfaces/scheduling.mojom.h"
13 #include "services/gfx/compositor/compositor_engine.h" 13 #include "services/gfx/compositor/compositor_engine.h"
14 #include "services/gfx/compositor/scene_state.h" 14 #include "services/gfx/compositor/scene_state.h"
15 15
16 namespace compositor { 16 namespace compositor {
17 17
18 // Scene interface implementation. 18 // Scene interface implementation.
19 // This object is owned by its associated SceneState. 19 // This object is owned by its associated SceneState.
20 class SceneImpl : public mojo::gfx::composition::Scene, 20 class SceneImpl : public mojo::gfx::composition::Scene,
21 public mojo::gfx::composition::SceneScheduler { 21 public mojo::gfx::composition::FrameScheduler {
22 public: 22 public:
23 SceneImpl( 23 SceneImpl(
24 CompositorEngine* engine, 24 CompositorEngine* engine,
25 SceneState* state, 25 SceneState* state,
26 mojo::InterfaceRequest<mojo::gfx::composition::Scene> scene_request); 26 mojo::InterfaceRequest<mojo::gfx::composition::Scene> scene_request);
27 ~SceneImpl() override; 27 ~SceneImpl() override;
28 28
29 void set_connection_error_handler(const base::Closure& handler) { 29 void set_connection_error_handler(const base::Closure& handler) {
30 scene_binding_.set_connection_error_handler(handler); 30 scene_binding_.set_connection_error_handler(handler);
31 } 31 }
32 32
33 private: 33 private:
34 // |Scene|: 34 // |Scene|:
35 void SetListener(mojo::InterfaceHandle<mojo::gfx::composition::SceneListener> 35 void SetListener(mojo::InterfaceHandle<mojo::gfx::composition::SceneListener>
36 listener) override; 36 listener) override;
37 void Update(mojo::gfx::composition::SceneUpdatePtr update) override; 37 void Update(mojo::gfx::composition::SceneUpdatePtr update) override;
38 void Publish(mojo::gfx::composition::SceneMetadataPtr metadata) override; 38 void Publish(mojo::gfx::composition::SceneMetadataPtr metadata) override;
39 void GetScheduler( 39 void GetScheduler(
40 mojo::InterfaceRequest<mojo::gfx::composition::SceneScheduler> 40 mojo::InterfaceRequest<mojo::gfx::composition::FrameScheduler>
41 scheduler_request) override; 41 scheduler_request) override;
42 42
43 // |SceneScheduler|: 43 // |FrameScheduler|:
44 void ScheduleFrame(const ScheduleFrameCallback& callback) override; 44 void ScheduleFrame(const ScheduleFrameCallback& callback) override;
45 45
46 CompositorEngine* const engine_; 46 CompositorEngine* const engine_;
47 SceneState* const state_; 47 SceneState* const state_;
48 mojo::Binding<mojo::gfx::composition::Scene> scene_binding_; 48 mojo::Binding<mojo::gfx::composition::Scene> scene_binding_;
49 mojo::BindingSet<mojo::gfx::composition::SceneScheduler> scheduler_bindings_; 49 mojo::BindingSet<mojo::gfx::composition::FrameScheduler> scheduler_bindings_;
50 50
51 DISALLOW_COPY_AND_ASSIGN(SceneImpl); 51 DISALLOW_COPY_AND_ASSIGN(SceneImpl);
52 }; 52 };
53 53
54 } // namespace compositor 54 } // namespace compositor
55 55
56 #endif // SERVICES_GFX_COMPOSITOR_SCENE_IMPL_H_ 56 #endif // SERVICES_GFX_COMPOSITOR_SCENE_IMPL_H_
OLDNEW
« no previous file with comments | « services/gfx/compositor/renderer_state.h ('k') | services/gfx/compositor/scene_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698