| 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_) {
|
| + 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
|
|
|