Bug 690358

Summary: opacity mask as image brush has no effect
Product: GhostXPS Reporter: Tor Andersson <tor.andersson>
Component: GeneralAssignee: Tor Andersson <tor.andersson>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P4    
Version: unspecified   
Hardware: All   
OS: All   
Customer: Word Size: ---

Description Tor Andersson 2009-03-26 06:51:00 UTC
XPS FTS 0202 uses an opacity mask that references an image brush. The transparency mask and group 
setup functions are called, but the mask has no effect.
Comment 1 Tor Andersson 2009-03-27 05:29:29 UTC
After further investigation, it appears that the problem lies in the order of the application of 
RenderTransform to OpacityMask and Clip. The XPS spec is fairly unclear on the matter, and it's not 
made any easier by the fact that these things can be specified either as attributes or as child tags, in 
any mix.

Examples:

<Canvas OpacityMask="...">
<Canvas.RenderTransform />
...

versus

<Canvas RenderTransform="...">
<Canvas.OpacityMask="..." />
...

versus

<Canvas RenderTransform="..." OpacityMask="...">
...

versus

<Canvas OpacityMask="..." RenderTransform="...">
...
Comment 2 Tor Andersson 2009-03-31 06:15:43 UTC
It turns out that the mixing of the attributes and property tags is independent of rendering, and the 
internal order of property tags is strict. The bug was a gsave/grestore bracketing mismatch which
caused the Clip to interact badly with subsequent elements that used complicated brushes.

Fixed in revision 9605.