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

Side by Side Diff: services/gfx/compositor/renderer_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/frame_dispatcher.cc ('k') | services/gfx/compositor/renderer_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_RENDERER_IMPL_H_ 5 #ifndef SERVICES_GFX_COMPOSITOR_RENDERER_IMPL_H_
6 #define SERVICES_GFX_COMPOSITOR_RENDERER_IMPL_H_ 6 #define SERVICES_GFX_COMPOSITOR_RENDERER_IMPL_H_
7 7
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "mojo/common/binding_set.h" 10 #include "mojo/common/binding_set.h"
11 #include "mojo/public/cpp/bindings/binding.h" 11 #include "mojo/public/cpp/bindings/binding.h"
12 #include "mojo/services/gfx/composition/interfaces/renderers.mojom.h" 12 #include "mojo/services/gfx/composition/interfaces/renderers.mojom.h"
13 #include "services/gfx/compositor/compositor_engine.h" 13 #include "services/gfx/compositor/compositor_engine.h"
14 #include "services/gfx/compositor/renderer_state.h" 14 #include "services/gfx/compositor/renderer_state.h"
15 15
16 namespace compositor { 16 namespace compositor {
17 17
18 // Renderer interface implementation. 18 // Renderer interface implementation.
19 // This object is owned by its associated RendererState. 19 // This object is owned by its associated RendererState.
20 class RendererImpl : public mojo::gfx::composition::Renderer, 20 class RendererImpl : public mojo::gfx::composition::Renderer,
21 public mojo::gfx::composition::FrameScheduler,
21 public mojo::gfx::composition::HitTester { 22 public mojo::gfx::composition::HitTester {
22 public: 23 public:
23 RendererImpl(CompositorEngine* engine, 24 RendererImpl(CompositorEngine* engine,
24 RendererState* state, 25 RendererState* state,
25 mojo::InterfaceRequest<mojo::gfx::composition::Renderer> 26 mojo::InterfaceRequest<mojo::gfx::composition::Renderer>
26 renderer_request); 27 renderer_request);
27 ~RendererImpl() override; 28 ~RendererImpl() override;
28 29
29 void set_connection_error_handler(const base::Closure& handler) { 30 void set_connection_error_handler(const base::Closure& handler) {
30 renderer_binding_.set_connection_error_handler(handler); 31 renderer_binding_.set_connection_error_handler(handler);
31 } 32 }
32 33
33 private: 34 private:
34 // |Renderer|: 35 // |Renderer|:
35 void SetRootScene(mojo::gfx::composition::SceneTokenPtr scene_token, 36 void SetRootScene(mojo::gfx::composition::SceneTokenPtr scene_token,
36 uint32 scene_version, 37 uint32 scene_version,
37 mojo::RectPtr viewport) override; 38 mojo::RectPtr viewport) override;
38 void ClearRootScene() override; 39 void ClearRootScene() override;
40 void GetScheduler(
41 mojo::InterfaceRequest<mojo::gfx::composition::FrameScheduler>
42 scheduler_request) override;
39 void GetHitTester(mojo::InterfaceRequest<mojo::gfx::composition::HitTester> 43 void GetHitTester(mojo::InterfaceRequest<mojo::gfx::composition::HitTester>
40 hit_tester_request) override; 44 hit_tester_request) override;
41 45
46 // |FrameScheduler|:
47 void ScheduleFrame(const ScheduleFrameCallback& callback) override;
48
42 // |HitTester|: 49 // |HitTester|:
43 void HitTest(mojo::PointFPtr point, const HitTestCallback& callback) override; 50 void HitTest(mojo::PointFPtr point, const HitTestCallback& callback) override;
44 51
45 CompositorEngine* const engine_; 52 CompositorEngine* const engine_;
46 RendererState* const state_; 53 RendererState* const state_;
47 mojo::Binding<mojo::gfx::composition::Renderer> renderer_binding_; 54 mojo::Binding<mojo::gfx::composition::Renderer> renderer_binding_;
55 mojo::BindingSet<mojo::gfx::composition::FrameScheduler> scheduler_bindings_;
48 mojo::BindingSet<mojo::gfx::composition::HitTester> hit_tester_bindings; 56 mojo::BindingSet<mojo::gfx::composition::HitTester> hit_tester_bindings;
49 57
50 DISALLOW_COPY_AND_ASSIGN(RendererImpl); 58 DISALLOW_COPY_AND_ASSIGN(RendererImpl);
51 }; 59 };
52 60
53 } // namespace compositor 61 } // namespace compositor
54 62
55 #endif // SERVICES_GFX_COMPOSITOR_RENDERER_IMPL_H_ 63 #endif // SERVICES_GFX_COMPOSITOR_RENDERER_IMPL_H_
OLDNEW
« no previous file with comments | « services/gfx/compositor/frame_dispatcher.cc ('k') | services/gfx/compositor/renderer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698