Index: cc/quads/shared_quad_state.cc |
diff --git a/cc/quads/shared_quad_state.cc b/cc/quads/shared_quad_state.cc |
index 7bfb2b440f378b9333383add131a297eabb71fa3..228bff75aeac39b98e5a576f76a66a939456b504 100644 |
--- a/cc/quads/shared_quad_state.cc |
+++ b/cc/quads/shared_quad_state.cc |
@@ -4,11 +4,26 @@ |
#include "cc/quads/shared_quad_state.h" |
+#include "base/values.h" |
+#include "cc/base/math_util.h" |
+#include "cc/debug/traced_value.h" |
+ |
namespace cc { |
SharedQuadState::SharedQuadState() : is_clipped(false), opacity(0.f) {} |
-SharedQuadState::~SharedQuadState() {} |
+SharedQuadState::~SharedQuadState() { |
+ // Snapshot was created in cc.debug category, but only if cc.debug.quads is on |
+ // as well. |
+ bool enabled; |
+ TRACE_EVENT_CATEGORY_GROUP_ENABLED( |
+ TRACE_DISABLED_BY_DEFAULT("cc.debug.quads"), &enabled); |
+ if (enabled) { |
+ TRACE_EVENT_OBJECT_DELETED_WITH_ID(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
+ "cc::SharedQuadState", |
+ this); |
+ } |
+} |
scoped_ptr<SharedQuadState> SharedQuadState::Create() { |
return make_scoped_ptr(new SharedQuadState); |
@@ -33,4 +48,20 @@ void SharedQuadState::SetAll( |
this->opacity = opacity; |
} |
+scoped_ptr<base::Value> SharedQuadState::AsValue() const { |
+ scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); |
+ value->Set("transform", |
+ MathUtil::AsValue(content_to_target_transform).release()); |
+ value->Set("layer_content_bounds", |
+ MathUtil::AsValue(content_bounds).release()); |
+ value->Set("layer_visible_content_rect", |
+ MathUtil::AsValue(visible_content_rect).release()); |
+ value->SetBoolean("is_clipped", is_clipped); |
+ value->Set("clip_rect", MathUtil::AsValue(clip_rect).release()); |
+ value->SetDouble("opacity", opacity); |
+ TracedValue::MakeDictIntoImplicitSnapshot( |
danakj
2013/08/06 19:30:34
Why do you do this for RenderPass and SQState, but
piman
2013/08/06 23:31:11
This lets us reference the data by ID.
Because Ren
|
+ value.get(), "cc::SharedQuadState", this); |
+ return value.PassAs<base::Value>(); |
+} |
+ |
} // namespace cc |