void LOTLayerItem::render(VPainter *painter, const VRle &inheritMask, const VRle &inheritMatte, LOTLayerItem *matteSource)
{
- if (!visible()) return;
-
VRle matteRle;
if (matteSource) {
mDrawableList.clear();
void LOTCompLayerItem::render(VPainter *painter, const VRle &inheritMask, const VRle &inheritMatte, LOTLayerItem *matteSource)
{
- if (!visible()) return;
-
VRle matteRle;
if (matteSource) {
mDrawableList.clear();
}
if (matteLayer) {
- matteLayer->render(painter, mask, matteRle, layer);
+ if (matteLayer->visible() && layer->visible())
+ matteLayer->render(painter, mask, matteRle, layer);
matteLayer = nullptr;
} else {
- layer->render(painter, mask, matteRle, nullptr);
+ if (layer->visible())
+ layer->render(painter, mask, matteRle, nullptr);
}
}
}
virtual void updateStaticProperty();
virtual void render(VPainter *painter, const VRle &mask, const VRle &inheritMatte, LOTLayerItem *matteSource);
bool hasMatte() { if (mLayerData->mMatteType == MatteType::None) return false; return true; }
+ bool visible() const;
protected:
virtual void updateContent() = 0;
inline float combinedAlpha() const {return mCombinedAlpha;}
inline bool isStatic() const {return mStatic;}
float opacity(int frameNo) const;
- bool visible() const;
inline DirtyFlag flag() const {return mDirtyFlag;}
VRle maskRle(const VRect &clipRect);
bool hasMask() const {return !mMasks.empty();}