Chromium Code Reviews| 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..1ba82e8edefd266c119c737625289bd77295f01e |
| --- /dev/null |
| +++ b/cc/surfaces/sequence_surface_reference_factory.cc |
| @@ -0,0 +1,38 @@ |
| +// 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>(make_scoped_refptr(this), |
| + seq); |
| +} |
| + |
| +void SequenceSurfaceReferenceFactory::DestroyReference( |
| + SurfaceReferenceBase* surface_ref, |
| + CompositorFrameMetadata* metadata) const { |
| + // The surface reference was generated by this factory, so we can cast it |
| + // to the type we returned in CreateReference. |
|
Fady Samuel
2016/12/13 22:55:05
nit; You should mention that SurfaceReference is a
Saman Sami
2016/12/14 17:50:01
Done.
|
| + auto ref = static_cast<SequenceSurfaceReference*>(surface_ref); |
| + metadata->satisfies_sequences.push_back(ref->sequence().sequence); |
| +} |
| + |
| +void SequenceSurfaceReferenceFactory::DestroyReference( |
| + SurfaceReferenceBase* surface_ref) const { |
| + // The surface reference was generated by this factory, so we can cast it |
| + // to the type we returned in CreateReference. |
|
Fady Samuel
2016/12/13 22:55:05
nit; You should mention that SurfaceReference is a
Saman Sami
2016/12/14 17:50:01
Done.
|
| + auto ref = static_cast<SequenceSurfaceReference*>(surface_ref); |
| + SatisfySequence(ref->sequence()); |
| +} |
| + |
| +} // namespace cc |