Open Bug 1263776 Opened 9 years ago Updated 3 years ago

createPattern with 'no-repeat' bleeds color from edges of pattern image

Categories

(Core :: Graphics: Canvas2D, defect, P3)

defect

Tracking

()

Tracking Status
firefox48 --- affected

People

(Reporter: yury, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: parity-chrome, parity-edge, Whiteboard: [gfx-noted])

Attachments

(2 files)

Attached file test_pat.html
When fill() is used with pattern that was created with 'no-repeat' parameter, the 2d context paints the pattern once and the rest of the area is filled with color of the pixel from the pattern edge that is closest to the pixel that is being painted (a la GL_CLAMP_TO_EDGE). It is expected only image of the pattern is painted.
Blocks: 1260585
Looking at the spec, it appears that no-repeat really does expect EXTEND_NONE behaviour, not clamping. Our CanvasGeneralPattern::ForStyle() code uses ExtendMode::CLAMP for this case (since we don't support NONE in Moz2D). CC'ing graphics people who might want to fix this :)
See Also: → 1302718
Has STR: --- → yes
Keywords: feature
OS: Mac OS X → All
Priority: -- → P3
Hardware: x86_64 → All
Would be cool if someone could fix this one day. Any chance? If is a cairo based render i could also give a shot.
Blocks: 1587049

http://jsfiddle.net/emeagcnx/17/

This is an old javascript only reproducible case

Nodecanvas, a cairo based implementation of canvas under node uses a cairo native constant to define the no repat and does not bleed.

I wish an happy new year to all firefox devs here, but a special happy new year to the one that will eventually fix this bug.
Continue the great job!

Any chance someone will fix it?

Blocks: 1719886
Severity: normal → S3

Is it still being repaired?

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: