Description
If I have bitmap A with snapToPixel set to true inside container B with snapToPixel set to false, and B is not on a whole pixel, then A will be drawn off-pixel.
This is result of needing to use save/restore for support of masks and similar features. We can't query the canvas for our current offset. We could support this by requesting the concatenated matrix for snapped objects, and using that value to affect an offset, but that would be very expensive.
Alternately, we could pass the offset values forward through the draw chain, but this would require adding parameters to draw specifically for this, which isn't ideal, and doesn't work well with other transformations.
Perhaps there is a way we could move to a hybrid model. Using setTransform and a iteratively concatenated matrix in general, and save/restore for masks (and similar features) only.