Add layer updates debugging feature to Skia pipelines
When this property is turned on, we flash green every time a hardware layer is updated. Test: Matches the behavior in OpenGLPipeline BUG:32370375 Change-Id: I916f94eee644c185d8a3f9fa4cd69e087ed1e92d
This commit is contained in:
@@ -164,6 +164,14 @@ void RenderNodeDrawable::drawContent(SkCanvas* canvas) const {
|
||||
paint = &tmpPaint;
|
||||
}
|
||||
renderNode->getLayerSurface()->draw(canvas, 0, 0, paint);
|
||||
|
||||
if (CC_UNLIKELY(Properties::debugLayersUpdates
|
||||
&& !renderNode->getSkiaLayer()->hasRenderedSinceRepaint)) {
|
||||
renderNode->getSkiaLayer()->hasRenderedSinceRepaint = true;
|
||||
SkPaint layerPaint;
|
||||
layerPaint.setColor(0x7f00ff00);
|
||||
canvas->drawRect(bounds, layerPaint);
|
||||
}
|
||||
// composing a software layer with alpha
|
||||
} else if (properties.effectiveLayerType() == LayerType::Software) {
|
||||
SkPaint paint;
|
||||
|
||||
@@ -30,6 +30,7 @@ struct SkiaLayer
|
||||
{
|
||||
sk_sp<SkSurface> layerSurface;
|
||||
Matrix4 inverseTransformInWindow;
|
||||
bool hasRenderedSinceRepaint = false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -106,6 +106,7 @@ void SkiaPipeline::renderLayersImpl(const LayerUpdateQueue& layers, bool opaque)
|
||||
return;
|
||||
}
|
||||
|
||||
layerNode->getSkiaLayer()->hasRenderedSinceRepaint = false;
|
||||
layerCanvas->clear(SK_ColorTRANSPARENT);
|
||||
|
||||
RenderNodeDrawable root(layerNode, layerCanvas, false);
|
||||
|
||||
Reference in New Issue
Block a user