| Index: content/browser/aura/gpu_process_transport_factory.cc
|
| diff --git a/content/browser/aura/gpu_process_transport_factory.cc b/content/browser/aura/gpu_process_transport_factory.cc
|
| index 382c6a6fe7f5ad25c391ca097703c0305213c274..ff0d2f539cfd35e4b42ab9f68db4206c6775bf84 100644
|
| --- a/content/browser/aura/gpu_process_transport_factory.cc
|
| +++ b/content/browser/aura/gpu_process_transport_factory.cc
|
| @@ -13,6 +13,7 @@
|
| #include "cc/output/compositor_frame.h"
|
| #include "cc/output/output_surface.h"
|
| #include "content/browser/aura/browser_compositor_output_surface.h"
|
| +#include "content/browser/aura/browser_compositor_output_surface_capturer.h"
|
| #include "content/browser/aura/browser_compositor_output_surface_proxy.h"
|
| #include "content/browser/aura/reflector_impl.h"
|
| #include "content/browser/aura/software_browser_compositor_output_surface.h"
|
| @@ -251,12 +252,11 @@ scoped_ptr<cc::OutputSurface> GpuProcessTransportFactory::CreateOutputSurface(
|
| compositor_thread_task_runner.get());
|
|
|
| scoped_ptr<BrowserCompositorOutputSurface> surface(
|
| - new BrowserCompositorOutputSurface(
|
| - context_provider,
|
| - per_compositor_data_[compositor]->surface_id,
|
| - &output_surface_map_,
|
| - base::MessageLoopProxy::current().get(),
|
| - compositor->AsWeakPtr()));
|
| + new BrowserCompositorOutputSurface(context_provider,
|
| + data->surface_id,
|
| + &output_surface_map_,
|
| + base::MessageLoopProxy::current(),
|
| + compositor->AsWeakPtr()));
|
| if (data->reflector.get()) {
|
| data->reflector->CreateSharedTexture();
|
| data->reflector->AttachToOutputSurface(surface.get());
|
| @@ -307,10 +307,30 @@ void GpuProcessTransportFactory::RemoveCompositor(ui::Compositor* compositor) {
|
|
|
| bool GpuProcessTransportFactory::DoesCreateTestContexts() { return false; }
|
|
|
| +scoped_ptr<SurfaceCapturer>
|
| +GpuProcessTransportFactory::CreateOutputSurfaceCapturer(
|
| + ui::Compositor* compositor,
|
| + SurfaceCapturer::Client* client) {
|
| + scoped_ptr<SurfaceCapturer> capturer;
|
| + PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor);
|
| + if (it == per_compositor_data_.end())
|
| + return capturer.Pass();
|
| + PerCompositorData* data = it->second;
|
| + DCHECK(data);
|
| + capturer.reset(new BrowserCompositorOutputSurfaceCapturer(
|
| + &output_surface_map_, data->surface_id, client));
|
| + return capturer.Pass();
|
| +}
|
| +
|
| ui::ContextFactory* GpuProcessTransportFactory::AsContextFactory() {
|
| return this;
|
| }
|
|
|
| +SurfaceCapturingContextFactory*
|
| +GpuProcessTransportFactory::AsSurfaceCapturingContextFactory() {
|
| + return this;
|
| +}
|
| +
|
| gfx::GLSurfaceHandle GpuProcessTransportFactory::CreateSharedSurfaceHandle() {
|
| CreateSharedContextLazy();
|
| if (!shared_contexts_main_thread_ ||
|
|
|