Andrew Osmond
b03319232c
Bug 1258741 - Part 2. Ensure we consistently render partially decoded images. r=tnikkel
2016-09-26 14:18:37 -04:00
Andrew Osmond
f4dafe1aa1
Bug 1258741 - Part 1. Remove dead/unused image decoder aborted flag. r=tnikkel
2016-09-21 07:13:08 -04:00
Phil Ringnalda
1a29dfb4ca
Backed out changeset c0021d576b3a (bug 1120279) for multiple reftest failures
2016-09-17 09:54:25 -07:00
Andrew Osmond
a2b89af1ce
Bug 1120279 - Ensure the animated image state is consistent if redecoding fails or is asynchronous. r=edwin
2016-09-15 15:13:48 -04:00
Timothy Nikkel
1491cc0380
Bug 1260324. Don't draw garbage to the screen if an image doesn't happen to be decoded. r=seth
...
Layout has been using imgIContainer::IsOpaque to determine if the image will draw opaquely to all pixels it covers, and doing culling based on this.
However imgIContainer::IsOpaque doesn't guarantee anything. It only describes if the image, when in a decoded state, has all opaque pixels. So if the image doesn't have fully decoded frames around (because they got discarded) it may not draw opaquely to all of its pixels.
So we create a new function that first checks if there is a fully decoded frame.
2016-08-22 21:15:38 -05:00
Wes Kocher
b60cddc542
Backed out changeset 54933b5b96f1 (bug 1260324) for frequent windows reftest failures a=backout CLOSED TREE
2016-08-23 13:50:14 -07:00
Timothy Nikkel
8b16d4ef08
Bug 1260324. Don't draw garbage to the screen if an image doesn't happen to be decoded. r=seth
...
Layout has been using imgIContainer::IsOpaque to determine if the image will draw opaquely to all pixels it covers, and doing culling based on this.
However imgIContainer::IsOpaque doesn't guarantee anything. It only describes if the image, when in a decoded state, has all opaque pixels. So if the image doesn't have fully decoded frames around (because they got discarded) it may not draw opaquely to all of its pixels.
So we create a new function that first checks if there is a fully decoded frame.
2016-08-22 21:15:38 -05:00
Seth Fowler
ed50277add
Bug 1293472 (Part 3) - Store animated images in the surface cache as a sequence of frames, rather than each frame getting its own cache entry. r=dholbert,edwin,njn
2016-08-18 15:42:48 -07:00
Seth Fowler
36fc5502bc
Bug 1296147 (Part 2) - Rename imgFrame::GetSurface() to imgFrame::GetSourceSurface() for clarity. r=edwin
2016-08-18 13:03:49 -07:00
Seth Fowler
1459c724f5
Bug 1296147 (Part 1) - Add a DrawableSurface smart pointer type to allow lazy surface generation. r=dholbert,edwin
2016-08-18 13:03:44 -07:00
Timothy Nikkel
b756212169
Backed out changeset 37340346a89e (Bug 1289628 - Return ISurfaceProvider objects from SurfaceCache lookup functions. r=dholbert,edwin) for causing bug 1292290.
2016-08-15 19:58:35 -05:00
Seth Fowler
c11b85f5a0
Bug 1291071 (Part 6) - Stop passing a decoder to FinalizeDecoder() and rename it NotifyDecodeComplete(). r=edwin
2016-08-05 18:50:32 -07:00
Seth Fowler
4f4921678b
Bug 1291071 (Part 5) - Pass the decoder's final status explicitly to FinalizeDecoder(). r=edwin
2016-08-05 18:50:31 -07:00
Seth Fowler
7dce2e7e42
Bug 1291071 (Part 4) - Clean up Decoder::SpeedHistogram() and related code. r=edwin
2016-08-05 18:50:29 -07:00
Seth Fowler
251ed225e5
Bug 1291071 (Part 3) - Pass telemetry explicitly to FinalizeDecoder. r=edwin
2016-08-05 18:50:27 -07:00
Seth Fowler
3cae096c3c
Bug 1291071 (Part 2) - Pass decoder progress explicitly to FinalizeDecoder. r=edwin
2016-08-05 18:50:25 -07:00
Seth Fowler
fd4149ef5a
Bug 1291071 (Part 1) - Pass ImageMetadata explicitly to FinalizeDecoder. r=edwin
2016-08-05 18:50:24 -07:00
Seth Fowler
0b15273908
Bug 1291071 (Part 1) - Move an assertion from RasterImage::FinalizeDecoder() to IDecodingTask::NotifyDecodeComplete(). r=edwin
2016-08-05 18:50:22 -07:00
Seth Fowler
414d097f49
Bug 1292505 (Part 1b) - Update DecoderFactory to use SetOutputSize(), and propagate the changes to RasterImage. r=edwin
2016-08-05 13:44:46 -07:00
Seth Fowler
814c9ae7f2
Bug 1290682 (Part 3) - Remove RasterImage::CopyFrame(). r=edwin
2016-08-01 17:51:20 -07:00
Seth Fowler
c1da0b5cd8
Bug 1290681 (Part 2) - Remove the single color optimization from imgFrame. r=edwin
2016-08-01 17:51:13 -07:00
Seth Fowler
94ad6a6148
Bug 1290747 - Fix bad assert in RasterImage::NotifyProgress(). r=edwin
2016-08-01 17:40:03 -07:00
Seth Fowler
cb1acecf4d
Bug 1289957 (Part 2) - Notify RasterImage about new frames in NotifyProgress() and remove OnAddedFrame(). r=edwin
2016-07-28 00:12:50 -07:00
Seth Fowler
0d3a6a15a7
Bug 1289957 (Part 1) - Fix minor style issues in RasterImage::NotifyProgress. r=edwin
2016-07-28 00:12:49 -07:00
Seth Fowler
2f67bf08b8
Bug 1289628 - Return ISurfaceProvider objects from SurfaceCache lookup functions. r=dholbert,edwin
2016-07-27 13:54:23 -07:00
Nicolas Silva
3766bcc94a
Bug 1284837 - Disallow implicit conversions from float to integer when creating IntPoint and IntSize objects. r=botond
2016-07-26 16:48:30 +02:00
Seth Fowler
6314dc2f19
Bug 1288040 (Part 11) - Clean up RefreshResult. r=edwin
2016-07-20 16:30:41 -07:00
Seth Fowler
f56d7a7e5d
Bug 1288040 (Part 10) - Determine the first frame refresh area of animated images while decoding them. r=edwin
2016-07-20 16:30:39 -07:00
Seth Fowler
e17c8af16f
Bug 1288040 (Part 9) - Determine the loop length of animated images while decoding them. r=edwin
2016-07-20 16:30:36 -07:00
Seth Fowler
31d99f8272
Bug 1288040 (Part 6) - Don't call GetTimeoutForFrame() in RasterImage. r=edwin
2016-07-20 16:30:30 -07:00
Seth Fowler
06d1ffb4e1
Bug 1288040 (Part 5) - Wrap frame timeout values in a FrameTimeout type that ensures they're normalized. r=edwin
2016-07-20 16:30:28 -07:00
Seth Fowler
b9f2a2e3d4
Bug 1288040 (Part 4) - We only need to check for infinitely long frames in StartAnimation() for the first frame. r=edwin
2016-07-20 16:30:26 -07:00
Seth Fowler
02cb209984
Bug 1288040 (Part 2) - Don't reset the last composited frame index when we reset animation. r=edwin
2016-07-20 16:30:21 -07:00
Seth Fowler
c81f435a61
Bug 1288040 (Part 1) - Separate FrameAnimator's state into a separate class, AnimationState. r=edwin
2016-07-20 16:30:19 -07:00
Seth Fowler
2ba15e348c
Bug 1285867 (Part 1) - Remove Decoder's notion of decoder errors. r=edwin
2016-07-15 16:41:11 -07:00
Chris H-C
b243dfd2e4
Bug 1285006 - Remove IMAGE_MAX_DECODE_COUNT Telemetry r=gfritzsche, seth
...
It clears a histogram on the child process which is no longer allowed
(see bug 1218576)
MozReview-Commit-ID: GXWN7qpalAc
2016-07-13 11:53:00 +02:00
Seth Fowler
1f9b35837b
Bug 1282354 - Move code for SurfaceCache placeholder insertion from RasterImage to DecoderFactory. r=dholbert
2016-07-02 18:47:49 -06:00
Seth Fowler
ef081c1091
Bug 1282327 (Part 2) - Update SurfaceCache documentation and method names to reflect the fact that cache entries are now ISurfaceProviders. r=dholbert
2016-07-02 18:47:45 -06:00
Seth Fowler
6a066f954f
Bug 1282352 - Make DecoderFactory use NotNull where possible. r=edwin
2016-06-29 18:33:22 -07:00
Seth Fowler
a8b8626747
Bug 1282275 - Return IDecodingTask objects instead of Decoder objects from most DecoderFactory functions. r=dholbert
2016-06-29 18:33:18 -07:00
Seth Fowler
8b1954cb87
Bug 1282259 - Run IDecodingTasks instead of Decoders directly in image::DecodePool. r=dholbert
2016-06-29 13:46:27 -07:00
Jonathan Watt
fa7b69b631
Bug 1277862, part 3 - Rename Moz2D's Filter to SamplingFilter in the rest of the tree. r=Bas
2016-05-25 17:01:18 +01:00
Kyle Huey
b972c94d0f
Bug 1268313: Part 7 - Move NS_NewRunnableMethod and friends to mozilla::NewRunnableMethod. r=froydnj
2016-05-05 01:45:00 -07:00
Georg Fritzsche
177db8aab7
Bug 1261063 - Part 3 - Make RasterImage use the public Telemetry API. r=tnikkel
2016-05-03 18:07:45 +02:00
Kyle Huey
a9cf047227
Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj
2016-04-25 17:23:21 -07:00
Timothy Nikkel
b70a7769e1
Bug 1222596. If RasterImage::LookupFrame does (some) sync decoding and encouters an error we don't want to return the surface with an error. r=seth
...
If the sync decoding the LookupFrame does encounters an error it will set mError on the RasterImage, which LookupFrame callers check before calling LookupFrame. But they've called LookupFrame before the error was encountered, so we check if the frame has had Abort called on it to determine if we should return it at all.
We only does this if one of the sync decode flags was passed in because IsAborted needs to get the imgFrame's monitor, so we don't want to block consumers that haven't asked for decoding.
2016-04-01 12:44:17 -05:00
Timothy Nikkel
b4ce084794
Bug 1257101. imgFrame::IsImageComplete says whether we've had pixels decoded to the whole image rect, but it's used to check if the frame is finished decoding. These are different things when the image has more than one progress pass. r=seth
...
This means that in RasterImage::LookupFrame when we are asked to do a sync decode (if needed) we use WaitUntilComplete to wait until the frame is finished decoding. But we would actually return after the next progressive pass notified the monitor to wake up. Thus, we would draw a not-fully-decoded image even though the sync decode flag was passed.
The change in FrameAnimator means that we won't draw the next frame in an animated image until all progressive passes of that image are complete. This seems like what we want anyways.
There is one real use of IsImageComplete left, in imgFrame::Draw, where we need to know if the decoded image data covers the whole image frame. (There are a couple of uses of IsImageComplete in asserts.)
2016-03-23 19:31:42 -05:00
Seth Fowler
f03c802cb4
Bug 1225934 - Never allow surface substitution when FLAG_HIGH_QUALITY_SCALING is disabled. r=tn
2016-03-07 17:17:16 -08:00
Seth Fowler
bfe1b0f74f
Bug 1251806 - In RasterImage::GetFrameInternal(), check if the frame covers the actual surface size rather than the requested surface size. r=tn
2016-03-07 17:17:16 -08:00
Seth Fowler
33b90c6806
Bug 1251807 - Use the surface's size, not the intrinsic size, in CopyFrame. r=tn
2016-03-07 17:15:25 -08:00