Closed
Bug 892964
Opened 12 years ago
Closed 12 years ago
Rewrite DrawTargetCG::MaskSurface to avoid using FillRect()
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
FIXED
mozilla25
People
(Reporter: jrmuizel, Assigned: jrmuizel)
Details
Attachments
(1 file)
3.42 KB,
patch
|
mattwoodrow
:
review+
|
Details | Diff | Splinter Review |
With FillRect we were setting the transform twice.
The patch looks really bad because I needed to move the implementation of MaskSurface so that it was below the helper methods.
The actual change is:
- FillRect(Rect(aOffset.x, aOffset.y, size.width, size.height), aSource, aDrawOptions);
-
+ if (isGradient(aSource)) {
+ // we shouldn't need to clip to an additional rectangle
+ // as the cliping to the mask should be sufficient.
+ DrawGradient(cg, aSource);
+ } else {
+ SetFillFromPattern(cg, mColorSpace, aSource);
+ CGContextFillRect(cg, CGRectMake(aOffset.x, aOffset.y, size.width, size.height));
+ }
This also avoids setting up other state like alpha and the unboundness fixer twice.
Attachment #774624 -
Flags: review?(matt.woodrow)
Updated•12 years ago
|
Attachment #774624 -
Flags: review?(matt.woodrow) → review+
Comment 1•12 years ago
|
||
Assignee: nobody → jmuizelaar
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
You need to log in
before you can comment on or make changes to this bug.
Description
•