| Index: cc/surfaces/sequence_surface_reference_factory.cc
|
| diff --git a/cc/surfaces/sequence_surface_reference_factory.cc b/cc/surfaces/sequence_surface_reference_factory.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..908b9a6f9fa13468ee957635b3023854b368ef26
|
| --- /dev/null
|
| +++ b/cc/surfaces/sequence_surface_reference_factory.cc
|
| @@ -0,0 +1,33 @@
|
| +// Copyright 2016 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/surfaces/sequence_surface_reference_factory.h"
|
| +
|
| +#include "cc/surfaces/sequence_surface_reference.h"
|
| +
|
| +namespace cc {
|
| +
|
| +std::unique_ptr<SurfaceReferenceBase>
|
| +SequenceSurfaceReferenceFactory::CreateReference(
|
| + SurfaceReferenceOwner* owner,
|
| + const SurfaceId& surface_id) const {
|
| + auto seq = owner->GetSurfaceSequenceGenerator()->CreateSurfaceSequence();
|
| + RequireSequence(surface_id, seq);
|
| + return base::MakeUnique<SequenceSurfaceReference>(this, seq);
|
| +}
|
| +
|
| +void SequenceSurfaceReferenceFactory::DestroyReference(
|
| + SurfaceReferenceBase* surface_ref,
|
| + CompositorFrameMetadata* metadata) const {
|
| + auto ref = static_cast<SequenceSurfaceReference*>(surface_ref);
|
| + metadata->satisfies_sequences.push_back(ref->sequence().sequence);
|
| +}
|
| +
|
| +void SequenceSurfaceReferenceFactory::DestroyReference(
|
| + SurfaceReferenceBase* surface_ref) const {
|
| + auto ref = static_cast<SequenceSurfaceReference*>(surface_ref);
|
| + SatisfySequence(ref->sequence());
|
| +}
|
| +
|
| +} // namespace cc
|
|
|