1// Copyright (c) 2012 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. 4 5#include "content/common/gpu/image_transport_surface.h" 6 7#include "base/bind.h" 8#include "base/command_line.h" 9#include "base/compiler_specific.h" 10#include "base/memory/scoped_ptr.h" 11#include "base/memory/weak_ptr.h" 12#include "base/win/windows_version.h" 13#include "content/common/gpu/gpu_messages.h" 14#include "content/public/common/content_switches.h" 15#include "ui/gfx/native_widget_types.h" 16#include "ui/gl/gl_bindings.h" 17#include "ui/gl/gl_context.h" 18#include "ui/gl/gl_implementation.h" 19#include "ui/gl/gl_surface_egl.h" 20 21namespace content { 22 23// static 24scoped_refptr<gfx::GLSurface> ImageTransportSurface::CreateNativeSurface( 25 GpuChannelManager* manager, 26 GpuCommandBufferStub* stub, 27 const gfx::GLSurfaceHandle& handle) { 28 DCHECK(handle.handle); 29 DCHECK_EQ(handle.transport_type, gfx::NATIVE_DIRECT); 30 scoped_refptr<gfx::GLSurface> surface = 31 gfx::GLSurface::CreateViewGLSurface(handle.handle); 32 if (!surface) 33 return surface; 34 return scoped_refptr<gfx::GLSurface>(new PassThroughImageTransportSurface( 35 manager, stub, surface.get())); 36} 37 38} // namespace content 39