Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Unified Diff: cc/output/filter_operations.h

Issue 1531403002: Revert "Delete CC." (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/output/filter_operation.cc ('k') | cc/output/filter_operations.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/filter_operations.h
diff --git a/cc/output/filter_operations.h b/cc/output/filter_operations.h
new file mode 100644
index 0000000000000000000000000000000000000000..55147d1373abb8582359745d151dcdc34a02975b
--- /dev/null
+++ b/cc/output/filter_operations.h
@@ -0,0 +1,81 @@
+// 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.
+
+#ifndef CC_OUTPUT_FILTER_OPERATIONS_H_
+#define CC_OUTPUT_FILTER_OPERATIONS_H_
+
+#include <vector>
+
+#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
+#include "cc/output/filter_operation.h"
+
+namespace base {
+namespace trace_event {
+class TracedValue;
+}
+class Value;
+}
+
+namespace cc {
+
+// An ordered list of filter operations.
+class FilterOperations {
+ public:
+ FilterOperations();
+
+ FilterOperations(const FilterOperations& other);
+
+ ~FilterOperations();
+
+ FilterOperations& operator=(const FilterOperations& other);
+
+ bool operator==(const FilterOperations& other) const;
+
+ bool operator!=(const FilterOperations& other) const {
+ return !(*this == other);
+ }
+
+ void Append(const FilterOperation& filter);
+
+ // Removes all filter operations.
+ void Clear();
+
+ bool IsEmpty() const;
+
+ void GetOutsets(int* top, int* right, int* bottom, int* left) const;
+ bool HasFilterThatMovesPixels() const;
+ bool HasFilterThatAffectsOpacity() const;
+ bool HasReferenceFilter() const;
+
+ size_t size() const {
+ return operations_.size();
+ }
+
+ const FilterOperation& at(size_t index) const {
+ DCHECK_LT(index, size());
+ return operations_[index];
+ }
+
+ // If |from| is of the same size as this, where in each position, the filter
+ // in |from| is of the same type as the filter in this, and if this doesn't
+ // contain any reference filters, returns a FilterOperations formed by
+ // linearly interpolating at each position a |progress| fraction of the way
+ // from the filter in |from| to the filter in this. If |from| and this are of
+ // different lengths, they are treated as having the same length by padding
+ // the shorter sequence with no-op filters of the same type as the filters in
+ // the corresponding positions in the longer sequence. If either sequence has
+ // a reference filter or if there is a type mismatch at some position, returns
+ // a copy of this.
+ FilterOperations Blend(const FilterOperations& from, double progress) const;
+
+ void AsValueInto(base::trace_event::TracedValue* value) const;
+
+ private:
+ std::vector<FilterOperation> operations_;
+};
+
+} // namespace cc
+
+#endif // CC_OUTPUT_FILTER_OPERATIONS_H_
« no previous file with comments | « cc/output/filter_operation.cc ('k') | cc/output/filter_operations.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698