Index: cc/quads/draw_quad.h |
diff --git a/cc/quads/draw_quad.h b/cc/quads/draw_quad.h |
index 0e26b6329f080e76b05a50488cdc720a3df87b39..94d88350463ac3833782da97adbe9ecceb23ee8a 100644 |
--- a/cc/quads/draw_quad.h |
+++ b/cc/quads/draw_quad.h |
@@ -96,8 +96,11 @@ class CC_EXPORT DrawQuad { |
return !opaque_rect.Contains(visible_rect); |
} |
- typedef base::Callback<ResourceId(ResourceId)> ResourceIteratorCallback; |
- virtual void IterateResources(const ResourceIteratorCallback& callback) = 0; |
+ template <typename Lambda> |
+ void IterateResources(const Lambda& lambda) { |
+ for (size_t i = 0; i < resources.count; ++i) |
+ resources.ids[i] = lambda(resources.ids[i]); |
+ } |
// Is the left edge of this tile aligned with the originating layer's |
// left edge? |
@@ -127,6 +130,16 @@ class CC_EXPORT DrawQuad { |
void AsValueInto(base::trace_event::TracedValue* value) const; |
+ struct CC_EXPORT Resources { |
+ enum { kMaxResourceIdCount = 4 }; |
+ Resources(); |
+ |
+ size_t count; |
+ ResourceId ids[kMaxResourceIdCount]; |
+ }; |
+ |
+ Resources resources; |
+ |
protected: |
DrawQuad(); |