Index: cc/surfaces/surface_sequence.h |
diff --git a/cc/surfaces/surface_sequence.h b/cc/surfaces/surface_sequence.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4c99e458587d65065c68f206a2d0e2d156a71410 |
--- /dev/null |
+++ b/cc/surfaces/surface_sequence.h |
@@ -0,0 +1,38 @@ |
+// Copyright 2014 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. |
+ |
+#ifndef CC_SURFACES_SURFACE_SEQUENCE_H_ |
+#define CC_SURFACES_SURFACE_SEQUENCE_H_ |
+ |
+namespace cc { |
+ |
+// A per-surface-namespace sequence number that's used to coordinate |
+// dependencies between frames. A sequence number may be satisfied once, and |
+// may be depended on once. |
+struct SurfaceSequence { |
+ SurfaceSequence() : id_namespace(0u), sequence(0u) {} |
+ SurfaceSequence(uint32_t id_namespace, uint32_t sequence) |
+ : id_namespace(id_namespace), sequence(sequence) {} |
+ |
+ uint32_t id_namespace; |
+ uint32_t sequence; |
+}; |
+ |
+inline bool operator==(const SurfaceSequence& a, const SurfaceSequence& b) { |
+ return a.id_namespace == b.id_namespace && a.sequence == b.sequence; |
+} |
+ |
+inline bool operator!=(const SurfaceSequence& a, const SurfaceSequence& b) { |
+ return !(a == b); |
+} |
+ |
+inline bool operator<(const SurfaceSequence& a, const SurfaceSequence& b) { |
+ if (a.id_namespace != b.id_namespace) |
+ return a.id_namespace < b.id_namespace; |
+ return a.sequence < b.sequence; |
+} |
+ |
+} // namespace cc |
+ |
+#endif // CC_SURFACES_SURFACE_SEQUENCE_H_ |