- From: Oliver Hunt <oliver@apple.com>
- Date: Fri, 7 Mar 2008 04:16:42 -0800
Hi all, while working on a bug in our canvas implementation I've noticed that there's a difference in behaviour between Opera and Firefox when handling path construction over save/restore boundaries. Section 3.12.11.1.1 says that the canvas path is not part of the state that is effected by save/restore, unfortunately Opera and Firefox disagree on what this actually means. Firefox appears to treat restore() (effectively) as a transform that undoes the any transformations performed in the current state, so given the example: context.beginPath(); context.save() context.translate(100,100) context.rect(0,0,10,10) context.restore() context.fill() Firefox behaves as though the set of operations was context.beginPath(); context.translate(100,100) context.rect(0,0,10,10) context.translate(-100,-100) context.fill() which, given 3.12.11.1.8., results in the fill operation still drawing a 10x10 rect at (100,100). Opera meanwhile treats the path as being completely independent of the canvas state, and so draws the rect at (0,0). What I want to know is which behaviour the spec actually intends on providing. --Oliver
Received on Friday, 7 March 2008 04:16:42 UTC