Chromium Code Reviews| Index: cc/output/filter_operation.cc |
| diff --git a/cc/output/filter_operation.cc b/cc/output/filter_operation.cc |
| index de59cfc1c0d4102290177bfa820f588c970eaad2..6a778388ae5162ebe7a2ae6298414ff698ba7662 100644 |
| --- a/cc/output/filter_operation.cc |
| +++ b/cc/output/filter_operation.cc |
| @@ -4,6 +4,7 @@ |
| #include <algorithm> |
| +#include "base/values.h" |
| #include "cc/base/math_util.h" |
| #include "cc/output/filter_operation.h" |
| #include "third_party/skia/include/core/SkMath.h" |
| @@ -217,4 +218,40 @@ FilterOperation FilterOperation::Blend(const FilterOperation* from, |
| return blended_filter; |
| } |
| +scoped_ptr<base::Value> FilterOperation::AsValue() const { |
| + scoped_ptr<base::DictionaryValue> value(new DictionaryValue); |
| + value->SetInteger("type", type_); |
| + switch (type_) { |
|
vmpstr
2013/07/26 16:07:23
Can you add a default NOTREACHED() so that we catc
danakj
2013/07/26 16:49:08
Actually, I'd prefer to not have a 'default' case
|
| + case FilterOperation::GRAYSCALE: |
| + case FilterOperation::SEPIA: |
| + case FilterOperation::SATURATE: |
| + case FilterOperation::HUE_ROTATE: |
| + case FilterOperation::INVERT: |
| + case FilterOperation::BRIGHTNESS: |
| + case FilterOperation::CONTRAST: |
| + case FilterOperation::OPACITY: |
| + case FilterOperation::BLUR: |
| + case FilterOperation::SATURATING_BRIGHTNESS: |
| + value->SetDouble("amount", amount_); |
| + break; |
| + case FilterOperation::DROP_SHADOW: |
| + value->SetDouble("std_deviation", amount_); |
| + value->Set("offset", MathUtil::AsValue(drop_shadow_offset_).release()); |
| + value->SetInteger("color", drop_shadow_color_); |
| + break; |
| + case FilterOperation::COLOR_MATRIX: { |
| + scoped_ptr<ListValue> matrix(new ListValue); |
| + for (size_t i = 0; i < arraysize(matrix_); ++i) |
| + matrix->AppendDouble(matrix_[i]); |
| + value->Set("matrix", matrix.release()); |
| + break; |
| + } |
| + case FilterOperation::ZOOM: |
| + value->SetDouble("amount", amount_); |
| + value->SetDouble("inset", zoom_inset_); |
| + break; |
| + } |
| + return value.PassAs<base::Value>(); |
| +} |
| + |
| } // namespace cc |