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

Unified Diff: content/browser/compositor/mus_browser_compositor_output_surface.cc

Issue 2464123003: Enabling Aura-Mus clients to submit frames to Mus. (Closed)
Patch Set: Rebase, addressing feedback, removing some unneded imports/deps. Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/compositor/mus_browser_compositor_output_surface.cc
diff --git a/content/browser/compositor/mus_browser_compositor_output_surface.cc b/content/browser/compositor/mus_browser_compositor_output_surface.cc
index a11f70befabedae7e0e79e7779cd15b9f0222d79..3a3dcafac376fdd7434d916a73a7a907ffb59c92 100644
--- a/content/browser/compositor/mus_browser_compositor_output_surface.cc
+++ b/content/browser/compositor/mus_browser_compositor_output_surface.cc
@@ -16,6 +16,9 @@
#include "gpu/ipc/client/command_buffer_proxy_impl.h"
#include "services/ui/public/cpp/window.h"
#include "services/ui/public/cpp/window_compositor_frame_sink.h"
+#include "ui/aura/mus/window_compositor_frame_sink.h"
+#include "ui/aura/mus/window_port_mus.h"
+#include "ui/aura/window.h"
namespace content {
@@ -38,11 +41,33 @@ MusBrowserCompositorOutputSurface::MusBrowserCompositorOutputSurface(
ui_compositor_frame_sink_->BindToClient(this);
}
+MusBrowserCompositorOutputSurface::MusBrowserCompositorOutputSurface(
+ aura::Window* window,
+ scoped_refptr<ContextProviderCommandBuffer> context,
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
+ scoped_refptr<ui::CompositorVSyncManager> vsync_manager,
+ cc::SyntheticBeginFrameSource* begin_frame_source,
+ std::unique_ptr<display_compositor::CompositorOverlayCandidateValidator>
+ overlay_candidate_validator)
+ : GpuBrowserCompositorOutputSurface(std::move(context),
+ std::move(vsync_manager),
+ begin_frame_source,
+ std::move(overlay_candidate_validator)),
+ window_(window) {
+ aura::WindowPortMus* window_port = aura::WindowPortMus::Get(window_);
+ DCHECK(window_port);
+ compositor_frame_sink_ = window_port->RequestCompositorFrameSink(
+ ui::mojom::CompositorFrameSinkType::DEFAULT, context,
+ gpu_memory_buffer_manager);
+ compositor_frame_sink_->BindToClient(this);
+}
+
MusBrowserCompositorOutputSurface::~MusBrowserCompositorOutputSurface() {}
void MusBrowserCompositorOutputSurface::SwapBuffers(
cc::OutputSurfaceFrame frame) {
- const gfx::Rect bounds(ui_window_->bounds().size());
+ const gfx::Rect bounds = ui_window_ ? gfx::Rect(ui_window_->bounds().size())
+ : gfx::Rect(window_->bounds().size());
cc::CompositorFrame ui_frame;
ui_frame.metadata.latency_info = std::move(frame.latency_info);
// Reset latency_info to known empty state after moving contents.
@@ -107,7 +132,13 @@ void MusBrowserCompositorOutputSurface::SwapBuffers(
secure_output_only);
ui_frame.render_pass_list.push_back(std::move(pass));
- ui_compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame));
+
+ // TODO(mfomitchev): Remove ui_compositor_frame_sink_ once we complete the
+ // switch to Aura-Mus.
+ if (ui_compositor_frame_sink_)
+ ui_compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame));
+ else
+ compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame));
return;
}
« no previous file with comments | « content/browser/compositor/mus_browser_compositor_output_surface.h ('k') | mojo/public/cpp/bindings/sync_call_restrictions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698