diff options
Diffstat (limited to 'chromium/cc/output/copy_output_result.cc')
-rw-r--r-- | chromium/cc/output/copy_output_result.cc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/chromium/cc/output/copy_output_result.cc b/chromium/cc/output/copy_output_result.cc new file mode 100644 index 00000000000..55213cde6b8 --- /dev/null +++ b/chromium/cc/output/copy_output_result.cc @@ -0,0 +1,42 @@ +// Copyright 2013 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 "cc/output/copy_output_result.h" + +#include "base/logging.h" +#include "cc/resources/texture_mailbox.h" +#include "third_party/skia/include/core/SkBitmap.h" + +namespace cc { + +CopyOutputResult::CopyOutputResult() {} + +CopyOutputResult::CopyOutputResult(scoped_ptr<SkBitmap> bitmap) + : size_(bitmap->width(), bitmap->height()), + bitmap_(bitmap.Pass()) { + DCHECK(bitmap_); +} + +CopyOutputResult::CopyOutputResult(gfx::Size size, + scoped_ptr<TextureMailbox> texture_mailbox) + : size_(size), + texture_mailbox_(texture_mailbox.Pass()) { + DCHECK(texture_mailbox_); + DCHECK(texture_mailbox_->IsTexture()); +} + +CopyOutputResult::~CopyOutputResult() { + if (texture_mailbox_) + texture_mailbox_->RunReleaseCallback(0, false); +} + +scoped_ptr<SkBitmap> CopyOutputResult::TakeBitmap() { + return bitmap_.Pass(); +} + +scoped_ptr<TextureMailbox> CopyOutputResult::TakeTexture() { + return texture_mailbox_.Pass(); +} + +} // namespace cc |