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

Unified Diff: ui/compositor/compositor.cc

Issue 648413004: Make browser GPU channel creation async. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/compositor/compositor.h ('k') | ui/compositor/test/in_process_context_factory.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/compositor/compositor.cc
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index c9ad47563b71cf2d2d53fa46a9359edaf3694e43..345d7211872ca4eefbe72fff6caf5d14a3fc5260 100644
--- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc
@@ -107,7 +107,7 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
draw_on_compositing_end_(false),
swap_state_(SWAP_NONE),
layer_animator_collection_(this),
- schedule_draw_factory_(this) {
+ weak_ptr_factory_(this) {
root_web_layer_ = cc::Layer::Create();
CommandLine* command_line = CommandLine::ForCurrentProcess();
@@ -200,6 +200,11 @@ Compositor::~Compositor() {
context_factory_->RemoveCompositor(this);
}
+void Compositor::SetOutputSurface(
+ scoped_ptr<cc::OutputSurface> output_surface) {
+ host_->SetOutputSurface(output_surface.Pass());
+}
+
void Compositor::ScheduleDraw() {
if (compositor_thread_loop_.get()) {
host_->SetNeedsCommit();
@@ -207,7 +212,7 @@ void Compositor::ScheduleDraw() {
defer_draw_scheduling_ = true;
task_runner_->PostTask(
FROM_HERE,
- base::Bind(&Compositor::Draw, schedule_draw_factory_.GetWeakPtr()));
+ base::Bind(&Compositor::Draw, weak_ptr_factory_.GetWeakPtr()));
}
}
@@ -366,8 +371,8 @@ void Compositor::Layout() {
}
void Compositor::RequestNewOutputSurface(bool fallback) {
- host_->SetOutputSurface(
- context_factory_->CreateOutputSurface(this, fallback));
+ context_factory_->CreateOutputSurface(weak_ptr_factory_.GetWeakPtr(),
+ fallback);
}
void Compositor::DidCommit() {
« no previous file with comments | « ui/compositor/compositor.h ('k') | ui/compositor/test/in_process_context_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698