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

Side by Side Diff: content/browser/android/in_process/synchronous_compositor_impl.cc

Issue 916723002: cc: Add threaded GPU rasterization. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Implement ContextProviderInProcess::DetachFromThread(). Created 5 years, 10 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "content/browser/android/in_process/synchronous_compositor_impl.h" 5 #include "content/browser/android/in_process/synchronous_compositor_impl.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 if (compositor_client_) 145 if (compositor_client_)
146 compositor_client_->DidDestroyCompositor(this); 146 compositor_client_->DidDestroyCompositor(this);
147 compositor_client_ = nullptr; 147 compositor_client_ = nullptr;
148 } 148 }
149 149
150 bool SynchronousCompositorImpl::InitializeHwDraw() { 150 bool SynchronousCompositorImpl::InitializeHwDraw() {
151 DCHECK(CalledOnValidThread()); 151 DCHECK(CalledOnValidThread());
152 DCHECK(output_surface_); 152 DCHECK(output_surface_);
153 153
154 scoped_refptr<cc::ContextProvider> onscreen_context = 154 scoped_refptr<cc::ContextProvider> onscreen_context =
155 g_factory.Get().CreateOnscreenContextProviderForCompositorThread(); 155 g_factory.Get().CreateContextProviderForCompositor();
156 156
157 bool success = output_surface_->InitializeHwDraw(onscreen_context); 157 scoped_refptr<cc::ContextProvider> worker_context =
158 g_factory.Get().CreateContextProviderForCompositor();
159
160 bool success =
161 output_surface_->InitializeHwDraw(onscreen_context, worker_context);
158 162
159 if (success) 163 if (success)
160 g_factory.Get().CompositorInitializedHardwareDraw(); 164 g_factory.Get().CompositorInitializedHardwareDraw();
161 return success; 165 return success;
162 } 166 }
163 167
164 void SynchronousCompositorImpl::ReleaseHwDraw() { 168 void SynchronousCompositorImpl::ReleaseHwDraw() {
165 DCHECK(CalledOnValidThread()); 169 DCHECK(CalledOnValidThread());
166 DCHECK(output_surface_); 170 DCHECK(output_surface_);
167 output_surface_->ReleaseHwDraw(); 171 output_surface_->ReleaseHwDraw();
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 g_factory.Get(); // Ensure it's initialized. 368 g_factory.Get(); // Ensure it's initialized.
365 SynchronousCompositorImpl::CreateForWebContents(contents); 369 SynchronousCompositorImpl::CreateForWebContents(contents);
366 } 370 }
367 SynchronousCompositorImpl* instance = 371 SynchronousCompositorImpl* instance =
368 SynchronousCompositorImpl::FromWebContents(contents); 372 SynchronousCompositorImpl::FromWebContents(contents);
369 DCHECK(instance); 373 DCHECK(instance);
370 instance->SetClient(client); 374 instance->SetClient(client);
371 } 375 }
372 376
373 } // namespace content 377 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698