| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #if USE(ACCELERATED_COMPOSITING) | 7 #if USE(ACCELERATED_COMPOSITING) |
| 8 | 8 |
| 9 #include "CCLayerImpl.h" | 9 #include "CCLayerImpl.h" |
| 10 | 10 |
| 11 #include "base/stringprintf.h" |
| 11 #include "CCDebugBorderDrawQuad.h" | 12 #include "CCDebugBorderDrawQuad.h" |
| 12 #include "CCLayerSorter.h" | 13 #include "CCLayerSorter.h" |
| 13 #include "CCMathUtil.h" | 14 #include "CCMathUtil.h" |
| 14 #include "CCProxy.h" | 15 #include "CCProxy.h" |
| 15 #include "CCQuadSink.h" | 16 #include "CCQuadSink.h" |
| 16 #include "CCScrollbarAnimationController.h" | 17 #include "CCScrollbarAnimationController.h" |
| 17 #include "TextStream.h" | |
| 18 #include "TraceEvent.h" | 18 #include "TraceEvent.h" |
| 19 #include <wtf/text/WTFString.h> | |
| 20 | 19 |
| 21 using WebKit::WebTransformationMatrix; | 20 using WebKit::WebTransformationMatrix; |
| 22 | 21 |
| 23 namespace WebCore { | 22 namespace WebCore { |
| 24 | 23 |
| 25 CCLayerImpl::CCLayerImpl(int id) | 24 CCLayerImpl::CCLayerImpl(int id) |
| 26 : m_parent(0) | 25 : m_parent(0) |
| 27 , m_maskLayerId(-1) | 26 , m_maskLayerId(-1) |
| 28 , m_replicaLayerId(-1) | 27 , m_replicaLayerId(-1) |
| 29 , m_layerId(id) | 28 , m_layerId(id) |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 } | 202 } |
| 204 | 203 |
| 205 if (!scrollable()) { | 204 if (!scrollable()) { |
| 206 TRACE_EVENT0("cc", "CCLayerImpl::tryScroll: Ignored not scrollable"); | 205 TRACE_EVENT0("cc", "CCLayerImpl::tryScroll: Ignored not scrollable"); |
| 207 return CCInputHandlerClient::ScrollIgnored; | 206 return CCInputHandlerClient::ScrollIgnored; |
| 208 } | 207 } |
| 209 | 208 |
| 210 return CCInputHandlerClient::ScrollStarted; | 209 return CCInputHandlerClient::ScrollStarted; |
| 211 } | 210 } |
| 212 | 211 |
| 213 void CCLayerImpl::writeIndent(TextStream& ts, int indent) | 212 std::string CCLayerImpl::indentString(int indent) |
| 214 { | 213 { |
| 214 std::string str; |
| 215 for (int i = 0; i != indent; ++i) | 215 for (int i = 0; i != indent; ++i) |
| 216 ts << " "; | 216 str.append(" "); |
| 217 return str; |
| 217 } | 218 } |
| 218 | 219 |
| 219 void CCLayerImpl::dumpLayerProperties(TextStream& ts, int indent) const | 220 void CCLayerImpl::dumpLayerProperties(std::string* str, int indent) const |
| 220 { | 221 { |
| 221 writeIndent(ts, indent); | 222 std::string indentStr = indentString(indent); |
| 222 ts << "layer ID: " << m_layerId << "\n"; | 223 str->append(indentStr); |
| 224 base::StringAppendF(str, "layer ID: %d\n", m_layerId); |
| 223 | 225 |
| 224 writeIndent(ts, indent); | 226 str->append(indentStr); |
| 225 ts << "bounds: " << bounds().width() << ", " << bounds().height() << "\n"; | 227 base::StringAppendF(str, "bounds: %d, %d\n", bounds().width(), bounds().heig
ht()); |
| 226 | 228 |
| 227 if (m_renderTarget) { | 229 if (m_renderTarget) { |
| 228 writeIndent(ts, indent); | 230 str->append(indentStr); |
| 229 ts << "renderTarget: " << m_renderTarget->m_layerId << "\n"; | 231 base::StringAppendF(str, "renderTarget: %d\n", m_renderTarget->m_layerId
); |
| 230 } | 232 } |
| 231 | 233 |
| 232 writeIndent(ts, indent); | 234 str->append(indentStr); |
| 233 ts << "drawTransform: "; | 235 base::StringAppendF(str, "drawTransform: %f, %f, %f, %f // %f, %f, %f, %f
// %f, %f, %f, %f // %f, %f, %f, %f\n", |
| 234 ts << m_drawTransform.m11() << ", " << m_drawTransform.m12() << ", " << m_dr
awTransform.m13() << ", " << m_drawTransform.m14() << " // "; | 236 m_drawTransform.m11(), m_drawTransform.m12(), m_drawTransform.m13(), m_d
rawTransform.m14(), |
| 235 ts << m_drawTransform.m21() << ", " << m_drawTransform.m22() << ", " << m_dr
awTransform.m23() << ", " << m_drawTransform.m24() << " // "; | 237 m_drawTransform.m21(), m_drawTransform.m22(), m_drawTransform.m23(), m_d
rawTransform.m24(), |
| 236 ts << m_drawTransform.m31() << ", " << m_drawTransform.m32() << ", " << m_dr
awTransform.m33() << ", " << m_drawTransform.m34() << " // "; | 238 m_drawTransform.m31(), m_drawTransform.m32(), m_drawTransform.m33(), m_d
rawTransform.m34(), |
| 237 ts << m_drawTransform.m41() << ", " << m_drawTransform.m42() << ", " << m_dr
awTransform.m43() << ", " << m_drawTransform.m44() << "\n"; | 239 m_drawTransform.m41(), m_drawTransform.m42(), m_drawTransform.m43(), m_d
rawTransform.m44()); |
| 238 | 240 |
| 239 writeIndent(ts, indent); | 241 str->append(indentStr); |
| 240 ts << "drawsContent: " << (m_drawsContent ? "yes" : "no") << "\n"; | 242 base::StringAppendF(str, "drawsContent: %s\n", m_drawsContent ? "yes" : "no"
); |
| 241 } | 243 } |
| 242 | 244 |
| 243 void sortLayers(Vector<CCLayerImpl*>::iterator first, Vector<CCLayerImpl*>::iter
ator end, CCLayerSorter* layerSorter) | 245 void sortLayers(Vector<CCLayerImpl*>::iterator first, Vector<CCLayerImpl*>::iter
ator end, CCLayerSorter* layerSorter) |
| 244 { | 246 { |
| 245 TRACE_EVENT0("cc", "CCLayerImpl::sortLayers"); | 247 TRACE_EVENT0("cc", "CCLayerImpl::sortLayers"); |
| 246 layerSorter->sort(first, end); | 248 layerSorter->sort(first, end); |
| 247 } | 249 } |
| 248 | 250 |
| 249 String CCLayerImpl::layerTreeAsText() const | 251 std::string CCLayerImpl::layerTreeAsText() const |
| 250 { | 252 { |
| 251 TextStream ts; | 253 std::string str; |
| 252 dumpLayer(ts, 0); | 254 dumpLayer(&str, 0); |
| 253 return ts.release(); | 255 return str; |
| 254 } | 256 } |
| 255 | 257 |
| 256 void CCLayerImpl::dumpLayer(TextStream& ts, int indent) const | 258 void CCLayerImpl::dumpLayer(std::string* str, int indent) const |
| 257 { | 259 { |
| 258 writeIndent(ts, indent); | 260 str->append(indentString(indent)); |
| 259 ts << layerTypeAsString() << "(" << m_debugName << ")\n"; | 261 base::StringAppendF(str, "%s(%s)\n", layerTypeAsString(), m_debugName.data()
); |
| 260 dumpLayerProperties(ts, indent+2); | 262 dumpLayerProperties(str, indent+2); |
| 261 if (m_replicaLayer) { | 263 if (m_replicaLayer) { |
| 262 writeIndent(ts, indent+2); | 264 str->append(indentString(indent+2)); |
| 263 ts << "Replica:\n"; | 265 str->append("Replica:\n"); |
| 264 m_replicaLayer->dumpLayer(ts, indent+3); | 266 m_replicaLayer->dumpLayer(str, indent+3); |
| 265 } | 267 } |
| 266 if (m_maskLayer) { | 268 if (m_maskLayer) { |
| 267 writeIndent(ts, indent+2); | 269 str->append(indentString(indent+2)); |
| 268 ts << "Mask:\n"; | 270 str->append("Mask:\n"); |
| 269 m_maskLayer->dumpLayer(ts, indent+3); | 271 m_maskLayer->dumpLayer(str, indent+3); |
| 270 } | 272 } |
| 271 for (size_t i = 0; i < m_children.size(); ++i) | 273 for (size_t i = 0; i < m_children.size(); ++i) |
| 272 m_children[i]->dumpLayer(ts, indent+1); | 274 m_children[i]->dumpLayer(str, indent+1); |
| 273 } | 275 } |
| 274 | 276 |
| 275 void CCLayerImpl::setStackingOrderChanged(bool stackingOrderChanged) | 277 void CCLayerImpl::setStackingOrderChanged(bool stackingOrderChanged) |
| 276 { | 278 { |
| 277 // We don't need to store this flag; we only need to track that the change o
ccurred. | 279 // We don't need to store this flag; we only need to track that the change o
ccurred. |
| 278 if (stackingOrderChanged) | 280 if (stackingOrderChanged) |
| 279 noteLayerPropertyChangedForSubtree(); | 281 noteLayerPropertyChangedForSubtree(); |
| 280 } | 282 } |
| 281 | 283 |
| 282 bool CCLayerImpl::layerSurfacePropertyChanged() const | 284 bool CCLayerImpl::layerSurfacePropertyChanged() const |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 617 if (!m_scrollbarAnimationController) | 619 if (!m_scrollbarAnimationController) |
| 618 m_scrollbarAnimationController = CCScrollbarAnimationController::create(
this); | 620 m_scrollbarAnimationController = CCScrollbarAnimationController::create(
this); |
| 619 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); | 621 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); |
| 620 m_scrollbarAnimationController->updateScrollOffset(this); | 622 m_scrollbarAnimationController->updateScrollOffset(this); |
| 621 } | 623 } |
| 622 | 624 |
| 623 } | 625 } |
| 624 | 626 |
| 625 | 627 |
| 626 #endif // USE(ACCELERATED_COMPOSITING) | 628 #endif // USE(ACCELERATED_COMPOSITING) |
| OLD | NEW |