Index: cc/output/filter_operations.cc |
diff --git a/cc/output/filter_operations.cc b/cc/output/filter_operations.cc |
index e526f5c419bed3ae53cbab223109f19c85ec385b..34a4c184b17df78f9488fc840744e9a08ddca62b 100644 |
--- a/cc/output/filter_operations.cc |
+++ b/cc/output/filter_operations.cc |
@@ -59,7 +59,10 @@ void FilterOperations::GetOutsets(int* top, |
int* left) const { |
*top = *right = *bottom = *left = 0; |
for (size_t i = 0; i < operations_.size(); ++i) { |
- const FilterOperation op = operations_[i]; |
+ const FilterOperation& op = operations_[i]; |
+ // TODO(ajuma): Add support for reference filters once SkImageFilter |
+ // reports its outsets. |
+ DCHECK(op.type() != FilterOperation::REFERENCE); |
if (op.type() == FilterOperation::BLUR || |
op.type() == FilterOperation::DROP_SHADOW) { |
int spread = SpreadForStdDeviation(op.amount()); |
@@ -80,11 +83,15 @@ void FilterOperations::GetOutsets(int* top, |
bool FilterOperations::HasFilterThatMovesPixels() const { |
for (size_t i = 0; i < operations_.size(); ++i) { |
- const FilterOperation op = operations_[i]; |
+ const FilterOperation& op = operations_[i]; |
+ // TODO(ajuma): Add support for reference filters once SkImageFilter |
+ // reports its outsets. |
+ DCHECK(op.type() != FilterOperation::REFERENCE); |
enne (OOO)
2013/09/11 17:57:24
This is a little awkward to DCHECK here because it
danakj
2013/09/11 18:01:55
I'd agree if the damage tracker didn't use invalid
enne (OOO)
2013/09/11 18:06:33
So DCHECK in GetOutsets, but don't DCHECK here?
danakj
2013/09/11 18:18:17
Hm, ya okay. I hadn't considered that originally.
ajuma
2013/09/11 18:24:56
Done.
|
switch (op.type()) { |
case FilterOperation::BLUR: |
case FilterOperation::DROP_SHADOW: |
case FilterOperation::ZOOM: |
+ case FilterOperation::REFERENCE: |
return true; |
case FilterOperation::OPACITY: |
case FilterOperation::COLOR_MATRIX: |
@@ -104,12 +111,15 @@ bool FilterOperations::HasFilterThatMovesPixels() const { |
bool FilterOperations::HasFilterThatAffectsOpacity() const { |
for (size_t i = 0; i < operations_.size(); ++i) { |
- const FilterOperation op = operations_[i]; |
+ const FilterOperation& op = operations_[i]; |
+ // TODO(ajuma): Make this smarter for reference filters. Once SkImageFilter |
+ // can report affectsOpacity(), call that. |
switch (op.type()) { |
case FilterOperation::OPACITY: |
case FilterOperation::BLUR: |
case FilterOperation::DROP_SHADOW: |
case FilterOperation::ZOOM: |
+ case FilterOperation::REFERENCE: |
return true; |
case FilterOperation::COLOR_MATRIX: { |
const SkScalar* matrix = op.matrix(); |
@@ -135,6 +145,14 @@ bool FilterOperations::HasFilterThatAffectsOpacity() const { |
return false; |
} |
+bool FilterOperations::HasReferenceFilter() const { |
+ for (size_t i = 0; i < operations_.size(); ++i) { |
+ if (operations_[i].type() == FilterOperation::REFERENCE) |
+ return true; |
+ } |
+ return false; |
+} |
+ |
FilterOperations FilterOperations::Blend(const FilterOperations& from, |
double progress) const { |
FilterOperations blended_filters; |