copy_output_result.cc revision a3f7b4e666c476898878fa745f637129375cd889
1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// Copyright 2013 The Chromium Authors. All rights reserved. 26d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor// Use of this source code is governed by a BSD-style license that can be 3db3353f6c9f3ffd291ce9e314e996071252c4285NAKAMURA Takumi// found in the LICENSE file. 4db3353f6c9f3ffd291ce9e314e996071252c4285NAKAMURA Takumi 5db3353f6c9f3ffd291ce9e314e996071252c4285NAKAMURA Takumi#include "cc/output/copy_output_result.h" 66d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 76d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor#include "base/logging.h" 86d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor#include "cc/resources/texture_mailbox.h" 96d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor#include "third_party/skia/include/core/SkBitmap.h" 106d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 116d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregornamespace cc { 126d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 136d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas GregorCopyOutputResult::CopyOutputResult() {} 146d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 156d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas GregorCopyOutputResult::CopyOutputResult(scoped_ptr<SkBitmap> bitmap) 16b9c6261d02f688d0a9a36b736ad5956fbc737854Richard Smith : size_(bitmap->width(), bitmap->height()), 176d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor bitmap_(bitmap.Pass()) { 18b9c6261d02f688d0a9a36b736ad5956fbc737854Richard Smith DCHECK(bitmap_); 1960c93c9981c467738369702e7aa23fd58c2b6aacDouglas Gregor} 206d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 216d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas GregorCopyOutputResult::CopyOutputResult(gfx::Size size, 226d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor scoped_ptr<TextureMailbox> texture_mailbox) 236d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor : size_(size), 246d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor texture_mailbox_(texture_mailbox.Pass()) { 256d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor DCHECK(texture_mailbox_); 266d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor DCHECK(texture_mailbox_->IsTexture()); 276d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor} 286d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 296d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas GregorCopyOutputResult::~CopyOutputResult() { 306d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor if (texture_mailbox_) 316d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor texture_mailbox_->RunReleaseCallback(0, false); 326d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor} 336d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 346d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregorscoped_ptr<SkBitmap> CopyOutputResult::TakeBitmap() { 356d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor return bitmap_.Pass(); 366d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor} 376d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 386d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregorscoped_ptr<TextureMailbox> CopyOutputResult::TakeTexture() { 396d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor return texture_mailbox_.Pass(); 406d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor} 416d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor 426d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor} // namespace cc 436d507a6d96ea6379bc1df207abe26ad4cbe6563dDouglas Gregor