Chromium Code Reviews| Index: services/ui/ws/frame_generator.h |
| diff --git a/services/ui/ws/frame_generator.h b/services/ui/ws/frame_generator.h |
| index 4372581d5c4f4afbe0b2feabb3b1a4300a477bc5..cd760f00657e66a7a0796eef522ded1aed2bacb4 100644 |
| --- a/services/ui/ws/frame_generator.h |
| +++ b/services/ui/ws/frame_generator.h |
| @@ -10,6 +10,8 @@ |
| #include "base/macros.h" |
| #include "base/timer/timer.h" |
| #include "cc/ipc/display_compositor.mojom.h" |
| +#include "cc/output/compositor_frame_sink_client.h" |
| +#include "cc/scheduler/begin_frame_source.h" |
| #include "cc/surfaces/frame_sink_id.h" |
| #include "cc/surfaces/local_surface_id_allocator.h" |
| #include "cc/surfaces/surface_id.h" |
| @@ -22,6 +24,7 @@ |
| #include "ui/gfx/native_widget_types.h" |
| namespace cc { |
| +class CompositorFrameSink; |
| class RenderPass; |
| } |
| @@ -37,11 +40,14 @@ class ServerWindow; |
| // Responsible for redrawing the display in response to the redraw requests by |
| // submitting CompositorFrames to the owned CompositorFrameSink. |
| -class FrameGenerator : public cc::mojom::MojoCompositorFrameSinkClient { |
| +class FrameGenerator : public cc::CompositorFrameSinkClient, |
| + public cc::BeginFrameObserver { |
| public: |
| - FrameGenerator(FrameGeneratorDelegate* delegate, |
| - ServerWindow* root_window, |
| - gfx::AcceleratedWidget widget); |
| + FrameGenerator( |
| + FrameGeneratorDelegate* delegate, |
| + ServerWindow* root_window, |
| + gfx::AcceleratedWidget widget, |
|
Fady Samuel
2017/03/10 18:37:57
Remove this?
Alex Z.
2017/03/10 19:08:39
Done.
|
| + std::unique_ptr<cc::CompositorFrameSink> compositor_frame_sink); |
| ~FrameGenerator() override; |
| void SetDeviceScaleFactor(float device_scale_factor); |
| @@ -54,12 +60,24 @@ class FrameGenerator : public cc::mojom::MojoCompositorFrameSinkClient { |
| private: |
| friend class ui::ws::test::FrameGeneratorTest; |
|
Fady Samuel
2017/03/10 18:37:57
Delete this.
Alex Z.
2017/03/10 19:08:39
Done.
|
| - // cc::mojom::MojoCompositorFrameSinkClient implementation: |
| - void DidReceiveCompositorFrameAck() override; |
| - void OnBeginFrame(const cc::BeginFrameArgs& begin_frame_arags) override; |
| + // cc::CompositorFrameSinkClient implementation: |
| + void SetBeginFrameSource(cc::BeginFrameSource* source) override; |
| void ReclaimResources(const cc::ReturnedResourceArray& resources) override; |
| - void WillDrawSurface(const cc::LocalSurfaceId& local_surface_id, |
| - const gfx::Rect& damage_rect) override; |
| + void SetTreeActivationCallback(const base::Closure& callback) override; |
| + void DidReceiveCompositorFrameAck() override; |
| + void DidLoseCompositorFrameSink() override; |
| + void OnDraw(const gfx::Transform& transform, |
| + const gfx::Rect& viewport, |
| + bool resourceless_software_draw) override; |
| + void SetMemoryPolicy(const cc::ManagedMemoryPolicy& policy) override; |
| + void SetExternalTilePriorityConstraints( |
| + const gfx::Rect& viewport_rect, |
| + const gfx::Transform& transform) override; |
| + |
| + // cc::BeginFrameObserver implementation: |
| + void OnBeginFrame(const cc::BeginFrameArgs& args) override; |
| + const cc::BeginFrameArgs& LastUsedBeginFrameArgs() const override; |
| + void OnBeginFrameSourcePausedChanged(bool paused) override; |
| // Generates the CompositorFrame. |
| cc::CompositorFrame GenerateCompositorFrame(const gfx::Rect& output_rect); |
| @@ -68,20 +86,19 @@ class FrameGenerator : public cc::mojom::MojoCompositorFrameSinkClient { |
| // the provided cc::RenderPass. |
| void DrawWindow(cc::RenderPass* pass); |
| + void SetNeedsBeginFrame(bool needs_begin_frame); |
| + |
| FrameGeneratorDelegate* delegate_; |
| ServerWindow* const root_window_; |
| float device_scale_factor_ = 1.f; |
| - gfx::Size last_submitted_frame_size_; |
| - cc::LocalSurfaceId local_surface_id_; |
| - cc::LocalSurfaceIdAllocator id_allocator_; |
| - cc::mojom::MojoCompositorFrameSinkAssociatedPtr compositor_frame_sink_; |
| - cc::mojom::DisplayPrivateAssociatedPtr display_private_; |
| + std::unique_ptr<cc::CompositorFrameSink> compositor_frame_sink_; |
| + cc::BeginFrameArgs last_begin_frame_args_; |
| + cc::BeginFrameSource* begin_frame_source_ = nullptr; |
| + bool observing_begin_frames_ = false; |
| cc::SurfaceInfo window_manager_surface_info_; |
| - mojo::Binding<cc::mojom::MojoCompositorFrameSinkClient> binding_; |
| - |
| DISALLOW_COPY_AND_ASSIGN(FrameGenerator); |
| }; |