Loading libs/hwui/RenderNode.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -301,7 +301,10 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) { LayerType layerType = properties().effectiveLayerType(); // If we are not a layer OR we cannot be rendered (eg, view was detached) // we need to destroy any Layers we may have had previously if (CC_LIKELY(layerType != LayerType::RenderLayer) || CC_UNLIKELY(!isRenderable())) { if (CC_LIKELY(layerType != LayerType::RenderLayer) || CC_UNLIKELY(!isRenderable()) || CC_UNLIKELY(properties().getWidth() == 0) || CC_UNLIKELY(properties().getHeight() == 0)) { if (CC_UNLIKELY(mLayer)) { destroyLayer(mLayer); mLayer = nullptr; Loading libs/hwui/RenderProperties.h +1 −3 Original line number Diff line number Diff line Loading @@ -611,9 +611,7 @@ public: bool fitsOnLayer() const { const DeviceInfo* deviceInfo = DeviceInfo::get(); return mPrimitiveFields.mWidth <= deviceInfo->maxTextureSize() && mPrimitiveFields.mHeight <= deviceInfo->maxTextureSize() && mPrimitiveFields.mWidth > 0 && mPrimitiveFields.mHeight > 0; && mPrimitiveFields.mHeight <= deviceInfo->maxTextureSize(); } bool promotedToLayer() const { Loading libs/hwui/tests/unit/RenderPropertiesTests.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ TEST(RenderProperties, layerValidity) { props.setLeftTopRightBottom(0, 0, maxTextureSize + 1, maxTextureSize + 1); ASSERT_FALSE(props.fitsOnLayer()); // Too small - can't have 0 dimen layer // Too small, but still 'fits'. Not fitting is an error case, so don't report empty as such. props.setLeftTopRightBottom(0, 0, 100, 0); ASSERT_FALSE(props.fitsOnLayer()); ASSERT_TRUE(props.fitsOnLayer()); } Loading
libs/hwui/RenderNode.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -301,7 +301,10 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) { LayerType layerType = properties().effectiveLayerType(); // If we are not a layer OR we cannot be rendered (eg, view was detached) // we need to destroy any Layers we may have had previously if (CC_LIKELY(layerType != LayerType::RenderLayer) || CC_UNLIKELY(!isRenderable())) { if (CC_LIKELY(layerType != LayerType::RenderLayer) || CC_UNLIKELY(!isRenderable()) || CC_UNLIKELY(properties().getWidth() == 0) || CC_UNLIKELY(properties().getHeight() == 0)) { if (CC_UNLIKELY(mLayer)) { destroyLayer(mLayer); mLayer = nullptr; Loading
libs/hwui/RenderProperties.h +1 −3 Original line number Diff line number Diff line Loading @@ -611,9 +611,7 @@ public: bool fitsOnLayer() const { const DeviceInfo* deviceInfo = DeviceInfo::get(); return mPrimitiveFields.mWidth <= deviceInfo->maxTextureSize() && mPrimitiveFields.mHeight <= deviceInfo->maxTextureSize() && mPrimitiveFields.mWidth > 0 && mPrimitiveFields.mHeight > 0; && mPrimitiveFields.mHeight <= deviceInfo->maxTextureSize(); } bool promotedToLayer() const { Loading
libs/hwui/tests/unit/RenderPropertiesTests.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ TEST(RenderProperties, layerValidity) { props.setLeftTopRightBottom(0, 0, maxTextureSize + 1, maxTextureSize + 1); ASSERT_FALSE(props.fitsOnLayer()); // Too small - can't have 0 dimen layer // Too small, but still 'fits'. Not fitting is an error case, so don't report empty as such. props.setLeftTopRightBottom(0, 0, 100, 0); ASSERT_FALSE(props.fitsOnLayer()); ASSERT_TRUE(props.fitsOnLayer()); }