| Index: services/ui/ws/frame_generator.cc
|
| diff --git a/services/ui/ws/frame_generator.cc b/services/ui/ws/frame_generator.cc
|
| index add70fc3e5d92e25f96b0351eed9f62a01ea8be1..8e3d7a6253f0c66716f4224628208cb5e5df5f7a 100644
|
| --- a/services/ui/ws/frame_generator.cc
|
| +++ b/services/ui/ws/frame_generator.cc
|
| @@ -10,9 +10,7 @@
|
| #include "cc/quads/render_pass_draw_quad.h"
|
| #include "cc/quads/shared_quad_state.h"
|
| #include "cc/quads/surface_draw_quad.h"
|
| -#include "gpu/ipc/client/gpu_channel_host.h"
|
| -#include "services/ui/surfaces/display_compositor.h"
|
| -#include "services/ui/surfaces/surfaces_context_provider.h"
|
| +#include "cc/surfaces/surface_id.h"
|
| #include "services/ui/ws/frame_generator_delegate.h"
|
| #include "services/ui/ws/server_window.h"
|
| #include "services/ui/ws/server_window_compositor_frame_sink_manager.h"
|
| @@ -43,46 +41,19 @@ FrameGenerator::~FrameGenerator() {
|
| compositor_frame_sink_.reset();
|
| }
|
|
|
| -void FrameGenerator::OnGpuChannelEstablished(
|
| - scoped_refptr<gpu::GpuChannelHost> channel) {
|
| - if (widget_ != gfx::kNullAcceleratedWidget) {
|
| - cc::mojom::MojoCompositorFrameSinkRequest request =
|
| - mojo::GetProxy(&compositor_frame_sink_);
|
| - // TODO(fsamuel): FrameGenerator should not know about
|
| - // SurfacesContextProvider. In fact, FrameGenerator should not know
|
| - // about GpuChannelHost.
|
| - root_window_->CreateCompositorFrameSink(
|
| - mojom::CompositorFrameSinkType::DEFAULT, widget_,
|
| - channel->gpu_memory_buffer_manager(),
|
| - new SurfacesContextProvider(widget_, channel), std::move(request),
|
| - binding_.CreateInterfacePtrAndBind());
|
| - // TODO(fsamuel): This means we're always requesting a new BeginFrame signal
|
| - // even when we don't need it. Once surface ID propagation work is done,
|
| - // this will not be necessary because FrameGenerator will only need a
|
| - // BeginFrame if the window manager changes.
|
| - compositor_frame_sink_->SetNeedsBeginFrame(true);
|
| - } else {
|
| - gpu_channel_ = std::move(channel);
|
| - }
|
| -}
|
| -
|
| void FrameGenerator::OnAcceleratedWidgetAvailable(
|
| gfx::AcceleratedWidget widget) {
|
| - widget_ = widget;
|
| - if (gpu_channel_ && widget != gfx::kNullAcceleratedWidget) {
|
| - cc::mojom::MojoCompositorFrameSinkRequest request =
|
| - mojo::GetProxy(&compositor_frame_sink_);
|
| - root_window_->CreateCompositorFrameSink(
|
| - mojom::CompositorFrameSinkType::DEFAULT, widget_,
|
| - gpu_channel_->gpu_memory_buffer_manager(),
|
| - new SurfacesContextProvider(widget_, gpu_channel_),
|
| - std::move(request), binding_.CreateInterfacePtrAndBind());
|
| - // TODO(fsamuel): This means we're always requesting a new BeginFrame signal
|
| - // even when we don't need it. Once surface ID propagation work is done,
|
| - // this will not be necessary because FrameGenerator will only need a
|
| - // BeginFrame if the window manager changes.
|
| - compositor_frame_sink_->SetNeedsBeginFrame(true);
|
| - }
|
| + DCHECK_NE(gfx::kNullAcceleratedWidget, widget);
|
| + cc::mojom::MojoCompositorFrameSinkRequest request =
|
| + mojo::GetProxy(&compositor_frame_sink_);
|
| + root_window_->CreateCompositorFrameSink(
|
| + mojom::CompositorFrameSinkType::DEFAULT, widget, std::move(request),
|
| + binding_.CreateInterfacePtrAndBind());
|
| + // TODO(fsamuel): This means we're always requesting a new BeginFrame signal
|
| + // even when we don't need it. Once surface ID propagation work is done,
|
| + // this will not be necessary because FrameGenerator will only need a
|
| + // BeginFrame if the window manager changes.
|
| + compositor_frame_sink_->SetNeedsBeginFrame(true);
|
| }
|
|
|
| void FrameGenerator::OnSurfaceCreated(const cc::SurfaceId& surface_id,
|
| @@ -311,7 +282,7 @@ void FrameGenerator::AddNewParentReferences(
|
| const cc::SurfaceId& new_surface_id) {
|
| DCHECK(old_surface_id.frame_sink_id() == new_surface_id.frame_sink_id());
|
|
|
| - DisplayCompositor* display_compositor = GetDisplayCompositor();
|
| + cc::mojom::DisplayCompositor* display_compositor = GetDisplayCompositor();
|
| for (auto& map_entry : active_references_) {
|
| SurfaceReference& ref = map_entry.second;
|
| if (ref.parent_id == old_surface_id) {
|
| @@ -325,7 +296,7 @@ void FrameGenerator::RemoveDeadSurfaceReferences() {
|
| if (dead_references_.empty())
|
| return;
|
|
|
| - DisplayCompositor* display_compositor = GetDisplayCompositor();
|
| + cc::mojom::DisplayCompositor* display_compositor = GetDisplayCompositor();
|
| for (auto& ref : dead_references_) {
|
| if (ref.parent_id == top_level_root_surface_id_)
|
| display_compositor->RemoveRootSurfaceReference(ref.child_id);
|
| @@ -346,7 +317,7 @@ void FrameGenerator::RemoveFrameSinkReference(
|
|
|
| void FrameGenerator::RemoveAllSurfaceReferences() {
|
| // TODO(kylechar): Remove multiple surfaces with one IPC call.
|
| - DisplayCompositor* display_compositor = GetDisplayCompositor();
|
| + cc::mojom::DisplayCompositor* display_compositor = GetDisplayCompositor();
|
| for (auto& map_entry : active_references_) {
|
| const SurfaceReference& ref = map_entry.second;
|
| display_compositor->RemoveSurfaceReference(ref.parent_id, ref.child_id);
|
| @@ -354,7 +325,7 @@ void FrameGenerator::RemoveAllSurfaceReferences() {
|
| active_references_.clear();
|
| }
|
|
|
| -ui::DisplayCompositor* FrameGenerator::GetDisplayCompositor() {
|
| +cc::mojom::DisplayCompositor* FrameGenerator::GetDisplayCompositor() {
|
| return root_window_->delegate()->GetDisplayCompositor();
|
| }
|
|
|
|
|