Closed
Bug 885020
Opened 12 years ago
Closed 12 years ago
Make Mask() use MaskSurface when drawing with EXTEND_NONE
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
FIXED
mozilla24
People
(Reporter: jrmuizel, Assigned: jrmuizel)
References
Details
Attachments
(1 file, 1 obsolete file)
3.26 KB,
patch
|
bas.schouten
:
review+
|
Details | Diff | Splinter Review |
This code becomes a little ugly but it does seem to work.
Attachment #764989 -
Flags: review?(bas)
Comment 1•12 years ago
|
||
Comment on attachment 764989 [details] [diff] [review]
Make Mask() use MaskSurface when drawing with EXTEND_NONE
Review of attachment 764989 [details] [diff] [review]:
-----------------------------------------------------------------
I agree with the idea, suggesting a restructuring of the code to make it cleaner.
::: gfx/thebes/gfxContext.cpp
@@ +1447,1 @@
> }
I see almost no difference between the Moz2D and non-Moz2D versions. I suggest just initializing offset in the scope of if(EXTEND_NONE) and setting it inside !pattern->IsAzure() && pattern->GetType() == gfxPattern::PATTERN_SURFACE.
Then over here I'd do an if (pattern->IsAzure() || pattern->GetType()) and do your generic masking code, that should reduce a lot of the code duplication and clean it up.
Attachment #764989 -
Flags: review?(bas) → review+
Assignee | ||
Comment 2•12 years ago
|
||
A lot cleaner and also more correct. This uses ChangeTransform to make sure that source pattern gets it matrix appropriately adjusted.
Attachment #764989 -
Attachment is obsolete: true
Assignee | ||
Updated•12 years ago
|
Attachment #765753 -
Flags: review?(bas)
Comment 3•12 years ago
|
||
Comment on attachment 765753 [details] [diff] [review]
Make Mask() use MaskSurface when drawing with EXTEND_NONE v2
Review of attachment 765753 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/thebes/gfxContext.cpp
@@ +1419,3 @@
>
> + mask = pattern->GetAzureSurface();
> + offset = Point(0.f, 0.f);
You don't need this, as Point is initialized to 0.f, 0.f.
@@ +1425,5 @@
> +
> + // this lets GetAzureSurface work
> + pattern->GetPattern(mDT);
> +
> + mask = pattern->GetAzureSurface();
This line looks a suspicious amount like the one at L1420 :)
@@ +1430,1 @@
> }
In other words I think the if (pattern->IsAzure()) block can go away completely!
Attachment #765753 -
Flags: review?(bas) → review+
Assignee | ||
Comment 4•12 years ago
|
||
Comment 5•12 years ago
|
||
Assignee: nobody → jmuizelaar
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
You need to log in
before you can comment on or make changes to this bug.
Description
•