15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// found in the LICENSE file. 4558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/browser/compositor/test/no_transport_image_transport_factory.h" 6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "cc/output/context_provider.h" 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "content/common/gpu/client/gl_helper.h" 95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "gpu/command_buffer/client/gles2_interface.h" 10558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "ui/compositor/compositor.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/compositor/test/in_process_context_factory.h" 12558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 13558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochnamespace content { 14558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 15116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNoTransportImageTransportFactory::NoTransportImageTransportFactory() 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch : context_factory_(new ui::InProcessContextFactory) { 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 18558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)NoTransportImageTransportFactory::~NoTransportImageTransportFactory() { 20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) scoped_ptr<GLHelper> lost_gl_helper = gl_helper_.Pass(); 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch FOR_EACH_OBSERVER( 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ImageTransportFactoryObserver, observer_list_, OnLostResources()); 23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 24558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 250de6073388f4e2780db8536178b129cd8f6ab386Torne (Richard Coles)ui::ContextFactory* NoTransportImageTransportFactory::GetContextFactory() { 260de6073388f4e2780db8536178b129cd8f6ab386Torne (Richard Coles) return context_factory_.get(); 270de6073388f4e2780db8536178b129cd8f6ab386Torne (Richard Coles)} 280de6073388f4e2780db8536178b129cd8f6ab386Torne (Richard Coles) 29558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochgfx::GLSurfaceHandle 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)NoTransportImageTransportFactory::GetSharedSurfaceHandle() { 31558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch return gfx::GLSurfaceHandle(); 32558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch} 33558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)scoped_ptr<cc::SurfaceIdAllocator> 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)NoTransportImageTransportFactory::CreateSurfaceIdAllocator() { 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return scoped_ptr<cc::SurfaceIdAllocator>(); 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)cc::SurfaceManager* NoTransportImageTransportFactory::GetSurfaceManager() { 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return NULL; 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 43d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)GLHelper* NoTransportImageTransportFactory::GetGLHelper() { 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (!gl_helper_) { 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) context_provider_ = context_factory_->SharedMainThreadContextProvider(); 465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) gl_helper_.reset(new GLHelper(context_provider_->ContextGL(), 478bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) context_provider_->ContextSupport())); 484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 49d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return gl_helper_.get(); 50d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} 51558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 52558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochvoid NoTransportImageTransportFactory::AddObserver( 53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) ImageTransportFactoryObserver* observer) { 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) observer_list_.AddObserver(observer); 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 56558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 57558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochvoid NoTransportImageTransportFactory::RemoveObserver( 58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) ImageTransportFactoryObserver* observer) { 59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) observer_list_.RemoveObserver(observer); 60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 61558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 62558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch} // namespace content 63