| Index: cc/output/copy_output_result.cc
|
| diff --git a/cc/output/copy_output_result.cc b/cc/output/copy_output_result.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8dee046ce84dacb17927f1fa659df9da236e9e65
|
| --- /dev/null
|
| +++ b/cc/output/copy_output_result.cc
|
| @@ -0,0 +1,49 @@
|
| +// 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(
|
| + const gfx::Size& size,
|
| + const TextureMailbox& texture_mailbox,
|
| + scoped_ptr<SingleReleaseCallback> release_callback)
|
| + : size_(size),
|
| + texture_mailbox_(texture_mailbox),
|
| + release_callback_(release_callback.Pass()) {
|
| + DCHECK(texture_mailbox_.IsTexture());
|
| +}
|
| +
|
| +CopyOutputResult::~CopyOutputResult() {
|
| + if (release_callback_)
|
| + release_callback_->Run(0, false);
|
| +}
|
| +
|
| +scoped_ptr<SkBitmap> CopyOutputResult::TakeBitmap() {
|
| + return bitmap_.Pass();
|
| +}
|
| +
|
| +void CopyOutputResult::TakeTexture(
|
| + TextureMailbox* texture_mailbox,
|
| + scoped_ptr<SingleReleaseCallback>* release_callback) {
|
| + *texture_mailbox = texture_mailbox_;
|
| + *release_callback = release_callback_.Pass();
|
| +
|
| + texture_mailbox_ = TextureMailbox();
|
| +}
|
| +
|
| +} // namespace cc
|
|
|