You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
static void sDrawPlacedObject(SwiffRenderState *state, SwiffPlacedObject *placedObject)
of the SwiffRenderer there are two early returns.
// Bail out if placedObject is hidden
if (placedObjectIsHidden) {
...
}
and
// Bail out if renderBounds is not in the clipBoundingBox
CGRect renderBounds = CGRectApplyAffineTransform([definition renderBounds], newTransform);
if (!CGRectIntersectsRect(renderBounds, state->clipBoundingBox)) {
...
}
If the code returns at those points, the code needed for correct masking that is at the end of sDrawPlacedObject never gets called and there are display errors.
actually my solution was wrong, as the clipping path was not yet added to the context.
To make sure the clipping path gets build correctly, I am checking the state->isBuildingClippingPath before bailing out:
// Bail out if placedObject is hidden
if(!state->isBuildingClippingPath && placedObjectIsHidden) {
return;
}
// Bail out if renderBounds is not in the clipBoundingBox
if(!state->isBuildingClippingPath && !CGRectIntersectsRect(renderBounds, state->clipBoundingBox)) {
return;
}
In the routine:
static void sDrawPlacedObject(SwiffRenderState *state, SwiffPlacedObject *placedObject)
of the SwiffRenderer there are two early returns.
and
If the code returns at those points, the code needed for correct masking that is at the end of sDrawPlacedObject never gets called and there are display errors.
Fixed it by copying that last code snippet right before the return calls above.
The text was updated successfully, but these errors were encountered: