1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/browser/compositor/no_transport_image_transport_factory.h"
7 #include "cc/output/context_provider.h"
8 #include "content/common/gpu/client/gl_helper.h"
9 #include "gpu/command_buffer/client/gles2_interface.h"
10 #include "ui/compositor/compositor.h"
14 NoTransportImageTransportFactory::NoTransportImageTransportFactory(
15 scoped_ptr<ui::ContextFactory> context_factory)
16 : context_factory_(context_factory.Pass()) {}
18 NoTransportImageTransportFactory::~NoTransportImageTransportFactory() {
19 scoped_ptr<GLHelper> lost_gl_helper = gl_helper_.Pass();
20 FOR_EACH_OBSERVER(ImageTransportFactoryObserver,
25 ui::ContextFactory* NoTransportImageTransportFactory::GetContextFactory() {
26 return context_factory_.get();
30 NoTransportImageTransportFactory::GetSharedSurfaceHandle() {
31 return gfx::GLSurfaceHandle();
34 GLHelper* NoTransportImageTransportFactory::GetGLHelper() {
36 context_provider_ = context_factory_->SharedMainThreadContextProvider();
37 gl_helper_.reset(new GLHelper(context_provider_->ContextGL(),
38 context_provider_->ContextSupport()));
40 return gl_helper_.get();
43 void NoTransportImageTransportFactory::AddObserver(
44 ImageTransportFactoryObserver* observer) {
45 observer_list_.AddObserver(observer);
48 void NoTransportImageTransportFactory::RemoveObserver(
49 ImageTransportFactoryObserver* observer) {
50 observer_list_.RemoveObserver(observer);
53 } // namespace content