| Index: cc/texture_mailbox.cc
|
| diff --git a/cc/texture_mailbox.cc b/cc/texture_mailbox.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c25ab81541c0d9bd0d319c6b10ce8de3a2551fcf
|
| --- /dev/null
|
| +++ b/cc/texture_mailbox.cc
|
| @@ -0,0 +1,56 @@
|
| +// 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 "base/logging.h"
|
| +#include "cc/texture_mailbox.h"
|
| +
|
| +namespace cc {
|
| +
|
| +TextureMailbox::TextureMailbox() {
|
| +}
|
| +
|
| +TextureMailbox::TextureMailbox(
|
| + const std::string& mailbox_name,
|
| + const ReleaseCallback& mailbox_callback)
|
| + : callback_(mailbox_callback) {
|
| + DCHECK(mailbox_name.empty() == mailbox_callback.is_null());
|
| + if (!mailbox_name.empty()) {
|
| + CHECK(mailbox_name.size() == sizeof(name_.name));
|
| + name_.setName(reinterpret_cast<const int8*>(mailbox_name.data()));
|
| + }
|
| +}
|
| +
|
| +TextureMailbox::TextureMailbox(
|
| + const Mailbox& mailbox_name,
|
| + const ReleaseCallback& mailbox_callback)
|
| + : callback_(mailbox_callback) {
|
| + DCHECK(mailbox_name.isZero() == mailbox_callback.is_null());
|
| + name_.setName(mailbox_name.name);
|
| +}
|
| +
|
| +TextureMailbox::~TextureMailbox() {
|
| +}
|
| +
|
| +bool TextureMailbox::Equals(const Mailbox& other) const {
|
| + return !memcmp(data(), other.name, sizeof(name_.name));
|
| +}
|
| +
|
| +bool TextureMailbox::Equals(const TextureMailbox& other) const {
|
| + return Equals(other.name());
|
| +}
|
| +
|
| +bool TextureMailbox::IsEmpty() const {
|
| + return name_.isZero();
|
| +}
|
| +
|
| +void TextureMailbox::RunReleaseCallback(unsigned sync_point) const {
|
| + if (!callback_.is_null())
|
| + callback_.Run(sync_point);
|
| +}
|
| +
|
| +void TextureMailbox::SetName(const Mailbox& other) {
|
| + name_.setName(other.name);
|
| +}
|
| +
|
| +} // namespace cc
|
|
|