| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "mojo/skia/ganesh_surface.h" | 
 |  | 
 | namespace mojo { | 
 |  | 
 | GaneshSurface::GaneshSurface(GaneshContext* context, | 
 |                              scoped_ptr<GLTexture> texture) | 
 |     : texture_(texture.Pass()) { | 
 |   GrBackendTextureDesc desc; | 
 |   desc.fFlags = kRenderTarget_GrBackendTextureFlag; | 
 |   desc.fWidth = texture_->size().width; | 
 |   desc.fHeight = texture_->size().height; | 
 |   desc.fConfig = kSkia8888_GrPixelConfig; | 
 |   desc.fOrigin = kTopLeft_GrSurfaceOrigin; | 
 |   desc.fTextureHandle = texture_->texture_id(); | 
 |   DCHECK(texture_->texture_id()); | 
 |  | 
 |   auto gr_texture = skia::AdoptRef( | 
 |       context->gr()->textureProvider()->wrapBackendTexture(desc)); | 
 |   DCHECK(gr_texture); | 
 |   surface_ = skia::AdoptRef( | 
 |       SkSurface::NewRenderTargetDirect(gr_texture->asRenderTarget())); | 
 |   DCHECK(surface_); | 
 | } | 
 |  | 
 | GaneshSurface::~GaneshSurface() { | 
 | } | 
 |  | 
 | scoped_ptr<GLTexture> GaneshSurface::TakeTexture() { | 
 |   surface_.clear(); | 
 |   return texture_.Pass(); | 
 | } | 
 |  | 
 | }  // namespace mojo |