#if DEBUG
for (int i = 0; i < depth; i++) printf(" ");
- printf("[node %03d] type:%s\n", i, (node->mImageInfo.data)?"image":"shape");
+ printf("[node %03d] type:%s keypath:%s\n", i, (node->mImageInfo.data)?"image":"shape", node->keypath);
#endif
//Image object
{
LOTLayerNode *clayer = layer->mLayerList.ptr[i];
+ if (!clayer->mVisible)
+ {
+ if (ptree && matte_mode != TVG_COMPOSITE_METHOD_NONE)
+ tvg_paint_set_opacity(ptree, 0);
+ matte_mode = TVG_COMPOSITE_METHOD_NONE;
+ mtarget = NULL;
+ continue;
+ }
+
#if DEBUG
for (int i = 0; i < depth; i++) printf(" ");
- printf("[layer %03d] matte:%d\n", i, matte_mode);
+ printf("[layer %03d] matte:%d keypath:%s%s\n", i, matte_mode, clayer->keypath, clayer->mVisible?"":" visible:FALSE");
#endif
- if ((clayer->mLayerList.size > 0 || clayer->mNodeList.size > 0) && clayer->mVisible)
- {
- //Source Layer
- Tvg_Paint *ctree = tvg_scene_new();
- _update_vg_tree(ctree, clayer, depth+1);
+ //Source Layer
+ Tvg_Paint *ctree = tvg_scene_new();
+ _update_vg_tree(ctree, clayer, depth+1);
- if (matte_mode == TVG_COMPOSITE_METHOD_NONE)
- {
- tvg_scene_push(root, ctree);
- }
- else
- {
- tvg_paint_set_composite_method(ptree, ctree, matte_mode);
- mtarget = ctree;
- }
-
- ptree = ctree;
+ if (matte_mode == TVG_COMPOSITE_METHOD_NONE)
+ {
+ tvg_scene_push(root, ctree);
}
+ else
+ {
+ tvg_paint_set_composite_method(ptree, ctree, matte_mode);
+ mtarget = ctree;
+ }
+
+ ptree = ctree;
//Remap Matte Mode
switch (clayer->mMatte)
cd->master_scene = EINA_TRUE;
tvg_scene_clear(cd->scene, EINA_TRUE);
- if (!tree->mVisible) return EINA_TRUE;
- _update_vg_tree(cd->scene, tree, 1);
+ if (tree->mVisible) _update_vg_tree(cd->scene, tree, 1);
return EINA_TRUE;
#else