* display list. This function should remain in sync with the replay() function.
*/
void RenderNode::output(uint32_t level) {
- ALOGD("%*sStart display list (%p, %s%s%s%s)", (level - 1) * 2, "", this,
+ ALOGD("%*sStart display list (%p, %s%s%s%s%s)", (level - 1) * 2, "", this,
getName(),
+ (MathUtils::isZero(properties().getAlpha()) ? ", zero alpha" : ""),
(properties().hasShadow() ? ", casting shadow" : ""),
(isRenderable() ? "" : ", empty"),
(mLayer != nullptr ? ", on HW Layer" : ""));
const bool isLayer = effectiveLayerType() != LayerType::None;
int clipFlags = getClippingFlags();
- if (mPrimitiveFields.mAlpha < 1) {
+ if (mPrimitiveFields.mAlpha < 1
+ && !MathUtils::isZero(mPrimitiveFields.mAlpha)) {
if (isLayer) {
clipFlags &= ~CLIP_TO_BOUNDS; // bounds clipping done by layer
}
- LOG_ALWAYS_FATAL_IF(!isLayer && mPrimitiveFields.mHasOverlappingRendering);
ALOGD("%*sScaleAlpha %.2f", level * 2, "", mPrimitiveFields.mAlpha);
}
if (clipFlags) {