Open Bug 919071 Opened 11 years ago Updated 2 years ago

Generalize imagelib's SurfaceCache and use it for classes like ClippedImage

Categories

(Core :: Graphics: ImageLib, defect)

defect

Tracking

()

People

(Reporter: seth, Unassigned)

References

Details

Bug 764299 introduced SurfaceCache, which can be used for storing temporary surfaces in imagelib. For pragmatic reasons the version of SurfaceCache introduced in that bug is specialized to VectorImage's needs. We should:

- Generalize SurfaceCache to be able to handle multiple types of surfaces with (crucially) different key types. This adds some complexity which is why I folded this work out of bug 764299.

- Make use of the generalized SurfaceCache in classes like ClippedImage that currently do their own caching.
Depends on: 1054079
So we really need SurfaceCache to support surfaces from 4 and possibly 5 sources:

1. VectorImage's rasterized SVG surfaces (which it already supports)
2. ClippedImage's cached clipped surfaces
3. RasterImage's HQ scaled surfaces
4. RasterImage's normal decoded surfaces
5. (Maybe, not sure about this one) RasterImage's animation frames

Each one of these deserves their own bug, I think, since while the changes to SurfaceCache aren't large in each case, experience with implementing #3 has shown that the changes to the classes that *use* SurfaceCache can be substantial. So let's consider this a metabug that tracks the overall goal of moving as much of the decoded image data in imagelib as possible into SurfaceCache.
Depends on: 1060200
Depends on: 1060869

The bug assignee didn't login in Bugzilla in the last 7 months, so the assignee is being reset.

Assignee: seth.bugzilla → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.