Merge "Avoid throwing when 0 size layer requested" into nyc-mr1-dev
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user